#should note that this is not spoiler free (don't give much context but still)
Explore tagged Tumblr posts
godhasforsnakenme · 10 months ago
Text
Tumblr media Tumblr media Tumblr media
BOOK REVIEW 📖
Last year I kept track of the series & films I watched; this year I've decided to keep track of whatever books I read! So this one is for the month of January – I'll share these sometime after the month is over, or if I read more than one book during the month, I will do their reviews as soon as I finish the book :)
#ben picks up reading again#dania rambles about shit#should note that this is not spoiler free (don't give much context but still)#i would read it again just to catch all the parallels and symbolism#chose to read this on libby bc of the option to highlight and keep notes in one spot bc jfc I would've annotated tf out of a physical copy#doing this completely from my phone and made my own little template because I couldn't find any good ones for free#what else ummmm oh right this is like a basic answer/question and I ramble off topic but still within some type of margin#read that fanfic I recommend really since I feel like it's better written aka maybe I just like it more bc it has a happy ending#and it includes all the same problems that the characters of the original book went through (for the most part)#anyway 4/5 stars and not 5 bc like I got tired of clare's pov bc it felt like there was no different between#the varying ages we get once we reach her at like 12 and up#henry also affected this bc like he's likable but so stupid and shouldve studied paradoxes or something to solve his problems#again rambling it needs a fix it but blah blah not really their suffering is a main point of the book :)#yeah so structured like a traditional one but I focus on not so traditional aspects bc I have a way of analyzing things#as if I have an essay to write on it lmaooooo#these are handwritten bc I like to keep track in case it worsens due to my cubital tunnel affected wrist#(im a righty; lefty on the other hand has carpal tunnel but that only affects when I do hand on projects like pottery or painting)#I'm giving free trivia/lore about myself here lol
3 notes · View notes
fayevalcntine · 7 months ago
Text
Anyway I've been kind of following the press releases for The Count of Monte Cristo (2024) (French) movie and some potential spoilers that I kind of want to air out:
The film seems to be marketed as "much darker" in terms of focusing on the revenge aspect, which I don't mind, but some other stuff give me pause as to how they're gonna handle The Count as a character because the way the actors talk about him, he almost sounds weirdly irredeemable, or rather just completely incapable of still loving and caring about people? Which is the exact opposite of how he behaves in the book..... he wants to be cold and completely detached but fails each time because he a) forms close connections with people like Haydée and Maximilien, even comes to deeply respect Albert despite trying to talk himself into not caring about the boy and b) is meant to question his own revenge plot because it inadvertently causes the death of an innocent child
Apparently Haydée is 'torn between her loyalty for the Count and the love of her life' with said love of her life being.....guess who? Albert de Morcerf. There's no mention of a court scene so far where she accuses Fernand of being a traitorous officer and murdering her father, instead Edmond apparently gets her to seduce Albert but then Haydée falls in love with him for real? I once wrote a post complaining about this type of idea I've seen others mention as a "potential fix" for the plot but taking aside my issue with Albert/Haydée as a pairing in any sense, in this context it's almost doubly bizarre and I feel like the writers took so many different elements from the book, namely Albert's blind trust and admiration towards the Count and the forbidden love story between Maximilien and Valentine, and decided to go for a much more digestible change for the story, I guess? The actress who plays Haydée also mentions that she wants to "break free from the Count's psychological grip", which..... you can say a lot of stuff about Edmond/Haydée as an overall dynamic, particularly in him inserting her in his plan for revenge, but the big thing noted in the book is that Haydée makes the decision herself to testify against Fernand, and even thinks that the Count will disapprove of her for this. He also does genuinely care for her and wanted her to inherit everything he owns should he die.... the whole point of him taking her in is that he wanted her to have the life she was entitled to before Fernand's actions stripped it away from her.
The film also seems to have merged several different characters related to Villefort into one, namely Benedetto/Andrea and Bertuccio, since Andrea (in the film) is also under the Count's wing and seems to accompany him as a possible servant in some scenes. This isn't a bad idea in theory, though I'm pretty sure that he ends up dying when he goes after Villefort at the court house, so I presume he's also supposed to represent Edouard's death? My main question is when this scene even happens in the film because apparently, there's a final sword fight (likely the one between Fernand and Edmond), so the death that makes Edmond question his entire plot isn't even at the end of his plan?
This brings me to my next point which is why are Fernand and Edmond even doing a sword duel in the first place.... apparently the film has Fernand come from a rich family already, and he's known and been friends with Edmond prior to his imprisonment, so w/e, classic trope of CoMC adaptations at this point. But the duel and Haydée's 'seduction' plot just makes me think that for all the apparent attempts at centering her as a character more, these writers took out a significant scene related to her character that means a lot FOR her, namely the court scene, and instead centered Edmond's feelings of betrayal towards Fernand. I know that this is likely to also focus a lot on Edmond's lost life with Mercedes, but Fernand isn't even such a significant focus of Edmond's ire in the book as much as the other two men are.
The movie doesn't seem to end with Mercedes and Edmond getting back together, which I at least appreciate if this Edmond is "much darker" than even in the book, but if he isn't with her or isn't dead by the end, what exactly is the point of him going off alone? I presume this is the ending if Haydée/Albert are supposed to represent Maximilien/Valentine and the Count "gives them support" for being together, but Edmond was pretty much contemplating suicide until Haydée stopped him in the book. The point is that his focus on avenging the past was his only assumed reason for living, but there's a chance for him to simply live on with those who genuinely care about him as he is now. Without him trying to make amends through Maximilien and Valentine and Haydée indicating she will only live if he lives, I can't really see the film making a good argument for why Edmond wouldn't contemplate suicide instead of living on.
Apparently Villefort has a Bonapartist sister (I presume this character is meant to replace his father in the film) whom I also think Edmond saves from a shipwreck that has been shown in the trailers. I've zero clue how this movie is going to fit a new character in this while doing all of this to the other more significant characters, but that seems to be a general trend with this scriptwriter duo.
Only minor positive thing so far is that Eugenie IS included for once, and they didn't omit her being a lesbian.
70 notes · View notes
magicpotatoobsession · 3 months ago
Text
GIVEN | Hiiragi Mix Thoughts Part 1
Tumblr media
So I haven't been super active on this blog not because I don't love Given anymore, but any ounce of brain energy dedicated to Given means I have to feel the agony of waiting for the two movies to release. BUT ALAS the time has come because @aarinfantasy is the GOAT thank you thank you thank you~~~ Spoilers and screenshots below the cut 👇👇👇
GENERAL NOTES:
How can Mafuyu be animated even cuter than before? Like I don't even know how but how can he look even more adorable???!!
I love the intentional placement of sound and music in Hiiragi mix, moments of silence are so effective in highlighting tension, awkwardness, release, nervousness. Like even 1 minute into the movie, you hear the boys breathing as Uenoyama is tuning the guitar and Mafuyu is sitting beside him. It's those little details that show the atmosphere between characters perfectly.
I like the balance of Hiiragi/Shizu's storyline and Mafuyama's storyline, it's following the manga closely and shows the complexity and intertwining of their stories. It's a good way to juxtapose the different struggles between the two couples and what they needed from each other to overcome their miscommunication! I think the team took feedback from the Given Movie 1 2020 and OVA broken up into two parts when it should have worked better as one longer movie.
I saw on reddit I think that Hiiragi's VA is still relatively new to the industry but I saw a HUGE improvement in his voice acting in this movie, the range he gave to Hiiragi is amazing!
SCENE REACTIONS
This scene was so funny I CACKLED Uenoyama and Hiiragi with their catty energy I LOVE THEM
Tumblr media Tumblr media
2. I fell off my couch at this scene HHAHAHA
Tumblr media
While Uenoyama's face is funnier in the manga, something about the animated rocket launch from earth JUST GETS ME HAHHAHA. Ok serious talk though how did I not notice that when Uenoyama got confessed to and when Haruki told him he's about to debut, his brain turns into astronaut footage? I think it's a very smart way to illustrate that for Ue, music = love and one cannot exist without the other.
3. OMG Uenoyama's face HAHAH awww man I know he's bummed as hell at Mafuyu's "I'll think about it later" (to the debut proposal) but his face, Ueki and Itaya's faces send me straight to heaven
Tumblr media
You know how Ue feels? Our munchkin cat feels like he just proposed to his lover and his lover said, hmnnn I'll think about it. 😭 Chemical, emotional, physical, psychological damage right here>>>
4. The voice acting here from Hiiragi's VA Fumiya Imai SLAPS SO HARD
Tumblr media Tumblr media
It's definitely giving deja vu, similar energy to Uenoyama panicking about Mafuyu, gosh I love Hiiragi and Uenoyama's baby gay panics it's so cute.
5. Kageyama is that you?!
Tumblr media
6. The sound design and use of silence in this entire scene....incredible, showstopping, amazing, impactful yes yes yes
Tumblr media
7. This scene animating Shizu's flashback to childhood was really well done.
Tumblr media
It's interesting that in the movie they didn't speak too much about Shizu being transferred from foster home to foster home, or what he had to do to get by. But also, in the manga, I'm pretty sure that they didn't have this scene of a child Shizu closing his hands over "precious stone" but I think it absolutely elevated my connection to Shizu as a character. It really shows that he believes he has been selfishly holding Hiiragi back and that he has been trapping Hiiragi all this time. It gives so much more context to what he did next which if it wasn't clear already, he tried to push Hiiragi away in order to free Hiiragi from him. 8. HOLY SHIT wow goddamn I would not want to live where Akihiko is living oh my 💀💀💀
Tumblr media
Watching this scene animated with the noise of the highway really highlights how bad Akihiko's living conditions are. I flagged this because in the Given Manga sequel 10th mix [SPOILER AHEAD], there is this whole thing of Akiharu's disparity with their living conditions so....this is interesting....just putting it out there.....
I also don't remember this scene in the manga, but I really appreciate it, it shows the contrast of Akiharu in the first Given movie vs. this one and how their love and care for each other has evolved! Very cute! I'll make a part 2 soon!
____
My Given Metas
23 notes · View notes
Text
I Saw Priscilla so You Don't Have To: A Review
Before I begin, I should say a few things.
First, there will definitely be spoilers for Priscilla (2023). I'll try not to give too much away, but instead, do so in a way to add context. Second, I am not a Priscilla hater, but I'm not a stan, either. I can acknowledge that neither Elvis nor Priscilla were perfect, and that both made mistakes regarding their relationship. Finally, this is my opinion. I may reference other works, including Elvis (2022), but do not intend to tear one down in order to build up another. You are free to disagree with anything I say, all I ask is that you do so respectfully and don't spread hate.
That being said, let's get into the review!
Tumblr media
The first thing I should note is that even if you didn't know who the director was, you'd still be able to tell it was a Sofia Coppola picture. Much like with Baz Luhrmann's Elvis (2022), there's a strong emphasis on the visual aesthetic of this world. Through Sofia's lens, the realm of Graceland feels more grounded and feminine. It honestly ticks all the boxes of a Sofia Coppola film, including regularly utilized elements such as:
The female protagonist/feminine perspective
A coming of age
Visual montage
Prominent soundtrack
The ups and downs of relationships
While the story arc revolves around Priscilla maturing into adulthood, the pacing felt a bit unbalanced for me. For the first half of the film, she's a teenager, and the following decade is briskly told through the last hour. The script tends to focus on the more intimate moments between her and Elvis, so several several major events happen in just a few shots (ex. the wedding, Lisa Marie's birth, Priscilla and Mike Stone, etc.) I get that not everything from Priscilla's book would be present in the film, but I feel like a greater balance could have been exercised.
Next, I should talk about the casting. I feel like Cailee Spaeny did a fine job as Priscilla. Even though she's the main character, I don't feel like I have much else to say about her beyond the fact that she's able to convey Priscilla's growth over the decade and a half span.
Now let's talk about Jacob Elordi.
While he's definitely a different Elvis from Austin Butler's interpretation, I didn't hate Elordi as much as I initially though I would. Since most of the scenes follow Elvis and Priscilla's day-to-day life as a couple, there are far fewer demands of Elordi's character than there are of Butler's. Despite the few flare-ups, his character feels very understated throughout the entire movie. One thing I should note is his constant mumbling; if you have auditory processing issues like me, you're definitely going to miss a few of his lines.
There's definitely been some controversy over how Elvis would be portrayed in this film, and I feel that, in that sense, the movie's going to play out a bit like Barbie, where what you anticipate from it is what you're going to get. For those going in believing the film will expose Elvis as an abusive p*do, then that's what they're going to take from it (even though they show several scenes where Elvis decides not to have sex with Priscilla before their marriage). For the people who have read Priscilla's book and are familiar with the story, it will feel a lot like her book. The main thing is that context is key. Since I'm already very familiar with the story and events, I found myself filling in the blanks in some places. I can only wonder how those going into this with no frame of reference will interpret the final result, especially since the movie ends so ambiguously (After telling Elvis that she wants a divorce, the final scene shows Priscilla saying goodbye to the women she was closest with at Graceland and driving through the gates while Dolly Parton's "I Will Always Love You" plays).
There are a few scenes that depict the darker side of Elvis, but the film was honestly tamer than I expected. Some of the scenes included are the pillow fight, him threatening to send her back to her parents, and the disagreement over his songs. While he loses his temper each time, he immediately apologizes after. The bible study scene shows a devastated Priscilla rush off to the bedroom, but dosen't show anything beyond that. The climax includes the infamous "r*pe" scene, but the action never goes beyond kissing. Overall, the content felt very tame considering the film's R rating (they honestly could have cut one of the two uses of "fuck" and slid with a PG-13 rating). I feel that this tameness is to allow the film to be more palatable to a general audience that may only have a base level of knowledge about Priscilla and Elvis. Elvis' use of baby-talk is heavily toned down, and the dialogue really pulls its weight when trying to provide context and add references.
There are a few things from the book that either I was expecting to be included, or had hoped would be present. While not pleasant, I was expecting "Kurt" to be present in some capacity (they most likely wouldn't show anything onscreen, but enough to get the point across). I talked about the bible scene already, but I expected them to go all the way (assuming the R rating wouldn't have been as tame as it was). I was hoping the interaction between Priscilla and Jerry would have been present, but this did not happen. In fact, all of the Memphis Mafia members almost feel like a faceless mass, like none of them have distinctive identities (I did enjoy the instances of them horsing around and being dumbasses together). The Circle G Ranch is never mentioned, which I found odd, considering in her book, Priscilla talked a lot about their experiences on the ranch after the marriage, and how she enjoyed it so much (I would have at least enjoyed the lasagna scene). The main thing that bothered me was the under-utilization of Dodger (or whoever that generic southern grandma was, because she sure wasn't Dodger). While Priscilla also develops bonds with Patsy, Alberta, and the other wives (if Joanie and Sandy hadn't been named, I wouldn't have realized they were even in this movie), More could've been done with Dodger. In the book, Dodger plays a bigger role in Priscilla's time at Graceland, acting as a grandmother figure and providing context about Elvis. Overall, I would have liked to have seen Priscilla develop closer bonds to the women of Graceland, but there's only so much that can be explored in a limited amount of time.
I will note a few things I did enjoy. Like I said earlier, the visual aesthetic is strong, but one thing I particularly enjoyed were the home movie scenes. The frame was squared, the edges were fuzzy, and it really gave that intimate feel of discovering some lost home movies. I also enjoyed some little details present (Elvis' reading glasses make an appearance!), but these moments feel few and far between.
Overall, I feel like one's own frame of reference and attitudes towards the subjects will heavily influence how one views this movie. Everyone will have something different to say about it, and that's perfectly fine.
29 notes · View notes
thepenguinweeb · 3 months ago
Text
`` The words "I'll kill you" should be left unsaid until the deed is already done. ``
- Aka; introduction
Tumblr media
Hi, hey, hello!! My name's Misaki but I also go by Mr Penguin! I made this blog bc I wanted to separate my usual writing blog from my anime one. Soo.. yeah! If you don't know me, I write x readers for various fandoms! I used to be on the hazbin/helluva side of tumblr buut I kinda lost interest and left that fandom.. but I still wanna write so here I go! If you wanna get to know me more feel free to send asks!
I'm currently watching hxh, so pleaseee don't give spoilers thanks!
Tumblr media
I write for:
- Death Note
- TBHK
- Death Parade
- Kaiju no. 8
- JJK
- Mashle
- BSD
- Chainsaw Man
- Solo Leveling
- Mob Psycho 100
- JJBA
* blue marks my fav animes!
RULES!
- I won't write anything that has to do with minor x adult if it is in romantic context! Platonic is fine :)
- I won't write smut of any kind! There are plenty of talented smut writers though, so go check them out instead of me if you want to read that!
- I'll take multiple characters per request too!
- Be as specific as you want to be! I really don't mind, so don't be afraid to specify as much as you need!
Other than that, just do whatever! If you're not sure about something, feel free to ask :3
Oh and I call my followers my children/adopted children soo get used to the fact that I'm unofficially your mother >:3
Dividers by: @/cafekitsune, thank you!! <3
Bye-bye! :D
4 notes · View notes
mooncalfe-art · 2 years ago
Note
Hello once again Ms. Campbell! Apologies for sending you so many asks, but this feels like the best way to provide feedback seeing as it looks like y'all aren't doing letters to the editor/creative team anymore (which is a shame, imo).
I just read 140 and while it feels a little... off? I'm attributing that to it having come out ahead of the issue that closes out the previous storyline. I'll give it another read through once Armageddon Game #8 comes out and I'm sure it'll feel better then.
Regardless, I actually really like the seeds you've planted here so far! Leo not really knowing how to be anything other than what he is, Mikey striving for more in his life, Raph's heartbreak over Alopex being expressed in anger and frustration at the current flux state the family is in, and Donnie spending a lot of time in the lab (I eagerly await to see what comes out of that... fingers crossed for magi-science turtle tots in the not so distant future).
Also Leo being like
Tumblr media
is hilarious to me. (I suppose a bonus of doing this via social media is that I can share my silly little memes)
IRT Alopex... Do people think she only exists as an accessory to Raph? She has her own life, personality, and motivations. It's a disservice to her as a character to expect her to hang around with the man who murdered her entire family just because her boyfriend is working with him. This is an entirely reasonable boundary to have! I dunno about you, but I've dumped people over far less than [checks notes] deciding that the guy that objectively ruined your life is your uncle now, kinda. Even if Raph wasn't going along with it, it's entirely reasonable for her to not want anything to do with the rest of them because of this.
Anyways. Looking forward to the continued adventures of the Claw Clan. I hope the weasels have fun.
I saw some hints at Seri/Mikey, and while I don't want to dictate what other people do with their art, I DO want to say that if Seri/Mikey does end up happening, I hope it's not for a while yet. Seri is still pretty new to the world having been artificially aged up and all, and she has SO MUCH going on, I think she needs some time to figure herself out and come into her own before she starts anything. I liked Seri/Mikey when it happened in Vol. 4 I think it was? but with the added context of her being artificially aged, I think it needs more time before jumping into it.
Oh what else... did I assume right that the cop arresting Raph was Monty Moose? or inspired by him? Cool beans if so. Nice to see Bob show up and provide yet another perspective on the whole mutation thing. The person who attacked that poor cat lady looked very turtle like... my money is on evil clone. Of who? Slash, probably. (feel free to skip addressing this to avoid confirm or denying spoilers. I'm just tossing things at the wall to see what sticks).
I think that's it for now. Looking forward to July which I have been mentally calling TMNT's Hot Girl Summer since SO MUCH is coming out then.
Cheers!
I keep wondering if they'll bring back the letters column but I think editorial is too frazzled these days to respond to letters, haha. Maybe I'll talk to them about resurrecting the letters column.
Anyway thanks for the feedback! I love hearing your thoughts about Alopex, I totally agree!!!
No plans at the moment for Mikey and Seri to hook up, although it's crossed my mind, of course.
And yeah that was Monty arresting Raph. Monty had already showed up during 125-130, he was Raph's deputy constable. Originally in my script it was just a generic cop but either my editor or Nickelodeon (I forget who exactly!) suggested it should be Monty at the last minute, and I ended up writing Monty into the next issue too.
Thanks again for your thoughts! :)
5 notes · View notes
one-boring-person · 4 years ago
Text
Just A Babysitter. (Part Eight.)
The Lost Boys x reader
Warnings: mentions of death, blood imagery, mentions of hallucinations,
Context: No spoilers this time ;))
A/N: This is definetly the last part of the story, so I'm sorry it's so short, but thank you for showing so much support in regards to it, I never expected it to do so well.😊💛
Part One , Part Two , Part Three , Part Four , Part Five , Part Six , Part Seven
Masterlist
Tumblr media
For once, I manage to sleep, uninterrupted, for the entire day, my body trying its best to recuperate after the events of the day before, grief still rampant in my subconscience, though I don't dream at all, my head oddly empty. When I finally come to again, the air around me is freezing, goosebumps rising along my exposed skin as I sit upright, stretching out my cramping muscles as I go, my neck paining me from the awkward position I fell asleep in. It doesn't take long for the loneliness to set in again, quickly making itself known to me as quickly as possible, drawing a sigh of despair from me, my head aching from the amount of crying I did the night before, my body intensely dehydrated.
Deciding to get something to drink, I pull myself upright and walk back into the bedroom, not bothering to look back at the ashy remains that should have gathered on the cold, hard ground, my eyes swiftly adjusting to the darkened interior of my room as I go to the bed. On my way in, I cast my eyes to the side, where I left David's corpse, only to halt in my step when I notice the lack of a shadowy shape. It's gone.
Freezing in place, I stare at the spot, incredulous and confused, trying to think up a solution as to the missing vampire; did Michael and Star come back in the day to properly dispose of the bodies? No, they would've woken me up, and they would've taken the fourth, which I noticed is still in the main room. There is nothing in its place to signify it was ever there, no blood stain on the floor, no dirt where his boots trailed across the floor when I dragged him over, nothing. In confusion, I edge over to the spot, eyeing it suspiciously, my head spinning in its grieving state, the water forgotten as I leave the room, suddenly feeling unsafe alone in the cave. As I enter the main room again, however, I come to a halt, noticing that the braziers have been lit again.
Fear starts to creep into my mind, my muscles tensing as I move, ever so slowly, back into the large room, my eyes flicking all over the place to gauge where the intruder is, before coming to rest on the spot where there should be two piles of ash, only to see that the floor is completely ash-free. It's only when I hear a footstep behind me that I straighten, body ready to fight if it has to. I turn on my heel, my eyes swiftly finding the shadowy silhouettes of four people, each of which have heart-wrenchingly familiar frames. I don't say anything until they come into the light, at which point my heart skips a beat, my breath hitching in pain as I take in the people standing there, believing my brain is now hallucinating.
There, in all their vampiric glory, are David, Dwayne, Marko and Paul, faces lined with worry and concern, eyes all fixed on me.
I don't know what to think. A part of me, a minuscule part of me, hopes that this is real, that they're really standing there, waiting for me to react, but a larger, more rational part is telling me that I'm hallucinating, that the lack of water I've drunk is finally getting to my head, and that I'm in denial. My heartbeat is pounding in my ears, the sound deafening as the silence in the room drags on, my eyes flicking between them, refusing to believe that they're actually there, waiting for them to disappear and leave me alone with their vanishing bodies. I reach up and rub my eyes, trying to blink away the mirages in my vision, knowing I'm only seeing what I want to see.
"Come on, say something (Y/n)." The image of Paul speaks to me, blue eyes wide and fearful for some reason, the tall, blonde vampire watching me for a reaction.
I shake my head, unwilling to give in to the images in my head, trying to dislodge their shapes from reality.
"Please, (Y/n). Tell us what you're thinking, or how you're feeling, just say anything!" Marko pleads, biting his thumb nervously. I almost laugh at how accurately my mind remembers them and their mannerisms, but I still stay quiet.
Turning around, I stare at the wall, ignoring them as much as I can, trying not to cry again, taking very deep breaths to calm myself and my racing heart, anger flaring up in me when one of them speaks again.
"(Y/n)? Plea-" It's Paul again, but I don't let him finish, clapping my hands to my ears to block out the sounds.
"Shut up! Get out of my head! Leave me alone!" I snap at myself, slapping myself across the face in an attempt to bring myself back to sanity.
"What're you doing?! Stop, we're right here!" Marko's voice interrupts my muttering again, only to be cut off by my volatile tone once more.
"No, you're not! You're just hallucinations, you're not real! You aren't really there! Leave me alone!"
There is silence behind me, the quiet making me feel slightly relieved, believing the images to be gone, until I feel an icy hand placed on my shoulder, the sensation almost too real to be something my mind has conjured up. Under the touch, I stiffen, my muscles tensing in fear, half expecting it to belong to some intruder who has heard me shouting to myself, so I'm almost surprised to find David stepping around to the front of me, icy blue eyes scrutinizing my facial expressions.
Instantly, I start to writhe in his grip, crying out when he secures me in place with his other hand, the emotion finally taking over as tears of grief resurface, spilling over my cheeks again, my mind still fighting to stay sane.
"(Y/n), calm down! We're real, we're actually here! Look, you can feel me, can't you? You can feel this," The blonde vampire soothes me, lifting one hand to cup my face, the frigid temperature of his skin as familiar to me as anything, "And this."
He finishes by pulling me into an embrace, crushing my body into his own, wrapping his arms around my shaking form as I cry into him, finally believing that this is really happening, tears of relief replacing the distraught ones from before, disbelief and happiness rampant in my mind. My hands clutch at his shirt and jacket, trying to feel how alive and real he is, feeling the taut muscles under his clothes and breathing in the smell that I've always loved about him. Three other pairs of arms wrap around me, their bodies pressing into mine as I continue to sob in happiness, their presences reassuring me, fending off the overwhelming loneliness and isolation that had previously set in, each of them catching me as my knees give out. A sudden wave of nausea sweeps through me, my body still trying to recover from the dehydration and shock, black spots dancing across my vision as I struggle to stay conscious, physically focusing on my breathing to make sure I don't hyperventilate. David pulls away, clearly having heard my suddenly heavy breathing, worry etched into his face.
"Come on, kitten, let's get you something to drink." He murmurs to me, gesturing to Marko to go to my room where he knows I have some water, quickly asking Paul and Dwayne to clear my armchair. Instantly, the three vampires rush to do their jobs, David swiftly picking me up, cradling me against his chest as he watches me, blue eyes soft and caring.
I soon find myself sat in my armchair with the neck of my bottle of water pressed to my lips, cool water spilling onto my tongue as Marko feeds it to me, a small smile on his face, the others watching me anxiously, Paul's leg bouncing nervously as it always does when he's unsure of something. As soon as I regain my composure, I look them all over, taking note of how untouched they appear, as if the last two nights never happened.
"How the hell are you three still alive?" I manage to get out, my voice hoarse from screaming.
"I used mind tricks to think they killed us all." David confirms, looking slightly smug with himself, as well as guilty, knowing he put me through a lot of pain.
"Why?" I inquire, frowning slightly.
"What do you mean, why?"
"Well, why did you convince them that you were dead? Why not just kill them?" I clarify, taking another sip of water.
"Because we need them to lower their guard properly before we take them on for real. Half-vampires can be more dangerous than us, simply because they haven't learnt to control their new strength. We also just wanted to be dramatic." The platinum blonde explains, wincing when I spit out the water in my mouth.
"You did all that just to be dramatic?!" I exclaim, annoyed at this confession.
"...Maybe." He says quietly, before defending himself again, "Mindtricking them was the only thing I could come up with when they first showed up. We heard the loud noise from the main room and only just managed to get out in time. We didn't want to risk the kids looking harder for us, so I messed with their heads to get them off our backs."
I think this through, seeing his logic but still upset over one thing.
"Ok, so why did you have to do the same to me? And who the hell is that?" I question, gesturing to the shrivelled body a little way away.
This time, Dwayne interjects, giving me an apologetic look even as the others do the same.
"That's Max, the head vampire, their original target. And as for your first question, your reaction had to be real for them to believe we were really dead, and they did. They stayed back for a bit to see if you would leave the cave. Hearing you really broke our hearts, it was terrible." The brunette admits, clenching his jaw at the memory.
"Yeah, I couldn't stand it." Marko agrees, biting his thumb again.
"We are never leaving you again so that we never have to hear those horrible sounds again." Paul chips in, coming over to me so that he can drape his lanky frame over the back of the armchair, his hair tickling my neck.
"Swear to me." My voice is decisive, needing that reassurance from them, needing to be sure that I'll never be alone again.
"We swear." David assures me, the others adding their agreements to his.
"Thank you." I say to them all, smiling at the four vampires, "What now?"
"Well, now that you know we're still alive and kicking, we can go give Michael and his friends a little surprise." Marko smirks, David chuckling at the younger vampire's eagerness.
"Of course, but we have a proposition for you first." The leader says, looking me in the eye.
"What is it?" I frown at his words, a little confused.
"We were wondering if you'd like to join us properly."
I'm silent for a minute, shocked by what he's offering, surprised that he thinks I'm ready.
"As a vampire?" The four of them nod, Paul starting to rub soothing circles into my skin, "Are you sure?"
"Of course we are. We think you'd make a great vampire, and you've never been too opposed to the idea either." Paul reasons, his hands continuing their motions.
"Well in that case, sure, I'll do it. It'll make a great surprise for them." I smirk, looking around at them as Marko hands me the jewelled bottle I know so well.
"Bottoms up."
*
The loud noises of the Boardwalk are harsh in my newly sensitive ears, but I manage to keep myself under control for the most part, even as the strong smells assault my nose, the bodies around me driving me insane. From my position leaning against my motorcycle, I watch the crowd, as if waiting for someone to appear, even though I can tell exactly who is approaching me just from the voice that accompanies them.
"(Y/n)? What're you doing here?" Michael asks, sounding confused and surprised at my appearance.
Clenching my jaw, I look over at him, keeping my expression neutral as I take in the brunette coming towards me, Star holding onto his arm as she walks with him, her own arm around the shoulders of Laddie, who looks happy to see me. As he nears, the young boy runs over and wraps his arms around my midriff, holding me tightly.
"I'm waiting for my friends." I respond coolly, returning Laddie's embrace gladly, as I know it'll likely be the last time it ever happens.
"Your friends? Who?" Star queries, sounding confused, a frown on her face.
"Oh, you know them very well." I promise her, looking over to my right, where I've just heard David and the boys emerge from the comic shop, Paul and Marko pushing each other around as they always do, "They've arrived, I'd better go. I'll see you around." I smirk, ruffling Laddie's hair as I go, pushing off my motorcycle and going to leave them, only to be stopped by a hand on my arm.
"Are you alright, (Y/n)?" Michael checks with me, expression confused by my attitude.
I turn back to him with a grin.
"Absolutely." I flash my eyes at him, relishing in the sudden fear in their faces before I leave them, joining the boys with a huge grin, laughing with them.
"This will be fun." David murmurs to me, wrapping an arm around my waist as he presses a kiss to the side of my head, the others moving in to give me a peck on the cheek.
"Oh, it will be. Let's mess with them some more." I suggest, giggling with them as we move off into the crowd, ready to torment the Emersons for the rest of the night.
99 notes · View notes
scarluxia · 4 years ago
Text
Let's talk about some Adventures I had in Phoenix, AZ in 2015. It came up in my FB Memories and even though I determined to let everything from last decade go, this one still rankles. I got "in trouble" with these people for being open about my experiences on my Facebook because, even though I hadn't mentioned names, they didn't like me "putting their business out there".
CW for ableism, depression, rejection sensitive dysphoria, and I'll try to put all that in the tags.
My partner, Loki (yes real name), and I had been urban camping in Portland, OR for about a month. It had gotten cold and rainy to the point where we couldn't safely stay living outdoors, and Loki's father (who didn't approve of me) had demanded he come back to California and live with Loki's uncle. He made it quite clear I was not welcome, so I ended up going to Arizona because I had a friend who was willing to put me up. She and I had known each other since 2008 and I figured I would be safe with her. At the time, Loki was much more easily influenced by what his family wanted, and we ended up having kind of a nasty set of conversations over whether he was abandoning me.
While in Portland, my wallet had been stolen so I had no ID or SS card. I had reported it stolen of course, but had received no response until I was leaving Arizona.
My friend in Arizona had two young sons, a husband, and a boyfriend. Now, I have some sensory issues that make it so I have a hard time being around children. High pitched noises hurt me to my bones, like, even now I have to leave the room if my son gets overly excited and starts shrieking.
I was sleeping on the couch in the living room, which was where the kids would go when they woke up and where the TVs and entertainment consoles were.
Anyway, they wanted me to contribute to the household and whatnot but I was severely depressed and I think I've provided all the context I can remember? If the rest of this doesn't make sense, please know that there was a part 1 but it came up in my Memories on a different day and i didn't think I would be rehashing it.
So I couldn't do work, couldn't do anything anyone had asked me to do to satisfaction because various things that did not, in fact, depend on me. Maybe I wasn't being enough of a ~team player~, I don't know. But anyway, I did my best with what I had. Sometimes, because of THE EXTREME FUCKING SENSORY ISSUES THAT COME WITH AUTISM, I would get overwhelmed by the kids screaming. Two little boys, barely school age, and their parents sat them in front of a TV and gave them controllers. That's it. They had toys in their room, sure, but they weren't getting outside. I suggested taking them out a couple times, but firstly, I didn't know the area and wasn't about to go out alone, and secondly, I can't split in half and I'm not in good shape, so even if I had known the area, I wouldn't have taken TWO small children outside to run around where they could run out of the designated area. I'm kind of anal that way, I guess. But Woman A (mum) and Man B ("uncle") never got off their arses to help me take them outside, and Man A was at work.
Oh, yes, parental interaction with the kids. Woman A loved her sons very much. But at their age (3 and 5), they both should have been toilet trained. They should have gotten at least two hours outside every day. They threw fits when they weren't allowed to play video games because, instead of games being a special treat that was earned with good behavior, they were toys carelessly tossed at the kids to keep them out of everyone's hair. Conversely, and bizarrely, reading to them WAS a special treat. The father woke up, played games, basically brushed off his kids, and went to work. Same when he got home for lunch, and he *ordered* us to have them in bed by the time he got home for good. The mum did somewhat interact with them, but mostly just wanted them out of her hair. I wasn't so nice because I'm not good with kids in general and also loud screeching HURTS, IT HURTS IT HURTS MAKE IT STOP. (Same with snoring, or any noise made when I want to sleep.) This isn't me being a ~diva~, it is an actual manifestation of a mental disability.
Woman A was of the opinion that "everyone who lives in a house with kids automatically becomes a coparent", maybe because she wasn't willing to actually parent her kids herself.
Note from the future: I still disagree with the idea that "anyone who lives in a house with kids is automatically a co-parent". Parent your own kids. I don't expect my dad to parent my son when we go visit him and he made it quite clear when I was pregnant that he would not take on a co-parenting role (because his wives 30-50 years ago had handled the babies and he doesn't really know how to calm them down beyond entertaining them)
She got a really bitchy look on her face whenever I (who have been around children, especially TROUBLED children, all my life) made any sort of suggestion. Well sorry, lady, but it's not like you're doing such a great job with them. Y'all act like you barely want anything to do with them. Like they're cute and little and fun to snuggle, but actually teaching them anything? Forget about it, just toss em a controller and hope they don't kill each other in the game or real life. Meanwhile, they have no outlet for their natural physical energy, no real outlet for their curiosity. They're going to grow up stupid and sedentary, with "no one paid attention to me during childhood except when it was convenient for THEM" to deal with. The older kid recently got on meds for a condition that, from what I observed, was likely much more nurture than nature. And what everyone ate, my God, those kids were the only non-overweight people in the house, and it's little wonder! I bought ACTUAL NUTRITIONAL food for everyone, and the adults look at me like I'm from some demon dimension. I made a light comment about how I'd never eaten anything like what they had growing up. You know, boxed potatoes, veggies out of a can, white bread, sugary peanut butter. And Woman A was like, "well YOU don't have kids."
Um, no, but my father did.
I have a kid now, am working part time at min. wage because my boss sees my performance as so-so (plus she's been forced to give me a raise every time the County of Where I Live raises the minimum), in a single-income household, on as much Family With Kids welfare as My County will allow, and I still wouldn't feed my kid that crap LOL
Spoiler alert: they made me use all my food stamps on their household and then kicked me out later that month so... When I bought food I bought HEALTHY food, like, I've been on food stamps my entire life... Also, WIC specifically pays for WHEAT bread, fruits & veggies, and they do let you get peanut butter without sugar so idk what was going on there with them.
My father was a SINGLE PARENT raising a daughter in America after 20 years of living in Europe and raising kids with his previous wives. Well, up until the divorces, anyway. I was the only kid he ever got to keep. He told me things about how the others had been raised compared to how I was raised, and I saw the outcomes of different parenting styles in my peers as well. My father was a very poor man whose trade had been outsourced and who struggled to support us for years. And yet, we never went hungry, and he never fed me boxed potatoes. Never fed me sugary peanut butter, white bread, or veggies out of a can.
Ok I understand canned veggies are better than no veggies, and not everyone can get fresh, but you CAN get frozen in AZ. I always had fresh or frozen growing up.
It wasn't because we were living in the lap of luxury. It's because...
HE FUCKING VALUED OUR HEALTH OVER CONVENIENT, CRAPPY, NUTRIENT-FREE FOOD!!!! This is not a difficult concept. He ALSO read to me every night, despite having what I now realise was a very grueling day at work just to put said healthy food on the table. I didn't get to watch TV or play computer games (edu-tainment, the only kind I was allowed) until after all my homework was done. I can't remember if I was a particularly active child, but I'm sure I had the OPTION!!!! TO GO OUT.
Meanwhile, when I was at various stages of my life, I met kids whose parents shunted them from guardian to guardian because they didn't want to deal with them, kids whose parents were kind and supportive but rubbish at enforcing discipline, kids whose parents were abusive in every kind of way, and kids whose parents did their best.
You know, I wasn't raised perfectly. My upbringing lacked social grace and included some toxic ideas about womanhood that I've only been learning to overcome recently in my adulthood. But DON'T FUCKING ACT LIKE I DON'T KNOW ANYTHING ABOUT RAISING KIDS JUST BECAUSE I DON'T CURRENTLY HAVE ANY. I have my own life, the lives of my peers, and a wonderful online community of new parents raising children in kind and socially aware ways, to draw inspiration from. I can go to any one of them, and to my own parents, and ask "hey does X seem weird to you?" And they'll give me their honest opinion, which *is valuable*. I have even mapped out a general idea of how to get through some parts of my children's lives, and I'm not even planning to have kids for at least another few years. I mean, honestly, it used to be "I don't want kids ever", but dear gosh, if I can have any part of raising someone in a manner that defies procrastination culture, entitlement culture, and everything wrong with the way my husband and I were raised, maybe it wouldn't be a complete horror. If I can ensure that not all hope for the next generation is lost, hey.
Anyway, I've gone off topic...
I also had some issues with the men. Man B just didn't seem to like anything ever. I had no idea what Woman A saw in him. I remember one time he tried to tell me, a Christian, that I can't tell people what a "real Christian" is because it ~invalidates their identity~. Excuse me, no. It doesn't work that way. There are things that Christ taught, and anyone who blatantly goes against them IN THE NAME OF CHRISTIANITY, IS NOT A REAL CHRISTIAN. And yes, I realise this entire rant has been very judgey and technically I'm not supposed to do that either, but it's not like I'm saying they're going to Hell. Just that their kids are going to be sluggish and stupid, and I can't understand how these people have the gumption to try to lecture anyone else about life when they're not even TRYING to get their own lives together.
Yeah so they tried to lecture me about how I was "letting" Loki mistreat me and how I cared more about "socializing" with my estranged husband (I have separation anxiety) than helping around the house e_e They also implied I used depression as an excuse to be lazy.
Man B was supposedly "super employable." Well, okay, even though his "job hunt" seemed to consist more of sitting around playing video games, he was larger than my father (who is 6 ft tall with a protruding gut and weighs 240 lbs at last count) (My father and I are both 60 lbs above our ideal weights. But we're working on it!), and never seemed to get past the phone-screening process.
Now, Woman A told me that Man B was looking for work and that her family and some friends looked down on him for being a freeloader. Probably because she was anxious about me thinking the same. But here's the thing: I wouldn't have cared. Honestly. If you want to sit around playing games all day in your married girlfriend's apartment with her and her husband playing video games all day, go right ahead. If you want to bake three potatoes at a time and take them back to your room for a snack, hey, more power to you. But don't piss out the window and call it rain.
I don't care how employable you are, where you live, who you're living with, or what your lifestyle is like. It doesn't affect me in any way. But don't act like you're doing something you're not just to appease someone's judgmental family. That doesn't ever end well.
Now, see, I clearly have a problem with people who do that. I don't hide many aspects of myself, though I will refuse to answer a question if I feel it's none of someone's business or if they're just asking it to be a judgmental asshole. I refuse to compromise myself or my safe space to accommodate someone who can't make peace with who they are. Hell, you know me! You know my show!
Wait, this is Tumblr, so you might not know my show. It's a YouTube storyboard dedicated to processing and mocking some spiritual and psychological abuse I've undergone in my life. On Facebook, it was one of the things I was known for at the time because I was constantly posting clips and art, and trying to recruit voice actors.
I sell anyone out who I catch lying to me about anything! That's nothing new! And these people knew that about me. For SEVEN. FUCKING. YEARS.
So anyway. Woman A has a lot of great short term goals but no actual follow through because "I'm just not in the mood right now." No judgment there. I've totally been there. The only problem is when it gets ME in trouble.
"Let's walk the dog." "I'm not in the mood." Okay, then the dog doesn't get walked because I can't figure out my way around the place alone.
"Let's do the dishes." Woman A doesn't let me know when the washer stopped. Okay. Then the rest of the dishes don't get washed.
"Let's take the kids outside." "No I'm too tired." Okay, then they're going to be RUNNING AROUND THE APARTMENT SCREAMING WHICH MY EARS CANNOT FUCKING HANDLE so bye I'm just gonna borrow your room and isolate myself for a bit.
"Let's go to the gym!" "Maybe later." But later never comes.
Do you see where I'm going here? As for the men, they BOTH complain that they're "doing too much" around the house. Okay, probably fair for Man A, who works full time and deserves to come home to a clean house. But Man B. Wtf. You literally do nothing, except when you do, and when you do, we're meant to throw you a parade? That's not how adulthood works, or so I've heard.
Note: All three of these people are older than me. I was 24? at the time, fresh out of trade school, on my own for the first time in my life. (Maybe 2nd? I ran away when I was 17 but ended up with my grandparents so idk if that counts.) Woman A was 26 at the time and had been married since 2008, had experience with office work and parenthood, etc. Both men were older than her. I was a chronological adult with the life experience of a teenager, so I felt comfortable saying that.
So did I mention that I'm sleeping in the living room during this stay? And the adults don't go to bed until like 2 AM, which means, because of my disability, wherein I cannot sleep if there's any sort of non-ambient noise, *I* don't get to sleep until AFTER 2 AM. And the kids? They come in the living room screaming at 6 AM. Yep. Okay. Living on 4 hours of sleep, for the mathematically challenged. That and dealing with the emotional turmoil of being separated from my husband when I've got high separation anxiety in the first place. All my pain, everything, it's up to 11. and I'm supposed to contribute but there's not really anything that allows me to contribute.
So what do they do? They ambush me. Call a "family meeting" to tell me absolutely everything that's wrong with me, after WEEKS of telling me what a big help I am and how grateful they are to have me around. Tell me I'm letting my "social life" get in the way of me helping around the house. Hmm. Social life. You mean, VENTING IN MY SAFE SPACE (Facebook, no names named) AND TRYING TO MEND THINGS WITH MY HUSBAND??????????????? Okay. Well since you guys treat your woman like shit, you clearly don't understand or appreciate devotion to one's spouse. Seriously. Woman A told me she used to have extreme separation anxiety with Man A, and that he would brush off her emotions as irrelevant. Her solution was to make it a poly relationship and take a lover WHO TREATS HER THE EXACT SAME WAY. I'm serious. She got no emotional support from either of them. They basically just threw pills at her and trained her to lie down until her feelings went away.
And she had the gall to lecture me (24 at the time) about how Loki (19 at the time & from a pretty horrific family) treated me. LOL ok. Log. Splinter.
As she knew, I'm monogamous. I do have some opinions on polyamoury based on individuals I've gotten to know who are in those types of relationships, but those opinions are irrelevant to this series of rants. Except one, which is pertinent: if you're going to take another lover, they should provide something that your existing lover(s) don't. If you're suffering from low emotional support and you just find someone else who doesn't emotionally support you and who treats you like a child who can't be trusted??? What are you even DOING? Like, she told me NEITHER of her men trust her judgment. What the fuck is a relationship without trust? And don't even try "dick too bomb" as an excuse when you tell me you haven't gotten laid in months and your husband is using your condoms on Woman B.
They don't support you. They don't trust you. And yet YOU'RE telling ME that things with my husband won't get better unless I follow your lead and take another lover? HELL TO THE NO. My husband has his faults, but if I tell him Person X can be trusted, he believes me.
Except for his ex-girlfriend whom he tried to add to our relationship when he tried to be poly, months later. That went Badly.
Or maybe he just knows I'll deal with them myself, with my hot, hot temper, if they turn out not to be trustworthy. He also doesn't treat me LIKE A CHILD. And while I sometimes point at things and make small motions when I can't physically talk, or sometimes even use baby talk when I'm feeling cutesy, I DON'T POINT AT A PIECE OF PAPER AND GO "THE CARRRRRR!!!!" IN AN INCREASINGLY HIGHER PITCH BECAUSE I DON'T KNOW HOW TO SAY, "Honey, I think we missed the car payment this month. Can you double check while the agent has you on hold, please?"
Okay, being a dick about losing words due to stress was not my finest moment, but at the time, I was just so appalled by how they treated her and how she allowed them to treat me.
So basically these adults who are nowhere near having their lives together, and aren't even really trying, put me on blast for not having everything running perfectly when THEY expected it to.
Let's reiterate. I couldn't get a job because I had no ID or social security card. I was waiting for them to be returned to me. I couldn't walk the kids or the dog, go to the gym, or complete all the household chores because no one would guide me. I need that guidance because of various components of my disability, which I really hate admitting to because I'm super fucking prideful, but I figured hey, she's not neurotypical either. These people will understand.
Their response when I brought this up? "You're an adult. You should know better." Sure, okay. But you should know that a child ought to be potty trained before he turns 5, or even 3; that kids need to run around, are entitled to their parents' attention and consistent discipline, and need!!! healthy!!!! food!!!!
Oh, discipline! So, she would send Older Boy to his room over misbehaving. But rather than enforce time-out, she'd go, "oh, I think I'm being too haaaard on him," and just... Relinquish. He's not about to learn anything that way, ma'am.
They called me trying to reconnect with the person I love more than almost anyone on this earth "obsessing over your social life". Well again, you treat your woman like shit, so MAYBE my undying devotion to the person I love goes a LITTLE bit over your head.
They told me that the household should be my first priority. Except no, because I am an autonomous person and my FIRST PRIORITY is, was, and ever has been the love of my life, whomever that may be at the time. That is 70% of my personality. I'm pretty sure anyone who had ever met me can vouch for my extreme devotion, and this woman had known me for SEVEN. YEARS. I'm not going to throw away 70% of myself to do an impossible task that no one will help me with.
They told me a lot of things I wasn't doing right, and for those of you who also struggle with anxiety and depression, you know that being told for weeks that everything is okay and you're so great and so helpful, and then being told that you're rubbish at everything... You know that that is hurtful. Devastating, even. I wanted to kill myself. I said that. I said that and expressed my feelings about some other things, in my safe space, without naming any names.
And even though I was posting in my safe space, I was polite about it. I was as gentle and rational as possible. I wasn't calling anyone out. Not like I am now. I wasn't trying to lead a witch hunt. I was just overwhelmed and trying to express my feelings. Trying to get myself not to kill myself. I had to tell myself over and over again that it's not what Loki would want for me.
In the morning, they woke me up and kicked me out. Said it was rude for me to say I don't care about their household. I never, NEVER said that. I said "Loki is my first priority." Something along the lines of "that's just how I am and I shouldn't be vilified for it." That doesn't mean I DON'T CARE ABOUT ANYTHING ELSE. IT JUST MEANS THAT MY PRIORITIES WILL *NEVER* BE WHAT SOMEONE ELSE WANTS THEM TO BE. I AM A PERSON. I HAVE THE RIGHT TO DECIDE WHAT TO PRIORITISE, AND I HAVE THE RIGHT TO LOVE MY HUSBAND!!!
I MEAN, FOR FUCK'S SAKE. MY NAME IS *SIGYN*. WHAT THE FUCK DID YOU IGNORANT ASSHOLES EXPECT?! WHY THE HELL SHOULD YOU HAVE FELT THREATENED BY ME SAYING ANYTHING IF I DIDN'T NAME NAMES AND WAS ACTUALLY RATIONAL? IF YOU SAW THIS, *MAYBE* YOU WOULD HAVE THE RIGHT TO BE PISSY, BUT NOT THEN!
They kicked me out after having asked me to buy them all food. I had used up all my food stamps. Because I hadn't anticipated this at all. I hadn't known they would take such offence to my existence, to my ways. To the fact that I value the man I married more than I value... Whatever they wanted me to value, I guess.
Fun fact: I ended up in a women's shelter after this, and one woman told me to actually kill myself because she was tired of hearing me cry at night.
They said I hadn't made any effort to get my life on track. Because I can just snap my fingers and make my ID appear. Because I can just manifest the money for a replacement. They said all these things that left me almost unable to breathe, in retaliation for me posting that I was suicidal.
Later, Woman A told me that this had been a long time coming and that they were trying to make room for Woman B and Woman C, both of whom were willing to have sex with the men, which is something that I would not. I feel the first woman I met at the shelter was accurate when she said they basically kicked me out because I wouldn't sleep with them.
I also later found out that my ID and SS card had been returned to sender. The Portland PD called me and told me. So my father came to the conclusion that the people I had been staying with sabotaged me from the start. For a while, I didn't feel it, but last night I dreamed about it, and the dream made me angry. I didn't deserve to be treated that way. And I really had to get all this off my chest, so for those of you who didn't immediately whip out your tiny violins, thank you.
3 notes · View notes
loudestcloud · 4 years ago
Text
Welcome back! Sorry for the wait. it's...
BNHA Character Theme Songs!!
Also I'd like to note, this playlist is spoiler free.
Pt 1
Pt 2
Pt 3: Here we have the big 3 and Pro hero songs with Shinso just for fun because he can (and should) be.
Tumblr media Tumblr media
Mirio - The energy, the lyrics and the band really just suit him. I don't know how someone can listens to this song and not think of him, it's too perfect.
Tamaki - This song is about doing the best you can but still never having anything good happen to you and still being stuck in depression but continuing to try. It's quite upbeat and if you didn't listen to the lyrics, you could probably just vibe it and move on without much thought.
Nejire - It was super hard to think of one for her and I don't know why. This one just kinda stuck out at me because it's very high energy and happy.
Shinso - and this is 1st song I came up with for playlist! This song is from this animation and I used to watch it over and over as a kid but I watched it last year again and it made me think of Shinso. Ppl always give him emo songs, same as Aizawa, but thats not really who they are at heart so I changed it up. Now he has Jazz 🤣
Aizawa - The man! The dad! Aizawa! Now, this song is reminds me of younger Aizawa and his self doubt and 'Can we skip to the good part?' is like flashing forward to now (or at least before the year before UA and first few ����)
Yamada - Yamada is 100% the kind of person this song makes you feel like. Party animal, jamming and grabs your attention as soon as the walk in. It's also the kinds of some I can see him sing like, you can so hear "You are now- now rockin with Present Mic and Midnight bitch"
Kayama - another one of our pros that grabs the attention instantly! While Kayama can be chill, it's not very often so a sexy kinda song is best she do be like that a lot and is confident in herself that way. It's kinda sounds like she's fighting with My lady too so that works ( I can also hear her singing it in a karaoke battle).
Toshinori - 👀 it's started as a joke but the more I played it for him, the more it the more it works. Toshi also has 2 actual theme songs in the soundtrack n I was so tempted to put them in place instead. This is an amazing fit tho, so it stays!
Sasaki - This was a joke but once again, it's stays. I'm sure if Sasaki could, he would 100% keep trying to get Toshi to listen to him but his power is based in the future. It's kinda romantic n I personally am under the popular belief they had something more going on there butvi feel it always works in the context of them platonically. Nighteye isn't much of a character beyond his relationship All might so it was a hard pick and I just stick with this one. It's also kinda funny.
Tensei - 😭 I love him! He 👏needs👏 more 👏love! Anyway, this song is very pumped up, an older classic and ' Work it harder, make it better, Do it faster, makes us stronger More than ever, hour after hour Work is never over' makes it have that hard working team element that Team Idaten has. It's a very fast working team but is super careful and caring. Each part has a place and it doesn't always look like it would fit but they make it fit.
Wild wild pussycats - When I hear Pussycats it's makes me think of The pussycats dolls 😅 no one really thinks about them anymore and just like the bnha public also don't think about the WWP anymore. I feel like this fits the high energy, 'Were still popular' vibe of Pixie-Bob and Ragdoll but the 'Be careful what you wish for' reminds me of the fact that Mandalay and Tiger are a bit more chill now, Tiger probably not liking being in the spotlight while transitioning and them now being back in the popular spotlight because of the LOV attack and it's side effects. It's also a pop group and that's very much the style they go for
Toyomitsu - it's 2 choices with him and I went for this one cos I like MIKA more and I think it's also got a more positive feel to it. More dancing and fun like Fat is.
Hakamada - He is fashion man No1. Confident, fabulous, dramatic and he has 500% said that before
Enji - Enji is hard to find a nice some for because he's not a villian by social standers so it can't go down that road. This song has got that middle ground feel and also mentions legacy and says "The bigger they are, the harder they fall" and we can only hope 🧡
Tamaki - This is the 2nd song I came up with and is why I actually made the 1st playlist. People use super sexy songs or super sad songs and him and move on but I feel like this has a wide view of his feelings. He's angry and does want to have to do the things he has to 9/10 he just does.
A lot of ppl just kinda ignore who the characters actually are and see them as the first impression of them we get or just the surface levels. Like how a lot of ppl just see Ayoama as a fancy boy or Shoji as an mystery emo boy when that's not who they are at all. So that's why I feel like I have to give explanations for characters because I don't feel like people see each individual character as who they are in full
1 note · View note
pigeontheoneandonly · 4 years ago
Text
So this is the actual conversation (as transcribed from my recording, from a personal ME1 playthrough), that makes absolutely plain the context and Ash’s feelings on space racism (spoiler: she’s not pro-racism!):
SHEPARD: Do you have a few minutes to talk, one on one?
ASHLEY: Sure... I-I was hoping to get a minute of your time... off the record.
SHEPARD [paragon choice]: Is this duty-related, Chief?
ASHLEY: No, ma'am.  Well, maybe.  I-I know things are different aboard the Normandy, but, uhh.. I'm concerned about the aliens.  Vakarian and Wrex.  With all due respect, Commander, should they have full access to the ship?
SHEPARD [renegade choice]: You don't trust their motives because they're not human.
ASHLEY: This is the most advanced ship in the Alliance navy. I don't think we should give them free reign to poke around the vital systems. Engines, sensors, weapons...
SHEPARD [neutral choice]: I'm not going to lock them in sleeper pods for the whole trip, Williams.
ASHLEY: I'd be more comfortable if they didn't have access to engineering and the CIC. We-- humanity, I mean-- have to learn to rely on ourselves.
SHEPARD [neutral choice]: How do you get from "relying on ourselves" to "mistreating our allies"?
ASHLEY [note: tone is deeply offended]: I don't mean we should mistreat them, Commander. I just think we should be prepared to go it without them. As noble as the Council members seem now, if their backs are against the wall, they'll abandon us.
SHEPARD [renegade choice]: Heh, yeah, the Council's had a grudge against us since the First Contact War.
ASHLEY: I don't think it's a grudge. I-I think it's... look, if you're fighting a bear, and the only way for you to survive is to sic your dog on it and run, you'll do it. As much as you love your dog, it isn't human.  It's not racism, not really.  Members of their species will always be more important to them than humans are.  
SHEPARD [renegade choice]: This is an Alliance warship, not the Parliament floor. If you're Earth-first, vote for the Terra Firma party.
ASHLEY: Terra Firma is a pack of jackals!  The founders had ideals.  These days, they just play off xenophobia and bigotry.  I hope MY reasons are more rational.  My father, grandfather, great-grandmother-- they all picked up a rifle and swore the oath of service.  I guess we just tend to think of Earth's interests as our own.  
[Segue into discussing Ash's family and Macapa. Shepard then ends the conversation:]
SHEPARD [neutral option]: Alright, I can see where your concerns are coming from, Williams, but this is a multi-lateral mission. You're going to have to work with aliens, like it or not.
ASHLEY: It won't be a problem, Commander. You say jump, I say how high. You ask me to kiss a turian, I'll ask which cheek.  
SHEPARD: I'm glad there won't be a problem.  
Honestly if you see the full context and still believe Ash is spouting racism rather than concerns about the security of advanced/classified technology, then I don’t know what to tell you.  
It’s like someone saying: Hey, I’m concerned about nuclear weapons in America and think we should find a way to defend against that, and also maybe not tell them how it works so they can’t find a way around it?  And then replying: You hate Americans, you racist!
It’s just completely nonsensical.  Even if you’re peachy-keen with America’s nuclear arsenal, it’s a stretch to call a dissenting opinion racism.
(And yes I chose this analogy a) because I’m American so it seems fairest to pick on my own country, and b) because it works... the superpower in the ME1 universe is the allied Council races, not humanity.)
"Garrus apologised to Tali for his spacist remarks, Ashley never did" Maybe because Ashley never actually said anything shitty to Tali and the two of them were already bonding while Garrus was still being a dick?
285 notes · View notes
seenashwrite · 7 years ago
Note
Something's been stated that's just not sitting right with me: "even as a demon, dean treated women with respect. period." I don't know if it's the way it's said as an absolute or that I have an issue with the use of 'respect'.The example gif used of Dean and Lester, to me, it's more about judging Lester for hypocrisy than not wanting to murder the wife, and the way he treated Anne Marie: he disregarded her feelings and her job which I wouldn't call respect, not by Dean standards. Thoughts?
Tumblr media Tumblr media
[I kinda empathize with Lester here, as I understand am living on borrowed time with regard to having such a statement cast upon my person at some future interval, though I’m not hiring demon assassins, so points to Nash I s’pose]
Okay. So. Let’s unpack this, and I don’t think it’s gonna be the giant-ass suitcase on wheels it may seem to be at first blush. Maybe somewhere between a backpack and a carry-on.
‘Cause, see, we don’t have a ton to work with - we really only have scant amounts of observational information on Demon!Dean. They’re poignant, though, to be sure. The way I figure, neither you nor I -  nor the originators/supporters of the stance you relate in your Q - should pluck out a singular moment and presume it paints an entire picture of a person’s character, fictional or no, current state of mind or no.
Demons on this show have demonstrated they do have standards and work/professional ethic(s) [see Crowley’s thoughts on honoring deals, contracts, whatnots], but let us not confuse this with holding on to their personal morality from when they were human. 
Remember - Dean is a free agent. He is not a minion of the King of Hell, he’s just kinda hanging out with Crowley, no loyalty/obligation there [see above, RE: Lester situation, Dean couldn’t care less about any deal parameters, which Crowley scolds him about later]. Sure, Crowley’s funneling kills Dean’s way, but are any of us under the impression Dean couldn’t get those for himself, as needed? [Spoiler: He can go get what he wants/needs, and he’s *said so*]
My hot take: This Lester kill is primarily about convenience, versus taking a stand against hypocrisy, and especially not misogyny, the latter of which smacks of “looking for something in ___ because it is meaningful to you”.
Let’s get this outta the way super fast, so nobody has to go a-diggin’, just sticking it in for easy-peasy purposes - here’s the definition of “ethics”:
Tumblr media
So this can splinter off into subgroups, like religion [”Christian ethics”] and professions [”medical ethics”], etc, etc, etc. Things like what you hear called “rules of engagement” can fall under this umbrella, too. You know, how great care should be taken not to level hospitals and kindergartens, how opposing sides in a conflict should treat POWs humanely, those things. There are sometimes legal overlaps [read: consequences for violations] with ethics but not always.
And just like in the show, we’ve all heard about people who were the best, kindest, talented, most enjoyable folks in the world, only to learn they engaged in what we may perceive as wholly immoral, despicable, gasp-worthy behavior in their personal life. An example from recent past might be the Joss Whedon situation. ::sigh::: So very much disappoint here.
Tumblr media
I say all that to say: in real life, the presumption that a person’s ethics transfer to all areas of their life is naive at best, dangerous at worst.
On to your point with Anne Marie - agreed. We’ll get to the entire context of the Lester scene in a sec. And here we go again, with that hill I’m gonna die on, The Sweetheart Situation, which includes both Dean and Demon!Dean. For this, let us stick to Demon!Deanbehavior, as that’s our topic, specifically as related to women. 
But on a brief, though related, aside - Anne Marie could work for NashHole, Inc.:
ANNE-MARIE - Love you, Crowley.CROWLEY - Love you more… sweetheart.ANNE-MARIE - Anne-Marie… jackass.
She gets it.
———————————-
10 x 1 scenes/dialogue [all bold are mine]: 
Convo not long after finding them in his bed……
CROWLEY - Girl seemed nice. Slightly damaged. I could see the old you falling for that.DEAN - Yeah, well, not to worry. She means nothing.
———————————-
Dean sees dude - who she’s apparently mentioned to him - messing with her…
Tumblr media
Convo later……
DEAN - Let’s go somewhere, you and me.ANNE-MARIE - We are somewhere.DEAN - No. Somewhere else.ANNE-MARIE - Sweetie… We barely know each other. And you’re drunk.DEAN - Yeah, but, uh… I- I protected your honor, didn’t I?ANNE-MARIE - Yeah. I thought so, too. Seeing you take on Matt, I was like, wow, no one’s ever done that for me before. But then you kept going and going, and I realized whatever is going on with you has nothing to do with my “honor” at all.DEAN - Hm. You got all that from a bar fight? Wow. You’re good.ANNE-MARIE - I wait tables at a roadhouse. I meet the bad guys. I meet the good guys. And maybe for a second there, I thought you were a good guy playing bad. I don’t know. It doesn’t matter. Maybe you’re just—
Tumblr media Tumblr media Tumblr media
I have to add here a comment - in its entirety - that I saw about this scene. I’m not attributing because (a) I didn’t note it, so don’t remember, and (b) I legit don’t want to hurt feelings when I say this is such the piss-poor assessment:
“i love this moment. i mean, we’re supposed to hate this moment, because dean is being an insensitive dick, but i think it tells us a lot, not just about demon!dean, but also dean himself. dean’s always slept around and been something of a lady’s man, but we’ve never seen him like this. he’s always been respectful, loving even, in many cases. but you strip away dean’s humanity and he doesn’t see it that way. he can’t see the good in his own actions. dean’s always been one for self hatred, but who knew making him a demon would actually make that worse?”
What, and I mean this deeply, the hell? This is plain as can be. 
He’s just stating the truth. There is nothing in his mannerisms or tone that indicates that he doesn’t see himself in exactly this light, and he’s not being weepy about it. Sure, “real” Dean might, could make a case for that with various show moments/dialogue of self-loathing. But this dude ain’t looking for “the good in his own actions”, c’mon, now.  
This isn’t some shmoopy, deep-seated, introspective scene. I have it somewhere in my files, can’t hit you with a source right this second, but when I was collecting things for the “gold star” list of characteristics I couldn’t ignore for the Dean in my story was a quote from Jensen, speaking of Demon!Dean [and I’m paraphrasing], saying that the scariest thing about him isn’t that he cares about being evil/being a demon/whatever, it’s that he cares about nothing. He is free of any remorse Dean possesses [at *this* point, but that’s another post].
So one more time: Demon!Dean embraces it and gives zero fucks. 
Dean is wanting to leave because Crowley had informed him prior that he was more than ready to move on, and oh - PS - he’s led Sam right to them.
Dean wanted Anne Marie to come with him, essentially running away from Crowley [and the likely forthcoming shit-storm dealing with Sam], because they’ve had, and I quote, “good sex”. Why would he want to bother to find anyone else to put up with his impressive array of fuckery when he’s got a primo bang right in front of him? Sorry, sorry - primo skank?
Again: convenience.
———————————-
Let’s wind things down with 10 x 2…..
DANCER - No touching. House rules.
Tumblr media
DEAN - You sure about that? [pulls a $20 bill out of his wallet, lays it on the stage] Go ahead…..
Tumblr media
……Pick it up.DANCER - And we’re done.DEAN - Hey, hey, hey. Song’s not over, sweetheart. [grabs her]SECURITY - Time to go, jerkwad.
[DEAN beats the SECURITY guard unconscious, kicks him for good measure, finishes his drink, and picks his $20 bill up from the stage]
 King of respecting women, ladies and gents.
———————————-
And last but not least, backing up, how’s about we get some Lester context, eh?
DEAN - Les… I’m gonna say something to you. I need you to really listen to me. You’re a loser. Your lady in there – she’s a North Dakota 8. You’re a 4 ½, max. Now, I don’t blame her for stepping out – especially if she found you were messing around first.LESTER - No. Oh, no. I-I wasn’t…Uh – How do you know?DEAN - Well, you just got that, uh, pervy, “I’d do anything to nail my secretary” look.LESTER - Oh. No. T-that – it’s different when guys do it.DEAN - Really?LESTER - Yeah. It’s called “science”.DEAN - Oh.LESTER - Men aren’t built for monogamy…because of evolution. We’re – we’re – we’re programmed, you know, to –to spread our seed.[DEAN punches him]LESTER - Ohh! Ow!DEAN - Like I said – loser, with a capital “L,” rhymes with “you suck.”LESTER - Yeah, well, you’re a punk-ass demon! And you work for me now. So get in there and do your job, you freak!DEAN - [glares] And what are you gonna do? You gonna watch, huh? Is that what you like to do, Lester? Watch? Well, watch this. [boop]
The boop was mine. He knifes him. Because Lester was an insulting dick…..…..to Dean. He punched Lester out of annoyance, because he’d showed up for the murder, which Dean found idiotic, as well as just being a loser in general.
If he’d wanted him dead because woo!feminism, he’d have done it after that “Oh” or in place of the punch. 
Any way we slice Dean’s various incarnations - demon, purgatory, MoC - and who he’s dealt with - Steins, angels, Dick Roman, Cole, pick a given situation/topic - he doesn’t suffer douchebags kindly. Sometimes they get a LOOK, sometimes they get a beat-down, sometimes they get snark, sometimes they get insulted, and moments of douchebaggery from friends/family ain’t exempted.
And folks, that’s okay. That’s fine. I dunno about you, but I like my characters layered and screwed up and awesome and tough and vulnerable - I’m a selfish gal. We can still adore the package while taking issue with the parts. It’s how we get redemptive moments, can’t have one without the other. 
Oh, and a not-demon-Dean for the road, believe I mentioned it above - from the episode about Horseman Famine, 5x14:
CASTIEL - […] What I don’t understand is…where is your hunger, Dean?DEAN - Huh?CASTIEL - Well, slowly but surely, everyone in this town is falling prey to Famine, but so far, you seem unaffected.DEAN - Hey, when I want to drink, I drink…..
Tumblr media
…..Same goes for a sandwich or a fight.CASTIEL - So… you’re saying you’re just well-adjusted?DEAN - God, no. I’m just well-fed.
.
So sayeth the Nash…. so sayeth the Dean…. so say we all.
17 notes · View notes
newsroom-digital-blogs · 8 years ago
Text
A Look at Apollo, From a Relay Perspective
By JEREMY GAYED
Editor’s note: This article has been reposted from the author’s personal Medium account, with minor edits.
Our team is hard at work on implementing an isomorphic (or, “universal”) application that we’re slowly rolling out. While the complexities introduced by this isomorphism are non-trivial, we felt the benefit outweighed the cost — we were keen on keeping TTFP low, ensuring that there are no issues with SEO (even though there’s mixed thoughts on to what extent fully JavaScript-driven apps actually perform from an SEO perspective) and we wanted to still be able to take advantage of full-page caching where it made sense to. We were also attracted to the ease of which React could be rendered server-side and then pick up from where it left off on the client-side, so we were in.
As part of this new front-end stack, the back-end was also going through changes. We knew we didn’t want to continue hitting REST-based APIs where the mix of /v1 and /v2 endpoints were only growing. We decided to jump in on the GraphQL bandwagon.
At the time, the de facto standard for talking to GraphQL servers on the frontend was (is) Relay. So we didn’t think twice about starting there. However, because our app needed to be isomorphic, there were some non-trivial challenges that came along with that decision. Luckily, there were a few modules available to address these issues and help us render our Relay-based app isomorphically: isomorphic-relay and isomorphic-relay-router. If you’re new to this type of stack, the names of those modules alone might raise some eyebrows. But, they were working and they seemed solid as we started building out our prototype. We were also encouraged by the fact that the super smart author behind those modules, Denis Nedelyaev, was contributing code back into Relay.
If you’re only interested in the upshot of all of this, see the TL;DR at the end of this post.
Mo’ Code, Mo’ Problems
As our prototype started to gradually morph into a full-fledged production-level application (with more teams across the org starting to contribute), the challenges of writing an isomorphic application started to present themselves. We had established a number of patterns that were working, so the pain wasn’t spread throughout the teams contributing, but it did feel like one of those nagging itches that kept coming back.
Just for some context, here is what a typical route in our app looks like:
<Route path="/imageviewer/*" getComponent={importImageViewer} getQueries={({ location }) => (location.state ? { image: () => Relay.QL`query { node(id: $id) }` } : { image: () => Relay.QL`query { asset(id: $id) }` }) } prepareParams={({ splat, ...otherParams }, { location }) => { const id = (location.state && location.state.relayId) ? location.state.relayId : `imageviewer/${splat}`; return { id, ...otherParams }; }} render={({ error, props, element }) => { if (error) { return <InternalError />; } else if (props) { return React.cloneElement(element, props); } return <LoadingPage />; }} />
So, I started looking into some alternatives to Relay. The biggest player here is arguably, Apollo. I was quite impressed with the list of features touted on their site — not the least of which was server-side rendering (SSR) out of the box. That means SSR was a first-class citizen, which I was pretty stoked about. Plus, their documentation was absolutely superb, which is critical for a library that would be at the core of our application as we scaled out to more developers.
Apollo vs. Relay
The following is a write-up I initially did internally to my team that I wanted to share out in case others are looking for more comparisons on these two excellent libraries. Keep in mind that this list is in no way exhaustive, nor is it necessarily 100% accurate — that is, there may be (rather, likely) cases where it’s just user error on our part (e.g. we didn’t write the Relay code completely idiomatically). It’s also in no particular order. So, take what’s here with a grain of salt, but please feel free to comment or call things out. I’m much more interested in learning than I am about calling one library or the other a “winner” (spoiler: there is no winner, the “right” library is the one that works for your use case).
Here goes…
Removing the complexity around isomorphic-relay and isomorphic-relay-router
The isomorphic-relay and isomorphic-relay-router modules are written by a single developer. While that developer was able to contribute things back into Relay for better integration with these modules, the concern is that these are modules we rely on with a relatively small community around them (e.g. in contrast to the Apollo community).
In addition, we’ve come across a couple of cases where we were not able to easily do one thing or another because of these modules. One example is we were unable to experiment with a preact alias because it was incompatible with these modules.
Loading state information provided to the component
A loading prop is provided to the component so that the component itself can handle how it should indicate loading progress. This gives us very granular control over how different components present loading state to the user.
render() { const { loading } = this.props.data;
if (loading) { return <LoadingPage />; // or, LoadingSpinner etc. }
// ... }
In our application, we had been handing this at our routing layer, this means our routing was doing much more than just pure routing logic, and it was done very coarsely. While a similar pattern might be possible with Relay’s pendingVariables, the mental model of a simple loading prop at the component-level seems simpler from a developer’s perspective. It was also unclear if pendingVariables still apply in the isomorphic code path, but this could have been a user-error case :)
Error information provided locally to the component
Similarly to the loading flag above, errors are provided in an error prop to the component itself (this.props.data.error[]). This means that error handling can be done directly in the component and does not need to happen at the route level. Which means that we can still render our shell even if some query deep in the component hierarchy results in some error.
Again, this is another case we were handling at the routing layer, which means it was done very coarsely. The benefit of moving this to the component layer means we do not have to error-out the entire app and can appropriately compartmentalize error handling at the individual component level.
Note that this is for query errors. React’s Error Boundaries (expected to land as part of React Fiber) is handling a different class of errors (errors thrown within a components render() block, for example). It might be that in future versions, Relay takes advantage of React’s Error Boundaries, but that isn’t possible as of this writing.
Skipping queries for SSR
This is by far the biggest win on Apollo’s side. It’s features like these that show the benefit of going with a library that handles server-side rendering as a first-class feature.
Skipping queries during SSR can be done simply by passing in an ssr: false flag into the query options. Our use case for this was in a <WithUserContext /> component that we didn’t want done server-side (for caching concerns) and only need it to run on the client:
@graphql(gql`query UserQuery($token: String) { user(token: $token) { id entitlements } } `, { options: { // Don't run this query on the server ssr: false, // Look how easy! variables: { token, }, }, }) export default class WithUserContext extends Component { ... }
We have yet to find an appropriate solution to this problem in Relay. Unfortunately, to this day, we are still making this extraneous request server-side (which means we’re doing it twice for every request).
No need to leak queries up to the route level
Currently, our <Shell /> component (a top-level component) defines a root query because of the way isomorphic-relay-router works. This is arguably a leaky abstraction, as the Shell itself does not require any GQL data. Neither does the <Masthead /> component rendered within it. Only when we get to the <UserModal /> component (that’s rendered within Masthead) is the GQL query useful.
<Shell> <Masthead> <UserModal user={userData} /> /* GQL data needed */ </Masthead> </Shell>
In our current app, we’ve had to “leak” this query up to the root component, <Shell />, which essentially breaks the co-located queries with the components that use them goal.
With Apollo, <Shell /> and <Masthead /> can stay pure, and the User query can stay local to <UserModal /> where it belongs.
This also means being able to render the Shell even if there is an error in the User (or any other) query. It also means we can share the Shell component with other React-based apps that do not use Relay for data-fetching.
Built on top of Redux
We’re holding back on pulling the trigger to introduce a Redux layer into our app for as long as possible. But, introducing a Redux layer, if desired, is a smaller ask with Apollo since its data store is Redux. This means we can take advantage of the same dehydrate/rehydrate step for all of our apps data needs moving forward instead of introducing a second one for a Redux store when using Relay. Apollo provides documentation on how to integrate with an app-specific Redux store.
SSR out of the box
Again, since Apollo is built with isomorphic apps in mind, it supports SSR out of the box. It works by doing a ‘virtual’ render of the app on the server to collect all the queries for the given route, then initializes a Redux store (since Apollo is built on Redux) which is dehydrated on the server then rehydrated on the client. I’m not entirely sure how isomorphic-relay does its query collecting and if it also includes a virtual render or not, but I was concerned that this may negatively impact performance so I ran some abtests locally and it appears (*unscientifically) that there is not much of a performance impact — in fact, it appears to perform better in comparison.
Captured ab numbers below. This is for the same route with the same data, all other routes were commented out. *Unscientific because this was done on my local machine and not against some dedicated performance test cluster.
relay
Time taken for tests: 6.842 seconds Complete requests: 100 Failed requests: 0 Total transferred: 19907700 bytes HTML transferred: 19888600 bytes Requests per second: 14.62 [#/sec] (mean) Time per request: 68.420 [ms] (mean) Time per request: 68.420 [ms] (mean, across all concurrent requests) Transfer rate: 2841.46 [Kbytes/sec] received
Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 55 68 16.8 64 187 Waiting: 54 67 16.8 63 186 Total: 55 68 16.8 64 187
Percentage of the requests served within a certain time (ms) 50% 64 66% 65 75% 70 80% 71 90% 82 95% 91 98% 150 99% 187 100% 187 (longest request)
apollo
Time taken for tests: 6.270 seconds Complete requests: 100 Failed requests: 0 Total transferred: 16914300 bytes HTML transferred: 16895200 bytes Requests per second: 15.95 [#/sec] (mean) Time per request: 62.700 [ms] (mean) Time per request: 62.700 [ms] (mean, across all concurrent requests) Transfer rate: 2634.44 [Kbytes/sec] received
Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 1 Processing: 52 62 8.4 60 95 Waiting: 51 61 8.3 59 93 Total: 52 63 8.4 60 95
Percentage of the requests served within a certain time (ms) 50% 60 66% 62 75% 64 80% 65 90% 74 95% 86 98% 94 99% 95 100% 95 (longest request)
Normalized object cache
By default, Apollo tries to use the shape of a query itself as a cache so that disparate parts of the app can take advantage of data fetched elsewhere (e.g. think of the use case where User data is grabbed in <UserModal /> and also in <WithUserContext />). This is probably fine in most cases, but in cases where we know this may not work we can manually create an object cache key, more info here.
The difference here with Relay is that the object ID is the default for Relay queries (which is why there’s Relay influence in the schema on the GraphQL server, which wouldn’t be necessary for Apollo). We could chose to continue using the Relay influenced schema and reuse the Relay-ID, or define our own object IDs client side depending on the use cases.
The difference here is probably inconsequential, but worth noting.
Mutation queries update store state
Mutation queries in Apollo also update the store state, so there’s no explicit “fat query” required to keep the UI consistent when doing a mutation query as is the case with Relay (although the Apollo docs do recommend to include fields that could be affected by the mutation in the query). Relay2 is supposed to solve this problem better but not sure what details are available or how that will work quite yet.
The difference here may be two sides of the same coin though. We haven’t written many (read: any) mutations in our app yet, so we’re not sure of the subtleties.
Supports decorators out of the box
Apollo provides support for the @decorator() syntax out of the box. I’m a big fan of decorators. Although to be fair, adding it ourselves for Relay was easy enough, but it meant that depending on if a developer was writing a React class or a stateless functional component, they’d want to import two different things for Relay (our @withRelay decorator or react-relayrespectively), which could be confusing.
Prefetch out of the box
This is a real use case for us, and I was quite impressed to see support for pre-fetching supported out of the box and how easy it is to take advantage ofwith Apollo.
Prefetching is just a function call, which means we can do it virtually anywhere/at any time that it makes sense to. E.g. we could prefetch common user flows immediately after mounting on the client, or when the user hovers over a certain link, etc. It’s not clear how the same can be achieved in Relay.
PropType validation
While we’ve previously decided we do not need PropType validation on Relay-backed proptypes (since we deemed them redundant with the GraphQL schema backing), Apollo has a graphql-anywhere package that provides proptype validation based on the GQL query automatically. This means developers do not need to manually write these proptypes and we can take advantage of them when sharing GQL-backed components. This package maybe(?) useable with Relay as well, so it might be a push here.
Preact alias, hard dependencies on some libraries
By removing isomorphic-relay et al this reopens the door for using the Preact alias for React. We had initially tried out a handful of things to see if we could squeeze out some performance wins preemptively, but this was one of those things we were unable to do because of the isomorphic tools that we needed to support Relay.
We’re also unable to update to the new react-router v4 because of the hard dependencies the isomorphic tools have on how RRv3 works. Not a huge deal since the current routing solution works, but it’s certainly a concern since as the community progresses, we wouldn’t want to pin to an older version of a core library we rely on for support reasons, documentation, etc.
Apollo devtool
Apollo also has a really nice Chrome devtool extension, which provides insight into the queries executed by the app, the data cache and even a Graphiql instance. I believe there is a Relay tab in the React devtools but I could not get it to work locally for whatever reason.
Persisted Queries
The Apollo ecosystem also adds support for Persisted Queries.
This has a few benefits, including:
Whitelisting queries
Minimize bandwidth usage between client/server (since query IDs are transferred over the wire instead of the entire query)
The overhead here is in how we synchronize this with the server, how we have our GraphQL server understand and ingest this statically provided information at app build-time.
Read more about persisted queries here: Persisted Queries And here’s the persisted query module: persistgraphql
There’s an RFC to add something similar for Relay.
Native teams are exploring Apollo
Our Native teams are also looking into using Apollo (iOS and Android teams). They have mentioned already contributing caching strategies back into apollo-client which we theoretically should be able to take advantage of. The main benefit here for us is to be in the same data-fetching ecosystem as other teams across the org.
Drawbacks
It’s not all rosy for Apollo, of course. With everything, there are drawbacks and tradeoffs, some listed below.
A tangential ecosystem
The drawback with using Apollo is that it’s a library not written by Facebook. So there may be some challenges when either Apollo or Facebook update their APIs as the two projects progress.
Static analysis done differently
Currently, the way Apollo does static analysis at build time is to define queries in separate .gqlor .graphql files and then use the webpack loader provided by graphql-tag/loader. There’s pros and cons to this approach.
The Apollo team is also working on babel-plugin-graphql-tag which will function similar to Relay’s. The issue to track this work is here: apollographql/graphql-tag#31
One thing to note is that there is a trade-off with doing this at build time. At build-time means a potentially larger JS bundle which can negatively impact TTP/TTI. And of course doing it at runtime can hamper overall page performance. Ideally we’d find the sweet spot and figure out the best way to do it, but it certainly would be nice to have the option either way.
What’s Next?
Since it seems Relay2 is “right around the corner” we thought it best to see what that looks like before deciding on making the switch or not. One thing to note, however, is that Relay2 will still not support SSR out of the box. So the consideration will be on whether Relay teams’ goal of making it “easy for the community to build upon [Relay’s API] to make a server rendering module for Relay” pans out or not.
TL;DR
If you’re building an app that needs to server-side render and talks to a GraphQL server, strongly consider Apollo before jumping straight into Relay; the complexity otherwise is considerable. If SSR is not important to you, Relay is probably a good choice here since you’ll be staying within the “Facebook ecosystem” of tools and modules.
Jeremy Gayed is a lead engineer at The New York Times. He’s working on building out the next generation web platform for various teams at The Times.
A Look at Apollo, From a Relay Perspective was originally published in Times Open on Medium, where people are continuing the conversation by highlighting and responding to this story.
from Times Open - Medium http://ift.tt/2s2ELnl via IFTTT
0 notes
one-boring-person · 4 years ago
Text
You're Back!
The Lost Boys x reader
Warnings: vague mentions of death
Context: This is supposed to be a kind of crossover between Top Gun and The Lost Boys (because they are my favourite films) but it is only minorly so. The reader is a naval fighter pilot who is good friends with the boys and spends most of her free time in Santa Carla with them.
A/N: This hasn't turned out too well, because I'm ridiculously sleep deprived tired, so I will revisit it at some point, whether to rewrite it completely or to add to it, I'm not sure, but I will improve it. For now, I hope this is acceptable.💛😊
**contains some spoilers for Top Gun, but only vague ones**
Masterlist
Tumblr media
I roll my eyes as yet another person stares at me as they pass, keeping eye contact with them until they stop looking, turning their gaze away awkwardly, carrying on with their night without watching me for the entirety of it. By now, I've had to sit through about a score of curious people in the last two hours, my tolerance for them quickly wearing thin as they continue to eye the uniformed stranger leaning against a motorcycle. Chewing on my lip, a habit I've never managed to kick, I carefully roll up the sleeves of my military uniform shirt, careful not to crease it too much, even though I will likely iron it before I wear it again, the hard-learnt instincts reminding me to stay smart and neat, even if I'm currently not in the presence of any commanders I need to report to.
In the stifling heat, my shirt sticks to my skin a bit, sweat coating my brow as I watch the crowd, my hair starting to become less styled and more dishevelled with each passing minute, the journey from the aircraft carrier I was deployed at to the airport in Miramar, followed by the gruelling motorcycle ride down to Santa Carla having that effect in me. I didn't have time to stop off anywhere on the way to get changed into my own clothes, seeing as I wanted to get to the little seaside town before sundown, choosing instead to stay in my uncomfortable uniform, knowing it may well curry me some favours here and there along the way - bartenders are only too happy to serve a member of the naval air force, especially a Top Gun graduate. Absentmindedly I feel my lips quirk up into a smile, recalling the time my friend, Pete "Maverick" Mitchell, used this fact to his advantage when in Miramar, charming a poor waitress into giving us all free food and drinks, though I'm pretty sure he promised her something in return, something which kept him out of the bunk rooms that night. Ironically, he never used that trick again.
Shaking my head, I cast my gaze over the crowd again, searching for a particular group of people, a sense of excitement rising in me when I hear the tell tale sound of their motorcycles cutting through the horde of people, my eyes swiftly finding the approaching people as they park their vehicles a little way away from me. Making a split second decision, I choose to stay by my own bike, waiting for them to either notice me, or walk past, a small smirk plastered across my lips, my eyes fixed on them: David, Dwayne, Paul and Marko.
Eventually, they push off their bikes and start making their way through the crowd, having missed my presence completely, the four of them easily moving amongst the people lining the Boardwalk, most sane locals knowing the group's notorious reputation. David and Dwayne walk ahead of Paul and Marko, who are pushing and shoving each other around, giggling and laughing to themselves as a band of girls squeals when the smaller of the two is thrown straight into their midst, drawing some attention from the people around them, though they have yet to notice me. Crossing my arms over my chest, I just watch as they move together, eyeing them as they come into range before looking around for something, quickly finding a discarded newspaper on the wall behind my motorbike. Smirking wider, I take it and tear off three pages, screwing them into a tight ball, my gaze returning to the approaching bikers, guaging the distance between me and them, knowing I have a very good aim, having practiced it a lot before and during training. Winding back my arm, I take aim and throw the ball, giving it some force so that the intended target will manage to feel it under his mess of hair, trying mg hardest to contain my laughter when the projectile connects with the back of his head.
Paul instantly looks around, irritation and confusion rife in his face as he searches the crowd for his assailant, still missing me, even as I throw another ball of paper, though this one is aimed for Marko, who also receives it as a blow to the back of the head. Disgruntled, the two vampires stop, looking around for the source, drawing David and Dwayne's attention as they realise their friends are no longer following them. Biting my lip, I throw another two, hitting both of the quieter boys square in the back, trying my hardest to hold back my laughter, though I am unsuccessful as they continue to search around, heads whipping to and fro as they try to work out where I am, the crowd of people around them starting to leave a berth around them, leaving their view of me unblocked and clear. Finally, I decide to put them put of their misery.
"Damn, I thought you guys were observant." I call out to them, tossing another ball of newspaper from hand to hand to show who the culprit was. Surprised, and somewhat shocked, the four of them spin around, their faces lighting up when they catch sight of me, Paul and Marko instantly racing over and engulfing me in a tight hug.
"(Y/n)! You're back!" The latter exclaims happily, pulling away briefly to look me in the eye before he buries his face into my clothes again.
"I am. It's good to see you all!" I respond, laughing as I wrap my arms around them, glad to finally get to see them again after so long. Over their heads, Dwayne and David shoot me equally glad smiles, the former ready to step in once the other two have released me.
"Not nearly as good as it is to see you again! I hate it when you leave!" Paul mumbles into my shirt, Marko agreeing with him as they continue to crush me.
"I hate leaving, too, but I always come back." I remind them, patting them on the back so that they'll release me, smiling at both of them as they grudgingly step away, allowing Dwayne to step in and pull me into a softer embrace, his long arms pressing me into his bare chest, his face burying itself into my hairline. Happily, I wrap my own arms around his waist, enjoying the sensation of his cool skin against my heated body, jealous of his pleasant temperature.
After a few minutes, I pull away again, looking to David, who just smiles (genuinely for once) at me, his intimidating reputation preventing him from showing any affection in public, though he isn't really one for hugs in private, either. Or, at least not with me. Instead, he gives my body a once over with his icy blue eyes, the gesture drawing a blush to my cheeks, especially when I feel the others do the same, some more discreetly than others - unfortunately, I'd managed to develop a crush on all four of them, so the idea of them blatantly checking me out is not one I dismiss too easily.
"It's good to see you again, (Y/n)." He greets, chuckling as he watches Marko and Paul fight over who gets to put their arm around my waist, only for the both of them to whine when Dwayne beats them to it, the taller brunette pulling me into his side with an intimacy he's never had before.
"Yeah, it's good to be back." I agree, smiling at them all, "What're we gonna do tonight? I have three weeks this time round."
"Three weeks? That's much longer than last time!" Paul comments, slipping in on my other side, slinging his arm around my shoulders so that I'm now sandwiched between two tall vampires.
"I don't have to stay that long." I point out, jokingly, sending Marko an apologetic look when he notices that Paul has managed to get his arm around me.
"That's not what I meant, it means that we can do so much more together!" The tall, blonde vampire explains, most likely already thinking up ways to spend the next three weeks, "We should go swimming in the sea, and go on all the rides on the Boardwalk, and go to concerts-"
"Take it easy, I only just got here!" I cut him off, grinning as David and Dwayne chuckle at their friend's antics.
"Speaking of which, have you eaten yet?" The platinum blonde interjects, lifting an eyebrow at me in curiosity.
"No, I don't have any money on me, actually. I think I left it back on the carrier, which is annoying." I frown, thinking for a minute before remembering something, "No, that's not true. I brought some of it with me. It's in the seat compartment of the bike, hang on."
Swiftly, I retrieve the money, returning to the two vampires who had their arms around me, both of them only to eager to repeat the gestures.
"You should know by now that you don't have to pay for food when you're with us." David reminds me, lifting an eyebrow at me as he watches me put the notes into a secure pocket under my belt.
"I know, but I like having it with me anyway." I supply, only too happy to start walking towards the food stalls of the Boardwalk, my stomach growling audibly as the scents of the different types reach me.
"Fair enough." Dwayne says, squeezing my waist gently.
In no time, we've bought some food and eaten it, continuing to roam the Boardwalk as the night goes on, the five of us having a good time together as we always do, falling straight back into our usual habits and patterns, the friendship as strong as ever, though I've noticed that their touches are often more lingering than before, and that they're stares are less innocent than they used to be. I try to ignore it, but it becomes increasingly harder as Paul and Marko continue to fight over who gets to wrap their arm around me, eventually just agreeing to swap every half and hour or so, Dwayne never leaving my side as David leads us around, the vampire smirking at me every now and then.
After a few hours or so, I feel myself starting to get tired, having had very little rest in the time between travelling and meeting the boys, so I ask them if I can join them at the cave, seeing as I have no other accommodation, to which they all wholeheartedly agree. Leading me back to the motorcycles, the four vampires quickly decide whether to take the road or the beach back to the sunken hotel, swiftly deciding on the road seeing as it is the most direct, and therefore the quickest, though David does promise that we'll ride along the beach at some point.
As we leave the Boardwalk, I ride towards the back, between Marko and Dwayne, easily keeping up as we thunder along one of the motorways, shrieks and whoops of exhilaration leaving us from the thrill, our speed dangerously high until we hit the dirt paths leading up to the Bluff, at which point I slow my bike down so that it can grip the dusty surface better. Ahead of me, Paul tries to goad me on, encouraging me to live a little, though my heightened survival instincts are telling me to be careful along the steep cliff edge. Coming to a halt at the top, we dismount and hide the motorbikes, the four of them swiftly taking me down into their abode, though I do collect a bag from the compartment under my seat before following, sitting it down on the sofa beside me as I collapse onto one, routing around in it briefly.
I pull out a slightly scuffed book, throwing it to David as he comes to sit opposite me on his wheelchair, the others crowding around him to look at it in curiosity.
"Got you guys a little something." I tell them, gesturing to him to open it.
Upon doing so, their eyes widen, Marko's breath hitching as he sees what it is, the young vampire obviously fascinated by it.
"When did you get these?" Dwayne finally manages, unable to tear his eyes from the photo album in David's hands, admiring the Polaroids I stuck into it, thinking they'd be happy to look at them.
"Well, I had my RIO* bring a camera up with him one time when we were on patrol, but I took the pictures. I thought you'd like to have some pictures of the sky in the daytime and at sunset and sunrise to look at, seeing as you can't see them in person anymore." I explain nervously, hoping they like it, suddenly feeling a bit unsure of whether they'd like to be reminded of this fact.
For near enough ten minutes, the four vampires are silent, flicking through the book with wide eyes, David tracing a finger over one in particular.
"How the hell are we supposed to thank you for this, kitten?" He finally says, the nickname making me blush a little, though I'm not entirely sure how to respond.
"You don't have to thank me for that, it's not that great of a gift, on the scale of things-" I start, only to be cut off by Marko.
""Not that great of a gift"? Are you serious? This is the best thing we've ever gotten!" He exclaims, tearing his eyes away from the photos so that he can come over and drown me in a hug again, crushing me into his chest. Laughing, I wrap my arms around him, holding him tightly, inhaling the comforting scent of his jacket as I do so.
Across from us, Paul also manages to look away from the Polaroids, coming over and joining us on the sofa, a grin on his face as he plonks himself on top of Marko, a grunt escaping me from the sudden weight.
"You're the best, (Y/n), you really are!" He praises me, leaning down to press a swift kiss on my cheek, smirking when I blush in response.
"I'm not sure about that, but thank you anyway." I wheeze out, their weight starting to become a bit too much for be to bear. Tapping on Marko's back, I wait for him to throw Paul off before pushing him off of my lap, taking a deep breath as I look over at Dwayne and David, who are still enraptured by the photo album.
"Who's that?" The latter suddenly asks, pointing to a certain picture.
Frowning, I get up and come over, looking down at the picture in question, smiling as I recognise it immediately, the image holding a lot of sad and happy memories for me.
"Those are my friends Maverick and Goose before..." My voice trails off, an old surge of grief gnawing at my heart as I recall the exact moment that photo was taken, remembering the aviators as they joked around with me and my RIO, Hawk, all four of us only staying still for that one photo.
"Before?" Dwayne pushes gently, dark eyes boring into mine with curiosity.
Clenching my jaw, I let out a sigh before I reply.
"Before the accident. The accident where Goose...died..." I manage to get out, my eyes now fixed on the miniature version of my friend's face, still wishing he were still alive and kicking.
"I'm sorry, (Y/n), I didn't mean to bring it up. If I had known, I wouldn't have said anything." David apologises, placing a gloved hand on mine in comfort, blue eyes sympathetic.
"No, don't worry about it. It's what happens in the military, and it just so happens to be that my friend got it in the neck. There's nothing that can be done." I tell him, grateful that they haven't pursued the subject, though the reminder has made me feel a lot more tired than before, for whatever reason, "I think I'm gonna go get some sleep now, if you don't mind. It's been a long day."
The four of them agree, Paul, Marko and Dwayne all pressing quick kisses on my cheek as I pass them, David following me to the little nest that they provided for me the last time I was here, the vampire watching as I settle in. I only take off my boots, socks and belt, unpinning my Wings from my chest as I go, briefly debating with myself about whether or not to unbutton my shirt and just sleep in my underwear, until I remember that David is still there, his blue eyes tracing my form as I move around.
Finally slipping into the makeshift bed, I notice that the vampire still hasn't moved away, watching me as if asking for permission to do something, my mind struggling to comprehend what he means until I see him look at the blankets questioningly.
"Do you want to join me?" I ask, surprise lacing my voice.
"If you don't mind."
I can't refuse him, so I simply move over and let him slide in beside me, feeling even more surprised when he pulls me into his chest, wrapping his arms around me and rubbing circles into my skin with one thumb. A small gasp escapes me when I feel his hand slip under my shirt, his skin icy cold against mine, the sensation pleasant as starts to trace patterns into my sides, his eyes boring into mine as I watch him, still confused.
"What's gotten into you?" I question him, laying my head on his chest, my hands coming up to rest just on his collarbone, my fingers running over the line of the bone.
"Nothing, I just need to tell you something which might not be the greatest news you've ever heard." He tries to reassure me, his deep voice resonating though his chest and into me as he watches my facial expressions change.
"What is it?" I ask him hesitantly, dread biting at the back of my throat.
"Well, I don't suppose you remember us telling you about the whole idea of vampires having a mate?"
"...Yeah?" I frown slightly, briefly remembering the conversation.
"It turns out that the four of us have a mate, and it's taken us far too long to feel the connection." David confirms, swallowing at the confession.
"Oh really? Who is it?' I can't help but feel a bit disappointed, knowing that the mating bond makes the four of them off-limits to anyone else.
"You. You're our mate."
*RIO = Radar Intercept Officer
Part Two
71 notes · View notes
newsroom-digital-blogs · 8 years ago
Text
A Look at Apollo, From a Relay Perspective
By JEREMY GAYED
Editor’s note: This article has been reposted from the author’s personal Medium account, with minor edits.
Our team is hard at work on implementing an isomorphic (or, “universal”) application that we’re slowly rolling out. While the complexities introduced by this isomorphism are non-trivial, we felt the benefit outweighed the cost — we were keen on keeping TTFP low, ensuring that there are no issues with SEO (even though there’s mixed thoughts on to what extent fully JavaScript-driven apps actually perform from an SEO perspective) and we wanted to still be able to take advantage of full-page caching where it made sense to. We were also attracted to the ease of which React could be rendered server-side and then pick up from where it left off on the client-side, so we were in.
As part of this new front-end stack, the back-end was also going through changes. We knew we didn’t want to continue hitting REST-based APIs where the mix of /v1 and /v2 endpoints were only growing. We decided to jump in on the GraphQL bandwagon.
At the time, the de facto standard for talking to GraphQL servers on the frontend was (is) Relay. So we didn’t think twice about starting there. However, because our app needed to be isomorphic, there were some non-trivial challenges that came along with that decision. Luckily, there were a few modules available to address these issues and help us render our Relay-based app isomorphically: isomorphic-relay and isomorphic-relay-router. If you’re new to this type of stack, the names of those modules alone might raise some eyebrows. But, they were working and they seemed solid as we started building out our prototype. We were also encouraged by the fact that the super smart author behind those modules, Denis Nedelyaev, was contributing code back into Relay.
If you’re only interested in the upshot of all of this, see the TL;DR at the end of this post.
Mo’ Code, Mo’ Problems
As our prototype started to gradually morph into a full-fledged production-level application (with more teams across the org starting to contribute), the challenges of writing an isomorphic application started to present themselves. We had established a number of patterns that were working, so the pain wasn’t spread throughout the teams contributing, but it did feel like one of those nagging itches that kept coming back.
Just for some context, here is what a typical route in our app looks like:
<Route path="/imageviewer/*" getComponent={importImageViewer} getQueries={({ location }) => (location.state ? { image: () => Relay.QL`query { node(id: $id) }` } : { image: () => Relay.QL`query { asset(id: $id) }` }) } prepareParams={({ splat, ...otherParams }, { location }) => { const id = (location.state && location.state.relayId) ? location.state.relayId : `imageviewer/${splat}`; return { id, ...otherParams }; }} render={({ error, props, element }) => { if (error) { return <InternalError />; } else if (props) { return React.cloneElement(element, props); } return <LoadingPage />; }} />
So, I started looking into some alternatives to Relay. The biggest player here is arguably, Apollo. I was quite impressed with the list of features touted on their site — not the least of which was server-side rendering (SSR) out of the box. That means SSR was a first-class citizen, which I was pretty stoked about. Plus, their documentation was absolutely superb, which is critical for a library that would be at the core of our application as we scaled out to more developers.
Apollo vs. Relay
The following is a write-up I initially did internally to my team that I wanted to share out in case others are looking for more comparisons on these two excellent libraries. Keep in mind that this list is in no way exhaustive, nor is it necessarily 100% accurate — that is, there may be (rather, likely) cases where it’s just user error on our part (e.g. we didn’t write the Relay code completely idiomatically). It’s also in no particular order. So, take what’s here with a grain of salt, but please feel free to comment or call things out. I’m much more interested in learning than I am about calling one library or the other a “winner” (spoiler: there is no winner, the “right” library is the one that works for your use case).
Here goes…
Removing the complexity around isomorphic-relay and isomorphic-relay-router
The isomorphic-relay and isomorphic-relay-router modules are written by a single developer. While that developer was able to contribute things back into Relay for better integration with these modules, the concern is that these are modules we rely on with a relatively small community around them (e.g. in contrast to the Apollo community).
In addition, we’ve come across a couple of cases where we were not able to easily do one thing or another because of these modules. One example is we were unable to experiment with a preact alias because it was incompatible with these modules.
Loading state information provided to the component
A loading prop is provided to the component so that the component itself can handle how it should indicate loading progress. This gives us very granular control over how different components present loading state to the user.
render() { const { loading } = this.props.data;
if (loading) { return <LoadingPage />; // or, LoadingSpinner etc. }
// ... }
In our application, we had been handing this at our routing layer, this means our routing was doing much more than just pure routing logic, and it was done very coarsely. While a similar pattern might be possible with Relay’s pendingVariables, the mental model of a simple loading prop at the component-level seems simpler from a developer’s perspective. It was also unclear if pendingVariables still apply in the isomorphic code path, but this could have been a user-error case :)
Error information provided locally to the component
Similarly to the loading flag above, errors are provided in an error prop to the component itself (this.props.data.error[]). This means that error handling can be done directly in the component and does not need to happen at the route level. Which means that we can still render our shell even if some query deep in the component hierarchy results in some error.
Again, this is another case we were handling at the routing layer, which means it was done very coarsely. The benefit of moving this to the component layer means we do not have to error-out the entire app and can appropriately compartmentalize error handling at the individual component level.
Note that this is for query errors. React’s Error Boundaries (expected to land as part of React Fiber) is handling a different class of errors (errors thrown within a components render() block, for example). It might be that in future versions, Relay takes advantage of React’s Error Boundaries, but that isn’t possible as of this writing.
Skipping queries for SSR
This is by far the biggest win on Apollo’s side. It’s features like these that show the benefit of going with a library that handles server-side rendering as a first-class feature.
Skipping queries during SSR can be done simply by passing in an ssr: false flag into the query options. Our use case for this was in a <WithUserContext /> component that we didn’t want done server-side (for caching concerns) and only need it to run on the client:
@graphql(gql`query UserQuery($token: String) { user(token: $token) { id entitlements } } `, { options: { // Don't run this query on the server ssr: false, // Look how easy! variables: { token, }, }, }) export default class WithUserContext extends Component { ... }
We have yet to find an appropriate solution to this problem in Relay. Unfortunately, to this day, we are still making this extraneous request server-side (which means we’re doing it twice for every request).
No need to leak queries up to the route level
Currently, our <Shell /> component (a top-level component) defines a root query because of the way isomorphic-relay-router works. This is arguably a leaky abstraction, as the Shell itself does not require any GQL data. Neither does the <Masthead /> component rendered within it. Only when we get to the <UserModal /> component (that’s rendered within Masthead) is the GQL query useful.
<Shell> <Masthead> <UserModal user={userData} /> /* GQL data needed */ </Masthead> </Shell>
In our current app, we’ve had to “leak” this query up to the root component, <Shell />, which essentially breaks the co-located queries with the components that use them goal.
With Apollo, <Shell /> and <Masthead /> can stay pure, and the User query can stay local to <UserModal /> where it belongs.
This also means being able to render the Shell even if there is an error in the User (or any other) query. It also means we can share the Shell component with other React-based apps that do not use Relay for data-fetching.
Built on top of Redux
We’re holding back on pulling the trigger to introduce a Redux layer into our app for as long as possible. But, introducing a Redux layer, if desired, is a smaller ask with Apollo since its data store is Redux. This means we can take advantage of the same dehydrate/rehydrate step for all of our apps data needs moving forward instead of introducing a second one for a Redux store when using Relay. Apollo provides documentation on how to integrate with an app-specific Redux store.
SSR out of the box
Again, since Apollo is built with isomorphic apps in mind, it supports SSR out of the box. It works by doing a ‘virtual’ render of the app on the server to collect all the queries for the given route, then initializes a Redux store (since Apollo is built on Redux) which is dehydrated on the server then rehydrated on the client. I’m not entirely sure how isomorphic-relay does its query collecting and if it also includes a virtual render or not, but I was concerned that this may negatively impact performance so I ran some abtests locally and it appears (*unscientifically) that there is not much of a performance impact — in fact, it appears to perform better in comparison.
Captured ab numbers below. This is for the same route with the same data, all other routes were commented out. *Unscientific because this was done on my local machine and not against some dedicated performance test cluster.
relay
Time taken for tests: 6.842 seconds Complete requests: 100 Failed requests: 0 Total transferred: 19907700 bytes HTML transferred: 19888600 bytes Requests per second: 14.62 [#/sec] (mean) Time per request: 68.420 [ms] (mean) Time per request: 68.420 [ms] (mean, across all concurrent requests) Transfer rate: 2841.46 [Kbytes/sec] received
Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 55 68 16.8 64 187 Waiting: 54 67 16.8 63 186 Total: 55 68 16.8 64 187
Percentage of the requests served within a certain time (ms) 50% 64 66% 65 75% 70 80% 71 90% 82 95% 91 98% 150 99% 187 100% 187 (longest request)
apollo
Time taken for tests: 6.270 seconds Complete requests: 100 Failed requests: 0 Total transferred: 16914300 bytes HTML transferred: 16895200 bytes Requests per second: 15.95 [#/sec] (mean) Time per request: 62.700 [ms] (mean) Time per request: 62.700 [ms] (mean, across all concurrent requests) Transfer rate: 2634.44 [Kbytes/sec] received
Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.1 0 1 Processing: 52 62 8.4 60 95 Waiting: 51 61 8.3 59 93 Total: 52 63 8.4 60 95
Percentage of the requests served within a certain time (ms) 50% 60 66% 62 75% 64 80% 65 90% 74 95% 86 98% 94 99% 95 100% 95 (longest request)
Normalized object cache
By default, Apollo tries to use the shape of a query itself as a cache so that disparate parts of the app can take advantage of data fetched elsewhere (e.g. think of the use case where User data is grabbed in <UserModal /> and also in <WithUserContext />). This is probably fine in most cases, but in cases where we know this may not work we can manually create an object cache key, more info here.
The difference here with Relay is that the object ID is the default for Relay queries (which is why there’s Relay influence in the schema on the GraphQL server, which wouldn’t be necessary for Apollo). We could chose to continue using the Relay influenced schema and reuse the Relay-ID, or define our own object IDs client side depending on the use cases.
The difference here is probably inconsequential, but worth noting.
Mutation queries update store state
Mutation queries in Apollo also update the store state, so there’s no explicit “fat query” required to keep the UI consistent when doing a mutation query as is the case with Relay (although the Apollo docs do recommend to include fields that could be affected by the mutation in the query). Relay2 is supposed to solve this problem better but not sure what details are available or how that will work quite yet.
The difference here may be two sides of the same coin though. We haven’t written many (read: any) mutations in our app yet, so we’re not sure of the subtleties.
Supports decorators out of the box
Apollo provides support for the @decorator() syntax out of the box. I’m a big fan of decorators. Although to be fair, adding it ourselves for Relay was easy enough, but it meant that depending on if a developer was writing a React class or a stateless functional component, they’d want to import two different things for Relay (our @withRelay decorator or react-relayrespectively), which could be confusing.
Prefetch out of the box
This is a real use case for us, and I was quite impressed to see support for pre-fetching supported out of the box and how easy it is to take advantage ofwith Apollo.
Prefetching is just a function call, which means we can do it virtually anywhere/at any time that it makes sense to. E.g. we could prefetch common user flows immediately after mounting on the client, or when the user hovers over a certain link, etc. It’s not clear how the same can be achieved in Relay.
PropType validation
While we’ve previously decided we do not need PropType validation on Relay-backed proptypes (since we deemed them redundant with the GraphQL schema backing), Apollo has a graphql-anywhere package that provides proptype validation based on the GQL query automatically. This means developers do not need to manually write these proptypes and we can take advantage of them when sharing GQL-backed components. This package maybe(?) useable with Relay as well, so it might be a push here.
Preact alias, hard dependencies on some libraries
By removing isomorphic-relay et al this reopens the door for using the Preact alias for React. We had initially tried out a handful of things to see if we could squeeze out some performance wins preemptively, but this was one of those things we were unable to do because of the isomorphic tools that we needed to support Relay.
We’re also unable to update to the new react-router v4 because of the hard dependencies the isomorphic tools have on how RRv3 works. Not a huge deal since the current routing solution works, but it’s certainly a concern since as the community progresses, we wouldn’t want to pin to an older version of a core library we rely on for support reasons, documentation, etc.
Apollo devtool
Apollo also has a really nice Chrome devtool extension, which provides insight into the queries executed by the app, the data cache and even a Graphiql instance. I believe there is a Relay tab in the React devtools but I could not get it to work locally for whatever reason.
Persisted Queries
The Apollo ecosystem also adds support for Persisted Queries.
This has a few benefits, including:
Whitelisting queries
Minimize bandwidth usage between client/server (since query IDs are transferred over the wire instead of the entire query)
The overhead here is in how we synchronize this with the server, how we have our GraphQL server understand and ingest this statically provided information at app build-time.
Read more about persisted queries here: Persisted Queries And here’s the persisted query module: persistgraphql
There’s an RFC to add something similar for Relay.
Native teams are exploring Apollo
Our Native teams are also looking into using Apollo (iOS and Android teams). They have mentioned already contributing caching strategies back into apollo-client which we theoretically should be able to take advantage of. The main benefit here for us is to be in the same data-fetching ecosystem as other teams across the org.
Drawbacks
It’s not all rosy for Apollo, of course. With everything, there are drawbacks and tradeoffs, some listed below.
A tangential ecosystem
The drawback with using Apollo is that it’s a library not written by Facebook. So there may be some challenges when either Apollo or Facebook update their APIs as the two projects progress.
Static analysis done differently
Currently, the way Apollo does static analysis at build time is to define queries in separate .gqlor .graphql files and then use the webpack loader provided by graphql-tag/loader. There’s pros and cons to this approach.
The Apollo team is also working on babel-plugin-graphql-tag which will function similar to Relay’s. The issue to track this work is here: apollographql/graphql-tag#31
One thing to note is that there is a trade-off with doing this at build time. At build-time means a potentially larger JS bundle which can negatively impact TTP/TTI. And of course doing it at runtime can hamper overall page performance. Ideally we’d find the sweet spot and figure out the best way to do it, but it certainly would be nice to have the option either way.
What’s Next?
Since it seems Relay2 is “right around the corner” we thought it best to see what that looks like before deciding on making the switch or not. One thing to note, however, is that Relay2 will still not support SSR out of the box. So the consideration will be on whether Relay teams’ goal of making it “easy for the community to build upon [Relay’s API] to make a server rendering module for Relay” pans out or not.
TL;DR
If you’re building an app that needs to server-side render and talks to a GraphQL server, strongly consider Apollo before jumping straight into Relay; the complexity otherwise is considerable. If SSR is not important to you, Relay is probably a good choice here since you’ll be staying within the “Facebook ecosystem” of tools and modules.
Jeremy Gayed is a lead engineer at The New York Times. He’s working on building out the next generation web platform for various teams at The Times.
A Look at Apollo, From a Relay Perspective was originally published in Times Open on Medium, where people are continuing the conversation by highlighting and responding to this story.
from Times Open - Medium http://ift.tt/2s2ELnl via IFTTT
0 notes