Tumgik
#because before I opted to just lock the comments I wanted to delete the entire thing but decided against it
Text
Deleted Scene: The Heart of the Matter
Opening scene: les Amis have just had their first meeting since Grantaire was cursed.
“That could have gone better,” Éponine says as she shuts the door to the door to the second floor behind her.
“But it also could have gone worse,” Cosette reminds her.  
Already settled grumpily on the sofa in front of the fire, Grantaire remains silent.
Cosette seems to survey the room.  “Cupcakes?  I’m thinking cupcakes.”
“There should be some dough in the fridge for fresh bread,” Grantaire grunts.
“Cupcakes and bread, then.”  With that, Cosette is off.  
Éponine thinks that if she brewed potions and stewed drinks all day the way her wife does, she’d probably be sick of the kitchen, but Cosette seems to thrive on her ability to put people at ease with her culinary skills; in any case, Éponine isn’t about to argue.
Turning back to the lump on their sofa, she sighs.  “It really wasn’t that bad.”
“Just the beginning of forever.”
She rolls her eyes.  “Drama-queen.”
“You’re not the one who has to live it.”
“I’m not the one who got my ass cursed.  And anyway, you haven’t even tried to break it.”
“Because it’s pointless.”
“Because you’re a pessimistic asshole.”
A knock comes at the door, and the crispness of each rap makes it immediately clear exactly who it is.
“Am I now?”  He rolls onto his side.  “One guess as to who that’s for.”
Failing to fully suppress her sigh, Éponine turns and opens the door to a startled-looking blond revolutionary.  “Enjolras,” she says, her voice a tired imitation of enthusiasm.  “What a surprise.”
“Éponine,” Enjolras nods.  “Is Grantaire in?”
She opens the door wider in wordless response.
“Grantaire?”  The blond takes a tentative step past Éponine.  Shutting the door behind him, she crosses her arms and leans back against it.
A long hiss of air sounds from the sofa before a mess of inky curls appears over its back, glowing with the light from the fire.  “Present and accounted for.”  
The gap that an over-the-top title would usually fill is painfully evident, and Éponine tries not to flinch at it.  A quick glance at Enjolras’s face tells her little: his expression is stoney, mouth pinched and nostrils flaring.
“You were very quiet tonight.”  A silence follows, as if Enjolras expects Grantaire to volunteer a response or an explanation; to Enjolras’s credit, under different circumstances Éponine thinks Grantaire would absolutely jump at the opportunity to offer an empty comment or criticism.  “Is everything all right?”
She can practically hear the diatribe of empty questions and answers Grantaire would normally pose, the verbal waltz he might perform to fill up the quiet.  Instead, the silence continues, and Enjolras turns back to Éponine with a crease between his brows.  
“Éponine,” he asks in a furtive tone, “what’s happening?”
Her gaze flickers between the blond and the couch several times before she sighs, uncrossing her arms and pushing herself off the door.  “How do you take your tea?”
Past Enjolras she can see Grantaire’s head pop up over the sofa, eyes narrowing at her.  She shrugs in response, moving toward the kitchen and pressing a kiss to her wife’s cheek between filling up and starting the kettle.  
“Have a seat, Ép’ll be right out,” her doting, brilliant, over-accommodating wife calls suddenly without looking up from her batter.
Éponine looks through the window into the living room to see Enjolras still frozen by the front door.  He looks up at Éponine now, who sighs.  “Sit down, I’ll be just a minute.”
When she does return, she sees that he’s settled into her usual armchair, leaving her to choose between taking Cosette’s rocking chair or squeezing next to the lump that is her best friend on the sofa.  She opts for the latter, placing the tray of tea and accessories on the coffee table and settling onto the side of the sofa adjacent to Enjolras.
She makes her chamomile in silence and blatantly ignores whatever ritual Enjolras goes through to prepare his.  Behind him, Éponine can see Cosette raising a pointed eyebrow at her, a warning and a reminder that the blond has no malicious part in any of this.
Refilling her tea, Éponine ventures into the abyss.  “You might have noticed that R’s a bit…”
“Quiet?”
“Selectively nonverbal.”  She’s extremely aware that they’re talking about someone who is right next to them, but given his apparent disinterest in speaking up she has no choice but to address the revolutionary in the room.  “He recently encountered some difficulties.”
“Difficulties,” Enjolras repeats.
“In his travels.”  In his bar crawls.  And to be honest, he deserves it—though relating the particulars to Enjolras doesn’t seem conducive to productive discussion.
His attention remains on her, discerning and wary.  “What kinds of difficulties?”
Again, she waits for Grantaire to volunteer an answer.  When none comes, she’s forced to provide her own.  “He crossed paths with an unlike mind, and this unlike mind decided that a curse might change Grantaire’s tune.”
Enjolras’s eyes widen, brows raising.  Grantaire has waxed poetic about how expressive his ‘golden god’s’ eyes are, and though Éponine will always and forevermore roll her own eyes at any and all of the praise her drunken friend reaps on the leader, she will privately begrudgingly admit that this one quality holds true.
“He was cursed?”  
Grantaire shifts beside her and snorts almost unnoticeably.  She narrowly resists the urge to smack his legs—it was his dumb ass that got himself into this situation in the first place.  And anyway, he can talk, she shouldn’t have to answer for him anyway.
“Yeah.”
“Does he know how to break it?” Enjolras asks, jaw set determinedly.  “Cosette’s shop has a cursebreaker, has he conferred with them?”
Something metal hits the kitchen floor, and Grantaire jerks beside Éponine as she stares blankly at the man in front of her.  “Do you—” she begins.  “What is it, exactly, that you think Grantaire does for a living?”
Enjolras blinks several times.  “Is...is he an artist?”
Grantaire snorts derisively into the couch cushions, and this time Éponine has no qualms swatting at the man.
“No.”  Perhaps she should expand on the answer—it’d certainly be the polite thing to do.  
It’d also be polite to know the first thing about the business partner of the person who lets them use her shop’s backroom for their political club meetings.
“Grantaire does know how to break the curse, to answer your original question.”
Enjolras’s countenance shifts from pure discomfort to only moderate.  “That’s excellent.  What does he need?”
The answer is on the tip of her tongue, but Cosette is still busy with whatever she’s making, and Grantaire is still busy being a stubborn bastard.
“He needs a boyfriend.”  
Enjolras looks startled.  “A what?”  
“A what?” Grantaire repeats, glaring from where he’s finally jerked upright.
“Or girlfriend.  Partner.”  Éponine smiles sweetly.  “The warlock told Grantaire that no one could stand his sharp tongue for even a week, and that if he could keep a partner for seven days the spell would be broken.”  
She catches Grantaire looking past her at Cosette, but whatever he finds there must not be sympathetic because his expression only sours.  
“What a pointless spell,” Enjolras sniffs.  “How long ago was this?”
It’s been four days since Grantaire spilled into the apartment surprisingly early for an evening out spewing a stream of oddly specific profanity.  “Today’s Sunday, I guess he got cursed...Thursday?”
“Wednesday,” Grantaire corrects, cross.  
That’ll teach him to play complacent in his own life.
“So you should be better by next week.”
Éponine’s head jerks back to the blond, eyebrows raised.  “What makes you say that?”
“That was Wednesday, and he only needs to date someone for a week.”  It’s stated like his conclusion is obvious.
Whatever Grantaire might have been planning to say is abruptly cut off.  
“He’s single.”
Enjolras looks back and forth between the two warily.  “Why?”
Grantaire is magnanimously allowed the opportunity to answer this one for himself.  “Haven’t found anyone who quite fits the criteria,” he explains through a tight smile.
Pointedly looking at Enjolras, Éponine waits for the blond to offer his services; he’s always the first to volunteer when his friends need help with anything within his realm of capabilities (and more than a few that fall outside), and the man’s continued silence is becoming rather puzzling.  It briefly crosses her mind that, for all of Grantaire’s dramatics, he could be right about Enjolras’s disdain for him…
But no, that’s definitely a blush rising to the leader’s cheeks.  Grantaire’s just an idiot.
“Enjolras, you’re single, aren’t you?”  Cosette’s musical voice rings from the kitchen as she removes something from the oven, and Éponine falls in love with her wife all over again.
“I am, but—”
Éponine nearly has them where she wants them.  “Grantaire, do you think you could make it through a week of dating Enjolras?”
Taking on a determined set, the man’s expression looks poised and ready to make Éponine regret this entire encounter.
“Let me rephrase that: is there a possibility that Enjolras could help you break your curse?”
Foiled, Grantaire’s eyes dart toward the fireplace as his mouth puckers.  “Perhaps.”
Éponine pushes an unexpected wave of delight back for later.  “Great, then it’s settled.  Your first date’s tomorrow.  Enjolras, Grantaire will text you the details.”  She rises, a cue for the blond to get the hell out of her home.
Sparing a backward glance for the lump on the sofa as he’s crowded out of the room, Enjolras quickly takes his somewhat baffled leave.  As soon as he’s out the door, Éponine locks it, sinking against it in relief.
“What the fuck was that?” Grantaire accuses.
“You’re welcome.”
“That’s not even my curse!”
Éponine rolls her eyes, making her way across the room to her now-abandoned seat.  “Of course it’s not, but now he has a week to realize that he’s totally in love with you before he puckers up.”
Sinking into the couch and digging the heels of his hands into his eyes, Grantaire groans.  “The man doesn’t even realize I’m the house cursebreaker here.”
Éponine’s expression falls flat.  “Yes, well, that is a minor setback.”
“An oversight, really,” Cosette offers as she finally makes her way into the living room.  “Cupcakes are cooling.”
“I’d call you a saint, but you denied me three times before the sun rose in the sky.”
The woman shrugs.  “Peter’s a saint all the same.  And Éponine’s only trying to help.”
That might be giving her a little too much credit (it definitely is), but Éponine’s not about to correct Cosette when she’s already won this round.  “Look, either it works or it doesn’t.”
“And if it doesn’t, Enjolras will hate us forever and never talk to me again for lying to him.”
Éponine huffs.  “That’s kind of your deal, though: you didn’t lie to him.  You physically can’t until you get ‘true love’s kiss’ or whatever.”
Still, her guts twists in sympathy at Grantaire’s words: extensive trial and error proved that it doesn’t matter if it’s true if Grantaire thinks it is, and apparently he truly believes that Enjolras will despise him for this dishonesty.
“‘Until someone loves your true self,’” he quotes, shaking his head.  “What a load of absolute over-literal horseshit.”
Éponine nods in agreement, but Cosette hums thoughtfully into her tea.  “But you think he can break the curse.”
Grantaire’s head jerks up.  “What?”
“I heard it too,” Éponine grins.  “You think there’s a possibility that he could break it.”
Her friend reddens.  “I said that it could perhaps happen.”
“Which is to say, you’re amenable.”  Rocking back in her chair, Cosette takes a long sip of tea.  “Fairytale curses require two-way love, and I know you know that because you’re the one who taught me it.”
The cynic makes a disgruntled mumble.
“If you’re saying ‘perhaps,” the potion master continues, “that means that, supposing our Fearless Leader does fall for you, you already trust yourself to play your part.”
Grantaire grumbles again before flipping back onto his side.
“You know what I love the most about honest Grantaire?” Éponine asks Cosette broadly.  “He can keep his truths to himself if he wants, but it’s been at least four days since he’s told us he hates us.”
Gasping dramatically, Cosette conspiratorially leans her chair in toward the sofa.  “Could it be?  Grantaire,  is it possible that you love and adore us?”  
More unintelligible sounds.
“I’m sorry, what was that?” Éponine goads.
“You two are—”  The words seem to catch in his throat, the effort to catch them before they’re released into the world visible on Grantaire’s face.  “—relentless,” he seems to finally decide.
“‘Relentless,’” Cosette repeats, looking up at Éponine.
“I can do ‘relentless.’”
“‘Relentless’ sounds idyllic.”
“Adding it to the resume next time I’m at my laptop.”
A blanket is pulled back over Grantaire’s face, and the rest of the evening is met by incoherent grumbling from the mound on the sofa until Cosette and Éponine go to bed for the night.
The rest of the fic is featured here.
40 notes · View notes
amemixfan · 6 years
Note
Omg I can't get enough of your Jinhai Jubal and mc post! Could you possibly write another? If so, can the prompt be "I love him, not you!" Could you also do it ever MC cheats on Isuel?? Please with lovestruck on top???
Also answered: “You enjoyed it the first time, why not have it a second?”Continuation to “I’ll keep you warm” with Jinhai.The formatting didn’t stick the first time so I had to delete and repost. Sorry about that ^^’. A little more explicit than I’m used to. Warnings for cheating. Name used here is Hannah. ——Sometimes, I feel sick in my own skin. My body has become a cage that I want to escape. A foreigner’s touch has invaded me and locked me up in chains. I despise what I have let myself become even as I enjoy it. As terrible as it is, there is a thrill that comes from being with him-Jinhai. The forbidden fruit tastes so much sweeter, and I’ve learned that first hand. There is an edge of excitement to doing something that is wrong, and I’ve learned to take it as a high. My breath comes out in shallow pants as I adjust my clothing. My skin burns with a foreign touch and disgust lingers at the back of my mind, yet even I can’t pretend I did not enjoy it. I gather what little is left of my tattered dignity and self respect and rise to my full height. My fingers work on the lacing of my clothing and I silently mourn that my hair is a mess. I will have to fix it before leaving. “This was a mistake,” I hiss. It is a mistake, a terrible and twisted mistake, yet one I had plunged into headfirst. From his place next to the base of the tree, Jinhai gives a twisted smirk. He has already dressed and rests his back against the bark in a cruel afterglow. He looks like a cat that devoured a canary-A canary that offered herself up willingly. “You can pretend not to like it all you want,” he shrugs lazily and his smirk widens, “But you were screaming the entire time.”I clench my jaw, revulsion simmering at the pit of my stomach, and ignore him. My fingers go about pulling a leaf out of my hair. My entire body feels wrong and I will desperately need a bath to scrub away my regret-or attempt to anyway. The reality of the betrayal I have just committed begins to sink in and I have to bite down on my tongue to keep the tears at bay. I burn with self loathing and self hatred. It fills me up and threatens to shatter me. I walked into this. I asked for this. I agreed to this. I did this. I shake my head and move away. My legs ache and my body is sore, yet I try to ignore the pain. I pick up my fallen sword from feet away and contemplate burying the blade in my chest. Perhaps my death will cleanse my dishonor. The sun glints off the metal and I bite down on my lip this time. My lips are swollen and I know I will have a lot to account for when I get back to my encampment. My head suddenly aches from everything. “This will never happen again,” I whisper it to myself but of course he hears it. The snake that has tempted me into eating the apple, Jinhai, snorts to himself. He stands suddenly from his tree and stretches. His neck is red with bite marks, marks that match mine, and there’s scratches on his forearms. “We both know that’s a lie,” he tilts his neck sideways to crack it. I dig the sword into my hand and clench my fingers around the hilt until my knuckles turn white. “It’s not.”Another huff of laughter at the back of his throat. “You couldn’t stay away before and you won’t be able to stay away now. You will be back, little bird.”The idea to bury the sword in my body surfaces again and it seems more tempting this time. “I love him, not you.” I fling the sentence at him as if it would make a difference. As if the words will strike true and suddenly erase what has transpired between us. As if one phrase will suddenly send us back in time to a place where I did not hate myself and did not hurt the one person I cared about the most in life. Of course, the words fall flat. They reach Jinhai and disintegrate into nothing. The letters crumble like ash and he brushes them off with cold indifference. “You speak as if I care. I made it clear that I feel nothing for you. Your little Prince can have your heart, little bird, I just want your body.”At the mention of Iseul, I feel like vomiting. It is all I am to force the bile in my throat back down. My hands shake against the sword and I suddenly really need to leave. The woods seem to be closing up on me and a claustrophobia I have never felt before threatens to suffocate me. I spin around from him and face the way back to my encampment. My back serves as a wall between us, a wall he has already breached because I opened the gate, and I squeeze my eyes shut. If only time were a setting we could control. If only I could hit a button and send myself back in time. If only actions were words on paper you could drag an eraser through. If only…“This will never happen again,” I repeat. There’s no comment but I can feel the full extent of his stare on me. Jinhai’s gaze is amused, taunting, and I know he thinks of me a liar.The worst part is, I know I am one too. I trap my lip between my teeth and clench until it becomes painful. Shaking my head to keep from saying something else, I take a step forward and begin my walk of shame.
My walk of shame leads me to the camp Reiner has set up. Morning has casted its glow around us and people have begun to move about. My breath hitches when I spot Iseul to one side. He strings arrows on his bow when I approach. Upon seeing me, his face brightens and he comes forward. Affection shines in his gaze, a cold change from the lust that burned in Jinhai’s, and I have to remember how to breathe. A weird sense of panic fills me and I worry about the scarlet letter that I am sure has been scorched into my skin before Iseul throws an arm around me. “Hannah! You woke up early this morning,” he brushes a kiss on my cheek. Breathing suddenly becomes difficult and another wave of revulsion fills me. I plaster a smile on my face, something that feels impossible to do, and shake my head. “I wasn’t tired,” I murmur. My fingers brush a lock of his hair back-hair so similar to the one I had been tugging on hours before-and I suppress my shiver. A frown adorns Iseul’s features and he takes my hand in his. His fingers stroke my wrist where a dark mark is. Jinhai had held me down hard enough to have left an imprint on my skin. It is just another brand to ensure I do not forget what has transpired. As if my conscience would allow me to forget. “Are you hurt?” Concern shines in Iseul’s gaze and he scans me from head to toe. My clothing covers most of the marks and bruises, and I shiver with the realization that I am thankful for it. I tug absently at my collar and raise it higher with the paranoia that he will see something. I do not know whether it would be bad if he did. The false smile on my face strains just a little. “No, I was just practicing with my sword.”The lie falls flat in my ears, the bruises on my hands cannot be explained away with my excuse, but Iseul believes me. His smile softens again and he intertwines our fingers together. His lips brush across my knuckles and he nods in understanding. I clench my jaw so tightly I am worried my teeth will crack. An urge to spill my sins out fills me. I could tell him now, could bare myself to him, and beg for his forgiveness. I could be honest with him, take a weight off my shoulders, and deal with the punishment-But I am a coward. The words, ’I cheated on you. I’m sorry’, form on my tongue but won’t leave my mouth. The inside of my mouth feels like lead and I can’t get the phrase out. Thankfully, I never get the chance to gather my courage. Iseul gives a light tug to my hand and nods to where the other retainers are gathered. “We’re about to attack. Magnus’ forces haven’t spotted us yet, so we have the element of surprise on our hands. Do you want to have something to eat before we fight?”Food is an unwelcome concept now. If I consume anything, I will throw it back up. To devour something after being devoured feels terrible somehow. I push past it and shake my head. “No.”Iseul’s lips thin in worry, he mumbles something about me needing to eat, but he relents. I let him guide me to the retainers where war strategy is underway. The camp’s energy sings with the promise of battle. Our sneak attack will happen very soon, and a part of me wishes Jinhai would not survive it. Perhaps if he dies, my regret will die with him. Of course, I know this will not be the case.
Our sneak attack is another stalemate. We do not make any leeway against the Generals, but we also do not suffer heavy casualties. Our forces gather back after the remnants of the fight has disappeared, and we begin to plan our departure. Reiner has opted for us to stay at the Falke Inn for the next few days, and all of us have agreed. August’s family has welcomed us in and prepared rooms for each of us. A warm meal sits in front of us and a warm bed awaits us upstairs. I am sharing with Iseul, something he himself requested, and I’m not quite sure whether that’s a blessing or the beginnings of the divine punishment that awaits me. The soup scalds the inside of my mouth and feels wrong on my tongue. Every swallow is as heavy as lead. I haven’t felt alright since this morning. I swirl my spoon around my bowl. I’ve done something terrible, something I can never take back, and I don’t know what to do. I bear the regret and shame of it everywhere I go. This will be my punishment. Atlas was punished by carrying the weight of the world on his shoulders, and I will be punished by carrying the weight of my guilt. An arm slides around my waist and I turn to Iseul. There’s color to his cheeks now, the hints of fairy wine on his breath, and he presses his mouth to the corner of mine. “Are you well, my love?” His voice is full of warmth and affection. I suddenly feel very sick. My hands push my bowl away. “Fine,” I reply. I stiffen as Iseul presses closer. He’s being as affectionate as always, yet I feel wrong. My skin burns with the touch of another and I worry he’ll feel it. They say elves have a keen sense of instinct, and I hope this is not the case. “If you are tired, we can go rest.”Iseul peers into my face. His warm eyes are bursting with love and affection. I have to swallow down my bile again. Where once his gaze filled me with warmth, it now makes the guilt on my shoulders feel heavier. “That sounds nice,” I reply. I stand from my seat as if on autopilot and take his hand. He dismisses us from the crowd. Reiner waves us away and Lady Falke wishes us a goodnight. Iseul leads us into our shared bedroom. The bed has been made for us and a warm fireplace crackles in the quiet room. “This is nice,” I remark. My fingers trace the duvet idly and I pretend to be my usual self. Iseul wanders towards me and his arms wrap around my waist. Suggestion lines the edges of his face and his mouth quirks up into something intimate. I can almost feel his intentions through the thin layers of our clothes. “You feel tense,” he remarks and his hands go for my shoulders, “Do you want a massage?”My mouth presses tight. I move away from his embrace no longer feeling worthy of it. “No,” my refusal is light and I go about removing my armor. Iseul blinks in surprise but recovers. The smile is back on his face in an instant and he assists me with a particular strap on my side that gives me trouble. His deft fingers undo the many buckles on the metal and he sets it aside reverently. When I’m in my clothing, his fingers go for the hem of my shirt. I feel another wave of desire go through him and his gaze darkens just a bit. I can sense what he wants before he has a chance to back me into the bed. I freeze as his hands come around me once more and he kisses me. He tastes foreign. A clout has fallen over him and I cannot remember a time where my mouth was not tainted with someone else’s taste. A part of me, a very large part of me, no longer feels worthy of being with him. I have been marred by sin and earthly desire and I don’t have a right to take this. Iseul is something incredible that I no longer deserve. Perhaps that should be my atonement. Perhaps I should deny myself that which I love most. As his hands come to rest on my hair, I have a flashback to this morning. Jinhai’s own hands had knotted in my hair as harsh and blasphemous sounds had fallen out of his mouth. I jolt at the memory and give a push to Iseul. It is light but enough to stop him. Unlike the snake I had given myself to in the morning, Iseul is willing to respect me. Green eyes widen in surprise and his lips part. “Hannah?” Iseul frowns in surprise and worry. I turn away from him and wrap my arms around myself like a barrier. My voice comes out strained and I have to bite back the emotions threatening to boil out. “I’m tired tonight. Sorry,” I reply. I don’t wait for a response. Instead, I curl into the blankets on the bed and give him my back. The room is quiet as Iseul gathers his thoughts. I hold my breath and wait for the line of questioning. His worry is apparent even from my place. I have been odd all day, have pushed him off, and have gone to sleep fully clothed. He must be confused and hurt. The bed dips with Iseul’s weight and he settles in next to me. I feel his breath on the back of my neck-And it is like I can feel Jinhai’s breath at the back of my neck too. I can almost feel his hands holding me in place as he moved from behind me. I snap myself out of the memory with a painful bite to my tongue. My eyes squeeze shut with regret and guilt and lust. Iseul’s hand comes to rest over my waist and he brushes a kiss to my hair. He settles in next to me as he does every night and I feel the soft beat of his heart at my back. “Goodnight, Hannah.”He seemingly refuses to question me, some part of him willing to respect my privacy, and I hold my breath until it hurts my lungs. Once his breath begins to even out with sleep, I let it go slowly. It is bad enough to have betrayed the one person I love more than life, but it is another thing entirely to not regret it. For some terrible, dark, and twisted reason, I regret the betrayal more than the act of betrayal itself.
The sun’s rays cast warm light across Iseul’s face. His features are relaxed in sleep and the soft light steaming in through the window illuminates his white hair and makes it seem like a halo. My fingers twist through the strands idly and I take in every feature of his face. He looks peaceful now, rested in sleep, and I memorize everything my eyes can see. As the morning drags on, my guilt begins to subside. I feel it like a dull ache more than the nauseating throb it was yesterday. I do not know whether that is a good thing or a bad thing. My lips press into a thin line and I move my arms. My body is sore from more than just the battle. The ache reminds me of the terrible thing that I have done-And how much I enjoyed it. In the end, I had enjoyed it. Jinhai was right. I could pretend to lie until I was blue in the face, but I had enjoyed it. There was a thrill to doing something terrible, a high from being with someone forbidden, and I could already feel a part of me wanting more. Like an addict, I craved more. My body was a traitor that already ached for more. It was almost like a thirst I had to quench. Guilt tugged me one way, but lust yanked me another. I lean down and brush my lips across Iseul’s cheek. A kiss of Judas. My fingers stroke at his cheek where my mouth had stained him. I feel tainted, blasphemous somehow, yet dark desire is already enveloping me. It is a cruel embrace, and it is one I cannot resist. Perhaps Jinhai was right. Perhaps I would go back to him. After all, if I had done so once, I could do it again. The thing about betrayal is that it is so much easier the second time around. Upon doing it once, doing it again isn’t as bad. The guilt is ever present but it becomes an afterthought. My eyes close and I press myself closer to Iseul. His heart sounds in my ears and his arms wrap tighter around me in sleep. “I love you,” I whisper. It is not a lie. I do love him, more than anything in the world, but Jinhai was right. Iseul has my heart, but he has the rest of me. I have gifted myself to him, and despite my best instinct, I know I will do it again.
The second crow finds me days later. Like the first, it perches on a windowsill and holds its leg out with a letter. I glance around the inn to make sure that no one has seen it before accepting its message. Jinhai’s scrawl is messy, yet I can recognize it. ”The woods at midday. Do not make me wait.”I scowl and tuck the letter into my pants. It is tempting to throw it into the burning fireplace, but I know I will answer it anyway. I move my hand to scare the crow away and make my way back to my friends. Altea is regaling us with a story of something, magic sparks shining at her fingertips as she uses them to heighten her story, and she hardly notices me as I slip behind Iseul. I press a kiss to the side of his mouth and bend down to whisper in his ear. “I’m going to train in the woods. Is that alright?”Iseul glances at me and raises his drink to his lips. “Do you want me to accompany you?”“No,” I reply, “Just wait for me. I’ll only be an hour or two.”Iseul seems confused for a second before he nods. He gives me a kiss and tells me to be careful. I swallow down my conscience and wave goodbye at him.
Like before, Jinhai is awaiting me at the same clearing. He grins when he sees me, a repulsive sight, and kicks off his tree. “I see my crow found you,” he scans me from head to toe. I hate the lust that burns in his gaze, but, more specifically, I hate that I echo it. “What do you want?” I snap it out at him and toss the crumpled note at his feet. He pays it no mind and advances on me. He leans up so that I am only a breath away. One hand comes to rest on a tree behind me, pinning me in place. “You know why I called you here,” his gaze is dark. I do know why, and damn me I’ve stopped caring. Betrayal is so much easier the second time. I shiver and bite my tongue to keep from saying anything else. My body is already quaking like an earthquake. I am like an addict an inch away from her fix. “You enjoyed it the first time, so why not have it a second?” Jinhai murmurs. I grind my teeth together. I am already locked out of Heaven, so why not take the apple? If I am damned, let me at least enjoy my fall from grace. “He can never know about this,” I squeeze my eyes shut. My whisper is to myself more than to him. He hears it anyway. A harsh laugh sounds at the back of his throat. It echoes in the clearing and resounds in my head. One finger curls under my chin to tilt my head up while his other hand digs into my back pressing me close. “Who would tell him? I do not care enough,” Jinhai remarks. “I care.”My reply is feeble, pained, and the guilt hurts me. I could step back now, end things before they’ve begun, yet I can’t bring myself to do so. A terrible part of me craves Jinhai like cocaine, and I can’t bring myself to say no. My body hums with desire and my morales are already bleeding out of me. I open my mouth and a quiet breath leaves it as Jinhai moves his head to the side of my neck. He finds my pulse and bites down harshly on it. It so painful I have to wince and dig my nails into his arm. My mouth twists into revulsion and pleasure all at once. “If you cared enough, you wouldn’t be here.”I wince, bury his words before they can bury me, and move my head. My mouth crushes against his and I tug at his clothing to press him closer. A pleased sound leaves his throat. Like a hunter, he has already caught his prey. And like Eve, I have already locked myself out of Eden.
“A mosquito?” Iseul’s fingers trace the red blotch on my neck. I glance at my reflection in the mirror and bite the inside of my cheek. My hand cups the mark and I angle my hair to hide it from view. “Yeah, they’re bad out there.”I inch towards Iseul as he settles on the bed. He takes me in his arms and presses his head into my shoulder. I worry he will smell something on me, the remnants of his scent on my skin, but he just smiles. A soft kiss is pressed to my shoulder and he brushes his hands on my sides. “You should train at the inn with us then. August has some training dummies you can practice with,” Iseul murmurs. I shake my head and accept another kiss on my cheek. “I like the woods better.”A shrug and another kiss. “Do you want me to train with you? You once asked me to teach you archery.”“No, I want to practice by myself.”Iseul frowns for a second, almost hurt by the dismissal, and I distract him with another kiss. My hands push him down on the bed and I straddle him. His line of questioning is forgotten then and desire ignites in his eyes. I ignore the jolt of shame as I kiss down his neck. There was a time where I didn’t use sex as a weapon, but that time has fallen away like the last of my dignity. I kiss his jaw lightly and a low growl leaves his throat. “Are you sure you want this?” His finger strokes my cheek. I know I’ve confused him last night by rejecting him. I nod my head. “Positive. I do want this.”
I do want this.The realization comes at the same time I do. My vision goes white and I shove Jinhai off me. I suddenly feel very cold all over. “It’s getting late,” I protest. The cold air is frigid against my skin. Jinhai rolls his eyes. His mouth twists into something cold and he moves away. There’s jagged scratches on his back and I can feel his skin under my nails. “Your Prince will miss you,” his voice is sarcastic, taunting. I slip on my clothing and twist my fingers through my hair to fix it. My skin smells of him, my mouth tastes of him, and I know I’ll have to bathe before going to see Iseul. It’s been weeks now and I’m getting better at hiding. I grind my teeth together and watch as the moonlight illuminates a bruise in the shape of a handprint against my waist. Iseul will no doubt see it which means that I will have to explain it away somehow. “We should stop this,” I hiss. Another wave of self loathing crashes against me. I dig my nails into my palm. Jinhai grunts in amusement and watches me. The remnants of lust are on his gaze and he smirks. “You would not last the week.”I ignore him and turn away. My fingers fix my clothing, soothing out the wrinkles and dusting off the soil. I frown to myself. “I could.”I can’t.He’s like a drug. When I don’t have him, I want him. The things Jinhai does to my body are entirely sinful and damning, but I love them. I crave him and think of him often. “We both know that is a lie,” Jinhai rebuffs, “The night is growing darker, little bird. Your Prince will no doubt be missing his ‘loyal’ lover.”I roll my eyes at him, call him an obscenity under my breath, and slip away from him. Betrayal is so much easier the hundredth time.
My breath comes out in shallow pants and I press myself closer. My pleasure peaks with a final roll of his hips and my head lolls back. I ride out my high as Iseul begins to shiver. My hands knot in his hair as he moves forward. I can feel him growing closer by the second. My body is aflame with desire. “Ji-Iseul,” I gasp out. I manage to correct myself at the last second and my stomach feels cold. I worry he will know of the horrible mistake I was about to make, but Iseul is lost to me. My name leaves his lips in a final groan and he pulls out of me. He settles next to me and takes a moment to catch his breath. I grind my teeth together and squeeze my eyes shut. That was close. Too close. I shiver and draw myself inwards. My arms wrap around myself and I bury my head into the pillows. How long ago did I start imagining Iseul as someone else?
“How long ago can you keep this up? The running around, the secrecy, the guilt?” Jinhai’s voice is cold. I press my lips together and dig my nails into my palms. “Shut up.”“It is marvelously entertaining, little bird. You carry such a heavy cloud of guilt around everywhere you go. Tell me, has your Prince begun to suspect?” He rests his head on his hand and peers at me. His dark eyes are glinting with malicious amusement. I’m a game to him, an entertainment. Asides from the lust I satisfy, I also quench his boredom. Seeing me run around trying to hide my sins is as satisfying to him as my body. I turn away from him and run my hands through my hair. “He doesn’t suspect me.”
He suspects me.Iseul’s features twist in a frown as August disarms me. My sword goes skidding from my grasp and lands at Saerys’ feet. Reiner claps his hands. “Nice try, Hannah, but you need to get more adjusted to your sword.”I let myself be hauled to my feet by August. My hands shake the dirt from my clothes and I wander back to Iseul as August gets ready to spar with Altea. It shouldn’t have been that easy to disarm me, not if I’ve been practicing by myself for months. “August is good,” I flex my arm at Iseul and plaster a fake smile on my face. “Do not be upset with me, my love, but I have not seen much of an improvement from these past few months. Have you been training hard?” Iseul tilts his head. There’s heavy sparks of doubt on his eyes. Fear gnaws at my stomach and I shrug. “I have been, but August is just that good.”He doesn’t believe me. Suspicion has taken hold of Iseul and his mind is already whirring with thoughts. I can see him beginning to doubt me. There’s a pain in his eyes. He doesn’t want to not believe me, but he can’t deny what his own instincts are telling him. He knows, a part of him knows, that things aren’t adding up. I shudder. “Perhaps I should train with you?” Iseul suggests. “No,” the word leaves my lips harshly. He recoils slightly and I clench my hands around my sword. “I like individual training.”Iseul’s lips thin again. There’s a heavy hurt in his gaze and a desperation there too. His hand reaches for mine and he holds it tightly. He wants to believe me so badly. He aches for any excuse I can give him. He suspects me but he is willing to accept a lie from me if only I will give one to him. I bite my lip. “I’ll train harder from now on.”My mouth offers him a quick peck. He returns it but the suspicion won’t leave his eyes. “Alright. I trust you, Hannah.”There’s a hidden depth to his words that nearly breaks me then and there. I return his second kiss and try to bury the guilt. I trust you, Hannah, but please don’t take advantage of that trust.
I am certain I will break things off with Jinhai. I make the decision in my mind the next night-Then promptly forget it once Jinhai begins to move. My body is lost to ecstasy and thoughts fall away. It is a full hour before I can begin to gather myself. Once I do, I regain my breath and run a hand through my hair. My heart is still racing and my skin is sensitive from my release. I slip my shirt on again and bite my nail. “I hate this,” I squeeze my eyes shut. “That is not what your screams say, little bird,” Jinhai snorts. He peers at me with a cruel grin. He likes to see me eaten by guilt, gets off on it, and I scowl. “I love him.”“I do not care. He can have your heart, I just want-““My body, I know.” I shake my head and grind my teeth together. Guilt gnaws at me and tonight feels wrong somehow. The atmosphere suffocates me and I wonder how I’ve been doing this for so long without going insane. Jinhai moves closer and gives a harsh tug on my hair. When I gasp, he swallows the noise and bites down on my lip. My hand automatically goes for his own hair where I knot my fingers in the strands. There’s a brief fight for dominance which I lose. He stakes his claim on me and withdraws once my lips are swollen. His finger goes to my neck where his hands have left a bruise. “Admit it. You enjoy me. I am better in bed than your Prince.”I shiver with desire. His voice is low and gruff and I feel excitement buzzing under my skin. “I love Iseul,” I reply. “And I do not love you, so it hardly matters. I just care about what you feel physically. You enjoy being with me, no?” Jinhai moves my hand down to the front of his pants. There’s a hardness there that makes me shiver with want. I close my eyes. “Jinhai…” I hiss his name in a warning. He ignores it and presses closer. “Admit it.”Now I’m the one with the warning. He wants to hear me say it out loud. Damn me, I shiver. I hesitate before keeping my eyes closed. My hand begins to move on him and he grunts a noise of pleasure. “What do you want me to say?” I whisper it against his mouth. “The truth.”With my eyes still closed, I nod. “You are better than him. I do want you,” I repeat it obediently. Now, there’s no twist of guilt. Perhaps I have fallen as low as I can then. “Happy?”Jinhai lets out a cruel laugh. He moves his face away from mine and raises his voice. His mouth is in a cruel smirk and his eyes glint with malice. “Oh I am very happy although I can’t say the same for our guest.”My blood runs cold and my heart nearly stops. Guest?I spin around in time to see Iseul. His mouth is wide with shock, eyes dark with pain, and he backs away. Cold fear and guilt wash over me. I move away from Jinhai and stand suddenly. My own body feels heavy. Iseul’s heartache is apparent in his next words. His voice is hardly above a whisper and there’s agony in his tone. “Hannah?”
20 notes · View notes
dragbunart · 7 years
Text
If You Ever Come Back Chapter Three
Chapter 3: In Little Ways Everything Changes
 Pidge yawned and got out of bed, thinking of what she should do for the day.
