Tumgik
#and when they don’t I automatically assume they are omitting information since I’m so used to that
fishsfailureson · 3 months
Text
Yknow I hate it when I order food at a restaurant and there’s something in it that was never mentioned on the menu (especially when it’s something I can’t eat).
1 note · View note
alexanicholsauthor · 5 years
Text
Sexual harassment, being a “working girl,” and loli rants…
Tumblr media
The best decision I ever made (besides starting a Patreon) was to become a writer. It was also probably the worst. I write this because while I love writing, some of the people my writing (or at least my erotic writing) attracts are just creepy as fuck. They seem to assume because I write erotica, I always have sex on the brain, and that’s all I want to talk about – even though they are complete strangers. It’s like just because they can create a fake social media account, they think it’s OK to talk to women any way they want. This is why I’m not a big fan of internet anonymity – it makes it too easy to assault people. I mean, they wouldn’t do this in real life because they would be thrown in jail, but it’s OK online. Why? I seriously don’t understand why sexual harassment is OK on the internet, but against the law face to face. Just because a computer is used, it’s acceptable?
In a way, it reminds me of a funny story that happened a few years ago with a close friend of mine, Nicole. We were out late as fuck one night, basically clubbing/acting fools and called an Uber to get us home safely. We were dressed up, of course, but Nicole – who looked like a straight supermodel – looked way better than I did. Anyway, the driver got us to our destination and asked Nicole if she was a working girl. My eyes widened because I’m a little hoodrat and knew exactly what he meant, but Nicole had no clue – she smiled and said something to the extent of “Yep! I be getting’ people’s money all day!” (she was a banker at Wells Fargo) The guy shook his head in dismay and said that he wished he had some extra money because she was drop-dead gorgeous.
She grinned; he looked something like a lost, beaten puppy. 🙄
We got out of the car.
As we watched the guy drive away, Nicole blinked a few times, and her eyes widened. She turned to me and said, “Wait – was he asking me if I was a prostitute?!” I laughed so hard I almost fell to the ground. When I told her yes, that was precisely what he was asking, she turned more shades of red than I ever thought possible. I wouldn’t let her live that down for anything. Loved it.
<LoliRant>
It does kind of illustrate my point though. Our jobs do not define us. Neither do our hobbies. We define us, and we are so much more complex than the paltry scraps of information we decide to randomly throw on the internet. I’ve been to college. I’ve accumulated five different degrees. According to the Stanford-Binet IQ scale (and a few others), I’m in the top 5% of the population. I’ve been told by several MENSA members that I should join, but honestly, the benefits suck, and I don’t need the validation. I did, however, pass the online test just out of curiosity.
I’m not writing any of this to brag: those of you who have known me for years most likely didn’t know any of the above. And there’s no reason you should. I don’t need to impress anyone, and I definitely don’t want to come across as better-than or egotistical.
No, I’m not trying to brag, I’m trying to illustrate a point. Despite all the above, and my general sweet-natured attitude towards strangers (I like to give everyone the benefit of the doubt), I continuously get swarmed with stupid messages and unsolicited (and frankly disgusting) messages and pictures. All because I write erotica. I have several non-erotic pen names that I write paranormal, romance, science fiction, fantasy, and a few other genres under, but that’s beside the point – instead of trying to get to know me for who I am, people automatically assume that since I’m a girl that writes kinky things I’m online to be their personal sex outlet.
Ew. 🤮
Please don’t get it twisted. I love to flirt, sometimes in lewd ways, but I have to know you first. Like, really know you – not just a few quick DMs…
</LoliRant>
Anyway.
On the writing front, I’m almost finished with the rough draft of the last book in the Exitium Mundi series, which should have been done long before now. Unfortunately, I keep thinking of things to add, change, and omit. So ridiculous. But it’s getting there, and all the changes I’m making are for the betterment of the story, so I really can’t complain too much. Of course, doing all that also means I have to go back through the rest of the other six books and change things, adding and taking out parts, etc. Luckily they are all short(ish), so it isn’t that big of a deal. Yet.
Oh! Before I go, please send my homiegirl @n0nlineargirl some love. And pictures of horse penises. She really loves horse penises. 😂 She recently broke her foot and may need surgery, so she needs all the attention she can get. I’m reasonably sure she doesn’t read my Diary entries, but just in case tell her I sent you. She’ll thank you, trust me.
1 note · View note
Text
Chapter Twenty
Performing on stage with The Darkness was one of the best moments of my life.  Closely followed by the day when I wrapped filming the short film for Karl Lagerfeld and received a cheque for a million dollars.
The film itself wasn’t complicated. It was called ‘Reincarnation’ and starred both myself and Pharrell Williams. It was about a bell boy and a waitress working in the same hotel who were reincarnations of two people that had been in love and had the romantic moment of the two of them dancing together painted in a portrait. We played our modern characters then did a flashback of the two of us dancing in our dated characters.
The whole film wasn’t just an excuse for Karl to show off his brilliant costume designs but it was also a commentary on interracial couples and I was quite proud to be a part of the piece.
I was a little confused about what to do with my new influx of cash. I was almost scared to spend the money. Even though I was technically a millionaire now I still lived in the shabby little two-bedroom apartment with James and Paul because, well, I liked there. I liked living with them. So when the two of them questioned me as to why I was still living with them, I explained; if I was to spend my money on buying a house myself, that would mean I would no longer be able to live with them.
“Darling, whatever house you buy, we’re coming with you. Like, you get no say in the matter. So make sure it’s a nice one so I can decorate it.” Said James simply.
They didn’t really understand; I was used to living in the middle class with a modest yet comfortable wage from my cello playing. All the bonus’s I got from modelling, I had saved because I was positive that it wouldn’t last.
But now I had consistent modelling work and was getting sizable pay cheques on a regular basis. So it was safe for me to spend my money and still have some savings. But what did I spend it on?
Brand names were throwing their clothes at me to wear so there was no need to buy clothes, which was what I suspected many other women would have spent the money on. I had no time to take an expensive vacation. Things like cars and technology were useless to me given my disability. There was nothing that I really wanted that would put a dint in my amassed fortune. So I decided to buy presents for other people.
James I gave free reign to find a place for us to live and to furnish it and decorate it the way he wanted. For Paul I brought an electric cello, as well as one for myself. For my family I brought a series of gifts that I would present them with when I saw them.
                                              …
