#and now the rewrite will be on the same shelf as it! :D
Explore tagged Tumblr posts
Text
@cestlefantome has the rewrite!!! :D
#i didn't expect them to get it!#the book's reach is small compared to others in their collection#maybe they remembered when i told them about it last year! ;)#that was before it was retitled! :o#they have it at long last! :D#smol typos and all ;)#i'm so honored!! :D#just like the beatles were when they heard themselves on the radio for the first time! ^_^#now it'll sit next to the other amazing phantom books on their shelf!#i hope they love it! ;D#i like how it's next to susan kay's phantom since that book is around the same page size! ;)#last year i looked at ebay pics of the book to see what the rewrite would look like#and now the rewrite will be on the same shelf as it! :D#that's how you know you've made it! ;D#poto rewritten#may 28th edit: they posted on their insta story that they're reading a book that they're not enjoying#the rewrite was the last new book they got so i'm worried that it's the non enjoyer! :(#i can see why since it's a little long...#but i thought they'd love eristine in it! :/#here's hoping they haven't gotten to chapters 19-25 yet aka the really good stuff! ;)
4 notes
·
View notes
Note
tell me about same time next week!!!!! ♡
Ooh this one has been left on the shelf collecting dust for a long time now (literal years lol) but I still entertain ideas of doing something with it.
It's SVU/OC, and after a chance meeting, Olivia and Elliot start meeting up once a week for dinner and (halting attempts at) conversation. Shenanigans and Challenges inevitably ensue. It has - of course - been thoroughly wrecked by canon so would need a complete rewrite if I ever go back to it properly, but it's quite fun to poke at from to time :D
5 notes
·
View notes
Text
Day 5: Roleswap/Formal
This @takaritsuweek prompt inspired me to do something I've been putting off for years: a rewrite of my fic Stalker-Senpai. So, please enjoy the first chapter :D its pretty much the same except third person now lol, we'll see how much I change in the future!
***
It was such a stupid reason to fall in love with someone.
Onodera Ritsu had been struggling to reach a high up book on a shelf, wobbling slightly on his tiptoes for a few brief moments before Saga Masamune decided to intervene, mostly just because something about watching the underclassman struggle was both sad and annoying. The older teen grabbed the book for Ritsu, handing it over with a blank expression.
Ritsu returned the simple, polite gesture with such a wide and sincere smile that Masamune's heart reached incredible speeds that he didn't know were possible. Why is he looking at me like that? Masamune wondered, shifting from one foot to the other, feeling warm from Ritsu's gaze.
Masamune swallowed hard as Ritsu took the book out of his hands and said an enthusiastic thank you, one that was way too cheerful considering all Masamune had done was reach up and grab something. The older boy couldn't help but to notice Ritsu's cheeks were a little red from what he assumed was embarrassment and Masamune suddenly wished to see that adorable expression every day.
God, what am I thinking? Adorable? He's a guy, Masamune hoped none of his thoughts were showing on his face. Apparently they weren't since Ritsu gave a quick and polite nod before scampering off. Masamune found his eyes following the underclassman and his feet almost followed as well. Almost. But Masamune somehow managed to hold on to a string of self control.
All he did was smile and say thank you, why am I acting like such an idiot? I don't even know his name, Masamune silently scolded himself. It was too late, though. Masamune was already on his way to become a hopeless, lovelorn fool.
It didn't take long for Masamune to notice that Ritsu was in the library as often as he was after their minuscule interaction. It was like Ritsu had suddenly appeared and was now here everyday. Not that Masamune was complaining; he found the underclassman's constant presence very comforting.
He reads a new book almost every day. Either he has a short attention span or a lot of time on his hands, Masamune noted. It was quite difficult to keep up with Ritsu's appetite for literature, though Masamune did his best. I want to read all the books that he reads, Masamune thought as he grabbed a novel Ritsu had recently finished. The older teen was hoping that he could use this as a way to get to know Ritsu better. Masamune was particularly ecstatic to learn from his book-stalking that his Kouhai's name was Onodera Ritsu.
The two of them always sat at different tables, but Masamune made sure to keep Ritsu in his sights. Masamune loved seeing the brunette's reactions to what he was reading. At times Masamune would hear a small chuckle leave Ritsu or see Ritsu purse his lips in thought or even see Ritsu rub at his eyes insistently to hide the fact that he was tearing up. I want to know what he's reading, Masamune would think desperately before he was able to get his hands on the book, I want to know what makes him smile and laugh, I want to be the one who makes him smile and laugh. Masamune felt positively pathetic with this train of thought, but he couldn't help himself.
Yes, it was official: Saga Masamune was in love at fifteen years old. He didn't understand how it happened so fast nor did he fully understand why, but he had enough self awareness to realize he was totally whipped for an underclassman who he hadn't even said a single word to.
That was precisely Masamune's problem; talking with people wasn't exactly his forte and he feared that he would somehow scare Ritsu off if he approached him. Not to mention, this feeling of want, this inexplicable desire to hold someone through the night and into the day, this need of seeing someone's face just to feel at ease, all of it was new to Masamune. It was scary to be so enraptured in someone. It was terrifying to know that someone else had so much power over him, power that Ritsu didn't even know he had. If Masamune confessed his feelings, he'd be freely handing that power over and Masamune didn't know if he was even capable of being vulnerable and trusting like that.
It didn't help that watching Ritsu from afar suddenly wasn't entertaining enough for the cruel deity laughing at Masamune's hopelessness. What other possible explanation was there for their paths crossing once again? He had peacefully watched Ritsu and stalked his library cards for three years, but now those days were seemingly over.
Masamune was reaching toward a book when a smaller, more delicate hand came into contact with his. Masamune looked over, his breath catching in his throat at the sight of Ritsu. Ritsu was quick to rip his hand away and met Masamune's eyes with an anxious gaze. Ritsu opened his mouth, looking like he was about to apologize for nothing.
"You can take the book, Onodera." Masamune said quickly before he could speak, not enjoying the sight of Ritsu appearing so guilty and worried. He wanted to alleviate the anxieties clear on Ritsu's face, but he seemed to only make it worse.
"How do you know my name?" Came the quiet, nervous response. The book was quickly forgotten by them both. Masamune felt like he was short-circuiting as he wracked his brain for any possible excuse or lie, but his mouth started moving without his permission.
"I love you."
What?
What?
What the hell did I just say?!
There was a pause between the two of them, the air around Masamune feeling as if it were crushing his bones.
"...eh? Eh?!" Ritsu's face flushed a beautiful shade of red, but Masamune didn't have the time to admire it because he was desperately trying to think of a way to prevent Ritsu from sprinting away.
"What I meant to say was-well-would you want to go out with me sometime?" Masamune asked, watching Ritsu's surprised, flustered expression closely. The brunette shifted uncomfortably from foot to foot, as he opened and closed his mouth, grasping at straws for a response.
"Y-Y-You know I-I'm a guy r-right?" Ritsu finally settled on after a few seconds of awkward silence.
Masamune almost wanted to laugh. Out of all the things Ritsu could've said, that was what he decided on? Masamune's lips quirked up ever so slightly in amusement as he started to find it a little easier to breathe.
"Yeah, I'm aware." Masamune replied dryly. "Does it bother you that I'm a guy?" That had been one of the reasons Masamune had been so hesitant to approach. It was possible that Ritsu wasn't even into guys and now maybe the two of them didn't even have a chance of being friends.
"I-no! Not really? I don't-" Ritsu inched closer and closer to retreating, which simply wouldn't do.
"It's alright, Just take a breath, okay? You don't have to say yes." Masamune quickly assured him, though I really, really want him to say yes, Masamune hoped it didn't show.
"I-I don't even k-know your name..." Ritsu started, seeming to try to find some sort of excuse, perhaps wanting to spare Masamune's feelings instead of outright rejecting him. However, Masamune's heart was stubborn and dead set on Ritsu. He wouldn't be dissuaded easily and not knowing his name was an easy fix.
"It's Saga. Saga Masamune."
Ritsu nodded slowly, visibly swallowing as he wrung his hands, seeming to be carefully considering his next few words.
"O-O-Okay...I-I'll go out with you...Saga Senpai..."
-
When an upperclassman grabbed a book for Ritsu and handed it over he was grateful for a few seconds, but forgot about the interaction quickly. It had been nothing particularly special after all. If there was anything he did remember from the brief conversation-if one could even call it that-it was that he felt terribly embarrassed for being too short to reach a book. And then a certain name started to pop up everywhere...
Ritsu scanned the shelves for a new read, not looking for anything in particular, just something unfamiliar and fresh. He started to reach for one when a larger hand met his and he instinctively recoiled away from the touch as if it had burned him. He looked over to see an older student that was often slinking around the library, somehow always seeming to have a certain aura of sadness around him.
"You can take the book, Onodera." He told Ritsu quickly, his expression blank and unreadable.
"How do you know my name?" Ritsu asked hesitantly, though he already knew the answer. This is my stalker. Saga Masamune, Ritsu felt nervous now that he was face to face with him. Ritsu had been ignoring the behavior for the longest time, three years in fact, but now his stalker was right in front of him.
Ritsu often liked to reread books that he particularly connected with and it didn't take long for him to realize a certain name kept appearing and reappearing underneath his own.
Saga Masamune.
Ritsu didn't know anything about this 'Saga' person. He was far too shy to ever venture out to try to talk to many people, especially an upperclassman. He was still young and fresh enough to high school to think that upperclassmen were untouchable Gods. Though, after noticing the name he also noticed that a certain upperclassman was constantly in the library: the one that had helped Ritsu grab a book. Ritsu decided he was as good as a suspect as anyone to be his stalker. It wasn't like many other students spent hours upon hours in the school's library. To confirm his suspicion, Ritsu once quietly walked up to his table when he had fallen asleep sitting up and took the opportunity to look in the back of his book. There was his name: Saga Masamune. The upperclassman shifted and Ritsu took that as his que to quickly put the book back down and retreat.
Ritsu tried to ignore it, not understanding Masamune's motives or actions and wondering if perhaps he was looking a little too much into it. That was, until the two had bumped into each other again.
"I love you." Masamune said.
Ritsu's heart punched the inside of his rib cage before beating erratically in all directions. A confession had been about the last thing he was expecting.
"...eh? Eh?!" Is all Ritsu could choke out in response with his legs feeling weak yet also prepared to sprint a mile if necessary.
"What I meant to say was-well-would you want to go out with me sometime?" Masamune asked, but Ritsu's confusion didn't cease.
"Y-Y-You know I-I'm a guy r-right?" That question sounded much dumber out loud than it did in my head, Ritsu thought as he refrained from facepalming. Masamune smirked a bit at his question and Ritsu tried not to frown, feeling like he was being made fun of and this confession had perhaps been a joke of some sort to mess with him.
"Yeah, I'm aware. Does it bother you that I'm a guy?"
Ritsu struggled to swallow as he started to shake his head. "I-no! Not really? I don't-" He wanted to hide behind the bookshelves at this point and forget this entire conversation.
"It's alright, Just take a breath, okay? You don't have to say yes."
"I-I don't even k-know your name..." Ritsu lied, wanting to somehow escape this situation.
"It's Saga. Saga Masamune." He replied smoothly. The upperclassman obviously didn't see their lack of knowledge of one another as an issue and suddenly Ritsu was out of excuses.
I should say I don't like guys, or that not interested, or that I have a girlfriend, Ritsu thought, but instead he just gulped nervously and nodded slowly.
"O-O-Okay...I-I'll go out with you...Saga Senpai..."
Why did I say that, why did I agree to this, what am I going to do now, oh God, I bet this really is just a joke and he's going to start laughing at me now, if my parents find out about this I'm completely done for-, Ritsu's panicked thoughts continued to race, but stopped once a gentle hand reached up to ruffle his hair.
And that was how the wonderful, complicated mess of their relationship started.
25 notes
·
View notes
Text
I love you, but I’m scared // Remus Lupin [Marauders Era]
「 ❁ 」PROMPT 「 ❁ 」
Y/N finds herself feeling non-platonic things for long-time best friend Remus. At risk of losing six and a half years of friendship, what can she do?
「 ❁ 」AUTHOR’S NOTE 「 ❁ 」
BET YOU THOUGHT I WAS GONNA DISAPPEAR OFF THE GLOBE FOR THE NEXT THREE MONTHS HAHAHAHA BITCH U THOUGHT, in serious news idk how I feel about this so uhhhh feedback???? also this was like 2650 words idk why I wrote so much. hope it isn't trash!!!! :D fill the inbox with some love (and some requests wink wink) and have a happy weekend!!!
It was past curfew at Hogwarts castle, the moon twinkling brightly in the sky outside, and to most students, it was time to snooze the night away. In the Gryffindor common room, all but two had vacated, retreating to their dorms for much needed relief. Y/N L/N and Remus Lupin had other priorities in mind.
Y/N was rewriting her notes for Arithmancy when she heard Remus clear his throat. He was against the other end of the sofa with his legs tucked into his chest, his Potions textbook acting as a surface for his parchment. Y/N was similarly using a journal. They’d been in the common room for hours, once surrounded by their friends before they decided to hit the sheets instead of their books. After their friends left, the two bookworms descended into silence. It’d been a while since either of them tried chatting through their overload of N.E.W.T.’s prep. Y/N peeked up, losing momentum, at his soft garble.
Remus’s eyes immediately went down to his legs when she looked over, so she looked down, too. His parchment was completely covered in perfect print with barely an inch left to write. “I need to borrow some parchment,” he said sheepishly.
Y/N’s face flushed for reasons beyond her, and she wordlessly fished around in her bag for some spare parchment. She felt less frazzled when she was able to locate a piece and hand it over to Remus.
“Thanks,” Remus said, his fingers brushing over hers without meaning to. Y/N felt sparks but she had no intention of speaking them into existence.
They didn’t speak for a time after that. Remus scribbled furiously, managing to have pretty penmanship through his rush, and Y/N took her time rewriting and slimming down her notes. They would glance at each other on occasion, sometimes connecting without meaning to (and consequentially Y/N would feel quite embarrassed), and they’d cough or sneeze or swallow or smile out of the blue. It went on. Only when the common room clock tolled at 3 did the pair acknowledge they needed rest; even if tomorrow were Sunday, neither of them enjoyed sleeping in.
Remus gave Y/N a tentative smile. “I got a lot done,” he told her, affirming what she felt for herself. Her smile back was mega-watt. Truly she felt better than she had before he’d asked her to study with him. She thought her feelings would get in the way and make her nervous being around him for so long—alone, stuffy and uncomfortably silent, all he had for company—but surprisingly the opposite happened. It was like any other time they hung out.
As friends.
“Me too,” Y/N agreed. She reached out and gave him a side hug before she could chicken out. The baffled look on his face, mixed with something she couldn’t be certain about, made her regret it—but whatever. It was 3 am and he wouldn’t remember it in the morning. I’ll remember it. “Goodnight, Remus.”
“Night, love,” Remus said sleepily, rubbing the crust from his eyes.
The two of them went up their respective staircases, looking back at the same time and waving a final farewell. Y/N felt like a little girl as she face-planted her comforter and snuggled into the pillow, briefly thinking about the pet name Remus gave her. He used it sparingly, usually when exhausted, and it seemed tonight was one of those nights.
Thinking about her best friend that way wasn’t right. He was her best friend. She met him before she met the Marauders, even before she became good friends with her dormmates. They’d been friends for so long that anything other than their routine would disrupt everything. Y/N had felt something other than platonic love for Remus since the summer of this year after he sent her a letter about his time at home. It wasn’t something small, either. She couldn’t fathom how she went from thinking it was gross when he drank pumpkin juice around her to watching his throat as he guzzled the atrocious liquid down. How—why—did she suddenly like him so much she couldn’t breathe around him? Why did things feel stilted?
Did he know?
She didn’t want to feel like this about him. He was her best friend, all their other friends were friends with each other, things were great the way they were and something new just wasn’t going to end well. Platonic love—maybe she was confusing it for the love she read about in her books. Maybe that’s all this was. Yeah.
She was overreacting.
Y/N didn’t fall asleep until it was well past what time it was when she stumbled back to her dorm, and by then the sun was coming up.
She wasn’t one to sleep in but that morning she made an unconscious exception.
-
Things may not have felt stilted when they hung out, but after they said their goodnights and went to bed, things changed. For Y/N, at least. She couldn’t be in the same room as Remus without feeling anxious beyond reason. She didn’t think she was obvious about it to their friends—maybe to the ever-observant Lily, but the Marauders had to be clueless, and Marlene and Alice were too busy talking about coursework. Remus wasn’t so oblivious. Y/N was constantly fleeing from conversations with excuses that never made much sense, and she was fumbling with what to say and how to act around him. She couldn’t ignore how her heart beat a little faster around him. Her entire body felt sweaty when he had his attention on her. She felt light, heavy, dead, and alive, at different ranges and nocks; she was sure it showed.
Of course it showed. Remus was bewildered, and honestly a little hurt, as Y/N’s nerves got the best of her. He didn’t try hiding how he felt and he didn't shy away from trying to rekindle things, completely oblivious to what he did. Y/N felt cruel and wanted to hate herself for what she was doing. Remus didn’t deserve this; he deserved a better. Their communication issues felt like years-old radio silence when really the days of Y/N’s strange behavior were slow like a boat against the tide.
Their friendship had never been out there. They weren’t like James and Sirius were with each other, even from the beginning, so tiptoeing around each other and being quiet was just a part of them. They were introverted at heart. Remus always preferred being alone with Y/N so they could engage and relax without their loud and rowdy friends joining, Y/N reciprocating his energy wholeheartedly. But somehow along the way of discovering her feelings, Y/N found herself feeling afraid. That fear translated to isolation, her flee instinct on a victory roll as it repeatedly conquered “fight.” The tiptoeing became profuse excuses, blatant footsteps, Y/N on a never-ending treadmill that just kept getting faster.
She didn’t want to admit to anything, especially if it meant losing Remus. Yet her heart also hated being away from him, hated doing things with anyone besides Remus, hated running away when all she wanted to do was have his company. Why was she so pathetic?
Her friends were obviously more observant than she thought, and they weren’t shying from asking questions, and eventually Y/N started running from them too.
She didn’t know how to get what she wanted without breaking her heart along the way.
She hid and she ran and she avoided. A cycle that inevitably caught up with her.
Sirius, the friend closest to her aside from Remus, met her during first-year Potions and hadn’t stopped pestering her since. He wasn’t the most sensitive bloke and feelings weren’t a subject matter you went to him with. If you needed him to threaten or prank a bully, fine. If you wanted a dueling partner for the big Defense Against the Dark Arts practical, sold. If you were being obvious about running away from his best friend… feelings were probably involved, so he knew he wasn’t the right man for the job, but he’d have something to say regardless. He always knew what to do, even if it would backfire tremendously.
Y/N was in her usual library nook reading an old fairy tale book, having been there for two and a half hours after Remus tried asking her to study with him, and she was just getting to the good part when—
Sirius popped his shaggy head around a bookcase, a loud, “Hullo,” echoing in the corner, scaring Y/N so badly that her book went flying feet away.
He merely glanced at the book (probably trying to see the title) before his entire body appeared from around the shelf. “Ah, so here’s where you’ve been running off to, aye?” He raised his eyebrows in a “Huh?” gesture. “Remus said you might be here.”
Y/N winced, remembering that Remus knew all about her favorite spots around the castle. He must have seriously thought she had something against him if he was abiding her avoidance by doing some of his own.
“I’m reading,” Y/N said weakly, grimacing when Sirius picked up her book and flipped through the pages. “Wasreading.”
“You’ve been avoiding Remus for three days,” Sirius said pointedly, tossing her the book. Beauty and the Beast. How fitting. “He’s right glum about it. Bet he’s half mad wondering what he did to make you cross with him, too. So what was it?”
Y/N felt like a fool thinking she was being subtle with anyone. if she didn’t catch it from her friends’ interrogations, she caught onto their suspicions now. Sirius wasn’t an idiot; Remus wasn’t either. Y/N’s actions weren’t normal, contrary to what her inner reassurances told her over the past 72 hours.
“He didn’t do anything,” she told Sirius, hoping she sounded believable. Sirius looked like he wanted more: a confessionmost likely. “I… just feel weird around him.”
Sirius smirked. “Ah, I see,” he said. Judging by his growing amusement, he’d immediately figured her out and was just taking his sweet time reveling in it. “Love, pesky little bugger, isn’t it?”
“W—love?” Y/N shook her head frantically. “No, that’s not it. I just—”
“You’re avoiding your best mate because things feel ‘weird,’” Sirius pointed out. “You already know about his furry little problem so that’s ruled out. What else makes being around a best mate weird? Maybe fancying him?”
“Believe what you want,” Y/N said tiredly. Her brain chanted at her, Accept it! Accept it! Accept it! but she didn’t want to accept it. Not even deny it, honestly. She thought avoiding him would avoid ruining their friendship, and she knew eventually if she let herself get convinced there weren’t real feelings involved, things could go back to normal. It was all a matter of time and patience. Sirius was not adhering to her internal plans… not that she wanted him to know anything about what went on in her head. He’d just take advantage of it.
Sirius stared at her, not buying the act, before turning around. “Aye, Moony, come over here.”
Seconds passed and the color drained from Y/N’s face.
“Don’t worry, he didn’t hear us,” Sirius said with a grin, eye dropping down into a wink that drove most of Hogwarts wild, “but you guys are about to talk. Good luck, mate.”
He disappeared around the corner and Y/N strained her ears trying to hear the end of what murmured conversation went on between Remus and Sirius when they met. Sirius’s loud footsteps echoed in her corner as he left, replaced by Remus’s nervous face peering around the bookcase.
“Hi,” Y/N said nervously, wanting to bury her face into her sleeves. She couldn’t do that without looking like a child so she just ran her hands over her copy of Beauty and the Beastand hoped (prayed, more like) for the best.
Remus walked deeper into the corner. “Hi,” he returned.
They stared at each other without erupting into quiet conversation as they usually did when alone, and Y/N felt like screaming knowing she’d caused the rift. If she was honest—and she bloody well had to be, knowing that she’d done what she had to Remus’s feelings—she’d put her feelings over his and prioritized her own discomfort. She ran because she didn’t like how she was thinking or feeling. Remus didn’t even get a chance to coast along; he was left in dirt, befuddled and bereaved.
“I’m sorry,” Y/N choked out.
“I’m sorry, too,” Remus immediately said, his head of chestnut hair falling so that his scalp was visible to Y/N but his face wasn’t. His voice was shaking, like he was fighting a battle with his own nerves—and losing. “I don’t know what I did to hurt you, but I’m sorry. If my… if my problem’s what’s bothering you, I promise I won’t bother you anymore. I just thought—”
“Remus,” Y/N said, realizing what he thought. Realizing she was the biggest fucking idiot—biggest fucking jerk—in the universe. He thought she was avoiding him because he was a werewolf. That was the furthest thing from her mind, but how could she put that into words? She was shaking from all the things she should say, could say, didn’t say, and all she mustered was his name, coming out like a sob. “That’s not…”
“It’s okay,” Remus said with a barely controlled breech in composure. His eyes betrayed him, signaling to Y/N that he felt disgusted with himself and he was in pain. Because of me. Y/N wanted to stand up and hug him. She knew she needed to reassure him that he was so wrong, that she would never turn her back on him because of something out of his control, but the pit of self-loathing in her stomach was making words escape her. “I know I’m a monster… You don’t have to apologize. I deserve it—”
“Remus, goddammit,” Y/N said. She began to feel angry about how he was talking about himself.
Remus continued on, his face turning wet with tears; “I know that what I am is always going to be a part of me, I don’t expect anyone to accept it. I don’t accept myself. How can I expect anyone else to? You were kind enough to even give me what you have—"
“I love you!” Y/N burst out, louder than she’d ever talked, unwilling to listen anymore. She knew everyone in the library probably heard her but she didn’t care. Her attention was all for Remus, her mind exploding with persistent reasons why she should flee again—but she was tired of running. And she was tired of hurting Remus in the process. She was tired of him thinking she ran from him because of that, something he could never have helped. “I love you, Remus, but I’m scared. Not scared of you. Not scared of your problem. Hell, I don’t even care about that! Okay? I’m scared of ruining everything we have. We’ve been friends since bloody first year! That’s a long time! Sirius is like a brother, and James and Peter are some of my best mates that you’ve given me. If I—if I love you like this, it’s broken. It’s fucking ruined, innit? Things would never be the same and I, I’d rather break my heart a thousand times than walk over yours.”
“Y/N…” Remus stared at her, mouth agape. If there was a word for his expression, he was confounded.
“I’m sorry,” she whispered in return. And she was, so bloody sorry she could build a mountain out of her apologies. “
“Don—don’t be sorry,” Remus said, more assertive, turning his head every which way like he had a fever he couldn’t shake. “Y/N… I love you, too. You know that, right? I thought… How could you love someone who’s a monster?”
“Remus, shut the bloody hell up. You’renot a monster. You’re kind and selfless and brave and smart, and if anyone doesn’t deserve someone, it’s me. I don’t deserve you, Remus. But I love you more than I’ve loved anyone in my life and it’s unimaginable what I’d do for you. You give me butterflies but you also make me more scared than I was during O.W.L’s week. You’re just—perfect, Remus. Bloody perfect. And I’m sorry for running but know it was never because of you—it’s because I was afraid to lose you.”
“You won’t ever lose me, Y/N,” Remus said with tears. Y/N had gotten up from her chair, book falling off her lap, and she was there to wipe them away. She held his head in her hands, staring at him like he was her whole bloody world. She hoped he saw it. “I… you’re my best friend. And you’re the love of my life. I’ve been afraid, too, but maybe we can have both without losing either.”
“If anyone can make that happen, it’s us,” Y/N said, laughing through her tears.
Remus was not a monster and at the end of the day Y/N wasn’t either.
But hurting the people you loved was something a monster did, does. So what did that make Y/N?
#remus lupin x reader#remus lupin imagine#remus lupin oneshot#remus lupin fanfiction#remus lupin#remuslupin#remus#lupin#young! remus#sirius black#marauders era#marauders imagine#unfortunatelysirius#hogwarts#harry potter#Harry Potter x reader#gryffindor#slytherin#hufflepuff#ravenclaw
812 notes
·
View notes
Text
Part Four: Top Of The Food Chain. (Dog Dean Afternoon S09E05)
Episode Summary: While investigating two bizarre murders, Y/N and the boys realize there is an eyewitness to both gruesome deaths–a German Shepard. Anxious to find out what monsters they are dealing with, the three look up a spell that can help communicate with the dog. When Dean decides to be the one to perform the spell, he quickly realizes it comes with side effects no one saw coming. Pairing: Dean Winchester x Reader Word Count: 3,629.
Previous Part | Supernatural Rewrite Masterlist
It’s sort of funny how things seem to work out on their own. Chef Leo presumed you and the other man who discovered you only moments later were the only ones here. It took almost no effort at all to drag you both back into the kitchen. You laid on the floor and your friend tied up somewhere in the corner where Leo could keep an eye on him whenever he decided to come back into consciousness. He decided to dispose of the man later. Right now all he cared about was carving you open like a Thanksgiving turkey.
Years of culinary training and working in the restaurant industry taught Leo how to get creative when it came to cooking unusual animal organs. Most of them weren't half bad if he was being honest with himself. Where the trouble came up was trying to find them. What Leo couldn't get in the local shelter or in the scraps of the taxidermist was bought on another source. The internet was a marvelous place to find even the rarest of animal organs he couldn't locally source. However what Leo was about to do was a step he thought he would never take after discovering what he did. Desperate times call for desperate measures.
Human flesh wasn't something a sane individual thought about taking a bite of. The thought of it alone should be revolting. But there was a slight morbid curiosity as to what it really tasted like. He heard a few reports from cannibals over the years of what long pig tasted like to them. Every answer was different. Some thought it was similar to beef, others claimed it was exactly like pork. More suggested it was tough and close to veal. Leo was about to find out for himself when he carved your heart out of your chest. Whatever it was going to be, he could get past the taste if it meant he was able to possess the abilities you were capable of. Healing powers? It could solve his problems and more. He could live on. Maybe he could become immortal.
A shift in the smell caused Leo to momentarily stop sharpening his knife and pause. He sniffed a few times only to grimace at the unpleasant stench. "Why does it smell like dog in here?" He asked himself. Turning around, he found the source in another stranger trying to disrupt his plans and yet another loaded gun pointed in his direction. "That smell's coming from you."
Dean pulled the trigger without thinking twice about it when he had the man in his range, but not taking into conversation what Chef Leo had taken prior. Cheetahs were the fastest animals in the world. The liver he ate was enough to give him the momentum to lean out of fire and grab a meat cleaver that was near him. All though his aim was off, it was enough of a startling distraction for Leo to get the upper hand when Dean was momentarily caught off guard. The gun Dean was holding only seconds ago was knocked out of his hand as he found himself stumbling to his knees after Leo was able to punch him. The man was moving faster than the hunter was able to keep up with.
Leo grabbed a cord he found lying around and grabbed it. He quickly placed it around Dean's neck and pinned him against the pillar, momentarily cutting off his air supply. “All dogs should be leashed.” He mocked the hunter.
Dean struggled to overpower Leo when he took the cord off his neck and used it to lie his hands behind his back. The older Winchester was able to see his brother had landed himself in the same predicament. But a sense of panic washed over him when he saw that you were across the kitchen lying on your backside and not moving a single inch. For a moment he thought you might already be dead. He could smell the blood in the air, making him fear the worst.
“What did you do to them?” Dean questioned the man. “What did you do to my brother?
"Your brother? Huh. There's nothing special about him that I could tell, at least. But your friend? I gotta ask, what were your parents smoking when they had you?" Leo asked the man, cracking a smile when Dean answered with a deathly glare. "They're fine. They're just taking a little cat nap before dinner. I've never had human heart before. Heard it's a bit chewy. Good job I'm not a fussy eater."
Dean found something off about the man when we got close enough to him, a smell lingered off that didn't seem right. While Leo got back up to his feet and to sharpen his knife again, the older WInchester told the man about something he might not have known yet. "You're sick."
Leo chuckled to himself at the observation, “Been told that once or twice.”
"No, no. Not in the head. Well, you are that, too." Dean agreed with that part, considering the steps Leo had done in order to gather his unusual ingredients. "But I mean sick like cancer."
"Well, I guess dogs really can sniff it out." Leo muttered to himself. He set down the knife back to the counter and turned around to face the man once more, knowing it was useless to hide his secret from the one person who could simply smell it on him. "Stage four carcinoma."
"Huh. So that's what you're doing." Dean said. He watched as Leo walked over to a shelf and began inspecting ingredients that might pair well with a human heart. It didn't stop the hunter from pressuring further into the reason behind why the drastic desire to feast on animal organs for their abilities. "What happened? Draw the short straw, decide to break bad?"
"See, when I was diagnosed, I was way past standard treatment. No one could save me." Leo told the story about his discoveries you stumbled upon earlier tonight and the trick to beating cancer, even for a short time. Dean used the opportunity to try and cut through the wires by rubbing them up and down the corner of the wall as Leo continued to stand with his backside to the man. "But then with the help of a Pawnee shaman and a zoo membership, I found a cure, albeit a temporary one. Cancer always comes back."
"You start experimenting with different organs, huh?" Dean took a wild guess at how all of this played out and ended with him here. "Traded in the single serving for a combo platter."
"Well, what can I say? Combination therapy works." Leo said. "I felt stronger, and the effects lasted longer."
"And if you smoke a few innocent people in the process, well, hell, at least you felt better." Dean pretended to agree with the man about his selfish decisions that cost the lives of two people.
"Well, I didn't mean to kill anyone—at first. But if people got in my way, they became collateral damage." Leo tried to sound innocent, until his own narcissism crept through into his tone at the power he held over others. He’d been too blinded by his own selfishness to stay alive; he dismissed the consequences that might be inflicted on others to get what he wanted. And in that newley large head of his, all of it was perfectly fine at the end of it all if it meant he got what he wanted. "Guess you eat enough predators, you start to become one. You are what you eat, right?”
Leo chuckled to himself at the corny joke and went back to prepping the ingredients. Dean worked faster to try and cut himself free before something bad happened. He continued talking, trying to distract the man so he could make his escape. "And you really think the power you hold over people's lives can make up for what you lack in your own?"
Dean always had a knack for getting under people's skin by saying things exactly what they didn't want to hear. Leo was a selfish bastard who did anything to keep himself alive. The man dropped the knife he was using to the cutting board and turned around to face the hunter. A sour look crossed the chef's face, the kind Dean was all too familiar with. "So, dog boy, what do I need to eat to take you down, huh?"
Leo headed over to his personal stash of animal organs he kept conveniently in a cooler. He crouched down and began searching for the perfect ingredients to end the man’s life. "You don't want to do this." Dean warned him.
“Oh, but I do want to do this. See, I’m gonna kill you and your brother, work up a nice appetite, and then I’m gonna eat your friend.” Leo said. He laughed quietly to himself when he saw Dean quickly look over at his brother and to you. “I mean, I don’t know what the hell she is, but with healing powers like that, who cares? He could cure me.” Leo examined a few more containers before finding the one that felt perfect. The label on the clear container read wolf heart. “Dog on sort-of dog.”
Dean worked even faster when the man took out the wolf’s heart and began the familiar chant to the spell. He managed to cut through the cord in record time and jumped back up to his feet, grabbing the cleaver that was thrown at him earlier. Dean attempted to attack the man when he was distracted, but Leo managed to dodge, causing the hunter to drop the knife to the ground. Dean roughly shoved the other man to the ground, sparing him a few seconds as he quickly looked around to see if he might be able to find another weapon. Only when he looked to the chef he realized the spell had worked quickly when the man bared sharp canine teeth.
Dean didn’t waste a second bolting out of the kitchen and through the hall, trying to distance himself from the psychopath before he could get himself or anyone else hurt. He found himself back outside with seconds to figure out how to take Leo down for good. A thought crossed his mind when the back door swung open.
“Sorry.” Leo taunted the man. “Wolf trumps dog.”
“Maybe.” Dean said. “But not a whole pack.”
The good karma Dean had given to the dogs at the shetler was about to be returned in full. He whistled loud enough for the Colonel to come running only seconds later, along with all the others he freed earlier. When Leo realized the mutts were coming towards his direction, a panic set through him as he tried to find an escape. He tried to open the back door in which he came out with no success. The man was cornered with nowhere to go except to suffer the fate of his consequences. Dean watched on for a moment as the man was ripped apart by the mutts, his screams of pain fell on deaf ears. And when he knew for sure all of this was taken care of, Dean rushed back inside the restaurant, wanting to make sure you and his brother were all right.
Dean tried not to panic when he saw the copious amount of dried blood on your neck and clothing with not a single scratch on your body. He crouched down to your level and tried to get you to wake up when he felt a pulse. You remained unconscious even when he cradled your head into his hands and moved you around slightly.
“For the love of God, Y/N. Hey, sweetheart.” Dean could hear his voice tremor when you didn’t even flinch. He tried to somehow reach the angel that was quietly possessing your body, but all he got was nothing. You remained as you were. Dean began to softly slap your cheek to try and get you to come back around. “Hey. Come on.” He almost begged for you to snap out of it, not stopping until you opened your eyes. “Don’t make me lick your damn face.”
Dean started shaking your entire body in a desperate attempt until he finally heard the sweet sound of you gasping for breath. You slowly opened your eyes as you started coming back into consciousness. A blurry sight of a worried Dean was the first thing you were greeted with. In true fashion, you weren’t sure what was going on, but the question that fell out of your mouth was about the well being of Sam when you didn’t see him. Dean couldn’t help the smile that crept on his lips as he helped you up from the ground and the both of you tended to his brother.
+ + +
You always wanted to have a dog growing up. You even thought about getting one when you lived on your own, it might have made the loneliness a little easier. If the Colonel had somehow landed in your lap years ago before you started hunting you would have jumped on the chance to give him a good home. Dean's ability to read his mind had given him extra points for the attachment you had grown on him. But with the lifestyle you lead it would have been impossible. And you couldn't bear the thought of bringing him back to the pound. So, you thought of the next best thing. A couple of hippies who probably loved animals more than themselves.
“When you called us about adopting him, we couldn’t believe it.” Dylan made no effort to hide the smile on his face at the German Shepherd who was currently being overwhelmed with love from his wife, Olivia.
“Aren’t you the sweetest?” She cooed at the dog.
“Ugh.” The Colonel grimaced as he tried to turn his head away from the lady. Dean chuckled to himself at the thoughts only he could hear. “Back off, tofu-breath.”
“Oh, you must be starving.” Olivia said. “Lucky for you, I baked some vegan doggy cupcakes.”
She jumped to her feet and went with her husband to the back of the kitchen to fetch those treats. You smiled to yourself at how happy they seemed. You looked down in the direction of the Colonel when you decided it was time for you and Dean to say your final goodbyes. All though you might not have been able to speak a single word to the mutt, there was a soft spot in your heart for him. It was those damn puppy dog eyes that won you over.
“I’m gonna be pooping wheatgrass with these two.” The Colonel said.
“Look, I know they’re hippie freaks, but they’re gonna give you a good home—one that you deserve.” Dean reassured the dog about the future for him. He crouched down so he was at level with him to have one more proper conversation. In a way Dean felt bad himself for not being able to adopt the Colonel from the way you had grown attached to him. He would be lying if he said the mutt didn’t grow on him, too. “Wish we could take you on the road with us, but it’s no life for a dog.”
“Don’t sweat it. I get carsick anyway.” The Colonel responded. He would grow comfortable in his new home with time. You crouched down to the ground with Dean to say your final goodbyes to the dog as well. Before you could even get a word out, you were bombarded with dog kisses that were slobbery and wet. You let out a genuine laugh at how much the Colonel's licks tickled your skin. "I'm gonna miss her the most. No offense, buddy.”
“None taken.” Dean said. He watched for a moment as you seemed happy in that moment, the smile on your face was enough for him to feel some sort of peace he hadn't felt in weeks. Even if in the back of his mind it would eventually fade once all of you hit the road.
“I should probably mention this, but I barfed in your backseat.” The Colonel felt the need to slip in some last minute information as you momentarily distracted Dean from the way you were coddling the dog as if he were a small child. “I was afraid to tell you earlier.”
“You…” Dean’s first reaction was to get angry at hearing the surprise that was waiting for him.
“Come on.” The Colonel managed to speak first when Dean trailed off. He felt the need to remind him of the bonding moment you were having. “Don’t ruin the moment.”
Dean brushed it off with a chuckle. “I’m gonna miss you, buddy.”
“I’ll miss you, too.” The Colonel offered his paw for Dean to shake as their final farewell. Along with one more thing. “And by the way, as an honorary dog, there’s something you should know. Dogs aren’t really man’s best friend.”
“What are you talking about?” Dean asked.
“I know it sounds like a conspiracy theory, but the real reason we were put here was to…” The Colonel was about to give the man a piece of information that would change his life forever, but all that Dean heard next was a series of barks. None of which he understood.
“Put here to do what?” Dean asked the dog, suddenly needing to find out the answer. All the Colonel could do was bark in some kind of attempt to communicate with him. But it fell on your untrained ears. “Oh, you gotta be kidding me. Oh, now the spell wears off?!”
Dean let out a frustrated sigh at how things seemed to always work out. Part of him was glad that things would finally get back to normal, but there would always be another part that wondered what kind of information he would never know. Both of you said your final farewells to the Colonel before heading out to the parked Impala where Sam had been waiting for you.
“How’d it go?” Sam asked.
“Well, bad news is that I’m gonna miss the flea bag. Good news is it looks like the spell is finally wearing off.” Dean informed his brother, catching him up to speed with what the both of you knew. You faintly listened to the conversation as you crossed your arms over your chest and glanced back over to the bakery. A look crossed your face that worried Dean. “You okay? The stetson man got you pretty good.”
“What? Yeah, I’m fine. I just…I can’t stop thinking about what he said.” You chuckled to yourself at strange words you remembered him speaking to you before everything went black. You had told the boys when everything settled down. They had brushed it off as nothing, but for some reason you were still thinking about it. The entire situation didn’t make sense.
“Oh, come on, sweetheart.” Dean said. “Guy was out of his freaking gourd.”
“Yeah, but, I mean, why would he ask that?” You asked the boys, as if they had some sort of explanation to Leo’s strange behavior. “Why did he want to know what I was?”
“Who the hell knows? He was all jacked up on juice, you know? He was possessed by something he couldn’t control. It was…It was just a matter of time before it completely took over.” Dean tried to find an explanation that would put this conversation to bed once and for all. You didn’t seem all that convinced from the way you kept staring at him. “You can’t reason with crazy, right?”
You let out a faint sigh. “I don’t know.”
“Well, I do.” Dean said in a matter-of-fact voice. “Trust me, Y/N. You got nothing to worry about.”
At the moment all you could do was take Dean's words at face value. You knew in the back of your mind that he was right. You were ordinary as the next person on the street. But you found yourself wondering one particular thing. How did you get covered in blood? Sam was perfectly fine without a scratch, and so was Dean. All of you were okay. Your fingers subconsciously scratched the side of your neck, the same spot you swore you remembered feeling claws dig into the skin and rip open. All that remained was smoothness, not a single scar. Maybe your head was still scrambled from the trials. That was the only thing that made sense to you.
You loaded yourself up into the backseat of the Impala as the boys took their respectful spots like always. A comfortable routine that helped somewhat put your mind at ease. While Dean turned on the car and got ready to drive off, you found yourself smelling something that was slightly off. You sniffed the air a few more times as you grimaced at the foul smell that was almost coming out of nowhere.
“What’s that smell?” You asked. “It smells like…”
“Vomit?” Dean wondered. You nodded your head as you tried to find the source in the darkness of the night as he kept on driving. “The Colonel got sick. Watch your step.”
"Oh, God. Ew." You grumbled to yourself. You quickly rolled down the window to let the fresh breeze of the night clear some of the foul smell and help ease your mind. You let out a quiet sigh as you turned your head to watch as the bakery got smaller in the distance. If one positive thing came from this case, it was knowing you had placed a dog in a safe home. "Good thing that mutt is cute."
[Next Part]
Rewrite Taglist:
@deansquirreljerkwinchester // @everything-i-tried-was-taken // @starswirlblitz // @supernaturalismydrug // @we-are-band-sexuals // @angiewinchestercas // @kaylinfayezink // @owhatshername1 // @kgbrenner // @cleo-is-my-doggy // @eeyore1988 // @dakota-dream // @lilylovelyxo // @timetravelingginger // @holahellohialoha // @quicksilver123456 // @natashacamillas //@lexi-anastasia //@kaylinfayezink // @deanwnchstr @albot-eh // @rashinyx2002 // @shellybeans // @icantfindacreativeurl // @becs-bunker // @oreosatmidnight // @bands-and-shietz // @fabulousmustachesonapolarbear // @clarewinchester // @releasethekracko // @alex-zeppelin // @mega-mrs-dean-winchester // @theskytraveler // @notmoose94 //@assassinofmasyaf // @caswinchester2000 // @savannah-m-99 // @sunlight-dean // @strayrosesbloom // @that-slytherin-over-there // @1000roughdrafts // @its-medeanwinchester // @simplyhemmings // @dream-believe-and-love
Message me if you would like to be added!
#huntertales update#supernatural#reader insert#supernatural imagine#supernatural fanfic#supernatural reader insert#supernatural x reader#spn#spn imagine#spn fanfic#spn reader insert#spn x reader#dean winchester imagine#dean winchester x reader#dean x reader#sam winchester imagine#sam winchester x reader#sam x reader#dog dean afternoon#dog dean afternoon: part four#(y/n)
31 notes
·
View notes
Note
I hope I’m not the only one still wondering about the “cosmic” consequences of Cas killing Billie?? Was it cas' death?? Mary’s death?? Both?? Something to do with jack?? They’ve obviously all had all manor of “cosmic” bs happen to them since that night, but I figured the consequences billie warned them about would be a little bit more.... clearly linked?
I think it was everything… but especially Billie becoming Death.
That’s the thing with “cosmic” events, that Supernatural itself has hung a lampshade on. There isn’t necessarily a straight line between cause and effect. No “oh no this terrible consequence is clearly a directly linked result of that cause.”
Remember what Billie’s deal had been? back before she’d had the power of Death to back her up and unbind her hands a bit? When she was “just a regular old reaper” who was constrained by that role to perform her function? One Winchester dead. That’s what had to happen. But Cas, the wild card, had stepped in and said NO. And Billie died BUT she was brought back with far more power AND insight into the bigger picture of the universe. And far more ability to manipulate events in her own right.
I’ve been writing about Death in Supernatural for years. Death is the ultimate game-changer going all the way back to s5. Death was the one horseman they didn’t have to “kill.” He handed Dean his ring and explained how to use them. He brought back Sam’s soul from the cage after teaching Dean his first real lesson on Cosmic Consequences (6.11). The results of his actions may not have had a clear, direct line back to his action, but we saw a simplified version of those events in that episode.
It’s also interesting to me that in retrospect now, that’s also what Death demanded of the Winchesters in 10.23… one must die. Dean rejected that and killed Death instead, making way for Billie to rise to the mantle in Dabb era.
Interesting, yes?
Her very first appearance in 11.02, she employs the threat of the Empty, making it out to be a terrible place of nothingness, but that’s not what we’ve seen there since… in 13.04 it was horrible thinking of Cas there, sleeping forever, how is that really different from Heaven? Souls locked in their little cubby reliving the past for eternity, in what’s been likened to a dream since the first time we got a glimpse of Heaven (in 5.16, thanks Dabb!). The only difference is the Empty lacks the bureaucracy of Heaven and the fancy hallways, oh, and Chuck has no power there.
(no, I don’t think Chuck actually resurrected Lilith from the Empty in 15.05. We just got a good look at his “writing process” there.)
But the show has subtly tried to tell us how cosmic consequences work, for a really long time. All actions have consequences, you know? Sometimes small things, sometimes world-altering things. We might not always know which are which.
For example, in 13.05, what was Billie really saying here:
Billie: Since I got this… new job, I stand witness to a much larger picture. Do you know what I see? You. And your brother. You’re important.Dean: Why?Billie: You have work to do. That’s all you need to know. And trust me, having my eyes opened to the necessity of any humans, especially Winchesters, is not a thrill. So… you wanna die, but I say… keep living.
What’s this “much larger picture” she’s seeing? Back when we first met her, she had a job that was clear-cut and had simple rules. What dies stays dead, and all that, and the Winchesters were meddlers, an affront to the natural order, in her eyes. But now that *we* know the extent of the larger picture, that takes on a whole new weight.
That episode also introduced the concept of her books of fates, recording everyone’s eventual death. We know those fates can be rewritten, the books can change but also that some people have more than one book to start with.
WHY?!
It’s never explained to us, but it begs us to ask more questions. Who is writing these books? Who is changing these stories of people’s lives? I think that’s what Billie bore witness to– the depth of Chuck’s meddling in creation. The story became the story. And despite her not having the power to really do anything directly to stop that meddling, she finally understood the power of the Winchesters (meaning all of them, including Cas, and including Jack). I think she realized the game at play, and began outlining her own plot and doing what Death has always done with his knowledge and power.
Back during original Death’s tenure, he interfered just enough to nudge the story into an attempt at stability (teaching Dean about the consequences of his actions, about the power of human souls, helping to realign and maintain the balance of the natural order). But Billie… Chuck can’t stand her because she is a meddler, he said. She’s playing a bigger game, and it’s taken her this long to gently nudge the pieces around the board to where we are now– ready to face down Chuck directly and get his grubby hands off creation once and for all. It’s hard to do all that within the rules (i.e. the cosmic limitations of Death’s power). She’s still bound by Chuck’s ever-shifting rules, and revealing her hand too soon would’ve tipped Chuck off. So instead, she’s apparently been working WITH the Shadow entity in the Empty, and finally succeeded at getting ALL of Jack there for the conference Chuck couldn’t overhear.
(y’all have NO IDEA how curious I am about their talk…)
I think the clearest example we have of direct cosmic consequences came from Jessica the Reaper in 13.19 (with apologies for the huge block quote):
Jessica: Rowena’s changing people’s fates. She’s killing them before their time and when a reaper shows…Sam: She torches them too.Jessica: Yes.Dean: Why?Jessica: You’ll have to ask her when you stop her because if she keeps this up she is going to throw off fate. The whole greater machinery of death.Sam: That means?Jessica: Have you ever heard of the butterfly effect?Dean Ashton’s second best movie!Sam {looks at Dean, incredulous}: Yeah, of course… one small mistake can cause all kinds of bad. What about it?Jessica: If just one person dies before their time a lot of things that were supposed to happen…don’t. The ripple effect from just one early death can affect hundreds of lives and changing their fates changes even more fates until things just become sincerely unfortunate and we have to hit the reset button.Sam: What does that mean?Jessica: Usually? A mass kill off, like the Black Plague or a mid sized war… Something to wipe the board clean. So… your help in avoiding that would be greatly appreciated by everyone.Dean: If it’s so bad, why don’t you stop her?Jessica: You’ve met Billie, right? She’s got rules. Clean hands… no interference… no direct interference, anyway. We can’t stop her, but you can. {she looks directly at Sam}Sam: What… Me?Jessica: Death keeps notebooks of all the ways a person might die depending on their choices. Dean’s seen his.Dean: I gotta whole shelf.Jessica: But in Rowena McLeod’s notebook her death is always the same. She’s killed Sam Winchester… By you!
These “ripple effects” from things outside the natural order affecting the bigger picture? Gosh in retrospect don’t they sound like the sort of plotting Chuck has been arranging this entire time? I mean, taking this result of cosmic consequences into account, is it any wonder why Chuck’s endings so closely resemble Jessica’s description of “hitting the reset button?” A mass kill off, or like, you know, an apocalypse?
I’m… side-eyeing EVERYTHING Chuck has ever done to manipulate the story, to manipulate the universe into setting up his story, and the imbalances that have resulted. Once upon a time, Billie had blamed all of that on the Winchesters, but I think now she sees it’s been Chuck all along. And she’s a real stickler for the rules, even when it’s Chuck breaking the rules or making the rules, rewriting creation in real time to force his own story onto it instead of letting it happen on its own. Billie… is not a fan. :’D
(one last aside here to point out that Dean’s got a whole shelf of books, but Rowena is implied to only have the one… one that never changes… but this was before she actively decided to try and change her own fate… I wonder if her book changed with that choice… or if there might be another book now…)
#COSMIC! CONSEQUENCES!#spn 12.09#spn 13.05#spn 13.19#billie the reaper#spn cosmology#chuck's process#Anonymous#spn 6.11#spn 7.01#spn 13.04#11.02#spn 5.16#spn 15.05
25 notes
·
View notes
Text
2019 Results
Art:
Make art consistently enough for an art roundup at the end of 2019 lol no this didn’t happen At All
Sketch more. Be sloppy and free! It doesn’t matter!! Sorta did this?? Partial credit.
Stretch Goal: try and do one piece a month that’s more complex LOL NO
Writing:
TRC Big Bang. Focus on that until it’s done. 40k posted on time :)
Finish at least two of those small TRC fics floating around the WIP folder nope nope definitely failed here.
Keep plugging away at the rewrite. Remember that it’s not the focus at the beginning of this year so it won’t be done in 2019 and that’s Okay. 90% outlined and organized into loose chapters! Plus I wrote a fair bit too :D
Try and do character/plot dumps of some original stuff. Maybe even proper outlines. YEH poked at some original stuff - definitely not to the outline portion of writing, but the brainstorming and info dumping was there
Keep track of dates for a writing roundup at the end of 2019 More or less! Writing roundup is going up soon!
Reading:
Finish 30 books I read 50 fuck yeah
At least 5 need to be books that have been on the to-read shelf for 2 years gonna be honest - i completely forgot about this. I think I read 2 or 3 stagnant books woopsies
Overall, this year kinda sucked! Work got so toxic and terrible that it’s impossible to describe without a novel, and it sent my mental health spiraling for a solid 7 months. It was hard to focus on anything, and almost impossible to get up any creative energy which...shows. But! I’m happy with how much I managed to achieve despite all that, and I’ve got a new job and am on an upward swing toward normalcy, so hopefully next year will be satisfyingly creative/productive :)
Art was definitely not a focus this year - I bought a sketchbook and some markers and I definitely Want to use them, I just never seemed to have the energy. Same thing with my digital art - I started a bunch of sketches/projects, but never really finished anything. I do hope to experiment more with traditional mediums next year, and I wanna finish and post some of my digital projects!! Also. Stickers. Wanna maaaaaaake.
Writing more or less happened! I definitely didn’t get as far into WtA as I wanted to, but I have been poking at it pretty consistently, which I’m counting as a positive. And I did some major organizational work on the trc rewrite, which I’m very happy with! Plus I got inspiration for a few original stories, and while I’m not ready to actively work on them, just brainstorming and keeping them on the back-burner in my mind is more than enough for now.
Reading went very well, mostly because I got into graphic novels/comics this year. They were there for me when big books of words were too much for me to digest. I read a good deal of books, too, although I really need to focus on whittling down my to-read shelf lol. Also cdth came out and was way better than I’d dared to hope, which helped reinvigorate some trc writing energy recently :)
On to 2020!
2 notes
·
View notes
Text
11/11/11 Tag Game (Triple Threat)
I was tagged by @bookenders @timetravelingpigeon and @oradall! Thank you!
Questions
What animal would be your familiar?
You can bring any one extinct species back, with the guarantee that it won’t become extinct again. Which animal do you bring back?
Top three favorite animals?
What’s your favorite road trip snack?
What’s one place you never want to visit?
If you had to live in the world of (one of) your WIP(s), how screwed would you be?
What’s the worst name for a character you’ve ever had?
What’s something your 8-year-old self would love about you?
What’s the stupidest thing your OC(s) has ever done?
How important is family to your OC(s)? To you?
What’s the song you want playing in the background every time you walk into a room?
Tagging: @rainy-rose @rrrawrf-writes @aslanwrites @tenacious-scripturient @waterfallwritings @quilloftheclouds @blueinkblot @lilquill @kobalt-ink and anyone else who feels like it!
My 33 answers below!
1. What baseball positions would your OCs be in if they all had to be on a baseball team? What’s the team name? What’s their mascot? What do the uniforms look like? (If you hate baseball or prefer a different sport, substitute said sport for baseball.)
Well, considering Park is literally on a baseball team, I think I’ll answer this one for him. He’s a pitcher for the North Carolina Sabretooth Cats, and if you can’t tell their mascot from that, then I don’t know what to tell you. Their uniform colors are white, gold, and black.
2. How good are your OCs at bowling? How good are you at bowling?
I, personally, suck at bowling. I’ve never been good at it, but I still have fun!
Before Hayden was on crutches, he was the bowling master. It’s harder for him to bowl now that he can’t really balance by himself, or hold a ball at the same time as he holds his crutches.
Park is also really great at bowling, something that Jamie (bad at bowling) will never forgive him for.
If bowling existed for Teconia, she would try her best, but not succeed. Xinya would be almost good. The occasional strike. Yu-Qi would attempt to chuck the bowling ball like a softball because it Made Her Lose.
3. Rewrite this in your style: “I picked up the book and read the back. He took it from me before I could protest. He never lets me have the cool stuff.
I took the book of the shelf and flipped it over to read the back, but I couldn’t get a single word in before he snatched it out of my hands. I pouted – he never lets me have the cool stuff.
4. What do you love about the last book you read?
The last book I read is called Policing the Black Man, a collection of essays edited by Angela J. Davis. I’m telling you this because you should read it. It’s not an easy read, and I’ve had to take several breaks from it because it’s very heavy, but it’s an eye-opening look at how race and law enforcement interact in America. It reinforced a lot of the things I already knew (the police are an institution founded on racism), but it’s teaching me so much more about why that is, and how we can fix it in the future. Highly recommended – especially if you’re white.
5. What are three things you love about your writing?
I really love my descriptions, character interactions, and settings.
6. What’s a word you love the sound of? What’s a word you really don’t like the sound of?
I have an entire list of words that I love, but I’ll pick my top three: Vivaciousness, Gossamer, and Facetious.
My least favorite word is flesh. I hate that word so much.
7. How do you like to begin your stories?
It depends on the story. Usually I like to jump into the action, to give the reader something to latch onto as soon as possible, and to get them to form questions at the same time.
8. What other forms of writing have you tried other than the one you’re working with now? (i.e. playwriting, screenwriting, poetry, interactive, novels, short fiction. etc.) How do you feel about them?
I’ve been writing a game! It’s been a super huge blast, and even though I know neither jack nor shit about coding, the program I’m using makes it very easy to write games without any coding. Use Twine! It’s the best!
Once I graduate (in June!!), I want to finish the game and upload it somewhere so I can get people playing it. Stay tuned for that!
9. What’s your favorite play/musical? Why? What’s your favorite part?
OH NO, I HAVE TO PICK ONE? Okay fine, it’s Chicago. I absolutely adore that musical, mostly because I love jazz. But also because the dark humor, satire, and well-rounded and unique women are top notch. I had the privilege of seeing it on Broadway in 2017, and I cannot recommend it enough.
10. What kind of stories do you like to read? How different are they from what you write?
Honestly, not much different at all. I read a lot of fantasy, sci-fi, and poetry – I write a lot of fantasy, sci-fi, and poetry. The only thing I write, but don’t read, is suspense/horror-ish stuff. Which sounds weird, but I listen to Welcome to Night Vale, which is about as much horror as I can handle.
11. What’s your favorite bit of worldbuilding from a story someone else wrote?
I’m a huge Tolkien nerd, and the whole concept of two trees that give light to the whole world is the best idea.
12. If you had to change the genre of your WIP, what would you change it to?
Oh man, this is a tough one. I think the easiest one would be changing Firesoul from fantasy to steampunk-fantasy, a la Perdido Street Station by China Miéville, but I’m not sure if that counts. The idea of an urban fantasy God-Dragon’s Wife is interesting, too.
13. What’s your favorite writing POV? First person? Third person limited? One or multiple POV’s?
I prefer Third Person Omniscient or Third Person Limited, but I will (very rarely) write in First Person, and even a little Second Person.
14. Have you thought of a title for your WIP? How did you pick it?
All my WIPs have titles, but the one that was hardest was Out of the Park, because it’s way too cliché and I only picked it because I needed something to call the project.
15. How easy is it for you to come up with outfits for your OCs?
Depends on the character. Xinya is the hardest, because all of her outfits have to be super elaborate and have to fit in with her culture, but Hayden? Jeans and a t-shirt. Easy.
16. Who is the oldest OC in your WIP? (Either in-universe or when you made them.)
In-universe, Xinya is the oldest human at thirty-three. Yu-Qi easily surpasses that by like ten thousand years, but she’s an eternal dragon deity, so.
In real life, Teconia is the oldest. Believe it or not, I made her for my first D&D campaign, and then decided I liked her so much I would make a whole story about her.
17. Have you ever written fanfiction (even if it wasn’t posted online?)
Yes! I write a lot of fan fiction, and though most of it hasn’t left my flash drive, I have an AO3 account, with a couple of works-in-progress. Come say hello!
18. What are your OC’s favorite colors? (List as many or as few as you want)
Teconia: bright orange, green, red
Xinya: dark blue, silver, light pink
Hayden: purple, yellow, lime green
Park: grass green, rusty red-brown, gold
19. What is the most significant/important/often-appearing object in your WIP? Or, what is one object that one of your OCs cherishes?
D…dragons. In almost all of them, it’s dragons. Can you tell that I like dragons?
20. What’s that one word that you can never seem to spell correctly?
This isn’t really a spelling thing, but I will never ever remember the difference between affect and effect. I’ve had it explained to me countless times, but I will never get it. I’ll be confused for the rest of my life.
21. Which arc do you like better/think is more interesting: a hero who starts slowly slipping into evil, or a villain who decides to try to be good?
I think both have their perks, but the villain that tries to do good has a special place in my heart because it shows that people can change, which is a dose of positivity that I think we all need right now.
22. Do you have any minor characters that are trying very, very hard to become one of the mains?
You know, I thought Yu-Qi would be happy staying the love interest. But now she wants to be a co-protagonist with Xinya. That’s what I get for making her literally a god.
23. Weirdest thing you’ve been inspired by?
I read a fan fiction once, and I thought, “Psh. I could write that better.”
And now I have The God-Dragon’s Wife.
24. Which character is closest to a self-insert?
In a way, all of my characters have some aspect of me in them, or some kind of trait I wish I had. Teconia has my kindness – the kindness that’s probably too nice. Park has the confidence I wish I had a lot of the time, but also the fear that I’ll never be good enough. I gave Hayden my anxiety (sorry), but also the determination to push through it that I need. Xinya is pleasant in polite company, but behind closed doors she’s a very angry character, which is something that I’ve been dealing with lately.
I guess I just don’t like the term “self-insert,” because all of my characters are me as much as they’re their own characters. They can be both.
25. Favorite season?
I’m assuming you mean my favorite season. It’s summer.
26. Do you eat appetizers when you go out to eat?
Short answer: Yes
Long answer: If they serve mozzarella sticks, you bet your ass I will eat every single one of those fuckers unless someone holds me back. Also, if you try and separate me from gyoza, you will have your arms separated from your body.
27. What is something you’re scared to write about?
Romance. I don’t know why, but I always feel like it comes off very stiff and impersonal when I write it, so I’ve been avoiding it for a long time.
28. Favorite fantasy book series? (I need recommendations ;))
The. Inheritance. Cycle. Ho-lee shit, I have been talking about this series since I was in first grade, and I will never shut up. The first book is Eragon by Christopher Paolini. If you read it (or if anyone reading this has read it before) feel free to drop in and scream at me. I’m always ready.
29. The most you’ve ever written at one time?
I don’t remember, actually! I think it might have been… when I wrote 8k words in a day?
30. When do you like to write?
Whenever I can, but mostly at night. Which is not doing my sleeping schedule any favors, I’ll tell you that.
31. Why is coming up with questions the most difficult part?
Good question. I have no idea.
32. Which character would cry over a marvel movie?
Teconia, for sure.
33. First character you created. Why?
My first character was a girl who had the werewolf-esque ability to turn into a dragon. She was pretty much my ideal self.
7 notes
·
View notes
Text
📻🎶 H/D Wireless 2018 - Let the curtains fall!
🎤 Welcome to the final show of H/D Wireless 2018!
Today we'll let the curtains fall, the date of reveals is finally here!
Thank you so much to everyone who has spent the last few weeks with us.
We had 40 fics, 4 artworks, and one collaboration, which makes a total of 45 submissions! We were blown away by how HUGE this fest was and we loved every second of it! We truly hope you had just as much fun as we had!
And now without any further ado, may we present: The artists and authors of this year's H/D Wireless!
🎵 ART
🎵 Title: Creep - A Drarry Story
Creator: LLAP115 @llap115
Rating: Teen and up Audiences
Summary: After the war, Draco is back at Hogwarts for his "8th year". He knew from the start that the other students wouldn't welcome him with open arms, but he did not expect that Hogwarts would feel so foreign to him now. Quite surprisingly, he's not the only one who feels out of place.
🎵 Title: Library Memories
Creator: lettersbyelise @lettersbyelise
Rating: General
Summary: Harry and Draco are supposed to be studying in the Hogwarts Library.
Well... Draco is.
Because what Harry is is bloody distracting.
Based on the Wireless fic Our Memories
🎵 Title: Secret
Creator: SailorSlash @sailorslash
Rating: General Audiences
Summary: When it's just the two of them like this, it feels like the outside world doesn't even exist. Knowing they can't keep their relationship a secret for long, Harry and Draco savor every peaceful moment they have together.
🎵 Title: The Twist Contest
Creator: lettersbyelise @lettersbyelise
Rating: General Audiences
Summary: Harry and Draco doing the twist contest at The Hidden Hollow. Based on the Wireless fic Kill, Fuck, Marry
🎵 ART AND FIC
🎵 Title: Remembering You
Creators: art by marshview @torrancelim & fic by EvaristeGalois @eviegalois
Rating: Teen
Summary: After Narcissa's long illness, Draco is left with only memories of his Mother, stored in a magical photograph album.
This story and artwork was made for HD Wireless 2018, for the song 'Pictures of You', by The Cure, prompted by TDCat.
🎵 FIC
🎵 Title: (Pressed Against) The Bathroom Sink
Creator: Yesimawriter @foularcadebanana
Rating: Explicit
Summary: They were both locked in the same bathroom again, but this time, Potter had Draco pressed against the bathroom sink, he had his hands slipping into his hair and he could feel it, could feel the moan trembling in his throat.
🎵 Title: At The End
Creator: Erin_Riwen @erin-riwen
Rating: Teen and up audiences
Summary: Several years after the war, Harry finds himself working with Draco Malfoy. This Malfoy is very different than the kid from school, or even the young man at the end of the war. This Malfoy is strong and confident, humble and contrite, not to mention fit as hell.Harry finds himself on a rollercoaster journey of self discovery involving galas and purple hair, silk suits and general shenanigans, and at every turn is Draco.
🎵 Title: Attention, Please
Creator: resurrectedhippo
Rating: Teen and up Audiences
Summary: Draco ignores Potter and tends to his plants.
🎵 Title: Because I Want It All
Creator: restlessandordinary @restlessandordinary
Rating: Explicit
Summary: When Draco Malfoy left the wizarding world behind to build a better life for himself, the last person he thought he'd run into in a dirty muggle pub is Harry Potter, the exalted Savior. How will his sudden reappearance affect Draco's carefully built new life?
🎵 Title: Crooked Teeth and Highway Signs
Creator: unicornsandphoenix @unicornsandphoenix
Rating: Mature
Summary: Harry brings Draco along on his annual drive down to visit his parents’ grave. From impromptu dance sessions and screaming matches to pining idiots and a car named Betsy, will these two ever figure it out? (Hint: when do they ever not?)
🎵 Title: Delicate
Creator: bangyababy @bangyababy
Rating: Teen and up Audiences
Summary: My reputation's never been worse so, You must like me for me “I wasn’t aware that you liked anything about me at all,” Draco grumbled. Potter turned around and grinned. “You’re not the worst person I’ve ever met.”
🎵 Title: Don't Care If It Hurts
Creator: MaesterChill @maesterchill
Rating: Teen And Up Audiences
Summary: Its 5th Year at Hogwarts School of Witchcraft and Wizardry and students Harry Potter and Draco Malfoy couldn't be more different. One is a reckless Gryffindor destined to battle Lord Voldemort. The other a haughty Slytherin destined to follow in his Death Eater father's footsteps.
So how is it that their thoughts and feelings are so similar?
And why are these thoughts more than occasionally dominated by how fucking special the other one is?
🎵 Title: Every Day Is Leg Day
Creator: MaesterChill @maesterchill
Rating: Explicit
Summary: The seven days that Harry Potter had life-altering encounters involving Draco Malfoy's legs
🎵 Title: Good Little Soldiers
Creators: MykEsprit @mykesprit
Rating: Mature
Summary: The ticking of the clock echoed throughout the gymnasium, interrupted only by the sounds of flesh smacking flesh, the crunch and crack of bone, and the pained grunts as fists made contact with flexed muscles. Only one of them can win a position as Hit Wizard for the ICW.
🎵 Title: Green Light
Creator: prolix @prolix
Rating: Teen
Summary: Avoiding the dissolution of your relationship by taking an impromptu trip to India seems like a bad idea. In this case, it turns out to be a rather good one.
🎵 Title: I know it hurts (but baby, we can't stop now)
Creator: maddieee @malfoypotterbaby
Rating: Explicit
Summary: They wanted each other during the war. They wanted each other still after it. When one is always leaving the other, how will Harry and Draco ever be something more?
🎵 Title: I Want to be With You (I'm Good at It)
Creator: punk_rock_yuppie @punk-rock-yuppie
Rating: Teen and up Audiences
Summary: Draco was banned from the wizarding world after the events of the war; he reintegrates himself slowly, with unexpected results.
🎵 Title: If We Were Honest
Creator: gracie137 @gracie137blogs
Rating: Explicit
Summary: Two years ago, Draco and Harry had a whirlwind secret romance that ended in heart-break. Since then Draco's written a best-selling novel based on their relationship, but with one key difference—the characters get a happy ending. Now Harry and Draco are reunited for the first time since their break-up, but can they rewrite their own ending?
🎵 Title: In The Moment
Creator: enchanted-jae
Rating: Teen
Summary: Draco and Harry live for the moment.
🎵 Title: In This World (We're Just Beginning)
Creator: LowerEastSide @lower-east-side
Rating: Teen And Up Audiences
Summary: Like their clothes, they have a new lease on life.
🎵 Title: It Actually Hurts
Creator: parkkate @parkkate
Rating: Explicit
Summary: For years, Draco has tried to avoid Harry Potter. He just knows he’ll make a fool out of himself if they spent more than five minutes in a room together. Unfortunately, Potter suddenly seems intent on becoming Draco’s friend, but neither of them are prepared for the inevitable consequences...
🎵 Title: It's Friday (I'm in Love)
Creator: punk_rock_yuppie @punk_rock_yuppie
Rating: Explicit
Summary: At first, Draco only hangs out with them on Fridays after work; then he starts shagging Potter after pub nights. Then all the rest of the gang tries to befriend Draco and even worse, Potter tries to date him. It’s an absolute disaster, if you ask Draco. Or, Draco and Harry fall in love over the course of several Fridays and some other days of the week.
🎵 Title: Jealous
Creator: articcat621 @articcat621
Rating: Explicit
Summary: Draco knows exactly what to do to push his buttons.
🎵 Title: Kill, Fuck, Marry
Creator: lettersbyelise @lettersbyelise
Rating: Explicit
Summary: Malfoy leans toward him with a baleful look. “I do believe Pansy Parkinson, my best friend, paid you to spend the evening with me. It’s my birthday, Potter. So you’re going to get off your Gryffindor arse, and you’re going to dance with me. I want to dance. I want to win. I want that bloody trophy on my shelf before the end of the night.”
🎵 Title: Montaigne Aspirations
Creator: countingcr0ws
Rating: Mature
Summary: Draco’s been trying to be nothing but upstanding since you know what. Between crawling into places every day (oh, the woe) in his new yellow tie, avoiding heterosexual threats to the proper development of his young homosexual self, and being exhausted by how high maintenance Gryffindors are, Draco’s eighth year is still a lot better than he had initially expected.
🎵 Title: One of His Few Treasures
Creator: timothysboxers @timothysboxers
Rating: Mature
Summary: Draco's feelings for Harry have always been intense. Hasn't it always been Harry; still now as much as it was then? However, the relationship he gets is not exactly what he envisaged; he's finding the reality of Harry Potter is very different to the dream.
🎵 Title: Only a Kiss
Creator: jeni_andtheafterthought @drarrymylove
Rating: Mature
Summary: In the name of experimentation, Draco offers to kiss Harry. Since it was only a kiss, they can go back to focusing on their newfound friendship. Or can they?
🎵 Title: Our Memories
Creator: Snortinglaughter @snortinglaughter
Rating: Explicit
Summary: Harry and Draco had been living together in a decent flat in London for two wonderful years. One could say it was all sunshine and roses, until their increasing distance edged them to a possible unexpected ending of an unexpected relationship. You and me, we used to be together Everyday together, always.
🎵 Title: Party at a Rich Dude's house
Creator: breath_of_mine (tsundanire)
Rating: Explicit
Summary: Inspired by the song prompt "Party at a Rich Dude's house" by Ke$ha. Harry and Draco spend years trying to get their shit together. They also have a hard time keeping it in their pants at parties.
🎵 Title: Seen Your Scars (Kissed Your Crimes)
Creator: crazyparakiss
Rating: Explicit
Summary: A deep sigh makes its way out of Harry’s strong throat, “What have I done now?” “Nothing,” Draco replies. Everything, she thinks.
🎵 Title: Sunshine, Fresh Air, Telly and Time
Creator: frnklymrshnkly
Rating: Teen And Up Audiences Summary: Immediately following the war, Andromeda and Harry must look after Teddy. But who will look after them?
🎵 Title: Tempest
Creator: Cunninglinguist @hannibalssweaters
Rating: Explicit
Summary: In which socialite party boy Draco Malfoy, son of notorious businessman Lucius Malfoy, finds himself confined to house arrest in the States just in time for the annual Purge, an American tradition that legalizes all crime for 12 hours. Not that Draco can actually *do* anything on Purge Night but wither away in his apartment, drinking expensive alcohol as he slowly dies of boredom. Fortunately for him--or perhaps unfortunately--Draco's old schoolmate, secret crush, and current bodyguard, Harry Potter, will be there to keep him safe from Purge Night heathens, or worse—ennui.
🎵 Title: The Corner of the Bar
Creator: postjentacular @postjentacular
Rating: Explicit
Summary: In which he sits back down where he belongs
🎵 Title: The Meaning of "Asinine"
Creator: meandminniemcg @meandminniemcg
Rating: Teen and Up
Summary: Hermione and Pansy are sick and tired of keeping their happy relationship in the closet because Harry and Draco can't accept each other. Of course, all their friends join the meddling, and there might be one wager or another...
🎵 Title: The Sound of Silence
Creator: synonym4life @synonym-for-life
Rating: Explicit
Summary: Before, during and after the war, there was only one constant in Harry’s life. Malfoy. A spiteful brat before the war, a Death Eater during it, and a wanted man after. Malfoy is everything Harry should hate. And yet - he doesn’t. In fact, in the sound of silence that presses on him every second of the day, Malfoy is the only one Harry hears.
🎵 Title: the strength to stay
Creator: violetclarity @violetclarity
Rating: Explicit
Summary: Draco and Harry are the best Senior Aurors in the DMLE, which is why they’re working the case about Wings – a dangerous new potion that sends users into a dreamscape from which they may never return. When Harry is kidnapped by the group behind Wings, Draco takes it upon himself to go after him, and is forced to confront the reality of Harry’s feelings for him, which he’s been ignoring for years.
🎵 Title: The Things We Do
Creator: gnarf @gnarf
Rating: Mature
Summary: Life isn't always sunshine and sugar quills, Draco had to learn that the hard way. Sometimes you can't find the way out on your own; sometimes there has to be someone who gives you a second chance and helps you on your way. And sometimes the little things we do are enough to change everything. For better, or worse.
🎵 Title: The World Where We Belong
Creator: korlaena @korlaena
Rating: Mature
Summary: Draco has everything. He has a beautiful house, a career that he loves, and he’s engaged to Harry Potter and planning their wedding. But as soon as he thinks he has life figured out, Draco is given a harsh reminder of just how tenuous it can be.
🎵 Title: Things You've Told Him All Along
Creator: Thirdeyeblinkings @thirdeyeblinkings
Rating: Mature
Summary: Anonymous fire calls, blind dates, awkward run-ins, and kissing in the d-a-r-k. But besides all that, a story about hiding, coming out, and starting over (and over).
🎵 Title: 'Til I Saw Your Face
Creator: leontina @acciotomriddle
Rating: Mature
Summary: In order to smother his pain, Draco loses himself in a world of night clubs and drugs. Then he runs into Harry Potter again, who runs a charity for war orphans and strives to do good in the world, despite hiding his own dark secrets. As a result, Draco realises things can get better.
🎵 Title: 'Til Our Compass Stands Still
Creator: china_nightingale @china-nightingale
Rating: Mature
Summary: "It was an unconventional relationship, if one could call it that. It was the way it had always been - bodies colliding while lips stayed closed, dueling and caressing and ripping one another open while hearts stayed locked safely behind cages covered in bruises from curses and kisses. There were never many words spoken. If they talked, chances were that ugly things would tumble from their tongues like they did so easily during their Hogwarts days." Harry and Draco eventually realise that things don't always go to plan, even if it's a plan they've been carefully crafting to keep themselves safe from each other.
🎵 Title: Under the Bludgeonings of Chance
Creator: spookywoods @buttertyrant
Rating: Mature
Summary: “You’ve had a sudden brush with the strange and extraordinary, haven’t you?” Harry narrowed his eyes at Malfoy. “A strange burglar in my flat, yes.” “A series of events have unfolded, all quite odd and seemingly unconnected, but similar in that they were peculiar or unexplainable?” Harry crossed his arms. Malfoy continued, “You have had quite a boring time as of late, unsatisfactory, monotonous, no success to speak of--at work or in the bedroom--but then today something changed. Suddenly there is a swirl of bizarre activity surrounding you.”
🎵 Title: We’ll Be Counting Stars
Creator: Dexiha
Rating: Teen and Up Audiences
Summary: 5 years after the war Harry is miserable, ignoring his depression and hating his career as an Auror; looking for anything to make him feel alive. Draco helps him see there are less self-destructive ways to feel alive.
🎵 Title: You Are Not Alone
Creator: Juh_Nunes @must-love-drarry
Rating: Teen and Up
Summary: Draco dreaded going back to Hogwarts after the war. He was sure this would be his worst year yet: the school hated him, the Slytherins had abandoned him, and his dorm was overrun with Gyffindors. There was no way anything good could come out of this mess, right?
🎵 Title: You Still Look Like a Movie/You Still Sound Like a Song
Creator: shilo1364 @whimsicaldragonette
Rating: Teen And Up Audiences
Summary: Harry Potter doesn't want to attend his ten-year Hogwarts Reunion Ball. He doesn't want to dance. And he *definitely* doesn't want to remember his former lover, Draco Malfoy. Of course, his life has never really been dictated by what he wants.
🎤 WOW! What a variety of amazing art and fic. Now you can go cheer at the creators directly! 🎶
355 notes
·
View notes
Link
(Via: Hacker News)
The log/event processing pipeline you can't have
Let me tell you about the still-not-defunct real-time log processing pipeline we built at my now-defunct last job. It handled logs from a large number of embedded devices that our ISP operated on behalf of residential customers. (I wrote and presented previously about some of the cool wifi diagnostics that were possible with this data set.)
Lately, I've had a surprisingly large number of conversations about logs processing pipelines. I can find probably 10+ already-funded, seemingly successful startups processing logs, and the Big Name Cloud providers all have some kind of logs thingy, but still, people are not satisfied. It's expensive and slow. And if you complain, you mostly get told that you shouldn't be using unstructured logs anyway, you should be using event streams.
That advice is not wrong, but it's incomplete.
Instead of doing a survey of the whole unhappy landscape, let's just ignore what other people suffer with and talk about what does work. You can probably find, somewhere, something similar to each of the components I'm going to talk about, but you probably can't find a single solution that combines it all with good performance and super-low latency for a reasonable price. At least, I haven't found it. I was a little surprised by this, because I didn't think we were doing anything all that innovative. Apparently I was incorrect.
The big picture
Let's get started. Here's a handy diagram of all the parts we're going to talk about:
The ISP where I worked has a bunch of embedded Linux devices (routers, firewalls, wifi access points, and so on) that we wanted to monitor. The number increased rapidly over time, but let's talk about a nice round number, like 100,000 of them. Initially there were zero, then maybe 10 in our development lab, and eventually we hit 100,000, and later there were many more than that. Whatever. Let's work with 100,000. But keep in mind that this architecture works pretty much the same with any number of devices.
(It's a "distributed system" in the sense of scalability, but it's also the simplest thing that really works for any number of devices more than a handful, which makes it different from many "distributed systems" where you could have solved the problem much more simply if you didn't care about scaling. Since our logs are coming from multiple sources, we can't make it non-distributed, but we can try to minimize the number of parts that have to deal with the extra complexity.)
Now, these are devices we were monitoring, not apps or services or containers or whatever. That means two things: we had to deal with lots of weird problems (like compiler/kernel bugs and hardware failures), and most of the software was off-the-shelf OS stuff we couldn't easily control (or didn't want to rewrite).
(Here's the good news: because embedded devices have all the problems from top to bottom, any solution that works for my masses of embedded devices will work for any other log-pipeline problem you might have. If you're lucky, you can leave out some parts.)
That means the debate about "events" vs "logs" was kind of moot. We didn't control all the parts in our system, so telling us to forget logs and use only structured events doesn't help. udhcpd produces messages the way it wants to produce messages, and that's life. Sometimes the kernel panics and prints whatever it wants to print, and that's life. Move on.
Of course, we also had our own apps, which means we could also produce our own structured events when it was relevant to our own apps. Our team had whole never-ending debates about which is better, logs or events, structured or unstructured. In fact, in a move only overfunded megacorporations can afford, we actually implemented both and ran them both for a long time.
Thus, I can now tell you the final true answer, once and for all: you want structured events in your database.
...but you need to be able to produce them from unstructured logs. And once you can do that, exactly how those structured events are produced (either from logs or directly from structured trace output) turns out to be unimportant.
But we're getting ahead of ourselves a bit. Let's take our flow diagram, one part at a time, from left to right.
Userspace and kernel messages, in a single stream
Some people who have been hacking on Linux for a while may know about /proc/kmsg: that's the file good old (pre-systemd) klogd reads kernel messages from, and pumps them to syslogd, which saves them to a file. Nowadays systemd does roughly the same thing but with more d-bus and more corrupted binary log files. Ahem. Anyway. When you run the dmesg command, it reads the same kernel messages (in a slightly different way).
What you might not know is that you can go the other direction. There's a file called /dev/kmsg (note: /dev and not /proc) which, if you write to it, produces messages into the kernel's buffer. Let's do that! For all our messages!
Wait, what? Am I crazy? Why do that?
Because we want strict sequencing of log messages between programs. And we want that even if your kernel panics.
Imagine you have, say, a TV DVR running on an embedded Linux system, and whenever you go to play a particular recorded video, the kernel panics because your chipset vendor hates you. Hypothetically. (The feeling is, hypothetically, mutual.) Ideally, you would like your logs to contain a note that the user requested the video, the video is about to start playing, we've opened the file, we're about to start streaming the file to the proprietary and very buggy (hypothetical) video decoder... boom. Panic.
What now? Well, if you're writing the log messages to disk, the joke's on you, because I bet you didn't fsync() after each one. (Once upon a time, syslogd actually did fsync() after each one. It was insanely disk-grindy and had very low throughput. Those days are gone.) Moreover, a kernel panic kills the disk driver, so you have no chance to fsync() it after the panic, unless you engage one of the more terrifying hacks like, after a panic, booting into a secondary kernel whose only job is to stream the message buffer into a file, hoping desperately that the disk driver isn't the thing that panicked, that the disk itself hasn't fried, and that even if you do manage to write to some disk blocks, they are the right ones because your filesystem data structure is reasonably intact.
(I suddenly feel a lot of pity for myself after reading that paragraph. I think I am more scars than person at this point.)
ANYWAY
The kernel log buffer is in a fixed-size memory buffer in RAM. It defaults to being kinda small (tens or hundreds of kBytes), but you can make it bigger if you want. I suggest you do so.
By itself, this won't solve your kernel panic problems, because RAM is even more volatile than disk, and you have to reboot after a kernel panic. So the RAM is gone, right?
Well, no. Sort of. Not exactly.
Once upon a time, your PC BIOS would go through all your RAM at boot time and run a memory test. I remember my ancient 386DX PC used to do this with my amazingly robust and life-changing 4MB of RAM. It took quite a while. You could press ESC to skip it if you were a valiant risk-taking rebel like myself.
Now, memory is a lot faster than it used to be, but unfortunately it has gotten bigger more quickly than it has gotten faster, especially if you disable memory caching, which you certainly must do at boot time in order to write the very specific patterns needed to see if there are any bit errors.
So... we don't do the boot-time memory test. That ended years ago. If you reboot your system, the memory mostly will contain the stuff it contained before you rebooted. The OS kernel has to know that and zero out pages as they get used. (Sometimes the kernel gets fancy and pre-zeroes some extra pages when it's not busy, so it can hand out zero pages more quickly on demand. But it always has to zero them.)
So, the pages are still around when the system reboots. What we want to happen is:
The system reboots automatically after a kernel panic. You can do this by giving your kernel a boot parameter like "panic=1", which reboots it after one second. (This is not nearly enough time for an end user to read and contemplate the panic message. That's fine, because a) on a desktop PC, X11 will have crashed in graphics mode so you can't see the panic message anyway, and b) on an embedded system there is usually no display to put the message on. End users don't care about panic messages. Our job is to reboot, ASAP, so they don't try to "help" by power cycling the device, which really does lose your memory.) (Advanced users will make it reboot after zero seconds. I think panic=0 disables the reboot feature rather than doing that, so you might have to patch the kernel. I forget. We did it, whatever it was.)
The kernel always initializes the dmesg buffer in the same spot in RAM.
The kernel notices that a previous dmesg buffer is already in that spot in RAM (because of a valid signature or checksum or whatever) and decides to append to that buffer instead of starting fresh.
In userspace, we pick up log processing where we left off. We can capture the log messages starting before (and therefore including) the panic!
And because we redirected userspace logs to the kernel message buffer, we have also preserved the exact sequence of events that led up to the panic.
If you want all this to happen, I have good news and bad news. The good news is we open sourced all our code; the bad news is it didn't get upstreamed anywhere so there are no batteries included and no documentation and it probably doesn't quite work for your use case. Sorry.
Open source code:
logos tool for sending userspace logs to /dev/klogd. (It's logs... for the OS.. and it's logical... and it brings your logs back from the dead after a reboot... get it? No? Oh well.) This includes two per-app token buckets (burst and long-term) so that an out-of-control app won't overfill the limited amount of dmesg space.
PRINTK_PERSIST patch to make Linux reuse the dmesg buffer across reboots.
Even if you don't do any of the rest of this, everybody should use PRINTK_PERSIST on every computer, virtual or physical. Seriously. It's so good.
(Note: room for improvement: it would be better if we could just redirect app stdout/stderr directly to /dev/kmsg, but that doesn't work as well as we want. First, it doesn't auto-prefix incoming messages with the app name. Second, libc functions like printf() actually write a few bytes at a time, not one message per write() call, so they would end up producing more than one dmesg entry per line. Third, /dev/kmsg doesn't support the token bucket rate control that logos does, which turns out to be essential, because sometimes apps go crazy. So we'd have to further extend the kernel API to make it work. It would be worthwhile, though, because the extra userspace process causes an unavoidable delay between when a userspace program prints something and when it actually gets into the kernel log. That delay is enough time for a kernel to panic, and the userspace message gets lost. Writing directly to /dev/kmsg would take less CPU, leave userspace latency unchanged, and ensure the message is safely written before continuing. Someday!)
(In related news, this makes all of syslogd kinda extraneous. Similarly for whatever systemd does. Why do we make everything so complicated? Just write directly to files or the kernel log buffer. It's cheap and easy.)
Uploading the logs
Next, we need to get the messages out of the kernel log buffer and into our log processing server, wherever that might be.
(Note: if we do the above trick - writing userspace messages to the kernel buffer - then we can't also use klogd to read them back into syslogd. That would create an infinite loop, and would end badly. Ask me how I know.)
So, no klogd -> syslogd -> file. Instead, we have something like syslogd -> kmsg -> uploader or app -> kmsg -> uploader.
What is a log uploader? Well, it's a thing that reads messages from the kernel kmsg buffer as they arrive, and uploads them to a server, perhaps over https. It might be almost as simple as "dmesg | curl", like my original prototype, but we can get a bit fancier:
Figure out which messages we've already uploaded (eg. from the persistent buffer before we rebooted) and don't upload those again.
Log the current wall-clock time before uploading, giving us sync points between monotonic time (/dev/kmsg logs "microseconds since boot" by default, which is very useful, but we also want to be able to correlate that with "real" time so we can match messages between related machines).
Compress the file on the way out.
Somehow authenticate with the log server.
Bonus: if the log server is unavailable because of a network partition, try to keep around the last few messages from before the partition, as well as the recent messages once the partition is restored. If the network partition was caused by the client - not too rare if you, like us, were in the business of making routers and wifi access points - you really would like to see the messages from right before the connectivity loss.
Luckily for you, we also open sourced our code for this. It's in C so it's very small and low-overhead. We never quite got the code for the "bonus" feature working quite right, though; we kinda got interrupted at the last minute.
Open source code:
loguploader C client, including an rsyslog plugin for Debian in case you don't want to use the /dev/kmsg trick.
devcert, a tool (and Debian package) which auto-generates a self signed "device certificate" wherever it's installed. The device certificate is used by a device (or VM, container, whatever) to identify itself to the log server, which can then decide how to classify and store (or reject) its logs.
One thing we unfortunately didn't get around to doing was modifying the logupload client to stream logs to the server. This is possible using HTTP POST and Chunked encoding, but our server at the time was unable to accept streaming POST requests due to (I think now fixed) infrastructure limitations.
(Note: if you write load balancing proxy servers or HTTP server frameworks, make sure they can start processing a POST request as soon as all the headers have arrived, rather than waiting for the entire blob to be complete! Then a log upload server can just stream the bytes straight to the next stage even before the whole request has finished.)
Because we lacked streaming in the client, we had to upload chunks of log periodically, which leads to a tradeoff about what makes a good upload period. We eventually settled on about 60 seconds, which ended up accounting for almost all the end-to-end latency from message generation to our monitoring console.
Most people probably think 60 seconds is not too bad. But some of the awesome people on our team managed to squeeze all the other pipeline phases down to tens of milliseconds in total. So the remaining 60 seconds (technically: anywhere from 0 to 60 seconds after a message was produced) was kinda embarrassing. Streaming live from device to server would be better.
The log receiver
So okay, we're uploading the logs from client to some kind of server. What does the server do?
This part is both the easiest and the most reliability-critical. The job is this: receive an HTTP POST request, write the POST data to a file, and return HTTP 200 OK. Anybody who has any server-side experience at all can write this in their preferred language in about 10 minutes.
We intentionally want to make this phase as absolutely simplistic as possible. This is the phase that accepts logs from the limited-size kmsg buffer on the client and puts them somewhere persistent. It's nice to have real-time alerts, but if I have to choose between somewhat delayed alerts or randomly losing log messages when things get ugly, I'll have to accept the delayed alerts. Don't lose log messages! You'll regret it.
The best way to not lose messages is to minimize the work done by your log receiver. So we did. It receives the uploaded log file chunk and appends it to a file, and that's it. The "file" is actually in a cloud storage system that's more-or-less like S3. When I explained this to someone, they asked why we didn't put it in a Bigtable-like thing or some other database, because isn't a filesystem kinda cheesy? No, it's not cheesy, it's simple. Simple things don't break. Our friends on the "let's use structured events to make metrics" team streamed those events straight into a database, and it broke all the time, because databases have configuration options and you inevitably set those options wrong, and it'll fall over under heavy load, and you won't find out until you're right in the middle of an emergency and you really want to see those logs. Or events.
Of course, the file storage service we used was encrypted-at-rest, heavily audited, and auto-deleted files after N days. When you're a megacorporation, you have whole teams of people dedicated to making sure you don't screw this up. They will find you. Best not to annoy them.
We had to add one extra feature, which was authentication. It's not okay for random people on the Internet to be able to impersonate your devices and spam your logs - at least without putting some work into it. For device authentication, we used the rarely-used HTTP client-side certificates option and the devcert program (linked above) so that the client and server could mutually authenticate each other. The server didn't check the certificates against a certification authority (CA), like web clients usually do; instead, it had a database with a whitelist of exactly which certs we're allowing today. So in case someone stole a device cert and started screwing around, we could remove their cert from the whitelist and not worry about CRL bugs and latencies and whatnot.
Unfortunately, because our log receiver was an internal app relying on internal infrastructure, it wasn't open sourced. But there really wasn't much there, honest. The first one was written in maybe 150 lines of python, and the replacement was rewritten in slightly more lines of Go. No problem.
Retries and floods
Of course, things don't always go smoothly. If you're an ISP, the least easy thing is dealing with cases where a whole neighbourhood gets disconnected, either because of a power loss or because someone cut the fiber Internet feed to the neighbourhood.
Now, disconnections are not such a big deal for logs processing - you don't have any. But reconnection is a really big deal. Now you have tens or hundreds of thousands of your devices coming back online at once, and a) they have accumulated a lot more log messages than they usually do, since they couldn't upload them, and b) they all want to talk to your server at the same time. Uh oh.
Luckily, our system was designed carefully (uh... eventually it was), so it could handle these situations pretty smoothly:
The log uploader uses a backoff timer so that if it's been trying to upload for a while, it uploads less often. (However, the backoff timer was limited to no more than the usual inter-upload interval. I don't know why more people don't do this. It's rather silly for your system to wait longer between uploads in a failure situation than it would in a success situation. This is especially true with logs, where when things come back online, you want a status update now. And clearly your servers have enough capacity to handle uploads at the usual rate, because they usually don't crash. Sorry if I sound defensive here, but I had to have this argument a few times with a few SREs. I understand why limiting the backoff period isn't always the right move. It's the right move here.)
Less obviously, even under normal conditions, the log uploader uses a randomized interval between uploads. This avoids traffic spikes where, after the Internet comes back online, everybody uploads again exactly 60 seconds later, and so on.
The log upload client understands the idea that the server can't accept its request right now. It has to, anyway, because if the Internet goes down, there's no server. So it treats server errors exactly like it treats lack of connectivity. And luckily, log uploading is not really an "interactive" priority task, so it's okay to sacrifice latency when things get bad. Users won't notice. And apparently our network is down, so the admins already noticed.
The /dev/kmsg buffer was configured for the longest reasonable outage we could expect, so that it wouldn't overflow during "typical" downtime. Of course, there's a judgement call here. But the truth is, if you're having system-wide downtime, what the individual devices were doing during that downtime is not usually what you care about. So you only need to handle, say, the 90th percentile of downtime. Safely ignore the black swans for once.
The log receiver aggressively rejects requests that come faster than its ability to write files to disk. Since the clients know how to retry with a delay, this allows us to smooth out bursty traffic without needing to either over-provision the servers or lose log messages.
(Pro tip, learned the hard way: if you're writing a log receiver in Go, don't do the obvious thing and fire off a goroutine for every incoming request. You'll run out of memory. Define a maximum number of threads you're willing to handle at once, and limit your request handling to that. It's okay to set this value low, just to be safe: remember, the uploader clients will come back later.)
Okay! Now our (unstructured) logs from all our 100,000 devices are sitting safely in a big distributed filesystem. We have a little load-balanced, multi-homed cluster of log receivers accepting the uploads, and they're so simple that they should pretty much never die, and even if they do because we did something dumb (treacherous, treacherous goroutines!), the clients will try again.
What might not be obvious is this: our reliability, persistence, and scaling problems are solved. Or rather, as long as we have enough log receiver instances to handle all our devices, and enough disk quota to store all our logs, we will never again lose a log message.
That means the rest of our pipeline can be best-effort, complicated, and frequently exploding. And that's a good thing, because we're going to start using more off-the-shelf stuff, we're going to let random developers reconfigure the filtering rules, and we're not going to bother to configure it with any redundancy.
Grinding the logs
The next step is to take our unstructured logs and try to understand them. In other words, we want to add some structure. Basically we want to look for lines that are "interesting" and parse out the "interesting" data and produce a stream of events, each with a set of labels describing what categories they apply to.
Note that, other than this phase, there is little difference between how you'd design a structured event reporting pipeline and a log pipeline. You still need to collect the events. You still (if you're like me) need to persist your events across kernel panics. You still need to retry uploading them if your network gets partitioned. You still need the receivers to handle overloading, burstiness, and retries. You still would like to stream them (if your infrastructure can handle it) rather than uploading every 60 seconds. You still want to be able to handle a high volume of them. You're just uploading a structured blob instead of an unstructured blob.
Okay. Fine. If you want to upload structured blobs, go for it. It's just an HTTP POST that appends to a file. Nobody's stopping you. Just please try to follow my advice when designing the parts of the pipeline before and after this phase, because otherwise I guarantee you'll be sad eventually.
Anyway, if you're staying with me, now we have to parse our unstructured logs. What's really cool - what makes this a killer design compared to starting with structured events in the first place - is that we can, at any time, change our minds about how to parse the logs, without redeploying all the software that produces them.
This turns out to be amazingly handy. It's so amazingly handy that nobody believes me. Even I didn't believe me until I experienced it; I was sure, in the beginning, that the unstructured logs were only temporary and we'd initially use them to figure out what structured events we wanted to record, and then modify the software to send those, then phase out the logs over time. This never happened. We never settled down. Every week, or at least every month, there was some new problem which the existing "structured" events weren't configured to catch, but which, upon investigating, we realized we could diagnose and measure from the existing log message stream. And so we did!
Now, I have to put this in perspective. Someone probably told you that log messages are too slow, or too big, or too hard to read, or too hard to use, or you should use them while debugging and then delete them. All those people were living in the past and they didn't have a fancy log pipeline. Computers are really, really fast now. Storage is really, really cheap.
So we let it all out. Our devices produced an average of 50 MB of (uncompressed) logs per day, each. For the baseline 100,000 devices that we discussed above, that's about 5TB of logs per day. Ignoring compression, how much does it cost to store, say, 60 days of logs in S3 at 5TB per day? "Who cares," that's how much. You're amortizing it over 100,000 devices. Heck, a lot of those devices were DVRs, each with 2TB of storage. With 100,000 DVRs, that's 200,000 TB of storage. Another 300 is literally a rounding error (like, smaller than if I can't remember if it's really 2TB or 2TiB or what).
Our systems barfed up logs vigorously and continuously, like a non-drunken non-sailor with seasickness. And it was beautiful.
(By the way, now would be a good time to mention some things we didn't log: personally identifiable information or information about people's Internet usage habits. These were diagnostic logs for running the network and detecting hardware/software failures. We didn't track what you did with the network. That was an intentional decision from day 1.)
(Also, this is why I think all those log processing services are so badly overpriced. I wanna store 50 MB per device, for lots of devices. I need to pay S3 rates for that, not a million dollars a gigabyte. If I have to overpay for storage, I'll have to start writing fewer logs. I love my logs. I need my logs. I know you're just storing it in S3 anyway. You probably get a volume discount! Let's be realistic.)
But the grinding, though
Oh right. So the big box labeled "Grinder" in my diagram was, in fact, just one single virtual machine, for a long time. It lasted like that for much longer than we expected.
Whoa, how is that possible, you ask?
Well, at 5TB per day per 100,000 devices, that's an average of 57 MBytes per second. And remember, burstiness has already been absorbed by our carefully written log receivers and clients, so we'll just grind these logs as fast as they arrive or as fast as we can, and if there are fluctuations, they'll average out. Admittedly, some parts of the day are busier than others. Let's say 80 MBytes per second at peak.
80 MBytes per second? My laptop can do that on its spinning disk. I don't even need an SSD! 80 MBytes per second is a toy.
And of course, it's not just one spinning disk. The data itself is stored on some fancy heavily-engineered distributed filesystem that I didn't have to design. Assuming there are no, er, collossal, failures in provisioning (no comment), there's no reason we shouldn't be able to read files at a rate that saturates the network interface available to our machine. Surely that's at least 10 Gbps (~1 GByte/sec) nowadays, which is 12.5 of those. 1.25 million devices, all processed by a single grinder.
Of course you'll probably need to use a few CPU cores. And the more work you do per log entry, the slower it'll get. But these estimates aren't too far off what we could handle.
And yeah, sometimes that VM gets randomly killed by the cluster's Star Trek-esque hive mind for no reason. It doesn't matter, because the input data was already persisted by the log receivers. Just start a new grinder and pick up where you left off. You'll have to be able to handle process restarts no matter what. And that's a lot easier than trying to make a distributed system you didn't need.
As for what the grinder actually does? Anything you want. But it's basically the "map" phase in a mapreduce. It reads the data in one side, does some stuff to it, and writes out postprocessed stuff on the other side. Use your imagination. And if you want to write more kinds of mappers, you can run them, either alongside the original Grinder or downstream from it.
Our Grinder mostly just ran regexes and put out structures (technically protobufs) that were basically sets of key-value pairs.
(For some reason, when I search the Internet for "streaming mapreduce," I don't get programs that do this real-time processing of lots of files as they get written. Instead, I seem to get batch-oriented mapreduce clones that happen to read from stdin, which is a stream. I guess. But... well, now you've wasted some perfectly good words that could have meant something. So okay, too bad, it's a Grinder. Sue me.)
Reducers and Indexers
Once you have a bunch of structured events... well, I'm not going to explain that in a lot of detail, because it's been written about a lot.
You probably want to aggregate them a bit - eg. to count up reboots across multiple devices, rather than storing each event for each device separately - and dump them into a time-series database. Perhaps you want to save and postprocess the results in a monitoring system named after Queen Elizabeth or her pet butterfly. Whatever. Plug in your favourite.
What you probably think you want to do, but it turns out you rarely need, is full-text indexing. People just don't grep the logs across 100,000 devices all that often. I mean, it's kinda nice to have. But it doesn't have to be instantaneous. You can plug in your favourite full text indexer if you like. But most of the time, just an occasional big parallel grep (perhaps using your favourite mapreduce clone or something more modern... or possibly just using grep) of a subset of the logs is sufficient.
(If you don't have too many devices, even a serial grep can be fine. Remember, a decent cloud computer should be able to read through ~1 GByte/sec, no problem. How much are you paying for someone to run some bloaty full-text indexer on all your logs, to save a few milliseconds per grep?)
I mean, run a full text indexer if you want. The files are right there. Don't let me stop you.
On the other hand, being able to retrieve the exact series of logs - let's call it the "narrative" - from a particular time period across a subset of devices turns out to be super useful. A mini-indexer that just remembers which logs from which devices ended up in which files at which offsets is nice to have. Someone else on our team built one of those eventually (once we grew so much that our parallel grep started taking minutes instead of seconds), and it was very nice.
And then you can build your dashboards
Once you've reduced, aggregated, and indexed your events into your favourite output files and databases, you can read those databases to build very fast-running dashboards. They're fast because the data has been preprocessed in mostly-real time.
As I mentioned above, we had our pipeline reading the input files as fast as they could come in, so the receive+grind+reduce+index phase only took a few tens of milliseconds. If your pipeline isn't that fast, ask somebody why. I bet their program is written in java and/or has a lot of sleep() statements or batch cron jobs with intervals measured in minutes.
Again here, I'm not going to recommend a dashboard tool. There are millions of articles and blog posts about that. Pick one, or many.
In conclusion
Please, please, steal these ideas. Make your log and event processing as stable as our small team made our log processing. Don't fight over structured vs unstructured; if you can't agree, just log them both.
Don't put up with weird lags and limits in your infrastructure. We made 50MB/day/device work for a lot of devices, and real-time mapreduced them all on a single VM. If we can do that, then you can make it work for a few hundreds, or a few thousands, of container instances. Don't let anyone tell you you can't. Do the math: of course you can.
Epilogue
Eventually our team's log processing system evolved to become the primary monitoring and alerting infrastructure for our ISP. Rather than alerting on behaviour of individual core routers, it turned out that the end-to-end behaviour observed by devices in the field were a better way to detect virtually any problem. Alert on symptoms, not causes, as the SREs like to say. Who has the symptoms? End users.
We had our devices ping different internal servers periodically and log the round trip times; in aggregate, we had an amazing view of overloading, packet loss, bufferbloat, and poor backbone routing decisions, across the entire fleet, across every port of every switch. We could tell which was better, IPv4 or IPv6. (It's always IPv4. Almost everyone spends more time optimizing their IPv4 routes and peering. Sorry, but it's true.)
We detected some weird configuration problems with the DNS servers in one city by comparing the 90th percentile latency of DNS lookups across all the devices in every city.
We diagnosed a manufacturing defect in a particular batch of devices, just based on their CPU temperature curves and fan speeds.
We worked with our CPU vendor to find and work around a bug in their cache coherency, because we spotted a kernel panic that would happen randomly every 10,000 CPU-hours, but for every 100,000 devices, that's still 10 times per hour of potential clues.
...and it sure was good for detecting power failures.
Anyway. Log more stuff. Collect those logs. Let it flow. Trust me.
Update 2019-04-26: So, uh, I might have lied in the title when I said you can't have this logs pipeline. Based on a lot of positive feedback from people who read this blog post, I ended up starting a company that might be able to help you with your logs problems. We're building pipelines that are very similar to what's described here. If you're interested in being an early user and helping us shape the product direction, email me!
0 notes
Text
Screen Treatment Rewrite
WARPED
SE1-EP1
“1001”
Synopsis -
Before finishing a term on a long winded interstellar assignment, a lone interstellar technician releases a caustic abomination, but when he realizes the creature is a conglomeration of him and his past replicates over thousands of years, he must call back to his past in order to avoid being absorbed into the monster.
BROKEN DOWN HALLWAY – INT. - SPACE
In a heavily metaled and rusted hallway of some complex, grime cakes the walls and the large-heavy plated doors stand half opened due to rust and insufficient care.
SHIP WORKER
A heavy boot slams past the camera on a bug’s eye view. We follow the boots through a grimy futuristic hallway; grime cakes the walls and the large-heavy plated doors stand half opened due to rust and insufficient care. A red-light blink on and off; a blaring alarm fills the scene with sound. The camera shifts up and we see a figure in a rather large suit running as fast as he can through the hallway. A female voice calls after him.
Female voice
YOU KEEP RUNNING!
The individual is breathing hard, panting with a panicked tone. The camera turns towards the back of the figure, still running, and shows off the suit a bit more. The fabric rubs uncomfortably against itself and the utility belt and supplies slap against the legs of the runner. Things are falling out of pockets, tools unbuckle. Something falls off one of the hooks of the belt, a bottle of some sort. The runner trips up on this object and lands on his face. The bottle being stepped on is shown, and while it is tripped over a message screen on the bottle shows red and displays text that says: “HANDLE WITH CARE!”. The bottle buzzes twice. He quickly and sparklingly attempts to get back up, looking over his own shoulder as the camera closes in on his mask, briefly showing a hazy reflection of what was chasing our character. A black hand slaps on the mask of the character. The scene fades to black to the sound of the thing attacking the runner and the runner’s screams.
INT. REPLICATION COMPLEX – INT. – SPACE
HAZMAT SPECIALIST 1001
HAZMAT SPECALIST 1001, an environmental cleaning specialist that works on a large starship specializing in waste disposal.
A bare foot slaps past the metallic ground of a long dimly lit hallway. The body is glistening and naked, the face isn’t shown. The hallway is unadorned and clean, a stark contrast compared to the hallway shown in the last scene. The naked body comes up to a lit console, the screen shows in large green numbers “1001”. This is when the beginning credits will show the author/writer and illustrator. The man turns away from the console and walks towards the right of the screen.
LOCKER ROOM - INT. - SPACE
The body opens a door. A series of shots show the man clothing himself in heavy and noisy HAZMAT gear. The final shot shows the face just as the mask rolls on. The locker closes on the image of a photo of a nondescript woman, crumpled on a shelf.
INTERCOM
R-REPLICANT 1001, REPORT TO DEBR-REIFING IN THE BRIDGE.
1001 turns from the locker and walks out of the room.
ROTATING HALLWAY – INT. - SPACE
He walks down a different long dimly lit hallway; the walls around the walkway spin simulating artificial gravity. He looks out and around the hallway. Sounds of people can be heard from behind, children and women talking and laughing. 1001 looks to the right down a side pathway on the hallway reacting to the sound. It leads to a large slate door with blackened window. The sound is heard again, and he steps towards the door. The intercom sounds again, startling 1001 out of his trance.
INTERCOM
REPLIC-CANT 1001, RE-E-EPORT TO DEBREIFING IN THE BRIDGE.
He continues on to the BRIDGE.
BRIDGE – INT. – SPACE
1001 is seen in a small bridge; despite they’re being a plethora of buttons and panels most remain dormant. The intercom clicks on. A glitchy message is played.
INTERCOM
CONGRADULATIONS AND THANK-K YOU FOR WORKING FOR V-VECTOR CHEMICAL. YOUR CONTRACT IS CLOSE TO EXPERING AT 30 YEARS INTER-S-S-SPACE TIME. PLEASE REPORT TO THE DINING CUBICAL TO RECIVE YOUR RETIERNMENT PRESENT.
1001’s face brightens up for a moment and leaves the bridge. He turns a left corner and enters a small room with several cabinets. A far cabinet is seen at the end of the room. 1001 walks up and pushes a button, and a beep is heard. The machine’s black-glassed slot opens and shows nothing within. A confused look crosses the face of 1001. The intercom clicks back on.
INTERCOM
WE AT VE-E-ECTOR CHEMICAL HOPE YOU ENJOYED YOUR FAREWELL PRESENT, YOU WILL BE REMBURSED WHEN YOU REACH THE NE-E-E-E-E-EAREST CORE PLANET. AFTER RUNNING THE LAST OF YOUR STATION DIAGNOSTIC PRECEDURES PLEASE REPORT TO THE CLOSEST EVACUATION POD. AGAIN, WE AT VECTOR CHEMICAL WISH YOU Y-Y-Y-YEARS OF PROSPERITY. VECTOR CHEMICAL, DESIGNERS OF A CLEANER FUTURE.
The intercom clicks off. 1001 leaves the room and spots in the hallway a red sign pointing towards the escape pod room. He notices a black trail leading around the corner and into the room. He reaches the large metal door with a circular window and peers through. Two pods are seen imbedded into the side of the ships hull. One of the pods shows a blinking red light, one is green with the black trail leading inside. He twists open the door and steps in.
ESCAPE POD ROOM – INT. – SPACE
A low hum can be heard, the first pods indicator blinks red, and the second pod’s indicator light blinks green. 1001 slowly opens the sliding door and darkness can only be seen within the cabin. He plants on boot inside of the cabin when a black hand claws at the pant leg of his suit. He pulls back, startled and falls backwards onto the floor. A black corroded figure skulks upwards within the cabin and presses a button near the entrance of the pod. The door slams shut and a burst of pressure pushes against 1001. The intercom clicks on.
INTERCOM
UNA-A-A-AUTHORIZED USE OF ESCAPEPOD DETECTED-D-D, PLEASE REFER TO YOUR NEAREST CONSOLE FOR PROPER USE OF ESCAPEPOD.
A large explosion is heard over the message and the pod shoots off into a starless space. Black liquid slicks off of 1001’s leg and slithers on the floor into the cracks of the ships walls. 1001 starts up and stumbles out of the escape pod room and into the hallway towards the bridge. He enters, and locks the door behind him.
BRIDGE – INT. – SPACE
We see 1001 looking down on a console, with his mask now off. He grips hard on his gloves while he reads what’s is on the console. The screen blinks red with a message. LAST OF MAIN PODS EVACUATED, ALL REMAINING PERSONEL REPORT TO THE AUXILARY LIFE POD FOR DEPORT. 1001s eyes can be seen looking down at the message, then looks up outward towards the camera. He puts his mask back on and turns out of the bridge. The intercom chimes on.
INTERCOM
PLEASE FOLLOW THE GUIDE L-LIGHTS FOR EVAC.
A yellow key-card slides out of slot within one of the terminals. 1001 quickly snatches the card and slides it into a side pouch pocket. A yellow walkway sidelight blinks in unison towards his destination.
ROTATING HALLWAY – INT. - SPACE
He walks back across the pathway following the light to the hallway with rotating walls. The lights lead up to the slate made mysterious door. He stands still for a moment, and then walks up to the door. He peers through the glass and sees nothing but darkness for a moment. The yellow floor lights lead on through the darkened hallway. A streak of dark matter can be seen curling around a corner. 1001 backs off the door and grabs at his chest in anxiety. He backs off towards locker room/equipment area.
LOCKER ROOM - INT. - SPACE
He re-opens the locker. The same photo is seen; he reaches past it to grab an equipment strap and leaves the locker open. He walks to a large metal tackle box and lifts the lid. There he grabs a flame torch and connected propane canister. He loops it around his back and straps it tight. He looks back at the locker and stares at the photo. A female voice is heard.
FEMALE VOICE
Why are you leaving? Don’t be a coward Ro…
1001 shakes his head. He slams the locker closed and walks back towards the hallway.
ROTATING HALLWAY – INT. - SPACE
With his equipment pouch and flame torch, he walks up to the large slate door. He briefly psyches himself up and slaps at the opening button. The slate door grinds against its frame slowly upwards. While the door opens up the intercom clicks on.
INTERCOM
PLEASE FOLLOW THE GUIDE LIGHTS FOR EVAC.
The first hallway turns to the left and right. The yellow guide lights turn left, the black trail turns right. 1001 turns down the left hand hallway keeping his flame torch at the ready.
DORMITORY – INT. – SPACE
While turning left down the hallway he passes through an opened door. He slaps the light on the side of the wall and the room looks untouched. In fact, it seems untouched for a very long time. Personal objects litter desks and floors. Pictures of the same people seen in the locker room are spread on the floor. 1001 visibly attempts to ignore them while pushing past tables and chairs long forgotten.
DORMINTORY CORRIDOR – INT. - SPACE
He follows the yellow light past this room and into a darker corridor. He looks down to his right and sees a yellow portal. Sighing in relief, 1001 starts towards the yellow-rimmed door. He walks briskly towards the door taking out the key-card, sliding it into the side door terminal and presses the button with a free hand. The door opens and two more escape pods can be seen, both are green. He steps in.
AUX. LIFE BOAT ROOM – INT. – SPACE
He walks in, loosening his flame-thrower and was close to discarding it to the side while walking towards the first escape pod. A voice stops him in his tracks.
FEMALE VOICE
You can’t run from this.
He re-loops the flame-thrower to his back, holds it ready and looks around. A beat passes. He speaks briefly among silence.
1001
I’m not…
He holds his head, throws the tool to the side and opens up the escape pod compartment. Just as he is about to enter the pod he is thrown to the side by some force. The lights of the room flicker off. 1001 dazed, lands next to his flamethrower. Coming two after a moment he grabs the tool and points it towards the pods, a large dark mass tears at the escape pod doors.
1001
NO!
1001 screams into action, loops the flame-thrower around his shoulder and fires his weapon. Light fills up the dark cracks of the room. Laughing is heard. The monster is shown in some detail among the flames. 1001 facemask reflects the image of the monster ignoring the flames and smashing the evacuation pods. The large form then darts off, on fire, to the exit door of the room, leaving behind chunks of burning viscera. 1001 in rage follows it to the door but the form vanishes in the darkness of the hallway. Crashing can be heard in the dormitory. 1001 looks back at the evacuation doors. He screams in frustration. The intercom chimes in.
INTERCOM
ALL L-L-LONG-VOYAGE EVAC PODS ARE UNAVIALIABLE. AN S.O.S SIGNAL HAS BEEN SENT.
1001 grunts in harsh frustration and breathes heavily. Looking down, he notices the simmering chunk of black goo. He peers closer and kicks at it with a bit of anger. The goo flies off and what looks like a charcoal black arm is revealed. The fingers twitch in morbid reaction to the flames. 1001 reels back and looks down the hallway. A black trail leads into the dormitory area.
DORMINTORY – INT. – SPACE – LATER
1001 jogs into the dormitory and sees that it has been totally ravaged by the thing that passed through. Black chunks of viscera are strewn across the compartment.
0 notes