Lotor has some diplomatic things to handle he’s been avoiding since he got back… I should probably let the others know I’m not dead and work on Green, she probably misses me.
       She looked for clothes to wear. She opted for a baggy t-shirt, probably one if Lotor’s sleep shirts he never wore, a pair of shorts, and a pair of house slippers. She brushed her teeth and thought about what else she should do while she waited for Lotor to get back.
       Eat something probably… I could work on some code… Probably should train, never know when we’ll need Voltron.
       She caught a glimpse of herself in the mirror she blushed. The shirt didn’t really hide the bite marks or hickie’s on her neck. She looked down at her legs. Luckily the shorts hid the ones on her thighs. She sighed.
       “I should probably talk to Lotor about that.” She mumbled. They didn’t hurt, but Pidge didn’t exactly want to show her friends what she had been doing the past few days. She also didn’t want to cover them up because she knew they would assume the worse. She sighed and walked over to the door.
       She pressed her hand on the panel.
Nothing
       She tried again.
Nothing.
“What’s going on?” She tried once more.
It prompted her to input her password, which it would only do if it didn’t recognize her print or DNA signature. She raised an eyebrow and did so anyway.
Incorrect.
       She started to grow worried, but tried again, maybe she misspelled it.
Incorrect.
       She tried once more slowly hoping she was just rushing before and hitting an incorrect key.
