Tumgik
#The stuff I listed is coded into the ID-including the 'no reflection' test
sapphire-rb · 5 months
Text
How to tell if your Malroth is a real Malroth or a fake Malroth:
Note: I am not responsible for any mental scaring reliving the mirror scene may cause on both parties.
Other signs of Fake Malroth: · Does not lurk around you · Complains about food/wanting to go to the toilet despite toilets and food being avaliable · No fiery aura · Does not imedeately run to bed when you go to bed
Only the real Malroth can do these things. It is hard-coded into his being. Watch out for impostors.
40 notes · View notes
handsingsweapon · 7 years
Note
Of you still have time. For the October challenge 12 and Chris (of courde I have to ask for a Chris story xD)
12. Write a plot about a character meeting a fae creature, but realizing they aren’t as pretty and delicate as the fairy tales made them believe.
“You’re back early,” Christophe notes as Victor sweeps into their suite, back from a practice he’d insisted was going to take some time. For a moment there’s uncharacteristic silence, the sort Victor doesn’t sink into unless he’s in one of his moods. Is he? When Chris glances back to check, it doesn’t look like it: behind him, Victor’s rattling around in the fridge, more restless than despondent. 
“Yeah. It just …” Victor trails off, uncertain, and Christophe counts to ten inside his head. He makes it to the number six. “It felt like I was being watched, you know?”
It’s a strange thing to say for a dance major, but they’re not exactly at the world’s most ordinary university. On the one hand, in Victor’s chosen career, people will be watching him all the time. On the other, Christophe’s been watching him narrowly evade one supernatural encounter after another ever since they met, freshman year. Everyone knows about Barkley, goes the saying among people who are like Chris: it’s a bohemian kind of institution, very artsy, in Savannah. It’s also the only place he knows of in the country where there’s tacit acceptance of students who maybe aren’t quite human, and this is why their mutual friends consist of a werewolf, several witches, one harpy, and, in Christophe’s case specifically, a part-lilin, incubus being such a misconstrued word these days. My mother’s a very misunderstood woman, Christophe jokes. His mother is a professional dominatrix. This is his life. 
In any case, Victor is none of those things. He certainly has the looks for it: high, fine cheekbones; wonderfully bright eyes, and gorgeous, sweeping silver hair. Except Christophe’s tested him more than once. There is absolutely nothing magical about Victor Nikiforov, aside from his dancing, and perhaps his ability to accept with wonder the community of oddballs who have sprung up around him, be it his tolerance for Georgi’s monthly moon-induced moodswings or the sort of mischief Mila Babicheva gets up to. Which isn’t to say there haven’t been some close scrapes: Victor’s beautiful and beauty tends to attract attention in the kind of community they’re in. Victor doesn’t need to know how many attempts there have been to harvest that sort of thing from him: the inspiration of it, or the elegance he carries. He just needs to know that Christophe occasionally inserts himself into the process with a flash of red eyes and subtle fang, perhaps the most useful part of the other side of his lineage. This one is under the protection of the lilin, he’s lied, at least a dozen times. In truth, Chris hasn’t really taken those kinds of steps.
Still: there’s something about Victor which seems to make everyone want to claim him. Chris would be lying if he didn’t include himself in that list. 
“Weird,” Chris hums, pretending not to think about it primarily because he doesn’t want Victor thinking about it. Being strictly human, he doesn’t have the same right to navigate throughout magical communities, and Christophe usually tries to not incite his curiosity, which can sometimes be a terrible, potent thing. “Probably just an old ghost passing through the studio,” he says instead, and he makes a note to get Victor drunk enough that he goes to sleep early so that Chris can trudge down to the Performing Arts building and tell yet another creature the boundaries he’s imposing around Victor’s person.
“It was …” Victor’s not letting this go, so Chris gets up and goes to the kitchen under pretense of making dinner. “Not necessarily unpleasant,” he says, and Chris, who’s more naturally in tune with people’s motivations and drives primarily because something lives under his skin that hums feast, hears: intimate.
It’s nearly midnight by the time he has a chance to check it out himself. Christophe’s wearing Victor’s jacket as a trace, and badges into the building with Victor’s ID. He inhales deeply, picks up what little essence there is left on the jacket, and follows it into one of the studios. Nothing malevolent catches his attention, which is good: it took Chris three months to dismantle JJ’s imaginary rivalry with Victor and he’d prefer not to spend his night calling Mila in for a favor to unwind new hexes. 
Victor’s not wrong, though: something is here. Something is watching him. Chris lets his other senses extend, tastes wistfulness and longing and a very complicated, fragile kind of hope: twisted up in a wanting that it’s not uncommon for him to encounter directed towards Victor, but which isn’t, at least this time, just attraction or simple lust. 
Christophe would almost prefer those things, frankly. They’re wholly in his dominion. 
“Alright,” he grumbles, exasperated, and blinks until his hazel eyes show garnet in the mirrors along one wall. “Are you going to show yourself, or am I going to have to go resort to something drastic to find out what the hell you’re doing to my best friend?”
Nothing happens immediately, but Christophe’s eyes narrow on the edges of alarm and worry and a hearty dose of sheepishness. 
Then a shadow forms in the mirror. A figure there comes closer and closer until Christophe can see him standing right next to his reflection. The word brownie comes to mind almost immediately, and just as quickly, Christophe knows it’s wrong. Fae, he corrects himself, though the being in the mirror seems very different from what he’s heard in the stories. He’s rather plain, for one thing, and they tend to be such flamboyant things. As soon as Christophe thinks this, he’s prompted to look a little bit deeper. Something about the shy demeanor has an illusive nature to it, and there’s hearthlight in the stranger’s eyes.
He’s not to Christophe’s tastes, but under the right circumstances, charming might be the right adjective. “Oh, good,” he says. “Out with it, already. Tell me what you want with him so I can tell you that you’re not going to get it. I’ve got a Psychology of Sex exam at 8 AM tomorrow and my advantages aside, I’d rather not sleep through it …”
What he gets back is a sad look, ripe with consternation. Then the figure clamps both hands over his mouth, miming his inability to speak. Christophe considers this. Then he steps forward to the glass and blows on it until it fogs up with his breath. “I’m Christophe,” he says, pointedly. “You?”
.iruuY
“Yuuri,” Chris deciphers, and decides not to explain the mechanics of their backwards, inversed worlds. “Yuuri, you can’t stalk my friend.”
.mih pleh
“Help him?” Unlikely. Victor doesn’t have the kind of luck that makes a fae indebted to him; in fact, he’s rather the opposite, attracting bad interests and a whole lot of people eager to graft him into their own personal codes. “Help him do what?”
Something must be happening, though, because the fae, Yuuri, jolts upright and scrambles to write and underline his earlier words: 
.MIH PLEH
Then he’s gone, leaving behind an airy smell, pure and light. 
“I started leaving it notes,” Victor announces, one afternoon. Christophe has all-but-forgotten Yuuri-the-fae, distracted by his own midterms and, lately, an art major with just a hint of clairvoyance and a tremendously talented mouth that he hardly ever uses for speaking. 
“It?”
“You know,” says Victor. “The thing in the dance studio.”
“Notes,” Christophe mutters. “What kind of notes?”
“No need to get so prickly, Chris.” Victor has a heart-shaped smile that’s positively angelic sometimes. If one of the Lilin had the ability to make the face he’s making right now, there’d probably be a thousand conquests happily vanquished in the trail of their footsteps, all of them still proclaiming innocence. “We’re just friends,” he says.
“Friends,” repeats Christophe.
“The studio smells a lot nicer when he’s around,” Victor says with a shrug. “It’s like going home.”
“How do you know it’s a he?”
Victor shrugs. Christophe can’t help but read him again: wouldn’t it have to be?
“I’m coming with you next time,” says Chris, and on the way to his practicum, he phones (texts) in a favor with a longtime friend. Phichit. What the fuck do your people want with Victor Nikiforov?
My people? IDK the courts are kinda too busy to bother with humans ATM … he didn’t like, go traipse through a ring or w/e?
Name Yuuri ring a bell?
His phone rings almost instantly, and Phichit proceeds to put him through the fairy inquisition for a good twenty minutes. It goes something like this: Holy hell, Christophe. Yuuri? Yuuri’s been missing from Minako’s court for five fucking years. How do you even - where - what -
“I don’t care about all that. I want to know what the hell he’s doing to Victor.”
“I want to see him,” Phichit says, with a strange note in his voice. “Christophe, he’s my friend, he’s harmless, I swear.” 
“Seelie or Unseelie?”
“Christophe –”
“Phichit,” Christophe repeats himself. “Seelie or Unseelie.” 
“… Unseelie, technically,” Phichit finally admits. “But all of Minako’s stuff works differently, and I’m Seelie, sure, but I’m friends with him and so is Guang-Hong, who is practically as Seelie as it gets, Chris, you have to help him …” Christophe could care less about the distinctions made between the different fae clans; in fact, it’s far more common for his kind to form alliances with the unseelie types, not out of something as mundane and simple as evil, the way the stories now all talk, but because they’re both really beasts of nuance and mystery, creatures who understand that the world is complicated and sometimes dangerous.
“Of course,” grumbles Christophe, because, nonetheless, this would all be easier if there was a Seelie on the other end of the transaction; simple do-gooders, those sorts, and easily motivated, too. 
Unfortunately, that’s not the kind of luck Victor Nikiforov has.
This is how they find themselves at 9 PM on a Friday, arranged in the dance studio where it all began, Victor, Christophe, Phichit. Christophe studies their faces together in the mirror: Victor looks the most out of place, curious and perhaps over-eager, the way he gets any time Christophe’s about to reveal more than he should about the kinds of preternatural creatures that occupy the fringes of Victor’s whole world. Chris looks vaguely inconvenienced, which he supposes is true; Phichit is uncharacteristically anxious, not nearly so cheerful as his typical demeanor suggests. “Yuuri,” he calls quietly. “Yuuri, it’s okay. Yuuri, won’t you come out?”
Yuuri appears in the mirror a few seconds later, and Phichit rushes for it, moves smoothly through its surface to a world that Christophe doesn’t even want to attempt to get to. Rather than express shock, Victor’s quiet, studying the fae creature who has been his silent companion these past few weeks while he holds an animated conversation with Phichit that neither one of them can hear. If Christophe thought he received an inquisition over the phone, he quickly begins to revise his opinion: in the mirror’s reflection, he’s witnessing a full shakedown of the other fae: Phichit has gone from hugging him to interrogating him in an impressive three second span. 
Whatever answers Yuuri gives must be vague; Christophe recognizes Phichit’s quizzical, somewhat unsatisfied look before he steps back over and looks at Victor. “He says he needs your hair,” Phichit explains. 
“What?” Asks Victor, stepping forward to look into the mirror. It’s not Christophe’s imagination that Yuuri blushes from ear to ear as he’s inspected for the first time by this human he’s been following. “Like a strand of it?” Already he’s separating out a thin sliver of long, platinum blonde, ready to pull a piece out if only Phichit or Christophe will say the word.
This is why Victor can’t be left to his own devices: surrounded by all kinds of magical people and he’s already freely offering up a strand of his hair. “No,” Christophe says. “You can’t just run around giving people a piece of yourself, Victor.” It’s dangerous goes unspoken, but Christophe doesn’t need to say the words. He’s already got his arms crossed, and his posture speaks for itself.
Not that Victor’s paying any attention to him.
“Not exactly,” Phichit murmurs, reluctantly. “Like. Most of it.”
“Oh,” says Victor, as Yuuri watches, fidgeting under the weight of Victor’s bright blue stare. “Is he in trouble?” 
“He wouldn’t say.”
Without another word, Victor turns on his heel and leaves. The fae in the mirror looks dangerously close to tears; perhaps, for this reason, Phichit stays behind to try to reassure him. Chris follows Victor as he tears through one classroom after another before he finally marches down towards the main office and proceeds to wiggle the lock until it gives. “Victor. What are you doing?”
Victor says nothing while he rummages through desks until he comes up triumphant with a pair of scissors. “No,” Christophe reminds him, playing the role of Victor Nikiforov’s impulse control for probably the three-hundredth time. Now there’s something ironic. “Bad idea. Victor, wait. Listen to me.”
“Time for a change,” Victor hums as he walks back to the studio, pulling his hair into a band of elastic at the nape of his neck. When they walk back in, Phichit and Yuuri are facing each other in the glass; Yuuri’s sunk to his knees on the other side, curled in on himself, and Phichit is kneeling, pressing his fingers against the glass. 
“Yuuri, just give it time, okay? We’ll figure something –”
Snip, go the scissors, and then too many things are happening all at once.
The lights go out in the dance studio.
A crash sounds around them, loud and insistent like broad, booming thunder.
Every mirror in the room shatters.
A howling wind rattles around them.
“You insolent brat,” Christophe hears someone shout, and nearby Phichit drops to a knee, bows. 
“Yakov,” he whispers, and he sounds terrified. Yakov is a name Christophe knows only through the grapevine, one of the fae-Kings, master of a decidedly Unseelie court. It’s a name that carries weight: he’s known for his temper, for his exacting standards, for crafting challenges that are all-but-impossible for a mere mortal.
If Yakov wants something to do with Victor, that’s very, very bad news, from Christophe’s perspective. Yakov is storm and stress, he’s thunder, he’s danger, and yet: the shards of mirror that ought to be flying around them have been reduced to a fine, glowing dust, little more than blowing, shifting sands.
Then Christophe hears the one thing he’s worked so hard to make sure nobody says about Ordinary Human Victor Nikiforov. 
“Mine,” Yuuri says, and his eyes are awash in brilliant gold. “He’s mine.”
“You idiot,” Christophe says, turning to look back at Victor, and prepared to protect him if necessary: “this is wh –”
Victor’s hair – Victor’s short hair – is fae-white, the pure silver of moonlight, and his eyes are bluer than they’ve ever been. To say that he’s suddenly very magical would be the understatement of Christophe’s entire life.
Not until after a dozen different retellings will Christophe quite believe what happens next: he watches the previously meek fae from behind the mirror approach one of the fairy kings, his eyes sharp and narrow, magic whirling around Victor in protective, powerful circles. “You will stop harvesting his magic for your own use, or alliances and protocol be damned, I will end you.”
“Wow, Yuuri,” breathe both Phichit and Victor at once, in very different ways.
“Let me get this straight,” says Mila Babicheva, while they’re working on Yuuri’s application for admission together, a week later. “Christophe Giacometti, who prides himself on knowing everyone’s fucking business at this school, has lived with a changeling under his roof for three goddamn years?”
Christophe glances over his shoulder. Victor and Yuuri are in the kitchen, and if he didn’t know any better, he’d say it was Victor who was being protective: Victor who tends to keep a hand anchored on Yuuri’s shoulder, who’s already prone to making sweeping gestures in public to underscore their fledgling relationship. 
“… Yeah,” he admits. There’s love between them, and enough chemistry that if it was his to take he’d be full for weeks. 
“Lilia’s heir,” Phichit emphasizes helpfully. This is a useful tidbit he was able to discover after-the-fact; Lilia and Yakov’s courts cycle through seasons of war and peace so often that it’s hard to keep up, and so Yakov’s curse on one of her own – one of the most magical of her own clan, nonetheless, makes sense.
A part of Christophe, the part that isn’t very nice, even appreciates the nasty work of the spell: fae tend to be vain creatures, and Victor’s hair, long and beautiful and almost certainly never cut, was precisely the kind of thing he’d never have sacrificed on his own if it weren’t for the gentle face of the fairy on the other side of the mirror.
Or Yuuri’s airy, light scent: the moonlit breeze, stronger than Victor’s vanished memories of a time Yuuri recalls which Victor cannot.
Not yet, at least, although he’s already dealing with the change like the prodigy he is, producing elegant, flawless magic that’s surprisingly crisp and clean.
“… And Minako’s,” Victor chimes in helpfully from the kitchen. He kisses Yuuri’s temple and smiles his heart-shaped smile, and Yuuri goes as red as the strawberries they’ve been slicing into pieces. “Look how useless I was on my own,” he admits, which is a lie: Christophe’s been acclimating to just how powerful his magic really is, now that it suffuses their entire house. 
“It took Yuuri to show me who I really am.”
“Gross,” Mila mutters, sounding exactly like that young harpy they all know. “Really, though, Christophe. Aren’t you banging a precog?”
Chris is banging a clairvoyant. That clairvoyant has a name – Bastien – and he’d more or less shrugged off the inquiry. Did you know?Not precisely. 
You could have said something. 
As I recall, there were other things you wanted me doing with my mouth.
“I don’t want to talk about it,” grumbles Christophe.
“I didn’t think it would work,” Yuuri admits quietly, as he carries a plate over. Christophe is still getting used to the illusive way he constantly underplays himself, the way he seems to ignore the deep reservoir of power just waiting for him to draw on its strength. “That he’d think it’d be worth it, I mean.”
“Why’d you leave Minako’s court to go figure it all out in the first place?” Phichit wants to know. 
“Oh, that.” Victor and Yuuri share a glance, and Yuuri smiles softly. Christophe senses that original undercurrent of longing once more, the unique, complicated thing that dances between Victor and Yuuri and which sometimes boggles even his senses. 
“Victor doesn’t remember it,” Yuuri explains quietly, “but we met, back then.” Five whole years ago. 
“… At a banquet.”
140 notes · View notes
hydrus · 8 years
Text
Version 244
youtube
windows
zip
exe
os x
app
tar.gz
linux
tar.gz
source
tar.gz
EDIT: There was a problem with the initial release and autocomplete matching of siblings. The links here now point to 244a, which is a hotfix.
I had a great week. The db rewrite went very well. I have reduced the size of the client database files by about 33%.
This is a heavy update. It will use a lot of HDD activity for about 30-40 minutes. If you sync with my PTR, you will need about 6GB free on your hydrus install's hard drive.
the final compaction
This all went better than I expected. There was a lot of work--I changed about 1,200 lines of code this week--but the fundamental problem proved simple, and there were only a couple of difficult bumps along the way. The database is smaller, operations are faster, and the code is simpler.
Ultimately, I have reduced how tag mappings are stored in the database. Before it used three numbers per row, and now it uses two. This reduces the size of client.mappings.db by about 40%. In order to map the missing number, I had to bump up client.master.db by a little bit. There are many other small changes, but it seems to be shaking out to about a 33% reduction in total db size, or about 1.7GB for a typical PTR-syncing client.
My dev pc took 33 minutes to convert while my laptop took 45. If you have an SSD or a fast CPU, it should take a little less time, and if you have an old computer, expect it to take longer. If you do not sync with my PTR, it will take about ten seconds.
If you do sync with my PTR, you will need about 6GB free on your hydrus install's hard drive for the update to work. If you don't have this, the client will warn you beforehand. It is optional and beneficial to also have about 3GB free on your system drive, if that is different from your hydrus install.
The particularly good news with this change is that nothing seems to be architecturally broken or suddenly slowed down by the change. Because every mappings row is that bit smaller and simpler, most operations (including tag repository processing) are actually going through a bit faster.
Please let me know if you do encounter any problems. I expect there is at least one unusual operation I have made a typo on that slipped through my testing.
This change was a long time coming, but I am also glad I had the chance to think about it. I am now ready to overhaul the network next week.
some other stuff
I fixed the Deviant Art parser!
I fixed an issue with Linux session-loaded pages not accepting key events!
OS X can now handle windows with no pages open, and it won't eat pages on session loads!
The client will stop spamming so many 'shutdown work' dialogs when there seems to be nothing to do!
full list
updated client database to compact ( namespace_id, tag_id ) pair into a single id for storage
added some bells and whistles to the update code
added a free space check and messagebox warning before the update
updated db, service, and a/c cache creation code to reflect new schema
updated absolutely everything else in the db to reflect the new schema
for users with plenty of tags, the db should now be about 33% smaller!
unified how unnamespaced tag searching counts are totalled
unnamespaced tag searching counts are now totalled when the tags are fetched from the in-view ui media
unified how tags are split into ( namespace, subtag ) across the program
fixed deviantart gallery thumbnail parser
fixed linux session load page key event handling bug
os x can now support notebooks with zero pages open
fixed an issue where os x was losing the first page of some session loads
fixed some similar files shutdown work false positive calculation
reduced server bandwidth check period from 24 hours to 1 hour
improved calltothread scheduling under heavy load
improved scheduling of how files are physically deleted
numerous laggy temp_table replacement/cleanup
more temp_table replacement
misc efficiency improvements and general db code cleanup
misc path code cleanup
next week
Due to recent issues with growing network bandwidth usage, I will now overhaul how repositories and clients synchronise. There is a lot of wasted bandwidth, CPU, and HDD in this at the moment, and the database is now in a good place to receive and process the content data in a cleverer way.
This database rewrite turned out to be easier than I thought, but I really do think this will be a big job. If it does end up needing two weeks, I will say so on Tuesday the 14th.
0 notes