I flipped a coin to see who I would take as my date to the British Independent Film awards. Paul won. James’s constellation prize was to choose my outfit, which he seemed pretty happy.
On the sixth of December I stood on the red carpet wearing MSGM Embellished Floral Velvet Dress with Diane Von Furstenberg Bethany Suede pumps. I paired it with a Jimmy Choo 'Cloud' Metal Flower clutch and Stephen Webster Gold Struck Garnet earrings.
Walking the red carpet was a strange feeling for me. Paul would stay with me and show me to each interviewer waiting to talk to me on the red carpet. Then there was a section where I stood with Paul simply smiling while people snapped a bunch of pictures, then I stood by myself while the cameras went wild. It was very disorientating for me when they were all calling my name trying to get my attention, I had no idea where to look or what to do. It wasn’t flustering enough that I knew everything I did was being photographed but when they were all calling my name and wanting my attention in different directions, it was downright confusing.
I think Paul saw I was getting a little overwhelmed because he gently took my hand and lead me inside.
“Why did I even come to this thing? I’m not nominated for anything.” I grumbled.
“It’s about the star power at these events.” Said Paul quietly as he led me towards our, “And like it or not, you’re a star.”
I grumbled quietly at his comment. I certainly didn’t feel like a star and I certainly didn’t want to be one.
“I think these are our seats.” Said Paul placing my hands on the back of a chair.
As I sat down, a voice next to me spoke.
“Oh hey!” she said, sounding vaguely surprised, “I saw you at fashion week. Didn’t you walk in the Victoria Secret show recently?” they asked.
“Yes I did.” I smiled as I heard Paul squeak behind me, what was his problem.
“Hi, I’m Keira.” She said introducing herself, I held my hand out for her to shake which she did with a little too much enthusiasm, “I love your style by the way. You’ve got a style that’s a little grunge but still stylish. I love it. It’s edgy.” She told me.
“Thank you.” I smiled, “But it’s not really me, his boyfriend likes to play dress up with me.” I said gesturing over my shoulder to Paul.
“Hi, I’m Paul.” He said breathlessly, reaching over my shoulder to greet Keira, “I’m such a big fan.” He told her.
“Thank you.” Said Keira happily.
“Are you nominated for anything tonight?” I asked curiously, was she an actor or just another celebrity filling a seat like me?
“Oh no, I’m just here to get the press buzzing about my new movie. It’s called Collateral Beauty.” She told me.
“I’ll try and check it out.” I told her happily.
“Keira,” called another voice.
“Excuse me.” She said, patting my knee before she started talking to the person who had called her name.
“Gerty!” hissed Paul and I turned to face him, “You were just talking to Keira Knightly!” he said in aghast.
I blinked in shock; had I? I didn’t realize. She just told me her name was Keira, how was I supposed to know she was Keira Knightly?
She didn’t introduce herself with her last name, no one really did that, so how was I supposed to know? It wasn’t like she had lied. She’d just omitted to tell me the truth.
“Huh.” I said as something suddenly made clicked into place and made sense inside my head.
“What?” asked Paul.
“Nothing. I just realized how easy it was for Kit to omit who he was without actually lying.” I said quietly.
“But he did lie.” Paul reminded me, “He told you his name was Catesby and he told you he was a theatre actor.”
Again, I suddenly realized that Kit hadn’t exactly lied to me. He told me he was a theatre actor because that was what he was trained in and what he was working as when I met him. He told me his last name was Catesby because legally, that was his last name. He hadn’t exactly lied, he’d just given me alternate information, none of it was false. It just wasn’t the well known facts.
Once again it took a third unbiased person, like Keira Knightly, to make me see my situation with Kit from a different perspective.
When I removed the factor of lying from the equation, a lot of the anger and betrayal I felt suddenly seemed null and void. Yes, he had still taken a despicable thing, but I could now see how easy it would have been to fall into that trap. Keira had done it without even realizing it!
It suddenly felt highly improbably that Kit had targeted me specifically because I was blind. I had previously assumed his only interest in me had been because I was blind but now… that just didn’t seem likely anymore.
But his reasons behind his deception were also a lot clearer to me now. Not just because of what Taylor had said, but because of my own experiences with fame now. People I hadn’t spoken to since high school were randomly contacting me now through Facebook wanting to get back in touch. I was nowhere near as famous as Kit or Taylor and even I was suspicious of people’s motivations nowadays.
Against my will I was slowly beginning to understand why Kit had done what he had done and I didn’t like it because it made my hate melt away and when the hate was gone, it made my old feelings for him come bubbling back and I absolutely refused to feel that way.
The ceremony started and I was still reeling from my revelation about Kit when the nominees for Best Supporting Actor were read out.
I recognized some of the names and some of the movies, but the last one in particular stood out to me, “Kit Harington, for Samuel in Brimstone.” Said the announcer.
I blinked in shock; he was here.
Of course he was here. He was an actor and this was a ceremony for actors. I knew then that he knew I was here. I was almost positive that he had been watching me at some point and I had been completely unaware of it.
I gritted my teeth as I waited for the anger to flare inside of me, I had grown so used to it in the past couple of months but it never came. Despite my early thoughts on it, I knew I was well and truly past that stage of grief when it was not my automatic and natural reaction.
“And the winner is… Kit Harington.”
I made myself move. I had to think several times that I needed to clap because that was what everyone else was doing before I actually did it. I raised my hands and clapped like everyone else. As far as everyone knew, Kit meant nothing to me and I had no reason not to clap.
“This is a huge honour. Thankyou.” Said Kit his voice echoing around the room thanks to the microphone as everyone stopped clapping.
I folded my hands in my lap, they felt strange, my palms were tingling for the force of which I had clapped them together. I hadn’t meant to clap so hard but it seemed I wasn’t in entirely in control of them.
"Everyone in this category is an inspiration to me. I don't even know how any of us manages to survive this job, and looking up to you makes me stronger, and is one of my favourite things to do. Well, that and drinking a banana and kale smoothies.” Said Kit.
I froze in shock as a ripple of laughter went through the room; he did not just say that.
"This movie was a great experience for me because it was different to a lot of things I had done in the past. A very important person in my life once encouraged me to try different things and grow as an artist. So I’d like to dedicate this to her.” He said seriously.
I sat in my chair in absolute shock, unable to gain enough control over my body to clap my hands like everyone else in the room.
Paul’s shoulder pressed into mine as he leaned over to whisper in my ear, “Gerty was he talking about y-”
“Shut up Paul.” I said immediately.
I could let him finish that sentence because it would confirm the truth I already knew and I wasn’t sure I could handle that.
Why on earth would he not only make a unique reference to a unique part of our relationship, the smoothies, but thank me in his speech? Why on earth would he do that? What did that mean?
My confusion quickly turned to frustration and I barely paid attention to the rest of the ceremony as I examined each work Kit had said in his speech and try and construct the double meaning he had so obviously placed on it.
During one of the add breaks, when guests were free to talk and mingle amongst the other guests, I was talking to Keira when we were suddenly interrupted.
“Oh, I have to pee.” Said Keira, “Do you know where the toilets are around here?” she asked me.
“Afraid not.” I said regretfully.
“I wonder if anyone… oh Kit!” she said as if she only just noticed him, “Kit do you know where the toilets are?” she asked.
For a split second I hoped against hope, bargaining once again, that it wasn’t him. There was another Kit. It could be any other Kit in the world! I didn’t care. It wasn’t Kit Harington. It couldn’t be.
“Just out in the lobby.” He replied.
Of course it was.
“Great.” Said Keira and I heard her chair shift as she stood up, “Keep my seat warm for me Harington, I’ll be right back.” She said wistfully.
I heard the chair shift again as he sat down. He was close enough that I could smell his aftershave and his signature scent which smelt vaguely of tobacco. It was just a little too convenient that Paul was over at the bar getting the two of us a drink in that moment. We were alone.
I could feel his eyes on me and I stared back wistfully, I wasn’t going to let him know how uncomfortable I was. We sat in silence for a moment and I knew he was waiting for me to break it, “Hi.” I stated flatly.
“Hi.” He said, dragging out the ‘I’ sound for a moment, seeming a little unsure.
“Congratulations on the award.” I said simply. It seemed like the obvious thing to say.
“Thank you.” He replied.
Part of me wanted to avoid to completely ignore what he said in his speech. Another part of me wanted to confront him about it because I got the strange impression that he thought he was being clever in mentioning me and knowing I wouldn’t bring it up. I decided to put him on the spot.
“So was the girl you were thanking in your speech your girlfriend?” I asked lightly as if I was merely commenting on the weather.
“She used to be until I screwed it up.” He said in the same light tone.
“How does your new girlfriend feel about that?” I asked pointedly.
“I wouldn’t know. I don’t have one.” He replied.
“Really?” I asked my voice coloured with disbelief, “How’s Emilia?” I demanded.
“How’s Jai?” he fired back.
“Holidaying in Brazil with a lovely model I introduced him to.” I said sweetly.
“Oh.” He said, seeming taken aback.
I was proud that I had caught him off guard. He had made assumptions about me and I wanted to quickly clear them up. But to be fair, I also made assumptions about him and he seemed to want to make his position known as well.
But that wasn’t my full position and I decided I wanted to let him know where I stood with him.
“I’ve decided something.” I announced after a moment of silence.
“What?” he asked curiously.
“I’ve decided I don’t hate you anymore.” I declared.
The moment I said those words I felt as if a weight had been lifted off my shoulders. I literally felt lighter and as if I was able to breathe easier.
“You don’t?” he asked in disbelief.
“I understand why you did what you did and I’m not angry about it anymore.” I told him.
“Well that’s nice to hear.” He said sounding relieved.
I nodded in response, no, I was not angry anymore and that was a very freeing feeling.
“I’ve been going over everything these past couple of months and I wanted to say-” he began but I cut him off.
“I said I don’t hate you. I didn’t say I forgive you.” I qualified.
As I said the words, a little of my anger flared within me. Just because I didn’t hate him didn’t mean I forgave him. I may have understood his reasoning but that did not excuse them.
There was a moment of tense silence when I could feel his eyes boring into the side of my face as he stared at me. I did not react, no matter how much I wanted to. It was like an itch that I couldn’t scratch.
Thankfully Paul returned, “Here Gerty.” He said as he placed a drink in my hand.
“Thank you.” I replied as I took a sip, grateful for something to do with my hands.
It was obvious the tension between myself and Kit, so obvious that Paul commented on it.
“Is everything ok?” he asked timidly.
“Yes.” I said as I swallowed my mouthful of wine, “Kit was just leaving.” I said promptly. I was done talking to him and I wanted him to leave. I didn’t want to hear anything else he had to say Not tonight.
I heard him sigh deeply before the chair shifted and I knew he was gone when Paul spoke again, “What happened?” he asked quietly.
“Nothing.” I answered.
“Really? I go to get a drink and come back to find you sitting with your ex. You’re looking smug and he looks like he’s about to cry.” He stated flatly.
“I told him I didn’t hate him.” I shrugged as if it was no big deal. Which, as far as Paul was concerned, it wasn’t.
“Then why did he look sad?”
“Probably because I told him right after that I didn’t forgive him.” I sad as I took another sip of my drink. I was fine. Everything was fine.
Paul was silent for a moment before he spoke, “You still have feelings for him.” He stated.
“No I don’t.” I said immediately.
“You do. And he still has feelings for you. I can see it.” He said.
“Your imagining things.” I said firmly.
“Hey,” interrupted Keira, “Did I miss anything?” she asked as she sat down.
“Nothing of importance.” I told her as I desperately tried to believe my words.  
                                                …
It had been a year since I had gone home and when I arrived at the airport in Melbourne late at night on the twenty-third of December, I was exhausted.
My father, Oliver, was waiting for me at the airport. He scooped me up into his arms, hugging me tightly the moment he got close enough.
I was so happy to be with him again that I felt tears spring to my eyes as we held one another. I wasn’t particularly close with my family but after having not physically touched them in a year, the full force of my homesickness hit me and I stood clutching him for a long time.
So much had changed since my father last held me, so much had changed and I wondered if I looked as different as it felt.
“You look different.” He told me as if he had read my mind.
“Do I?” I asked.
“Yeah you look beautiful.” He told me.
“Thanks Dad.” I smiled.
I was so exhausted from jet lag that I almost forgot to collect my suitcase but thankfully my father still had his wits about him and grabbed the one I described to him off the turn tables before we headed out to his car and went home.
My reunion with my mother, Olivia, was just as emotional. I wouldn’t let her know it but the moment she hugged me I felt as if I had somehow broken into pieces since I last saw her and that she was now holding me together.
“Oh my goodness Gerty you look so different.” Said my mother.
“Yeah, dad said the same thing.” I told her. I hadn’t made any conscious decisions to change my appearance so I had no idea what the difference was that they were saying. Thankfully my mother elaborated.
“You look more mature. Like there is more to you. You’re standing a little taller. A little surer of yourself.” She told me.
“I actually had posture lessons before I was able to set foot on a catwalk.” I said in way of explanation. My modelling had improved my posture, that was it. I really hadn’t changed.
“No there is more to it than that.” She insisted.
I wanted to hear about all the things that had happened whilst I was away. I wanted to tell them everything that had happened with me, but the jet lag was hitting me with the force of a wrecking ball so instead of staying up and talking the night away with them, I went to bed.
                                                  …