Incorrect: try again in one Varga.
       Pidge’s eyes went wide with panic. She couldn’t even access the database from this room. Lotor had borrowed her laptop for the meeting he was at.
       “HELP!” She started pounding on the door with her fist. “ALLURA! CORAN! ANYONE!”
       After a Varga of trying Keith was the one to save her. Pidge hugged the Galra in relief.
       “Are you alright?” Keith asked looking for any noticeable injuries and blushing when he saw the hickie’s and bite marks.
       “The castle locked me in my room.” Pidge noticed Keith’s gaze on her neck. “Um… Please tell me I don’t need to explain those because that’s going to get awkward.”        “So, the castle just locked you in your room?” Keith asked changing the subject.
       “Yeah, first it wouldn’t recognize me, then it wouldn’t accept my password and locked me in. And I couldn’t check it out because Lotor has my laptop.” Keith walked over to the control panel and accessed the database.
       “That’s weird, someone deleted you from the database.”
       “How? And why me?” Keith stayed silent. “Keith? You know something don’t you?”
       “It could have been the group behind… What happened at the wedding…”
Silence. The color left Pidge’s face.
       “Th-they were aiming for me… Oh, my crow…” Keith caught Pidge as she slid to the ground. “I should’ve had been the one who got shot.”
       “Don’t say that Lotor would’ve been heartbroken if you had died.” Keith tried rubbing the smaller Paladin’s back to comfort her.
       “Lotor got hurt because of me.”
       “No, he chose to take the shot to make sure you’d be safe.”
       “Keith, what if they do it again? We know they can get into the castle! Nobody’s going to be safe!”
“Pidge! Keith, what happened?” Shiro was the first to find them.
       “I don’t know how, but the group from the wedding somehow hacked into the castle, they locked Pidge into her room.”
       “Come on, let’s get you somewhere safe. I’ll talk to Coran and Hunk about sweeping the castle for spies and hackers.”
       “I’ll take her to Green’s hanger,” Keith said helping Pidge up. She kept an arm around Pidge to keep the smaller girl up. “Pidge, can you speak? Ramble if you need to, but I need to know you’re alright.” Pidge nodded and started rambling on about why she referred to Lotor as ‘Legolas’ occasionally. Keith listened and commented on how fitting it was.
       When they got to Green’s hanger Pidge was speechless.
       “Green! Are you ok, girl?” Pidge ran over to the ship. The entire hanger was trashed. Green was tied down by electric ropes. Green started to rumble in response. “Who did this to you?”
       “That would be me, love. I came to check on her for you, and she started freaking out.” Lotor explained. Pidge crossed her arms. “I had to tie her down to stop her from destroying the castle.”
       “I think I’ll be leaving now,” Keith said exiting. Lotor nodded and let him leave before turning his attention to Pidge.
       “I think she sensed I was panicking,” Pidge said. “And you can’t just tie her down, she has feelings!”
       “I understand that, but why were you panicking?” He walked up to his wife and cupped her face. Pidge looked away from him silently. “Katie? Did something happen? Are you alright?”        “I got locked into our room, the castle wouldn’t let me out. We think someone people from the group at the wedding got in and deleted my data. I was stuck for a good hour until Keith came by.” Lotor wrapped her up in a hug.
       “That’s horrifying!” He held her to his chest. Once he was sure she wasn’t looking he smirked.
       “I’m fine though, just a bit paranoid and jumpy.” Lotor regained his worried expression and tilted her face up at him.
       “You have reason to be. You almost died, Kitten.” Lotor gently pet Pidge’s hair, holding her to his chest. “You’ve been through so much.”
       “I’m fine… How did your meeting go?”
       “That’s actually what I wanted to talk to you about… They are demanding that I return to the main fleet to govern my people.”
       “I mean that makes sense.” Lotor sat Pidge down on one of Green’s paws. “I don’t want to be far from you right now, though.”
       “You didn’t let me finish.”
       “Sorry.”
       “They are also pushing me to produce an heir, especially since I’m married…”
       “That’s gonna be pretty hard if your there and I’m here.”
       “I know you love being part of Voltron, but it hasn’t been needed in years. Don’t you think it’s time to settle down? More than marriage. Our child is going to need stability, but I don’t want either of us to miss out on any part of it.” He rested his hand on her stomach.
       “We don’t even know if I’m pregnant… I mean we didn’t take any preventive measures to stop a pregnancy, but it’s highly unlikely to get pregnant on our first try especially given that we’re different species, then again your parents were, and Alteans have a similar biology to humans…”
       “I’d love to hear more, but my point still stands: we’re going to have a child eventually. Voltron isn’t needed anymore. And I don’t want to be too far from you in case something like what just happened, happens. However, my people need me.” Pidge understood what he was asking. Lotor grabbed her hands and brought them to his lips. “I understand you’ll need time to think, but it would make me very happy to enter our new home with you.” Lotor gave her one last kiss on the cheek before he left.
       “What do I do, Green?”