Feeling my way around my bedroom in the morning, I was surprised to see that none of it had changed. My dresser was still two steps off the right foot of the bed. My desk was still situated three steps off the left foot of the bed. As I felt my way around my desk, everything was still there. All my pens, pencils, music books and the like were all in the same place, gathering dust.
I didn’t need my cane when I was at my parents’ house, I knew it like the back of my hand. I was able to run my hand along the hallway wall, past the bathroom before I stepped out into the lounge room. Two steps in my outstretched hand met the couch. I ran my hand along the back of the worn fabric and four steps off the end of the couch was the dining room table and three steps off that was the stools situated at the kitchen bench.
“Morning.” Greeted my father, “would you like a cup of coffee?”
“Yes please.”
“What would you like for breakfast?” asked my mother.
“I’ll just make myself some toast mum.”
“No, no. I can do it.” She assured me.
I’d forgotten just how overprotective my parents were. They worried about me constantly and liked to baby me. I’d been living with James and Paul for so long that I forgot how much they enabled me. Though it was sweet, I liked my independence. I liked to be able to do things for myself.
But I reminded myself that they hadn’t seen me in a year and they were making up for lost time. I could stand a few days of being babied as I would be back on my own soon enough.
“You’re wearing Victoria Secret pyjamas.” Noted my mother.
“Um, yes.” I said, confused by the observation.
“Do you have to wear them because you modelled for them?” she asked curiously.
“No, they give me free pyjamas.” I shrugged.
“We were surprised to hear about all this modelling stuff.” Said my father as I heard him place a mug on the bench in front of me and the smell of coffee wafted up my nostrils, “I didn’t know modelling was an ambition of yours.”
“If we had known we would have warned you against it.” Said my mother.
They’d warned me against becoming a musician as well, but I’d done it anyway.
“I’ve always been interested in fashion. I like how clothes feel. And I sort of fell into it.” I explained, “It wasn’t a career I imagined for myself but it’s one I’m glad I have now because I really enjoy it.” I told them.
“Well,” began my mother, seeming to think through her sentence before she spoke, “That’s the main thing.”
I spent the morning talking to my parents telling them all about the record deal, touring, fashion month, the Victoria Secret Fashion show and my subsequent jobs from it. They told me all about their trip to New Zealand and how they had recently finished renovating the bathroom.
“How’s Joss?” I asked conversationally, “Last I heard she’s been thinking about trying IVF to get pregnant.”
“Yes. Poor Pete and her have been trying for months. Now it seemed like IVF is their only option and they just can’t afford it.” Sighed my mother.
“I know; Paul was telling me that she put it on Facebook.” I said.
The mention of Jocelyn reminded me of the Christmas presents I had gotten my parents. I’d been so excited to give my parents their Christmas present that I almost gave it to them last night. But I deliberately waited until Christmas Day when we were supposed to give our Christmas presents to each other.
Going back to my room I opened my suit case and found where I had stashed the envelopes for them.
“Mum! Dad! Get around the Christmas tree I’m going to give you your Christmas presents!” I called as I walked into the living room.
“You’re supposed to give them to us at grandma’s tonight.” Replied my mother as she came into the room.
“I can’t give these to you in front of people.” I told them.
“Did you get your mother Victoria Secret lingerie?” asked my father cheekily as he I heard him sit down on the couch.
“Um, no. That’s weird dad.” I told him as I sat down on the coffee table in front of them.
“Ok, here.” I announced as I held out the two envelopes.
Given how excited I was to give them their presents, I was actually acting relatively calm. I was suddenly afraid that they wouldn’t like their presents or even worse, they wouldn’t accept them. But there was no turning back now, I’d given them the envelopes.
I heard the tearing of paper and then my father spoke, “Oh it’s a picture of a boat.” He said sounding confused.
“Oh, I got a picture of a car. How lovely.” Said my mother sounding genuinely delighted, “Thank you.”
I smiled in amusement, “They’ll be delivered on the twenty-seventh.” I told them.
“What will?” asked my father.
“The boat and the car.” I explained.
“Wait, what?” he asked, “you brought me a fishing boat?”
“Yes.” I smiled, “And I brought mum a car.”
“What? Darling we can’t accept that.” Said my mother.
“Shut up Olivia, yes we can.” Said my father sounding like an excited child.
“But darling how can you afford all this?” demanded my mother.
“Modelling pays well. I have more money than I know what to do with. So I brought you guys stuff.” I explained, “Do you not like it?” I asked suddenly worried.
“We love it!” said my father gleefully.
“But it’s too much.” Said my mother.
“No its not! Shut up and thank the girl!” said my father before he leaned forward and wrapped his arms around me, “Thank you!”
I laughed as I patted his back, “Your welcome.”
“Thank you darling.” Said my mother, though she still sounded vaguely concerned as she gave me a hug.
“Don’t tell Joss you’ve got it. I want to surprise her with what I got her.” I told them.
“Of course.” Said my mother.
“Wow it’s got five rod holders!” said my father.
I rolled my eyes in amusement. At least my father liked his gift and I knew once my mother got hers she would love her present as well.
Just before lunch my sister and her husband came through the door and gave me a big hug. Jocelyn also commented on the apparent change in me, “You look gorgeous!” she told me, “What are you wearing? Is this designer? How did you afford this?” she demanded as she pulled at the shorts of the playsuit I was wearing.
“They give them to me.” I explained batting her hands away playfully.
“Really? I want to be a model! Give me free clothes!” she smiled as she came and sat down with me on the couch, “Pete! Tell her what the boys have done at work.” She encouraged.
“Oh, it’s so weird.” Complained Pete.
“No its not, it’s funny.” Said Jocelyn.
“What is it?” I asked curiously.
“The boys have a picture of all the girls from the Victoria Secret show and its weird seeing my half naked sister in law every day.” He said sounding uncomfortable.
I laughed in amusement, “You’re welcome.”
“Give them their Christmas present! I want to talk about mine already!” called my father.
“Bob!” snapped my mother.
“What Christmas present?” asked Jocelyn sounding confused.
“Just a little something.” I grinned as I grabbed the envelope out of my back pocket and handed it to her.
“Oh, its an envelope.” Said Pete.
“Thank you captain obvious.” Said Jocelyn sarcastically as I heard the ripping of paper. She then went very quiet and I knew she had seen the cheque.
“Its just a little something to help with the IVF and when the baby comes along.” I explained.
“Oh, my god.” Said Jocelyn, her voice sounding strangled.
“Is that real?” asked Pete.
“Yes its real.” I smiled.
“Where did you-” he began but Jocelyn had thrown her arms around my neck and hugged me to her.
“Thank you, thank you, thank you.” She chanted as she sobbed into my hair.
I patted her back happily. It made me happy to hear the people I loved were happy.
“Pete! Check out my boat!” demanded my father.
“You got dad a boat?” asked Jocelyn pulling back to look at me.
I nodded, “I got mum a car.”
“What?!”
Everyone gushed over their presents happily ad I sat back simply basking in the glow of the happiness that I had caused. Even my mother began to ask questions about her car.
That afternoon we headed to my grandparents are we were greeted by all the relatives. It was the love filled bedlam that happened when family got together after a long time. Everyone seemed just a little too enthusiastic in their greetings for me, wanting to know everything about my modelling and England. It was a little overwhelming.
I was glad when Jocelyn took my hand and we went and sat outside with a bottle of wine and caught up with each other.
“Drink up now! When you get pregnant you won’t be able to.” I told her as she poured me a glass.
“You kidding? I’ll be drinking for two.” She joked, “So what’s new with you?” she asked.
“Oh you know, I’m a supermodel now so not much.” I grinned.
“Uh huh.” She teased, “I bet the guys must be throwing themselves at you.” She said.
“Not really.” I shrugged.
“What? You’re a model! You’re like guaranteed to have a boyfriend at all times!” she said pointedly.
“I had a guy at the start of the year but…. Things got complicated.” I said, wincing as I tried to find the right word.
“Uh oh.” She said, “What happened?”
“He just…” I trailed off as I tried to think of a way to explain the main problem. I wasn’t mad at him for lying anymore. I wasn’t mad at him for deceiving me. So what was my problem?
“The reason why he got into a relationship with me was a bad one.” I finally settled on.
“So?” questioned Jocelyn.
“What do you mean so?” I asked, how was she failing to see my side of things?
“Pete and I first got together because he lost a bet with his mates. It doesn’t matter why you get into a relationship, it’s about the relationship itself. Whatever the reasons why it started, they don’t really matter in the end. All that matters is what makes the relationship endure.” She explained.
I blinked in shock; she actually had a point. Why did it matter why Kit had first gotten together with me? His reasons for staying in a relationship with me had the right motivations. There was a strange light feeling as I realized, Kit wasn’t a bad guy. He had stretched the truth and approached me with less than pure intentions, but he had never treated me with anything but respect and love. I realized that the weight I had been carrying around in my chest had partially lifted when I realized I no longer hated Kit. But there was still weight in my chest that I was carrying around thinking that the guy I loved was a bad guy and now I realized that he wasn’t.
For a brief moment there was a lightness about me that made me feel like I was floating. Then, a sinking feeling suddenly settled in my stomach as I got the strange feeling I had made a huge mistake.
10 notes · View notes
judeblenews-blog · 6 years
Text
Google has a big advantage over Facebook in a crisis
Tumblr media
There are bad bugs, and there are worse bugs. But until this week, there had never been a bug that killed a social network. Then the Wall Street Journal reported that a glitch had exposed private Google+ profile information to third-party developers between 2015 until earlier this year. A few hours later, the network — which once claimed 135 million users — was dead. For most of its seven years, Google’s effort to build a Facebook-style social network served mostly as a punchline. The company regularly touted suspiciously massive user numbers, but aside from a few pockets of enthusiasts, Google+ never managed to find a place in people’s lives the way Gmail, YouTube, or other Google services did. Google attempted to reinvent Plus several times, most recently as a kind of modern spin on message boards. And one part of Plus, which focused on helping you organize your photos, thrived once it spun out into a separate service. But mostly it was a wild goose chase — the most prominent example of Google’s many failed attempts to build a true social network. And it will be forever remembered as the social network that shut down over a security glitch — one that it didn’t tell us about until it was discovered by journalists. Why didn’t Google fess up at the time? Here’s what it told the Journal: In weighing whether to disclose the incident, the company considered “whether we could accurately identify the users to inform, whether there was any evidence of misuse, and whether there were any actions a developer or user could take in response,” he said. “None of these thresholds were met here.” As my colleague Russell Brandom notes in a good piece, this wasn’t a “breach” in the legal sense of the word. There are good reasons not to require companies to issue a public disclosure every time they find a simple vulnerability, without any evidence that it was exploited. (Chief among them: it can incentivize them to stop looking so hard.) Still: After Facebook’s painful fall from grace, the legal and the cybersecurity arguments seem almost beside the point. The contract between tech companies and their users feels more fragile than ever, and stories like this one stretch it even thinner. The concern is less about a breach of information than a breach of trust. Something went wrong, and Google didn’t tell anyone. Absent the Journal reporting, it’s not clear it ever would have. It’s hard to avoid the uncomfortable, unanswerable question: what else isn’t it telling us? Google will likely pay a price for this data exposure. (Probably in Euros.) State attorneys general are have taken an interest. US Sen. Mark Warner, D-VA, called the cover-up “pretty outrageous.” And yet Google seemed to shrug off all those worries on stage Tuesday, when its executives appeared to announce the company’s fall hardware lineup. There was a new phone, a tablet, and a competitor to the Echo Show and Facebook Portal that distinguishes itself by omitting a camera. There was no discussion of Google+. That speaks to how dramatically the company has shifted since its social network was born — and why, despite their similar advertising businesses, Google and Facebook occupy such different places in consumers’ minds. Google has focused consistently on being a utility. It builds powerful services that don’t require an understanding of your family structure or your friend relationships. Google Maps iterates constantly in search of the perfect commute; Gmail adds automatic replies to speed up your inbox; Google Photos absorbs all the pictures on your phone and uses machine learning to understand their contents and make them searchable. Google gives us sincerely new and useful things. And so, when we learn that it has exposed our data inadvertently, we might be more likely to give it a pass. At Facebook, on the other hand, the prime directive is still user growth. The company talks about a shift to foster more “meaningful” connections, but in practice this simply means growing different parts of its product suite. Facebook is useful, but it is useful mainly in the way that a phone book is useful, and after you have reached a certain number of friends that usefulness plateaus. Its biggest hit products in recent years — Instagram and WhatsApp — have been acquisitions. The new features it adds are often imported from other social networks. Its News Feed is essentially an entertainment product, but as a mirror for our times, it is often more distressing than entertaining. It gives us less, we like it less, we trust it less. I’m oversimplifying, of course. But I once spoke with someone had worked at both Google and Facebook who described the difference between how those two companies are perceived in exactly those terms. Sometimes a company misses the boat on a trend, and regrets it forever. In the case of Google+, I suspect many executives wish the company had simply avoided building a true social network altogether. David Byttow, who worked on the project and is now at Snap, put it this way: “As a tech lead and an original founding member of Google+, my only thought on Google sunsetting it is... FINALLY.”
Democracy
Researchers: No Evidence That Russia Is Messing With Campaign 2018—Yet Here’s a great story from Kevin Poulsen and Spencer Ackerman that asks: why hasn’t Russia made more obvious attempts to interfere in the midterm elections? Today the troll factory is using a mix of surviving accounts and new ones to do what it’s always done, spread fake news and fan division on Twitter, said Ryan Fox, a former NSA official now serving as COO of the smear-fighting startup New Knowledge. It’s also sneaking back onto Facebook, which discovered and deleted a fresh batch of fraudulent IRA-linked profiles and group pages in July. So far, though, none of the accounts are doing anything special for the election. “Lately, it’s been Kavanaugh all day, all the time,” said Fox. “My assessment of the situation is they’re having to reconstitute. I also would assume that because most of their accounts were taken down that they don’t have the same robustness available,” Fox said.The indicted Russian businessman who funded the IRA is now pouring resources into a new venture called USA Really, a Russian site dedicated to pushing anti-American propaganda. Unlike the IRA’s deceptive websites and Facebook groups, USA Really doesn’t disguise itself as a domestic U.S. entity, and it has real people on its masthead. In the short term, that makes it less effective at influencing Americans, but it also makes the site harder to target with a rational social media policy. Fox thinks that model is the future of Russia’s information operations. “They’re out in the open now,” said Fox. “You can’t just call them out as Russian bots. You have to get into a debate about who counts as a journalist.” Trump Campaign Aide Requested Online Manipulation Plans From Israeli Intelligence Firm Mark Mazzetti, Ronen Bergman, David D. Kirkpatrick and Maggie Haberman have the tale of how Rick Gates, a top Trump campaign official, requested proposals from an Israeli company to create fake digital identities as part of its campaign strategy: The campaign official, Rick Gates, sought one proposal to use bogus personas to target and sway 5,000 delegates to the 2016 Republican National Convention by attacking Senator Ted Cruz of Texas, Mr. Trump’s main opponent at the time. Another proposal describes opposition research and “complementary intelligence activities” about Mrs. Clinton and people close to her, according to copies of the proposals obtained by the New York Times and interviews with four people involved in creating the documents. Leaked Transcript of Private Meeting Contradicts Google’s Official Story on China Ben Gomes runs search for Google. Publicly, he has called Project Dragonfly “an exploration.” But privately, he wanted it completed “as soon as possible,” Ryan Gallagher reports, in a damning new story based on a transcript of Gomes’ comments to his team. Gomes, who joined Google in 1999 and is one of the key engineers behind the company’s search engine, said he hoped the censored Chinese version of the platform could be launched within six and nine months, but it could be sooner. “This is a world none of us have ever lived in before,” he said. “So I feel like we shouldn’t put too much definite into the timeline.” Google Drops Out of Pentagon’s $10 Billion Cloud Competition In the midst of a small-scale employee revolt over Project Dragonfly, Google decided not to compete for the Pentagon’s cloud-computing contract, Naomi Nix reports: “We are not bidding on the JEDI contract because first, we couldn’t be assured that it would align with our AI Principles,“ a Google spokesman said in a statement. “And second, we determined that there were portions of the contract that were out of scope with our current government certifications.” No One Knows How Bad Fake News Is On WhatsApp, But If Brazil’s Election Is Any Indication, It’s Bad Ryan Broderick travels to Sao Paulo to try to understand how the electorate is using WhatsApp: WhatsApp is also a nightmare for fact-checkers. Nieman Lab called it a “black box of viral misinformation.” Brazil’s political activists, especially on the far right, have been extremely aggressive about using it to organize. Last year, Movimento Brasil Livre (MBL), or “Free Brazil Movement,” a right-wing pro-Bolsonaro youth movement, was the subject of an investigation by one of the country’s biggest papers, which reported from inside one of their WhatsApp groups. The paper discovered that MBL was using WhatsApp groups like “MBL merchants” or “MBL lawyers” to spread their content — including rumors and fake news. BuzzFeed News has reached out to MBL for comment. #ElectionWatch: Claims of Electronic Voting Fraud Circulate in Brazil Ahead of Brazil’s presidential election on October 7 vote, false narratives about electronic voting fraud have spiked and deepened mistrust as citizens head to the polls. The narrative has been… A Thriving Chat Startup Braces For The Alt-Right Joe Bernstein checks in on the alt-right chat rooms on Discord: In a Discord chat server called “/pol/Nation” — named for the controversial 4chan imageboard — more than 3,000 users participate in a rolling multimedia chat extravaganza of Hitler memes, white nationalist revisionist history, and computer game strategy. And in a voice-over-IP chatroom within the server, users keep up a steady chatter about the same subjects. It’s like a cutting-edge, venture-backed version of its namesake; 4chan on steroids.
Elsewhere
Facebook will soon rely on Instagram for the majority of its ad revenue growth The next time Facebook does something to smother Instagram and you find yourself asking why, remember these data points: Last quarter, Instagram generated an estimated $2 billion, or about 15 percent, of Facebook’s $13 billion in ad revenue, according to estimates from Andy Hargreaves, a research analyst with KeyBanc Capital Markets. Hargreaves expects Instagram to grow to about 30 percent of Facebook’s ad revenue in two years, as well as nearly 70 percent of the company’s new revenue by 2020 — driving the majority of Facebook’s growth. Video Swells to 25% of US Digital Ad Spending According to eMarketer’s latest ad spending forecast, video will grow nearly 30 percent, to $27.82 billion, of which Facebook and Instagram are expected to capture nearly one quarter. Snap is ‘Quickly Running Out of Money,’ Analyst Says Snap Inc. “is quickly running out of money” and may need to raise capital by the middle of next year, according to one analyst: In order to reach Chief Executive Officer Evan Spiegel’s goal of profitability in 2019, Snap would need to grow “massively faster” than expected and cut costs aggressively, analyst Michael Nathanson wrote. He expects a loss of more than $1.5 billion in 2019 as Snap looks to rebuild its user base. Beware the viral Facebook hoax that’s tricking people into thinking their account was hacked There’s a new copy/paste hoax making the rounds on Facebook: Snopes, the fact-checking site, explains that the hoax appears to reference fears about “cloned” Facebook accounts, where would-be scammers copy the name, profile picture, and basic information from a real account to create a second, nearly identical account on Facebook. Then, they send a bunch of friend requests to the original account’s friend list, to try to scam the person’s unsuspecting friends into granting access to their personal information by accepting the request. A Facebook spokesperson said in an emailed statement that the company had “heard that some people are seeing posts or messages about accounts being cloned on Facebook,” messages that they likened to a chain letter or email. Although account cloning is a real thing, the volume of messages spreading across Facebook don’t reflect any actual spike in cloned accounts on the service WeChat Rival Removed From Apple App Store in China ($) Amid a broader and somewhat mysterious app crackdown in China, Bullet Messenger, a Chinese messaging app that surged in popularity in the past few months, is no longer available in Apple’s App Store, Juro Osawa reports. How Gym Selfies Are Quietly Changing the Way We Work Out Today in the increasingly popular genre of “Instagram changes everything” stories: the gym. The gym selfie, experts say, is more than just a visual brag or photo-driven pep talk. Social media is fundamentally changing the way we work out—and the way we see ourselves in the mirror. In a recent study, professors Tricia Burke and Stephen Rains found that individuals who saw more workout posts in their feeds were more likely to feel concerned about their own bodies, especially if the posts came from a person they felt looked similar to them. This means that even a passive scroll through Instagram can be more about stoking self-consciousness, in oneself and in others, than providing motivation—and that we internalize these lessons more easily than we think. “If people become preoccupied with their weight, that could manifest itself in less healthy ways,” Burke told me.
Launches
Instagram is using AI to detect bullying in photos and captions Can you really detect a phenomenon as abstract as bullying using artificial intelligence? Instagram says it can now: Interestingly, Instagram says it’s not just analyzing photos captions to identify bullying, but also the photo itself. Speaking to The Verge, a spokesperson gave the example of the AI looking for split-screen images as an example of potential bullying, as one person might be negatively compared to another. What other factors the AI will look for though isn’t clear. That might be a good idea considering that when Facebook announced it would scan memes using AI, people immediately started thinking of ways to get around such filters. Along with the new filters, Instagram is also launching a “kindness camera effect,” which sounds like it’s a way to spread a positive message as a method to boost user engagement. While using the rear camera, the effects fill the screen with an overlay of “kind comments in many languages.” Switch to your front-facing camera, and you get a shimmer of hearts and a polite encouragement to “tag a friend you want to support.” Instagram now supports third-party authentication apps on Android Instagram previously rolled out support for third-party authentication apps like Authy on iOS. Today, it brought that feature to Android. Meredith is developing 10 original shows for Instagram’s IGTV Here’s a win for IGTV: magazine publisher Meredith is developing a slate of 10 original series for Instagram’s 3-month-old experimental vertical TV app, the first of which will premiere later this year. Facebook Workplace adds algorithmic feed, Safety Check and enhanced chat The most interesting nugget in this Josh Constine update on Workplace from its first-ever user conference: while more than 30,000 organizations are customers, Facebook hasn’t updated that number in a year. It suggests that the product has been slow to catch on during a trying year for the parent company. The 5 biggest announcements from the Google Pixel 3 event Google launched many new things today, including a phone, a tablet, and a competitor to the Facebook Portal and Echo Show that is most notable for its lack of a camera. Read about the biggest announcements here. Google rebrands AR stickers as Playground and adds new animations Playmoji is the new name for Google’s augmented reality stickers, which will be familiar to any Snapchat user: Initially announced last fall as AR Stickers, these virtual animations were similar to the lenses and filters that Snapchat popularized a few years back. But a key difference is that these are entirely in 3D and are deployed with a much smarter sense of spatial and object recognition, thanks to Google’s advances in artificial intelligence. Google launched Strangers Things stickers, as well as a pack for Star Wars during The Last Jedi theatrical run late last year. In the new Playmoji packs, Google lets you pick from a selection of cartoony pets, visual and interactive signs, comic strip-style sports animations, and anthropomorphic weather effects:
Takes
Facebook Isn’t Sorry — It Just Wants Your Data Charlie Warzel says that Facebook Portal is only explicable in the context of Americans’ apathetic view toward their own privacy: It’s also further confirmation that Facebook isn’t particularly sorry for its privacy failures — despite a recent apology tour that included an expensive “don’t worry, we got this” mini-documentary, full-page apology ads in major papers, and COO Sheryl Sandberg saying things like, “We have a responsibility to protect your information. If we can’t, we don’t deserve it.” Worse, it belies the idea that Facebook has any real desire to reckon with the structural issues that obviously undergird its continued privacy missteps. But more troubling still is what a product like Portal says about us, Facebook’s users: We don’t care enough about our privacy to quit it. Facebook, are you kidding? Taylor Hatmaker is similarly agog at Portal: It stands to reason that if Facebook cannot reliably secure its flagship product — Facebook itself — then the company should not be trusted with experimental forays into wildly different products, i.e. physical ones. Securing a software platform that serves 2.23 billion users is an extremely challenging task, and adding hardware to that equation just complicates existing concerns. You don’t have to know the technical ins and outs of security to make secure choices. Trust is leverage — demand that it be earned. If a product doesn’t pass the smell test, trust that feeling. Throw it out. Better yet, don’t invite it onto your kitchen counter to begin with.
And finally ...
#HimToo mom inspires infinite ‘this is MY son’ memes and a rare Reverse Milkshake Duck Navy veteran Pieter Hanson became a Twitter sensation on Monday night, after his mother tweeted a photo of him in his dress uniform claiming Hanson was “afraid to go on solo dates,” because of “the current climate of false sexual allegations.” Hanson created a legendary Twitter handle — @thatwasmymom — and in a literally perfect first tweet, disavowed her comments and claimed himself an ally of women in their struggle for equality. Pieter — call me.
Talk to me
Send me tips, comments, questions, and your best-ever Google+ post: [email protected]. Via: Theverge Read the full article
0 notes
shannaraisles · 7 years
Text
Set In Darkness
Chapter: 29 Author name: ShannaraIsles Rating: M Warnings: Canon-typical threat and violence; unpopular characterisation of an NPC Summary: She’s a Modern Girl in Thedas, but it isn’t what she wanted. There’s a scary dose of reality as soon as she arrives. It isn’t her story. People get hurt here; people die here, and there’s no option to reload if you make a bad decision. So what’s stopping her from plunging head first into the Void at the drop of a hat?
For Which A Title Did Not Present Itself
"I actually have no idea if the compound will be stable in storage - the mixture could become highly volatile if left too long."
Rory nodded as Minaeve spoke. "So this is something we should be making fresh each time it needs to be applied?" she queried curiously.
"It's not ideal, I know," the elven researcher told her. "But the consensus among the Tranquil is that this may be the only way to neutralize the toxin that the greater shades secrete."
"Well, it's infinitely better than watching someone die in horrific pain," Rory mused, blotting her notes to roll them up. She enjoyed her regular meetings with Minaeve; the novice mage might be caustic, but she definitely knew her stuff. "Did the witherstalk ointment help with the chemical burns?"
"Oh, it did," Minaeve agreed, with the merest suggestion of a satisfied smile. "We added a drop of ram's blood, and that accelerated the pain-relieving aspect. Strange, but effective."
"I never would have thought to add blood," Rory admitted, fascinated by this previously unknown combination. "Another odd ingredient to keep in stock."
"Don't buy it from Seggrit," the researched warned suspiciously. "Half of what he supplied at the beginning was useless."
"No fear of that." Rory laughed. "He won't even acknowledge my presence since I slapped him."
Minaeve's lips pulled taut in a rare smile. "I'm still sorry I missed that. Was there anything else you needed?"
Rory shook her head with a smile of her own. "No, I'll let you get back to work. Thank you."
"It's what I'm here for, healer."
Tucking the scroll up her sleeve for now, Rory nodded to Josephine as she left the room, stepping into the nave of the Chantry to find Chancellor Roderick in full oration. The subject wasn't immediately clear, but the man seemed to have gathered specific people to hear him speak this time. Cullen was there, as was Leliana, both looking as though they would dearly like to shut the chancellor's mouth in a less than polite manner; Mother Giselle was also present, together with Sisters Teres and Minah. No doubt Vivienne was lurking in her alcove, listening with interest.
"I find it fascinating, chancellor," Leliana was saying, "that you chose to bring this up when both Cassandra and the Herald are away from Haven."
"I cannot predict when the evidence will be brought to me," Roderick replied in his officious way. "Nor can I stand by and do nothing when such evidence is presented."
"The Chantry does not have authority over the Inquisition," Cullen reminded him yet again. "You have no power here to accuse one of our own."
"With respect, commander, yours is not an impartial voice in this debate," Mother Giselle interjected mildly.
"Perhaps we should worry less about partiality, and instead invite the one whom you have accused to speak for herself," Leliana suggested, her pale eyes rising from the little gathering. "Healer Rory ... join us, please."
Alarm flared in Rory's mind as she automatically moved to obey the Left Hand of the Divine. Accused? What have I been accused of? She could think of any number of things that had rubbed people up the wrong way, but she was pretty sure she hadn't done anything major enough to warrant officially sanctioned Chantry hostility. Unless all of it put together somehow made her a threat.
"Chancellor Roderick, everyone should have the right to defend themselves," Leliana went on. "This is your opportunity to see if your evidence holds water."
Scowling, Roderick turned his stern gaze onto Rory. "You stand accused in the Maker's eyes of heresy, healer," he said with a flourish. "Were this a court of law, how would you plead?"
Rory stared at him, her mouth open. That certainly hadn't been on her list of things to worry about. Heresy? Seriously? That was surely scraping the bottom of the barrel. Her mouth shut with a snap. "Not applicable," she told him firmly. "Who accused me?"
"There is no need for you to know such a thing," the chancellor informed her, but Leliana ignored him.
"Mother Giselle and her lay sisters here have laid the charge against you," the spymaster said calmly.
"Did they really." Rory's unfriendly gaze turned to take in the three robed women. "So I've been accused of heresy by a revered mother who objects to my refusal to bow to her every whim; a sister who makes a habit of trying to steal confidential notes from my clinic; and another sister who almost killed someone three days ago because she decided she knew better than me how much medicine to give someone. Three people, in fact, who don't like me. And their word is considered evidence against me?"
"The word of any member of the Chantry is ..." Roderick trailed off as his brain caught up with his ears, aghast eyes snapping toward the lay sisters. "Almost killed someone?"
Giselle, too, had twisted to look at Sister Minah. "I was not aware of this."
"No one was," Rory said, her voice cold with anger. "Because we were able to correct the mistake, and the sister seemed willing to absorb the lesson it taught her. Evidently my trust was poorly placed."
"Is this true, Minah?" Giselle asked of her inferior coolly.
Sister Minah fidgeted awkwardly. "I ... made a mistake," she admitted finally. "But my report was accurate, mother!"
"Yet by omitting important detail, you render your evidence untrustworthy," Roderick glowered in annoyance. "Even I know that certain violence is required to purge a stomach. Your tale, sister, is inadmissible."
"As to the words of Sister Teres, I can confirm the healer's suspicion," Leliana added with cool confidence. "The sister has been seen several times attempting to break into the chest where the healer keeps her confidential notes on us all."
Roderick didn't need to let that sink in - he'd been treated not too long ago for a somewhat embarrassing complaint of his own. He knew Rory had notes on him in that chest. "This is your evidence, mother Giselle?" he asked sternly. "The word of a thief and a would-be killer?"
"I stand by my own testimony, chancellor," Giselle stated, her lined face set in what might almost have been anger at the way her seemingly solid accusation had crumbled around her. All credit to her, though, she kept on her course. "This woman is a heretic. She does not sing the Chant, nor does she attend services. She does not pray, even if her patients would benefit from it. She does not show deference to the Chantry, or to Andraste's holy representatives."
"The Chantry has done nothing to earn my deference," Rory heard herself snarl, flaming anger rising to replace the cold at this self-serving accusation.
"You accuse her of being a heretic, yet nothing you say points toward heresy," Cullen pointed out, his expression grim. "All I hear is the false accusation of a woman who believes herself superior."
"Your opinion of this woman cannot be trusted." Giselle frowned at the commander. "Your attachment to her could implicate you in her wrongdoing."
"And your attack is nothing but the spiteful vengeance of a woman who isn't used to not getting her own way," Cullen countered smartly.
"Enough!" Roderick glared at them both until they backed down. His frowning gaze found Rory. "Healer, we can settle this with one question ... do you believe in the Maker?"
She met his gaze in silent fury at the way ego had been allowed to put her in this situation. Her religious belief, or lack of it, was no one's business but her own. "No, chancellor, I don't," she told him fiercely. "I don't believe in the Maker, the elvhen gods, the Stone, or even Koslun."
"Then you are no heretic. There cannot be heresy without belief." He sighed, shaking his head. "There is no point in pursuing this."
"And you would trust such a person with the well-being of the people?" Giselle demanded incredulously, clearly not prepared to just let it go. "A person with no spiritual element to their being is unfit to be a healer."
"Better an atheist who knows what she's doing than a fanatic who doses weak men with four mouthfuls of undiluted poppy juice!" Rory shot back at her, unwilling to let that insult pass.
"I demand to know why you have no belief in the most Holy of Holies," Giselle persisted, looming over the healer as she took a step closer. "Why you think yourself above such a fundamental truth as the Maker's love for Andraste and us all."
Cornered and angry, something in Rory cracked. "Because unreasoning belief in a higher power killed my little brother!" she snapped in response. "He was ten years old - a cut on his leg got infected, and prayer, the only thing my parents would give him, didn't save his life. Why should I believe in a being who keeps his followers ignorant and condemns a child to a needless, painful death?"
Giselle stared at her, all her high dudgeon fled in the face of the answer she had sought. She had clearly been expecting some other reply - an evasion, perhaps, or even a selfish declaration that gods weren't real. But no ... Rory had good reason not to believe. She glared at the Revered Mother, furious with herself for the tears in her eyes, her heart rubbed raw by the memory she'd been forced to share. How dare they assume her reasons were selfish ones, just because they had a faith she lacked?
She turned to Cullen and Leliana, both of whom seemed shocked by what she'd been badgered into sharing.
"I want the Chantry out of my clinic," she told them harshly. "They can't be trusted."
"You are not in a position to make such demands," Roderick blustered, but abruptly stilled when Cullen rounded on him.
"You have abused your position, chancellor, by allowing this farce to go on for so long," the commander growled. "This has been nothing less than a sustained personal attack. I will be placing a guard on the clinic. No member of the Chantry will be allowed entry without invitation by the healers themselves. This has gone on long enough."
"Indeed," Leliana agreed coldly. "We are done here. Mother Giselle; Sisters Teres, Minah ... a word."
Steaming with unexpressed anger she had been holding onto for more than a decade, Rory turned on her heel, storming toward the doors that lead out into the village. They opened before her - thank you, Vivienne - and she continued out into Haven, her fists clenched and her expression black.
How dare they? How dare they think they were better than her, just because they believed? Her parents had believed, too - believed so much that they had watched their son die for lack of medical care and called it divine will. Her refusal to accept that had turned them against her; it was the reason, in fact, that she'd run away at fourteen. And she'd slowly come to terms with the understanding that faith was a comfort to many people, learning not to judge them badly for it. Yet these so-called priests, so certain in their faith ... She didn't even have words for them. They truly thought themselves her betters, when most of them wouldn't even raise a hand to help if someone collapsed in front of them. It was infuriating. How could they possibly put themselves on a par with Sister Carys in Frosthelm, or Mother Lisl, or Divine Justinia - all truer representatives of Andraste the Maker than those power-hungry wolves.
Evy took one look at her expression when she entered the clinic, and wisely decided not to ask what was wrong. Anger like that was not to be prodded, certainly not in front of patient. She simply kept her head down and applied herself to her duties, not even speaking up when Rory shut the door on Cullen's attempt to cajole her out of her black mood. Suffice it to say, it was not a comfortable afternoon for either healer. Yet dinnertime brought a surprise.
Rory had sent Evy to dinner, still too worked up herself to eat. Alone in the clinic with two sleeping patients, she was startled when the door opened to admit Cullen, Fabian, and four others she didn't know.
"What's going on?" she demanded, her voice hushed to avoid disturbing her patients.
"You're taking the night off, I'm training some nurses for you," Fabian told her promptly. "This is Netta, Luis, Andra, and Melcor, and by morning, you'll have a rota in place that keeps you and Evy from falling off your feet."
"Now wait just a min- "
"You missed dinner, again," Cullen told her sternly. "I will not allow that to become a habit. Now, are you walking, or am I carrying you?"
Rory frowned at him, not appreciating the way she was being steamrollered. "I'm not leaving the clinic, I have too much to -"
"Carrying it is." In one smooth motion, Cullen bent and hoisted her over his shoulder, turning to make his way out of the clinic even as she flailed.
"Put me down," Rory demanded, her banked anger flaring as they passed the tavern and she caught sight of Varric's grin. "I mean it, Cullen, put me down!"
"No." That was it, just no. No explanation of why, or even where he was taking her, though that much was easily discernible when he turned right out of Haven and joined the path into the woods.
"This is humiliating," she informed him tartly, her breathing a little constricted by the press of his shoulder into her diaphragm.
"You're not fighting to get down," he pointed out with annoying confidence.
"What's the point?" she countered, her own tone resigned. "It's a long way to fall from up here, and knowing my luck, I'd break something important. Like your neck."
"Your concern is overwhelming."
Ducking to get into the cabin, he locked the door before bending to set her on her feet, looking long into her eyes with a serious gaze. Whatever he saw there seemed to satisfy him, because he turned her about, giving her a push toward a table in front of the fire laid with a plated meal.
"Sit. Eat."
In sullen acquiescence, she did as she was told, eating the plate of roasted meat and vegetables in silence. All the while, he watched her, not saying a word himself. Part of her resented the heavy-handed coddling; part of her appreciated that he seemed to know her so well. She was quite capable of skipping several meals when her mood was this low, and it was strangely reassuring to know that Cullen clearly wasn't going to let that happen. He made sure her cup stayed full, only moving to sit beside her when she had finished every morsel and sat in steaming silence in the firelight.
"Now," he said quietly, in a tone that brooked no argument. "Talk to me."
0 notes
ryjelsum · 7 years
Text
Chimera
In a nondescript Chicago condo, a young man’s speech and typing filled a tiny home office. There was only one man in the room, but whenever he was impassioned about something, he always felt it necessary to speak it out, even if no one was around to hear him. He was finishing the letter that he was writing to his current employer, a private genetic engineering firm in Chicago who called themselves Chimera INC. This firm offered to splice people’s genetics with animal genetics, for those who desired to look more like an animal. However, this man had been keeping track of the first few clients who had received this treatment, and found as their physical animal characteristics developed, so did mental ones. These were mostly violent crimes, as those who were wealthy enough to afford the procedure usually preferred a more predatory look, and thus developed predatory instincts. However, those who had their genetics spliced with prey animals were also documented to develop anxiety disorders. With this evidence in hand, the man could see no other ethical thing to do other than to write a letter to his employer and figure out to what degree, if any, they were aware of these unintended effects.
“These effects are not only dangerous, the fact that the consumers involved were not made aware of them is wildly illegal. The fact that these side effects were not caught in testing presents a number of ethical issues that the public should be informed about before they decide to have the procedures offered by our company, especially because they are completely elective. If the company refuses to rectify these shortfallings, you should decide in short order and consider this as my two weeks’ notice. Morgan Bright.”
Morgan brushed his hands against each other and slumped in his chair, almost unconsciously emitting a sigh. Then, he heard his office’s door click. His girlfriend must have came home while he was typing.
“Hello, honey! Are you chewing your workplace out?” she said, and then laughed brightly.
Morgan sat up, very slowly and carefully, and pushed his rolling office chair aside. “Yeah, babe. I was just finishing up my letter notifying them that I am… well aware of the risks that they’re omitting. I really don’t want to take the position of having to be a whistleblower here, because any controversy could slow the progress of this whole field, since people would start to not trust genetic modification firms. I really don’t want that to happen, because…” Morgan trailed off, but his girlfriend picked up where his sentence left off.
“..your hemophilia, right?”
“Yeah.” Morgan sat back down in his office chair, hard, winced and quickly checked himself for wounds, then sighed and put his head in his hands. “I don’t want to live with it my whole life. I don’t get to experience the outdoors, hell, I can’t even fathom living somewhere rurally just in case I need to go to the ER because of an injury.”
Morgan’s girlfriend kneeled beside the chair and held one of Morgan’s hands. “I know how hard it is for you. And I definitely agree with you, I want this field to advance quickly for your sake.”
Both were silent for a minute, then Morgan spoke. “I’m going to finish this e-mail. Could you get dinner ready for me?”
“Sure, babe!” Morgan’s girlfriend responded almost immediately. Morgan smiled. He could always depend on her for help and support.
- - -
In a high-reaching Chicago skyscraper, the booming voice of something not quite human filled a large meeting room full of nervous executives.
“‘If the company refuses to rectify these shortfallings, you should decide in short order and consider this as my two weeks’ notice. Morgan Bright.’ WHO. IS. MORGAN. BRIGHT! Where in this company does he work?” The booming voice in question was from the head of the room, where a humanoid chimera sat in a high backed chair, reading an e-mail from a tablet computer. It had barely finished speaking when one of the many figures in the room spoke.
“H-he works in my department in R&D, Mr. Baron. One of our genetic experts.”
“Great. He’s fired. Put all of his stuff in a box and don’t even let him step in the research wing when he comes back on Monday.” Baron snapped back.
The department manager paused briefly, then spoke up a little. “He’s one of our brightest minds, sir, and he has a vested interest in--” Baron cut him off by stabbing its scorpion tail mere inches from the manager’s hand. He yelped, then withdrew his hand, shaking. Baron stood up and strode over to the department manager’s seat.
“Listen. This kid is young, right?” The manager nodded, still scared speechless. “He thinks that he can bully us into doing what he thinks is right. Let’s send him a message.” Baron’s pawed hand suddenly sprouted claws, which it raked across the department manager’s neck slowly. As the claws dragged in his skin, Baron hissed in his ear. “Never speak out of turn again. I can replace people like you in an instant, and there are much better ways your body could be used.”
As blood ran down the manager’s neck, Baron sheathed its claws, wiped its hands with a handkerchief, and walked towards the door of the meeting room as if nothing had happened. The entire room was in shock. The manager was in shock quite literally; he passed out as Baron strolled past him. It stopped as it reached the door. “Lay off a couple of others so that it doesn’t look like a retaliatory firing. I have a list in my office.” It then glanced at Morgan’s former manager as one would stare at a particularly annoying puppy. “Keep him alive, too. I think I’m going to need him later.”
- - -
When Morgan went to enter the research wing, he always scanned his card, which would automatically open the door for him. Today, however, when he tried to scan his card and walk in, he ran headlong into the door. After briefly making sure he hadn’t been cut anywhere, he looked around and tried to scan his card, yet again. The door still didn’t open, but this time his manager had noticed him, and opened the doors for him so they could speak.
“Hey Morgan! Did you not check your e-mail before coming here? You’re let go, effective today. Layoffs, sorry. Here’s the box of stuff that I pulled from your desk. Can’t let you back here to collect it yourself, you know. Security clearance and all that.”
Morgan knew that there was something wrong with this. “Aren’t you supposed to give notice before layoffs?” As he said this, Morgan’s manager immediately started to get nervous.
“Ha, well, you know how these things are, maybe the notification hadn’t made its way through. You’ll have to work that out with management. Well, it’s too bad I have to get back to work, I would love to stay and chat, bye!” He shut the door in Morgan’s face and sprinted back to his usual place of work.
Morgan went home and immediately started to draft the letter he vowed to send if he was fired for trying to hold his now former employer accountable. He was up well into the night drafting it, seeing as he had nothing better to do for the next few days anyway. At 4am that night, he sent a copy of the letter, along with a photo of his badge for verification, to as many news publications as he could find e-mails for. Then, being exhausted from a night full of passionate letter writing, he went to bed.
He was awoken not four hours later by extremely loud, intermittent pounding on his door, as if someone were trying to break it down. Morgan jolted awake, feeling very annoyed. He went to the door, looked into the peephole, and discovered that someone -- no, something was trying to break down his door. It was difficult to tell the size due to the distortion of the peephole, but he could tell that it had large claws, and was wearing a lab coat. As soon as he saw this creature, he felt adrenaline surge through his body. He immediately made a plan in his mind - step one, barricade the door, step two, run, step three, call… the police? Animal control? He would decide once he actually got a phone.
Morgan sprang into action. He propped a chair against the front door to jam the door knob, tossed a couple of stools in front of that, and then ran to his landline. He picked it up, quickly jammed nine-one-one into it, and barricaded himself behind his office’s door as he heard the front door start to snap. Once the line finally connected, Morgan very nearly shouted into the handset: “There’s someone--something--some kind of beast breaking into my house, please send somebody, and quickly!” He gave his address and apartment number, then hung up so he could focus at the matter at hand.
The door broke and the monster forced its way inside, mangling the doorframe in the process. Morgan held his back to the door to his office and squeezed, praying that the monster’s claws didn’t pierce through the door and into his back before help arrived. After five tantalizing minutes, where Morgan couldn’t tell if the thumping he was feeling was his own heart or the monster’s claws against the door, Morgan heard a scuffle beginning outside. There were two men shouting -- “Get on the ground!” -- “It’s going to charge!”, then a large crash, the sound of some glassware breaking -- he’d have to be careful to clean that all up so he didn’t step on it -- then Morgan heard a large thud. The house went silent, and Morgan spent a minute catching his breath before opening the door very slowly. After opening the door, he saw a police officer and an animal control officer -- they weren’t sure which to send, Morgan assumed -- and the laid down body of the monster that had been trying to kill him. He got a good look at it, and noticed a nametag on the labcoat. The name was too mangled to read, but the rest was visible:
Genetics Department Head
Chimera INC.
(picture of baron courtesy of @pawheld)
Tumblr media
0 notes
mbaljeetsingh · 7 years
Text
Deploying From Bitbucket to WordPress
Of all the projects I've worked in the last few years, there's one that stands out as my favorite: I wrote a WordPress plugin called Great Eagle (Tolkien reference) that allows my team to install and update themes and plugins from our private Bitbucket repos, via the normal wp-admin updates UI.
This plugin has blasted our dev shop through the roof when it comes to development best practices, in ways we never expected or intended. It forces us to use proper version numbers because now we can't deploy without them. It forces us to store our work in Bitbucket because now we can't deploy without it. It forces us to use the command line en route to deploying our work (by which I simply mean, git push origin master), which then led to us using phpUnit. Now we can't deploy unless our tests pass. We've arrived at the nirvana of test-driven development, all because we started with the unrelated step of deploying from git.
If this all sounds standard and obvious, great. I'd love a chance to learn from you. If this sounds like exotic rigmarole, guess what? This article is for you.
Disclaimer: My work in this plugin is heavily influenced by, and in some cases plagiarized from, the excellent GitHub Updater plugin, by Andy Fragen. The reason I wrote my own is because we have hundreds of themes and plugins in Bitbucket, and I was having some scale issues when I was auditioning GHU, which have since been addressed. I probably bailed too early, as that plugin has been under active and expert development for years. More than anything, we just wanted a version that was totally under our own maintenance. I'll be featuring some gists from my plugin, but ultimately I recommend that users defer to GHU because it's likely a better fit for most people, and also I don't want to take any momentum from that awesome project.
Prerequisites
My examples demonstrate a multisite install, but that's not particularly important. This works fine on a single-site install as well. I'm on WordPress version 4.8-alpha-39626 at the moment, but that's not terribly important either.
Of chief importance is my assumption that all of the themes and plugins in your workplace are each stored in their own Bitbucket repo. This is quite an assumption! No joke: When embarking on this, we hired a company to manually create a repo for each of our themes and plugins. We were using SVN (poorly!) prior to this migration.
How does it work?
There are three(ish) steps:
1) Create a UI for the user to make an API request to Bitbucket and mirror all of our repository data into the WordPress database. Not all the data about each repo, really just the slug name, which we will use as a key for deeper queries.
A form for the user to mirror our Bitbucket account to the database.
An alternative would be to build this automatically whenever it's empty, but for now, I'm happy to have complete control over when such a large series of API requests gets run.
2) Once we have a bit of information mirrored for all of our repos, we can offer a jQuery autocomplete to choose a few repos for data drill-down, where we make several more API calls for each of them, giving us access to deeper information like version number and download url.
Now that we have a local mirror of our Bitbucket repos, we can populate an autocomplete for selecting some of them for installing or updating.
Why not just gather all of those details for all repos right away? Because we have hundreds of repos and it takes several calls per repo to grab all of the pertinent information such as, say, the version number. It would probably take 15-30 minutes and over 1,000 API trips.
3) Once we have detailed information about the handful of repos we want to use at the moment, we can determine two important things about them. First, is it installed in WordPress? If not, it will appear in a UI for us to install it. Second, if it is installed, is it on the latest version? If not, it will appear in the normal wp-admin updates UI.
Some of the plugins in our Bitbucket account are not installed in our WordPress network.
We used Great Eagle's UI to install one of them.
Our plugin is hosted in a private Bitbucket repo, but here it is in our normal update queue.
On the off-chance that a repo is not readable (maybe it lacks proper docblocks or naming conventions), it gets omitted from all of these steps. This has only happened to us with a small handful of poorly named plugins, but it can be annoying since changing the plugin folder and file names can deactivate the plugin.
Huh. How does it work, exactly?
Fair question. I'll explain what the tricky parts were, and share some code from my plugin.
Building the list of repos
The maximum number of repos per API call is 100. That's just how the Bitbucket API works. We have far more than that in our account, so we have to call Bitbucket in a loop:
<?php /** * Store a "shallow" list of repos. */ public function set_repo_list() { ... // Let's get 100 per page, which is the maximum. $max_pagelen = 100; .... // Get the first page of repos. $page = 1; $call = new LXB_GE_Call( 'api', "repositories/$team", $max_pagelen, $page ); $get = $call -> get(); $out = $get['values']; // Now we know how many there are in total. $total = $get['size']; // How many pages does that make for? $num_pages = ceil( $total / $max_pagelen ); // Query each subsequent page. We already got the first one. while( $page < $num_pages ) { $page++; $next_call = new LXB_GE_Call( 'api', "repositories/$team", $max_pagelen, $page ); $next_get = $next_call -> get(); $next_repos = $next_get['values']; $out = array_merge( $out, $next_repos ); } // Sort the list by most recently updated. $out = $this -> sort( $out, 'updated_on' ); $this -> repo_list = $out; }
Determining the "main" plugin file
WordPress is very unopinionated when it comes to naming plugins. In most cases, a plugin folder does, in fact, contain exactly one plugin, and that plugin will have a "main" file of sorts, that contains a docblock to convey the plugin name, description, author, and most importantly, the version number. Because that file can be named anything, determining which file is the main plugin file is something of an open question. The approach I've taken is to assume that the plugin will conform to some naming conventions we try to use in our work.
<?php function set_main_file_name() { // Grab the slug name for this Bitbucket repo. $slug = $this -> slug; // Grab the list of file names in this repo. $file_list = $this -> file_list; // There's a good chance that there is a file with the same name as the repo. if( in_array( "$slug.php", $file_list ) ) { $main_file_name = "$slug.php"; // If not, there's a good chance there's a plugin.php file. } elseif( in_array( 'plugin.php', $file_list ) ) { $main_file_name = 'plugin.php'; // If not, it's probably a theme. } elseif( in_array( 'style.css', $file_list ) && in_array( 'functions.php', $file_list ) ) { $main_file_name = 'style.css'; // Else, oh well, couldn't find it. } else { $error = sprintf( esc_html__( 'Could not identify a main file for repo %s.', 'bucketpress' ), $slug ); $main_file_name = new BP_Error( __CLASS__, __FUNCTION__, __LINE__, func_get_args(), $error ); } $this -> main_file_name = $main_file_name; }
Determining the version number
Given the main plugin or theme file, we can dig into the docblock in that file in order to determine the version number. Here's how I do it:
<?php /** * Get the value for a docblock line. * * @param string $key The key for a docblock line. * @return string The value for a docblock line. */ function get_value_from_docblock( $key ) { // Grab the contents of the main file. $main_file_body = $this -> main_file_body; // Break the file into lines. $lines = $this -> formatting -> get_lines_from_string( $main_file_body ); // Let's save ourselves some looping and assume the docblock is < 30 lines. $max_lines = 30; $i = 0; foreach( $lines as $line ) { $i++; // If the line does not have the key, skip it. if( ! stristr( $line, $key . ':' ) ) { continue; } // We found the key! break; // Whoops, we made it to the end without finding the key. if( $i == $max_lines ) { return FALSE; } } // Break the line into the key/value pair. $key_value_pair = explode( ':', $line ); // Remove the key from the line. array_shift( $key_value_pair ); // Convert the value back into a string. $out = implode( ':', $line_arr ); $out = trim( $out ); return $out; }
While I'm at it, allow me to applaud php's helpful version_compare() function, which can parse most common version syntaxes:
/** * Determine if this asset needs to be updated. * * @return boolean Returns TRUE of the local version number * is lower than the remote version number, else FALSE. */ function needs_update() { $old_version = $this -> old_version; $new_version = $this -> new_version; $compare = version_compare( $old_version, $new_version ); if( $compare == -1 ) { return TRUE; } return FALSE; }
Parsing the readme.txt
We actually don't use the readme.txt for anything in our plugins, and therefore my Great Eagle plugin does not do much parsing of it either. However, if you wish to incorporate readme information, I'd recommend this library from Ryan McCue for parsing it.
The deal with private repos
Our repos all happen to be private - that's just the way we do business at the moment. In order to query them, we have to filter in some creds. In this example, I'm doing so via basic auth:
<?php /** * Authenticate all of our calls to Bitbucket, so that we can access private repos. * * @param array $args The current args for http requests. * @param string $url The url to which the current http request is going. * @return array $args, filtered to include BB basic auth. */ public function authenticate_http( $args, $url ) { // Find out the url to Bitbucket. $call = new LXB_GE_Call( 'web', FALSE ); $bb_url = $call -> get_url(); // If we're not calling a Bitbucket download, don't bother. if( ! stristr( $url, $bb_url ) ) { return $args; } if( ! stristr( $url, '.zip' ) ) { return $args; } // Okay, time to append basic auth to the args. $creds = $this -> creds; $args['headers']['Authorization'] = "Basic $creds"; return $args; }
I'm doing this via filtration, rather than passing args to wp_remote_get(), because I need WordPress to be prepared with these creds when it makes its calls during its normal theme and plugin update calls, which now happen to be going to Bitbucket.
It would be better to do Oauth instead of basic auth, but after quite a bit of research, I've concluded that there's not a way to do so. The roadblock is because raw file content is actually not part of the Bitbucket API at this point, it's just hosted on their website like any other static asset, such as this public test theme for example (it's public for demo purposes, but again, if it were private, you could access it via basic auth). I do have this humble feature request to show for my efforts. As a security measure, I recommend using Bitbucket's new application passwords feature to create an account specifically and only for scripted calls like this, where that app password only has read access. So, to be clear, with basic auth there is a universe (maybe this one) in which a packet-sniffing foe is reading our plugin files. I'm okay with that, at least for the moment.
Adding our repos to the update queue
If there's one key to getting a foothold in this whole process, it's found in the wp_update_plugins() function. That's a huge function the core uses to loop through all of the installed plugins, determine which ones have an update available, and save the result to a transient. The key is that the transient is then exposed for filtering, which is exactly what my plugin does:
<?php add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'set_plugin_transient' ) ); /** * Inject our updates into core's list of updates. * * @param array $transient The existing list of assets that need an update. * @return The list of assets that need an update, filtered. */ public function set_plugin_transient( $transient ) { if( ! is_array( $this -> assets_to_update ) ) { return $transient; } foreach( $this -> assets_to_update as $asset ) { if( empty( $asset -> transient_key ) ) { continue; } if( ! $asset -> transient_content ) { continue; } $transient -> response[ $asset -> transient_key ] = $asset -> transient_content; } return $transient; }
It took me forever to break into this, and it took me months and months to write this plugin. You should probably just use GHU instead. It's pretty damn similar. That said, if you want to tweak some things and you don't like running 3rd party plugins, maybe the above code will help you write your own.
So what's the point, exactly?
The point is not so much how to build your own git deployer plugin, or which existing one you should use. You can figure that stuff out yourself. The really interesting thing is to look at what happened to us when we started deploying from git. Some of the side effects were profoundly surprising and positive.
So long, FTP
FTP stinks for so many reasons.
FTP access is an attack vector.
No easy way to track or revert changes.
No easy way to allow multiple people to work on the same project at the same time.
Human error. It pretty easy to mis-drag-n-drop, leading to a WSOD or worse.
I never expected this, but it's apparent when updating a plugin across many installs, that this git method is much faster than FTP.
With a git deployment system like the one I'm advocating and explaining in this article, you can go so far as to disable all FTP access to your production environment. Seriously: ou won't need it.
Hello proper versioning
I recommend using a git deploy tool that uses docblocks in order to determine the version number, and uses the version number to determine if the theme or plugin is in need of an update. This forces your team to use proper version numbers, which is a nice first step down to the road from crankin' out themes to maturely managing a long-living codebase.
I'm so stoked about unit testing now
If you're not unit testing, you probably know you should be. With git deployment, it can be both automatic and required.
We use the command line to move our work from our local MAMP to Bitbucket, as in, git push origin master. Each of our plugins carries a Grunt task to execute our phpUnit tests upon git pre-commit, and if the tests fail, so does the commit.
We bind Grunt to our commit using GitHooks and we execute our unit tests via Exec. If the tests fail, so does the deployment.
There's no way to sidestep the tests because there's no way to sidestep git for deploying!
Rollbacks
There are no rollbacks per se with this method. Rather, you only roll forward. Whatever you want to fix or restore, get it in master, boost the version number, push, and deploy.
Staffing
This kind of maturation can have business-wide ramifications. Picture this: You have non-dev support folks on the front lines, trying to debug a problem for a client. In the past, they would have had to place this request in a dev ticket queue, while the customer waits hours or days for a resolution. Not anymore. Now, your front-line support agent can navigate to network admin and see that on this environment the plugin in question is outdated. They're free to update the plugin right away via the normal wp-admin interface. The ticket is resolved by front-line support with no dev team involvement. Perhaps those front-line folks cost less than developers, or perhaps they carry a deep skill set in account management. Either way, you no longer have to open a dev ticket to deploy updates to your in-house plugins. Pivotal.
Rise of the machines
Before this process, we were very much an ordinary dev shop churning out themes and plugins for clients, cowboy-FTPing, not versioning our work. Why? Because we were lazy. Why? Because we were human. We're no longer lazy because we are no longer human, at least when deploying. We're a command line script and a series of API requests, and no matter how lazy we are, we have to follow proper deployment practices because we nuked the FTP creds for our developers! On top of all that, it's a faster way to deploy, free from any click-n-drag misfires.
Can you get on board with this overnight? Okay, no. It's a long and expensive process, and it might not be for you, but honestly it probably is. I think there are about 1,000 dev shops out there that should give careful consideration to this.
Deploying From Bitbucket to WordPress is a post from CSS-Tricks
via CSS-Tricks http://ift.tt/2jyniyi
0 notes