4 notes · View notes
porchenclose10019 · 7 years
Text
Why doesn’t Harvard want to talk about its mystery Microsoft Azure project?
A Google search for a now-deleted Github page provides just enough information on a quiet collaboration between Harvard and Microsoft.
Microsoft Azure appears to have scored a high-profile customer: Harvard University’s prestigious CS50 computer science class, not that anybody wants to talk about it.
Harvard computer science professor David Malan. (By Chengfifty – Own work, CC BY-SA 4.0)
A now-deleted web page on Microsoft’s Github account, originally posted in April, outlined a recent collaboration effort between Microsoft’s Azure team and an unnamed “major US research university.” The project deployed to Azure some internal applications that were previously running on Amazon Web Services and the school’s hardware, with help from Github and Codeship.
Certainly, lots of major U.S. research universities are working on modern development practices and cloud computing, but when the name of a famous computer science class is included in the URL — CS50.html — it’s not that hard to figure out who was being talked about.
CS50 is an introductory level computer science class at Harvard that has hosted guest lecturers such as Mark Zuckerberg, a Harvard dropout who nonetheless managed to make a decent living for himself. Its lead professor, David Malan, is a well-known speaker who actually filed for a trademark on “CS50,” causing a stir in Cambridge last year.
After GeekWire emailed him Monday about the Github page describing the collaboration, Malan wrote, “We’re actually still on AWS, though most every summer we do tend to re-evaluate our apps’ architecture for the coming year, with AWS, Azure, Google, et al. always among the candidates. So no plans yet, but happy to reach out toward summer’s end if we’ve made any decisions!”
Microsoft’s Github post was a bit more definitive about the use of Azure — saying, for example:
The staff want the ability to expand the class without expanding IT infrastructure. They want to scale their current container environment to the cloud so they can grow without acquiring and laying down significant additional hardware or upfront capital. They also have applications currently running in AWS but want to reduce lock-in and risk associated with having only one provider. …
This project is a success. It streamlined the university’s deployment process and provided Codeship users with a well-documented solution to integrate Azure into their pipeline. By keeping detailed records of the steps taken to achieve our goals, Codeship was easily able to create new documentation on their site so that less work will need to be done in the future for any users wanting to use the same DevOps toolchain to automate their processes.
At some point after that email exchange Monday afternoon, the Github page was deleted, but the URL remains. And Google’s cache revealed the whole thing, excerpts of which you can read at the bottom of this post.
On Tuesday, Malan said he was out of the office, and referred inquiries to Senior Preceptor Doug Lloyd, who repeatedly called the Github post “overzealous” in its account of the work done between Harvard and Microsoft. However, Lloyd also said that he’s not involved in the day-to-day development process, and was not part of any discussions between Harvard and Microsoft.
Microsoft declined to comment in response to our inquiry.
It’s not entirely clear why Harvard would want to keep the project with Microsoft under wraps; it seems like a better topic of discussion than the widespread cheating scandal just uncovered in CS50. Sometimes companies and organizations have a policy of not talking about the tech vendors they use, but Malan and CS50 have been quite active on the conference circuit, speaking at DockerCon and AWS re:Invent last year.
Here are excerpts from the now-deleted post (the whole thing was over 3,000 words long):
How a major US research university used Azure and Codeship to apply CI/CD to pipeline Apr 14, 2017
A major US research university partnered with Microsoft to learn and deploy Microsoft Azure infrastructure, Web Apps, and DevOps best practices to better address their need to quickly, easily, and consistently onboard classroom infrastructure apps to Azure Cloud Services. This included migrating existing apps running on local hardware to the cloud.
The project took place over the course of three weeks with the premise of standing up all infrastructure needed in Azure, and completely automating everything so that all applications could simply be plugged into a GitHub repo to deploy. In the professor’s words, “I need you to get GitHub, Codeship, and Azure working together, and wire it all up.”
Customer profile This US university is world-class, well known for its research and its alumni. For now, they would prefer to remain anonymous, so this document will refer to them as “the university.”
One of their most attended courses is an introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development.
The class provides more than 40 different applications and services for their students. Some are hosted on-premises while others are offered on the Amazon Web Services (AWS) Cloud platform. A diverse selection of languages is used to deliver applications and services, so the class can use their own apps as real time examples of the principles they teach.
Problem statement The staff want the ability to expand the class without expanding IT infrastructure. They want to scale their current container environment to the cloud so they can grow without acquiring and laying down significant additional hardware or upfront capital. They also have applications currently running in AWS but want to reduce lock-in and risk associated with having only one provider.
The project will be documented so additional TAs could be brought in with minimal training required. The university would like us to help them stand up a single simple app that they will then use as a base for porting their other applications. The deployment should be able to be done by deploying to Azure (any language) including CI/CD. The professor prefers Codeship for CI/CD but it was not required. Using GitHub for a code repository was a requirement.
The professor is already very familiar with DevOps tools and practices and knows how to apply them, which is why he wanted to engage Microsoft in this project (he did not care to share his current processes externally). To walk through the application development pipeline, we simply laid out what a fully optimized environment would look like. This gave the professor a great teaching tool for his TAs to create successful applications with the least amount of waste, lead time, and processing time. In this educational setting where there are no full-time employees working on code, there could be much waste and lead/lag time as TAs work through schedules. In the new, optimized environment, the individual TAs could work anytime they have time, which is often almost daily.
The project we defined and delivered was exactly what they were looking for.
It would be several months before the staff could put the new process in production. It is unfeasible to make major changes in the middle of a class this size, so full deployment and migration will wait until summer. After the solution is fully deployed, limitations on deploying apps and services in the middle of a class term will be minimized and in most cases even eliminated. This will offer tremendous value to the staff and the university. The professor was pleased with the process and practices we put together and delivered. They were also happy to have an easy migration path to Azure from AWS. They cannot start these moves right now because class is in session, but they will be using it extensively in the summer.
Solution, steps, and delivery
The professor opted to have Microsoft do all the work instead of having his TAs directly involved. He wanted us to teach him and his team how it all works through documentation. With this approach, the staff could vet out the documentation as they went through the first deployment. It was a perfect solution for an environment where your development staff turns over regularly as TAs advance and move on. This was also a great opportunity for Microsoft engineers working on this project to test their coding skills and their documentation skills in a single project. We found more great value by sharing documentation to the masses through open source and through a direct collaboration with Codeship.
The class had already converted some of their apps from on-premises to AWS and found some challenges and limitations in that solution. One such example was when using GitHub, Codeship, and AWS they got apps working but they observed quirks (such as “One container per VM”). Our mission was to do it right, without any of the “quirks” or limitations. This would allow the class to spend less money for their applications and provide a simple way to migrate between Azure and AWS.
Conclusion
This project is a success. It streamlined the university’s deployment process and provided Codeship users with a well-documented solution to integrate Azure into their pipeline. By keeping detailed records of the steps taken to achieve our goals, Codeship was easily able to create new documentation on their site so that less work will need to be done in the future for any users wanting to use the same DevOps toolchain to automate their processes.
Official Codeship Documentation
This project provided the university the ability to “move forward” in their DevOps journey by showing them that even though they were already applying DevOps practices (using containers), there was much value in drilling into those practices, looking for waste, and filling the holes that contributed to delays and waste. They now know that taking a quick look at what they are doing is not enough. It is much more important to look at what is possible by evaluating where waste exists and looking for ways to eliminate it. Simply “applying DevOps practices” is not enough. We showed how waste comes in many forms. We found and solved problems for waste in terms of time for new TAs to ramp up, applying consistency to current practices, and saving real money by optimizing deployment methods and tools.
A solution was delivered leveraging CI/CD through Codeship, Docker, Azure Container Service, and Linux VMs. These technologies and processes will save time and money.
Challenges and solutions
The following are the challenges we faced and how we solved them:
TAs time to ramp up was weeks or months; now it’s a few hours.
Running a single VM for each container was wasteful; now many containers can be run on a single VM.
Managing the infrastructure (VM) was challenging; running Azure Container Service completely eliminated this challenge.
Future enhancements to this project can be achieved by opening up the entire development pipeline to scrutiny. The university now knows how to look deeper into current processes to achieve better results. Next they will dive deeper into expanding the monitoring and alerting capabilities of the system running on Azure.
from DIYS http://ift.tt/2pw1S4q
0 notes
exfrenchdorsl4p0a1 · 7 years
Text
Why doesn’t Harvard want to talk about its mystery Microsoft Azure project?
A Google search for a now-deleted Github page provides just enough information on a quiet collaboration between Harvard and Microsoft.
Microsoft Azure appears to have scored a high-profile customer: Harvard University’s prestigious CS50 computer science class, not that anybody wants to talk about it.
Harvard computer science professor David Malan. (By Chengfifty – Own work, CC BY-SA 4.0)
A now-deleted web page on Microsoft’s Github account, originally posted in April, outlined a recent collaboration effort between Microsoft’s Azure team and an unnamed “major US research university.” The project deployed to Azure some internal applications that were previously running on Amazon Web Services and the school’s hardware, with help from Github and Codeship.
Certainly, lots of major U.S. research universities are working on modern development practices and cloud computing, but when the name of a famous computer science class is included in the URL — CS50.html — it’s not that hard to figure out who was being talked about.
CS50 is an introductory level computer science class at Harvard that has hosted guest lecturers such as Mark Zuckerberg, a Harvard dropout who nonetheless managed to make a decent living for himself. Its lead professor, David Malan, is a well-known speaker who actually filed for a trademark on “CS50,” causing a stir in Cambridge last year.
After GeekWire emailed him Monday about the Github page describing the collaboration, Malan wrote, “We’re actually still on AWS, though most every summer we do tend to re-evaluate our apps’ architecture for the coming year, with AWS, Azure, Google, et al. always among the candidates. So no plans yet, but happy to reach out toward summer’s end if we’ve made any decisions!”
Microsoft’s Github post was a bit more definitive about the use of Azure — saying, for example:
The staff want the ability to expand the class without expanding IT infrastructure. They want to scale their current container environment to the cloud so they can grow without acquiring and laying down significant additional hardware or upfront capital. They also have applications currently running in AWS but want to reduce lock-in and risk associated with having only one provider. …
This project is a success. It streamlined the university’s deployment process and provided Codeship users with a well-documented solution to integrate Azure into their pipeline. By keeping detailed records of the steps taken to achieve our goals, Codeship was easily able to create new documentation on their site so that less work will need to be done in the future for any users wanting to use the same DevOps toolchain to automate their processes.
At some point after that email exchange Monday afternoon, the Github page was deleted, but the URL remains. And Google’s cache revealed the whole thing, excerpts of which you can read at the bottom of this post.
On Tuesday, Malan said he was out of the office, and referred inquiries to Senior Preceptor Doug Lloyd, who repeatedly called the Github post “overzealous” in its account of the work done between Harvard and Microsoft. However, Lloyd also said that he’s not involved in the day-to-day development process, and was not part of any discussions between Harvard and Microsoft.
Microsoft declined to comment in response to our inquiry.
It’s not entirely clear why Harvard would want to keep the project with Microsoft under wraps; it seems like a better topic of discussion than the widespread cheating scandal just uncovered in CS50. Sometimes companies and organizations have a policy of not talking about the tech vendors they use, but Malan and CS50 have been quite active on the conference circuit, speaking at DockerCon and AWS re:Invent last year.
Here are excerpts from the now-deleted post (the whole thing was over 3,000 words long):
How a major US research university used Azure and Codeship to apply CI/CD to pipeline Apr 14, 2017
A major US research university partnered with Microsoft to learn and deploy Microsoft Azure infrastructure, Web Apps, and DevOps best practices to better address their need to quickly, easily, and consistently onboard classroom infrastructure apps to Azure Cloud Services. This included migrating existing apps running on local hardware to the cloud.
The project took place over the course of three weeks with the premise of standing up all infrastructure needed in Azure, and completely automating everything so that all applications could simply be plugged into a GitHub repo to deploy. In the professor’s words, “I need you to get GitHub, Codeship, and Azure working together, and wire it all up.”
Customer profile This US university is world-class, well known for its research and its alumni. For now, they would prefer to remain anonymous, so this document will refer to them as “the university.”
One of their most attended courses is an introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development.
The class provides more than 40 different applications and services for their students. Some are hosted on-premises while others are offered on the Amazon Web Services (AWS) Cloud platform. A diverse selection of languages is used to deliver applications and services, so the class can use their own apps as real time examples of the principles they teach.
Problem statement The staff want the ability to expand the class without expanding IT infrastructure. They want to scale their current container environment to the cloud so they can grow without acquiring and laying down significant additional hardware or upfront capital. They also have applications currently running in AWS but want to reduce lock-in and risk associated with having only one provider.
The project will be documented so additional TAs could be brought in with minimal training required. The university would like us to help them stand up a single simple app that they will then use as a base for porting their other applications. The deployment should be able to be done by deploying to Azure (any language) including CI/CD. The professor prefers Codeship for CI/CD but it was not required. Using GitHub for a code repository was a requirement.
The professor is already very familiar with DevOps tools and practices and knows how to apply them, which is why he wanted to engage Microsoft in this project (he did not care to share his current processes externally). To walk through the application development pipeline, we simply laid out what a fully optimized environment would look like. This gave the professor a great teaching tool for his TAs to create successful applications with the least amount of waste, lead time, and processing time. In this educational setting where there are no full-time employees working on code, there could be much waste and lead/lag time as TAs work through schedules. In the new, optimized environment, the individual TAs could work anytime they have time, which is often almost daily.
The project we defined and delivered was exactly what they were looking for.
It would be several months before the staff could put the new process in production. It is unfeasible to make major changes in the middle of a class this size, so full deployment and migration will wait until summer. After the solution is fully deployed, limitations on deploying apps and services in the middle of a class term will be minimized and in most cases even eliminated. This will offer tremendous value to the staff and the university. The professor was pleased with the process and practices we put together and delivered. They were also happy to have an easy migration path to Azure from AWS. They cannot start these moves right now because class is in session, but they will be using it extensively in the summer.
Solution, steps, and delivery
The professor opted to have Microsoft do all the work instead of having his TAs directly involved. He wanted us to teach him and his team how it all works through documentation. With this approach, the staff could vet out the documentation as they went through the first deployment. It was a perfect solution for an environment where your development staff turns over regularly as TAs advance and move on. This was also a great opportunity for Microsoft engineers working on this project to test their coding skills and their documentation skills in a single project. We found more great value by sharing documentation to the masses through open source and through a direct collaboration with Codeship.
The class had already converted some of their apps from on-premises to AWS and found some challenges and limitations in that solution. One such example was when using GitHub, Codeship, and AWS they got apps working but they observed quirks (such as “One container per VM”). Our mission was to do it right, without any of the “quirks” or limitations. This would allow the class to spend less money for their applications and provide a simple way to migrate between Azure and AWS.
Conclusion
This project is a success. It streamlined the university’s deployment process and provided Codeship users with a well-documented solution to integrate Azure into their pipeline. By keeping detailed records of the steps taken to achieve our goals, Codeship was easily able to create new documentation on their site so that less work will need to be done in the future for any users wanting to use the same DevOps toolchain to automate their processes.
Official Codeship Documentation
This project provided the university the ability to “move forward” in their DevOps journey by showing them that even though they were already applying DevOps practices (using containers), there was much value in drilling into those practices, looking for waste, and filling the holes that contributed to delays and waste. They now know that taking a quick look at what they are doing is not enough. It is much more important to look at what is possible by evaluating where waste exists and looking for ways to eliminate it. Simply “applying DevOps practices” is not enough. We showed how waste comes in many forms. We found and solved problems for waste in terms of time for new TAs to ramp up, applying consistency to current practices, and saving real money by optimizing deployment methods and tools.
A solution was delivered leveraging CI/CD through Codeship, Docker, Azure Container Service, and Linux VMs. These technologies and processes will save time and money.
Challenges and solutions
The following are the challenges we faced and how we solved them:
TAs time to ramp up was weeks or months; now it’s a few hours.
Running a single VM for each container was wasteful; now many containers can be run on a single VM.
Managing the infrastructure (VM) was challenging; running Azure Container Service completely eliminated this challenge.
Future enhancements to this project can be achieved by opening up the entire development pipeline to scrutiny. The university now knows how to look deeper into current processes to achieve better results. Next they will dive deeper into expanding the monitoring and alerting capabilities of the system running on Azure.
from DIYS http://ift.tt/2pw1S4q
0 notes
repwinpril9y0a1 · 7 years
Text
Why doesn’t Harvard want to talk about its mystery Microsoft Azure project?
A Google search for a now-deleted Github page provides just enough information on a quiet collaboration between Harvard and Microsoft.
Microsoft Azure appears to have scored a high-profile customer: Harvard University’s prestigious CS50 computer science class, not that anybody wants to talk about it.
Harvard computer science professor David Malan. (By Chengfifty – Own work, CC BY-SA 4.0)
A now-deleted web page on Microsoft’s Github account, originally posted in April, outlined a recent collaboration effort between Microsoft’s Azure team and an unnamed “major US research university.” The project deployed to Azure some internal applications that were previously running on Amazon Web Services and the school’s hardware, with help from Github and Codeship.
Certainly, lots of major U.S. research universities are working on modern development practices and cloud computing, but when the name of a famous computer science class is included in the URL — CS50.html — it’s not that hard to figure out who was being talked about.
CS50 is an introductory level computer science class at Harvard that has hosted guest lecturers such as Mark Zuckerberg, a Harvard dropout who nonetheless managed to make a decent living for himself. Its lead professor, David Malan, is a well-known speaker who actually filed for a trademark on “CS50,” causing a stir in Cambridge last year.
After GeekWire emailed him Monday about the Github page describing the collaboration, Malan wrote, “We’re actually still on AWS, though most every summer we do tend to re-evaluate our apps’ architecture for the coming year, with AWS, Azure, Google, et al. always among the candidates. So no plans yet, but happy to reach out toward summer’s end if we’ve made any decisions!”
Microsoft’s Github post was a bit more definitive about the use of Azure — saying, for example:
The staff want the ability to expand the class without expanding IT infrastructure. They want to scale their current container environment to the cloud so they can grow without acquiring and laying down significant additional hardware or upfront capital. They also have applications currently running in AWS but want to reduce lock-in and risk associated with having only one provider. …
This project is a success. It streamlined the university’s deployment process and provided Codeship users with a well-documented solution to integrate Azure into their pipeline. By keeping detailed records of the steps taken to achieve our goals, Codeship was easily able to create new documentation on their site so that less work will need to be done in the future for any users wanting to use the same DevOps toolchain to automate their processes.
At some point after that email exchange Monday afternoon, the Github page was deleted, but the URL remains. And Google’s cache revealed the whole thing, excerpts of which you can read at the bottom of this post.
On Tuesday, Malan said he was out of the office, and referred inquiries to Senior Preceptor Doug Lloyd, who repeatedly called the Github post “overzealous” in its account of the work done between Harvard and Microsoft. However, Lloyd also said that he’s not involved in the day-to-day development process, and was not part of any discussions between Harvard and Microsoft.
Microsoft declined to comment in response to our inquiry.
It’s not entirely clear why Harvard would want to keep the project with Microsoft under wraps; it seems like a better topic of discussion than the widespread cheating scandal just uncovered in CS50. Sometimes companies and organizations have a policy of not talking about the tech vendors they use, but Malan and CS50 have been quite active on the conference circuit, speaking at DockerCon and AWS re:Invent last year.
Here are excerpts from the now-deleted post (the whole thing was over 3,000 words long):
How a major US research university used Azure and Codeship to apply CI/CD to pipeline Apr 14, 2017
A major US research university partnered with Microsoft to learn and deploy Microsoft Azure infrastructure, Web Apps, and DevOps best practices to better address their need to quickly, easily, and consistently onboard classroom infrastructure apps to Azure Cloud Services. This included migrating existing apps running on local hardware to the cloud.
The project took place over the course of three weeks with the premise of standing up all infrastructure needed in Azure, and completely automating everything so that all applications could simply be plugged into a GitHub repo to deploy. In the professor’s words, “I need you to get GitHub, Codeship, and Azure working together, and wire it all up.”
Customer profile This US university is world-class, well known for its research and its alumni. For now, they would prefer to remain anonymous, so this document will refer to them as “the university.”
One of their most attended courses is an introduction to the intellectual enterprises of computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development.
The class provides more than 40 different applications and services for their students. Some are hosted on-premises while others are offered on the Amazon Web Services (AWS) Cloud platform. A diverse selection of languages is used to deliver applications and services, so the class can use their own apps as real time examples of the principles they teach.
Problem statement The staff want the ability to expand the class without expanding IT infrastructure. They want to scale their current container environment to the cloud so they can grow without acquiring and laying down significant additional hardware or upfront capital. They also have applications currently running in AWS but want to reduce lock-in and risk associated with having only one provider.
The project will be documented so additional TAs could be brought in with minimal training required. The university would like us to help them stand up a single simple app that they will then use as a base for porting their other applications. The deployment should be able to be done by deploying to Azure (any language) including CI/CD. The professor prefers Codeship for CI/CD but it was not required. Using GitHub for a code repository was a requirement.
The professor is already very familiar with DevOps tools and practices and knows how to apply them, which is why he wanted to engage Microsoft in this project (he did not care to share his current processes externally). To walk through the application development pipeline, we simply laid out what a fully optimized environment would look like. This gave the professor a great teaching tool for his TAs to create successful applications with the least amount of waste, lead time, and processing time. In this educational setting where there are no full-time employees working on code, there could be much waste and lead/lag time as TAs work through schedules. In the new, optimized environment, the individual TAs could work anytime they have time, which is often almost daily.
The project we defined and delivered was exactly what they were looking for.
It would be several months before the staff could put the new process in production. It is unfeasible to make major changes in the middle of a class this size, so full deployment and migration will wait until summer. After the solution is fully deployed, limitations on deploying apps and services in the middle of a class term will be minimized and in most cases even eliminated. This will offer tremendous value to the staff and the university. The professor was pleased with the process and practices we put together and delivered. They were also happy to have an easy migration path to Azure from AWS. They cannot start these moves right now because class is in session, but they will be using it extensively in the summer.
Solution, steps, and delivery
The professor opted to have Microsoft do all the work instead of having his TAs directly involved. He wanted us to teach him and his team how it all works through documentation. With this approach, the staff could vet out the documentation as they went through the first deployment. It was a perfect solution for an environment where your development staff turns over regularly as TAs advance and move on. This was also a great opportunity for Microsoft engineers working on this project to test their coding skills and their documentation skills in a single project. We found more great value by sharing documentation to the masses through open source and through a direct collaboration with Codeship.
The class had already converted some of their apps from on-premises to AWS and found some challenges and limitations in that solution. One such example was when using GitHub, Codeship, and AWS they got apps working but they observed quirks (such as “One container per VM”). Our mission was to do it right, without any of the “quirks” or limitations. This would allow the class to spend less money for their applications and provide a simple way to migrate between Azure and AWS.
Conclusion
This project is a success. It streamlined the university’s deployment process and provided Codeship users with a well-documented solution to integrate Azure into their pipeline. By keeping detailed records of the steps taken to achieve our goals, Codeship was easily able to create new documentation on their site so that less work will need to be done in the future for any users wanting to use the same DevOps toolchain to automate their processes.
Official Codeship Documentation
This project provided the university the ability to “move forward” in their DevOps journey by showing them that even though they were already applying DevOps practices (using containers), there was much value in drilling into those practices, looking for waste, and filling the holes that contributed to delays and waste. They now know that taking a quick look at what they are doing is not enough. It is much more important to look at what is possible by evaluating where waste exists and looking for ways to eliminate it. Simply “applying DevOps practices” is not enough. We showed how waste comes in many forms. We found and solved problems for waste in terms of time for new TAs to ramp up, applying consistency to current practices, and saving real money by optimizing deployment methods and tools.
A solution was delivered leveraging CI/CD through Codeship, Docker, Azure Container Service, and Linux VMs. These technologies and processes will save time and money.
Challenges and solutions
The following are the challenges we faced and how we solved them:
TAs time to ramp up was weeks or months; now it’s a few hours.
Running a single VM for each container was wasteful; now many containers can be run on a single VM.
Managing the infrastructure (VM) was challenging; running Azure Container Service completely eliminated this challenge.
Future enhancements to this project can be achieved by opening up the entire development pipeline to scrutiny. The university now knows how to look deeper into current processes to achieve better results. Next they will dive deeper into expanding the monitoring and alerting capabilities of the system running on Azure.
from DIYS http://ift.tt/2pw1S4q
0 notes