#jest suffix
Explore tagged Tumblr posts
webby-mogai · 1 year ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media
-jest
[pt: -jest /end pt]
The -jest suffix is a suffix that can be used for any part of identity as long as the intention is "because/when it's funny", "as a joke", etc. It can be used as a modifier for already existing labels or on its own as long as its for the sillies
Ex.
Chronojest(link), when one's age changes based on whatever is funniest. Girljest, when you only identify as a girl when it would be funny.
Flag stuff, symbol and disclaimer under the cut
[id: the first flag is a grayscale flag with 7 horizontal zig-zagging stripes. the outside stripes are the darkest, with them getting lighter towards the center. in the middle is a grey and white jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. there is white confetti in the background. /end id]
[id: the second flag is the same as first but without confetti /end id]
[id: the third flag is the same as second but with wavy stripes instead of zigzag /end id]
[id: the fourth flag is the same as third but with confetti /end id]
Flag base
[pt: Flag base /end pt]
Tumblr media Tumblr media
[id: the first is a grayscale flag with 7 horizontal zig-zagging stripes. the outside stripes are the darkest, with them getting lighter towards the center. /end id]
[id: the second is the same as the first but the lines are wavy /end id]
Confetti
[pt: Confetti /end pt]
Tumblr media
[id: white confetti on a transparent background /end id]
Symbol
[pt: Symbol /end pt]
Tumblr media Tumblr media
[id: the first is a grey and white jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. /end id]
[id: the second is the same but is transparent instead of white /end id]
Disclaimer!!!
This is meant to describe a particular experience we and a few of our friends have shared where we only identify a particular way when it would be funny. This label was made in good faith and shouldn't be used to make fun of or belittle others experiences, labels or groups!
173 notes · View notes
mantra-repeated · 7 months ago
Text
Malewifejest
Pt: Malewifejest :End pt
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
An identity with the -jest suffix (Link) where one only identifies as a malewife "if/when/because it is funny"
Colors of the flags taken from Kenochoric's malewife flag (link) with various levels of hue and saturation changes
Mention / Tags : @webby-mogai
Tumblr media
Banner transcript: This term was made by an Endogenic. Anyone can use it however. :End Transcript
Tumblr media Tumblr media
[Main flag id: A flag with 7 horizontal zig-zagging stripes. The stripes are from top to bottom dark blue, light purple, tan, a yellowish off white, tan, dark pink, and dark purple. in the middle is a dark blue and pale pink jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. there is dark pinkish purple confetti in the background. End Id]
[Main flag with no jester id: A flag with 7 horizontal zig-zagging stripes. The stripes are from top to bottom dark blue, light purple, tan, a yellowish off white, tan, dark pink, and dark purple. there is dark pinkish purple confetti scatted across the flag. End Id]
[Wavey alt flag id: a flag with 7 horizontal wavey stripes. The stripes are from top to bottom dark blue, light purple, tan, a yellowish off white, tan, dark pink, and dark purple. in the middle is a dark blue and pale pink jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. there is dark pinkish purple confetti in the background. End Id]
[Main flag with only jester: A flag with 7 horizontal zig-zagging stripes. The stripes are from top to bottom dark blue, light purple, tan, a yellowish off white, tan, dark pink, and dark purple. in the middle is a dark blue and pale pink jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. End Id]
[Wavey alt flag with only jester id: a flag with 7 horizontal wavey stripes. The stripes are from top to bottom dark blue, light purple, tan, a yellowish off white, tan, dark pink, and dark purple. in the middle is a dark blue and pale pink jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. End Id]
[Wavey with only stripes id: a flag with 7 horizontal wavey stripes. The stripes are from top to bottom dark blue, light purple, tan, a yellowish off white, tan, dark pink, and dark purple. End Id]
[Wavey with no jester id: a flag with 7 horizontal wavey stripes. The stripes are from top to bottom dark blue, light purple, tan, a yellowish off white, tan, dark pink, and dark purple. there is dark pinkish purple confetti scatted across the flag. End Id]
[Main only stripes id: A flag with 7 horizontal zig-zagging stripes. The stripes are from top to bottom dark blue, light purple, tan, a yellowish off white, tan, dark pink, and dark purple. End Id]
[Eel lizard dividers: A divider made of two dark teal lines with an eel lizard from Rain World in the gap between them. Each line has a diamond on the outer edge and a crescent moon on the inner edge that is the same color as the lines, framing the lizard End Id]
[Banner Id: a rectangular banner with rounded corners on a transparent background. in the background of the banner is the endogenic flag by greyskies, and it has a transparent inset border. in the center is black text that reads "This term was made by an endogenic. Anyone can use it however.". In the bottom right corner is a blue lizard from the game rain world. End id]
[Pink lizard divider: A divider made of two pink lines with rain world graffiti of a pink lizard head in the gap between them. Each line has a outline of diamond on the outer edge and a crescent moon on the inner edge, framing the lizard head. End Id]
34 notes · View notes
paw-pride · 1 year ago
Note
happy new year and welcome back mutt ! :D
may i request girljest and humanjest paws ? [made by webby-mogai]
- 🩹
Girljest and humanjest paws!
Tumblr media Tumblr media Tumblr media
13 notes · View notes
hazyaltcare · 5 months ago
Text
Typing quirk suggestions for...
👨‍💻 Hacker 💎
(MC Jams)
Tumblr media
Letter Adjustments:
Replace "I" with "🧨."
Replace "O" with "🖱."
Word Adjustments:
Capitalize any instance of "MC" in words. (Ex. arMChair, caMCorder, eMCee, etc.)
Replace "accuse," "cancel," "callout," "inform," "tattle," and other similar phrases with "report."
Replace "aiming," "lining up," and other synonyms with "aimbotting."
Replace "bomb," "explosives," and other synonyms with "TNT block."
Replace "bootlicker," "sycophant," and other similar insults with "mod" or "admin."
Replace "bright," "smart," and other synonymous complimentary terms with "AI."
Replace "cut," "slash," and other synonyms with "hack."
Replace "destroy," "vandalize," and other synonyms with "grief."
Replace "do," "activate," and other synonyms with "execute."
Replace "experience" with "XP."
Replace "hacker" with "h4x0r."
Replace "hack" with "h4x."
Replace "learn" and "process" with "download."
Replace "practicing," "training," and other synonyms with "skillbotting."
Replace "unflinching" with "anti-KB."
Text Prefixes & Suffixes:
⌨ <text>
/say <text>
⇱_[◨_◧]\ <text>
₦Ø <text> ĐɆ₳₮Ⱨ₴
💎💎💎 <text> 🩻🩻🩻
4҉0̧4 | <text> | h̕͏͝á̢͘c̢҉k͜͠͞e̶r̡̕ ̡n̵ot ̧f͏̕ơ̢und
<text> 🦠
Phrases To Use:
"Don't die." A phrase often said in jest as a friendly goodbye; wishing the recipient health.
"Do feed the trolls." A contrary phrase to the common saying "Don't feed the trolls!" This mischievous phrase encourages one to provoke trolls once in a while as a form of reverse-trolling.
"Hacker! Hacker!" A catchphrase used to cheer oneself on. Could be used as a verbal stim and/or keyboard smash.
"That's a stretch farther than a reach hacker could make." A phrase casting doubt on the authenticity of the subject.
"They're operating in a different gamemode!" An expression that means someone is operating on an entirely different level than their peers.
"You're running away from [insert issue here] faster than a speed hacker griefs a wooden plank hut." A phrase expressing concern towards the subject and them avoiding their problems.
General Quirk Suggestions:
Sprinkle 2010s slang into your vocabulary; particularly 2010s meme slang, as it's associated with '10s Minecraft hackers, such as the ones Hacker (MCJams) was based off of as a character.
Mod Haze (🧨Tate, 🎮Greyson & 🥧Fiona)
12 notes · View notes
bloodswag · 1 year ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media
Vampirjestic
⋆★⋆
A gender experience connected to vampires/vampirism and jesters, a jester with associated with vampires, a vampire with associated with jesters, etc.
[Basic Flag ID: The Vampirjestic pride flag is rectangular with 7 horizontal stripes. The colors of the stripes from the top to the bottom of the flag are: very dark wine red, dark crimson red, bright amaranth red, white, strong magenta, a very dark rich violet, and a very dark purple.]
★ Etymology: Vampir- (from Vampire) + Jest + -ic (suffix meaning "of, relating to, or resembling")
★ Flag meaning: Under Readmore
⋆★⋆
Tumblr media
[DNI transcript: Anyone can use this term and these flags, just don't follow or interact if you fit my DNI. Please credit if using, informing/asking isn't necessary.]
Tumblr media
11 notes · View notes
blyszczopies · 3 years ago
Text
my phone notes app hates me for having a note with 277 possible names for my warriors story that i might never even write
2 notes · View notes
farmerlan · 4 years ago
Note
Hi! I found your post is very useful of Chinese honorifics but I don't see the one that I was looking for. I've read a lot of chinese raw novel and encounter a lot of: gongzi ge (公子哥) and daren (大人). I sometime also saw the character ge (哥) next to the name of a baby that's just born or 1-2 years old. Is there any meaning of the ge (哥)? --Thanks^^
Hi,
Thanks so much for your ask! 哥 in general, most closely translates to ‘brother’, specifically older brother. However, as you might guess from how ‘bro’ and ‘brother’ can mean/refer to very different things in English, 哥 can also be used to refer to different relationships in different contexts. The ONLY true thing that always holds is it always refers to guys, not girls. So it could also be used as a casual suffix to someone’s name just to refer to them in an informal way (kind of like how you’re saying ‘Hey bro’ IRL, except it would be ‘Hey willkissonyou-bro’ because usually you only refer to your actual older brother as 哥 without their name).
公子哥 is a combination of 公子,and 哥,the first of which I’ve covered in my tumblr post. However, the phrase 公子哥 itself actually becomes a slightly derogatory term to refer to a basically a spoiled, rich guy that spends his time frivolously and doesn’t have any real capabilities besides being loaded. Your modern day equivalent would be the kid of some millionaire who spends his time partying with models in Ibiza.
大人 is a respectful term used sometimes to address nobility, or elders... there’s honestly a ton of different ways you can use this (if you tried to baidu the word it will give you like 10 different scenarios and that probably doesn’t even cover it!) - so I think for the most part the key is just knowing that it’s a respectful term (i.e. won’t use this with friends unless in jest).
26 notes · View notes
webby-mogai · 1 year ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media
Girljest
[pt: girljest /end pt]
A gender with the -jest suffix where one only identifies as a girl "if/when/because it is funny"
[id: a pink and orange flag with 7 horizontal zig-zagging stripes. the outside stripes are a dark pink, with them getting lighter towards the center until they turn into a peachy-orange in the middle. in the center is a pink and white jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. there is white confetti in the background. /end id]
[id: the second flag is the same as first but without confetti /end id]
[id: the third flag is the same as second but with wavy stripes instead of zigzag /end id]
[id: the fourth flag is the same as third but with confetti /end id]
117 notes · View notes
mantra-repeated · 7 months ago
Text
Alterhumjest
Pt: Alterhumjest :End Pt
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
An alterhuman identity with the -jest suffix (Link) where one only identifies as alterhuman "if/when/because it is funny"
Mentions / Tags : @radiomogai , @webby-mogai
Tumblr media
for this flag I color picked from the 3 most prominent alterhuman flags, that being this This colorful alterhuman flag (link) for the stripes, the jester colors from This alterhuman flag from gh0stspxce (Link) and for the confetti pulled the colors from the thinner stripes in The first alterhuman flag from here (Link) with minor hue, and/or saturation changes so that without either the jester symbol or confetti they could be still be differentiated from the most common alterhuman flag. Speaking of which, below are both versions of the flags ("Spikey" and 'Wavey") without the jester symbol or the confetti for icon makers and what not.
Tumblr media Tumblr media Tumblr media Tumblr media
Banner transcript: This term was made by an endogenic. Anyone can use it however. End Transcript
Tumblr media Tumblr media
[Main alterhumjest main flag id: A flag with 7 horizontal zig-zagging stripes. The stripes are from top to bottom dark blue, dark purple, purple, teal, yellow, orange, and dark orange red. in the middle is a dark magenta and pale purple jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. there is pale yellow confetti in the background. End Id]
[Spikey alterhumjest no jester id: a flag with 7 horizontal zig-zagging stripes. The stripes are from top to bottom dark blue, dark purple, purple, teal, yellow, orange, and dark orange red. There is pale yellow confetti scatted across the flag. End Id]
[Spikey alterhumjest only jester id: a flag with 7 horizontal zig-zagging stripes. The stripes are from top to bottom dark blue, dark purple, purple, teal, yellow, orange, and dark orange red. in the middle is a dark magenta and pale purple jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. End Id]
[Wavey alterhumjest jester only id: a flag with 7 horizontal wavey stripes. The stripes are from top to bottom dark blue, dark purple, purple, teal, yellow, orange, and dark orange red. in the middle is a dark magenta and pale purple jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. End Id]
[Wavey alterhumjest no jester id: a flag with 7 horizontal wavey stripes. The stripes are from top to bottom dark blue, dark purple, purple, teal, yellow, orange, and dark orange red. There is pale yellow confetti scatted across the flag. End id]
[Wavey alterhumjest both symbols id: a flag with 7 horizontal wavey stripes. The stripes are from top to bottom dark blue, dark purple, purple, teal, yellow, orange, and dark orange red. in the middle is a dark magenta and pale purple jester symbol with a two-toned hat ended in bells along with a frilly collar with bells at the end as well. there is pale yellow confetti in the background. End id]
[Eel lizard dividers: A divider made of two dark teal lines with an eel lizard from Rain World in the gap between them. Each line has a diamond on the outer edge and a crescent moon on the inner edge that is the same color as the lines, framing the lizard End Id]
[Wavey blank alterhumjest flag id: a flag with 7 horizontal wavey stripes. The stripes are from top to bottom dark blue, dark purple, purple, teal, yellow, orange, and dark orange red. End id]
[Spikey blank alterhumjest flag id: a flag with 7 horizontal zig-zagging stripes. The stripes are from top to bottom dark blue, dark purple, purple, teal, yellow, orange, and dark orange red. End Id]
[Banner Id: a rectangular banner with rounded corners on a transparent background. in the background of the banner is the endogenic flag by greyskies, and it has a transparent inset border. in the center is black text that reads "This term was made by an endogenic. Anyone can use it however.". In the bottom right corner is a blue lizard from the game rain world. End id]
[Pink lizard divider: A divider made of two pink lines with rain world graffiti of a pink lizard head in the gap between them. Each line has a outline of diamond on the outer edge and a crescent moon on the inner edge, framing the lizard head. End Id]
21 notes · View notes
libidomechanica · 4 years ago
Text
A his hollows fray
Retire in the musicke,  bone-dry which wafted on ever  loud, whom I love her husband, loveth, her loved  is will not chuse birds sit not your 
name, bound the immutable; slake Thy two  day see how deep in this guided  in you taken like a complain you would  cease, not wisdoms a certain that did 
banish and all the smell, where two  name. —Jamie, comes of the quail, so  far, sweets thats for gude storm of your spirit  deep in universe, both love 
Greek which the this call thought (vnhappy and  choking the rose, all dare, if  it was of his dazzling  space broke and we steale blast vow 
and tea. An imaginary. I will  bind my head, while my hearts slaves? If a  turn wings, mode of precious in my maid with  family, and magnesias; 
whose rename out of sweet Te Deums of  a valleys. The lass on the  gladly faced. Comely flower and People,  smalles not her lap, at night of thee, 
God, obey those is not thy hanging roes,  O principles, struts an heaven know just  shade accept, and Stand; the milking  your love, “What its decay. ”) 
Do I not lustrous heart. Suffix w as a dame, both clay. But would sight; those hurling. ( They grace from the house, and find honey,  dread, I feelings right; the fatigues are 
dead of praise is but rarest among the  flat, wet drops at Hellencies of  pomegranates in certain the circle  the rose-wet cave, and ten the “
Never know: is it still not of  transfix the cycles a work, and  holds by Loue doth push one couple prated the  queens! In treasure! And by like 
a spurn as ill death, the city. They  went to Her uncondition;  and a IOOO back your naive the complete,— I trust me, my mouth— you once “How his 
ears; a could its him, but a chin  and revisions,) charm shallow-heart, forget.  My decrees: or heart is a photograph  of us in they grandeur: 
and drops from the sun-flowers: we  wilderneath th flower” or hearts end,  a faine would not me? — In the festern  end the kinds from which one 
of Lochroyan, and watched and cruell me  number on to peril of  your look out of my words were fools enough  the blue quickly make her 
love me. Ten ye your spit of Thetis, where  are bring Two whom Fresh sin, alone as  thou dost the sal gae and the  sun began towards of straw 
to fair eyes, as ill death, O Solomon  had he shadow what thou hadst tells the  Buskie-glen, fu dry. Comes that walked “with  sapphire, blush when we enter : 
there in jest. Should blue weedest, chaste these day,  not thy whithers by thee and their he streight  within the hear sighs substance inters  gems at Conway dwelled like the seven!”
1 note · View note
aboldclaim · 5 years ago
Note
29 and/or 30 :D!
Soft™ fic prompts -  pet names + ‘this is my husband/wife/girlfriend/boyfriend.’ (read on ao3)
He likes the idea of being a husband.
He’s always liked the idea in theory, from afar, like marriage was a piece of art to be placed on a wall and admired. He’d thought it was a brave thing to do, a nice thing to do, and that if he could get someone to loiter in front of it with him for long enough, if he could get them to pick it apart and explain it to him, maybe he’d give it a go.
There was no time for explanation, with Patrick.
There was no time for David’s elevator pitch on spending the rest of their lives together. He didn’t get a chance to prevaricate, didn’t take the time to spiral, because Patrick hadn’t loitered. Patrick hadn’t left. He’d run headfirst into falling in love instead, with unmatched bravery, enjoyment without restraint. He’d gone all in, all at once, and up a mountain and down on one knee, asked him to marry him like it was the simplest thing in the world, like it was the easiest decision of his life. It was as if he’d had a firm grasp on the whole thing, even when he was shaking with laughter against his neck, trembling as he’d arranged the rings on David’s hand, shivering when the sun had gone behind a cloud and he’d directed them back down the mountain, limping a little, kissing a lot. It was always like he knew exactly what he was doing. David’s still a bit lost.
‘Are you a bit lost?’
David pulls his head out of the fifth cabinet he’s searched in, as Clint moves into the kitchen. Words fumble and die on his tongue about the maze of corridors that make up the mid-century house, or the baby photos he saw on the journey down this morning, or his fruitless search for mugs, because everything sounds churlish, disingenuous, overeager.
‘Coffee,’ is all he manages to choke out, and he wishes he was wearing a sweater so he bury himself in the sleeves of it, but the house is as warm as its occupants, and he’s really glad he at least put on a shirt. He shakes his head clear. ‘I’ve been sent for coffee.’
‘Mm, by him upstairs?’ Clint offers, rolls his eyes, moving to a cabinet on the other side of the room. He can see where Patrick gets it from, the quick humour, the gentle teasing, always soft at the edges, and brimming with affection. He wishes he had more time than the weekend.
He wishes for more time as he’s shuffled into a chair by Marcy, who arrives in pink slippers, who calls him sweetheart. He thinks if he could just watch Patrick’s parents move around each other in Patrick’s childhood kitchen, at his childhood table, he’d understand marriage, and the hard-earned familiarity of the dance they do on the cork floor, all sleepy smiles and the newspapers and a mug for Patrick, too. They make coffee in the morning, and they do the dishes, pay their taxes, seem to really like each other, still, so maybe that’s it. Maybe that’s being married.
He wishes he’d understood his own parents’ marriage more, or sooner. There’s no dishes or cork board floors or pink slippers, with them, and it still seems to work. In spite of themselves, it seems to have always worked.
He just wishes it felt less nebulous, that he could lean into reality with Patrick, who makes his barefoot, bed haired, decaffeinated appearance in the kitchen, makes a beeline for the mug with his name painted on it in splashes of fading childish colours.
‘We should scoot,’ Patrick says, between gulps of coffee, leaning against his chair. He feels Patrick’s fingers slip beneath the neckline of his shirt to tuck an erstwhile tag away, feels them still and start there, grazing absent-mindedly as they inhale their coffee. The whole thing feels painfully domestic, like Patrick already knows how to be married, like he’s being doing it this whole time. He wishes he had his confidence.
*
He doesn’t realise how nervous Patrick is until they’re picking their way through the crowded cafe.
He knew he was nervous, armoured himself with a new sweater and four rings and his most sociable smile for the gathering of strangers - cousins, college roommates, friends collected before his time. He thought he had a monopoly on desperation to impress, but Patrick’s whole body seems tense, jaw set and hands shoved deep into his pockets until they reach the gaggle of people. There’s a loud bubble of delighted welcomes from their corner, and David wants to run away a little, wants to keep Patrick closer, wants to have known him for as long as they have - a mess of envy and shyness until Patrick gives his arm a squeeze, offers introductions in a fumble.
‘This is my husband,’ he announces proudly, then swiftly turns a deep shade of red, as several sets of eyebrows crawl up foreheads. David can see him shuffle his feet, like he’s willing the linoleum to crack open so the earth can swallow him up, can see him struggling to recover.
‘To be,’ David offers then, at large. ‘Or not to be.’
‘Definitely to be,’ Patrick shakes his head, and David thinks it’s the best introduction he’s ever had, doesn’t need much more to launch himself into the table of nice strangers.
There’s a script in the back of his mind that he used to recite by heart at this type of thing. There was a discipline to his warmth, a regiment of charms he could fall back on - loop twice around the room and people won’t even notice when he leaves. But Patrick would notice. He thinks people might notice. There’s an ease to their strangeness, a curiosity about him that doesn’t seem intrusive, and it’s only when the food arrives that there’s a brief lull in conversation and he can lean over.
‘So…’
‘Shut up, please,’ Patrick says, between a mouthful of toast, and knocks their knees together under the table.
‘You got a bit ahead of yourself.’
‘Babe.’
‘Oh no, I like husband.’
David likes babe. He’s not opposed to it at all, especially when it’s said the way Patrick says it, without condescension or control, exasperation or exhaustion - but at the end of texts and the start of the day, and into pillows and against his thigh. He had liked it the first time he’d said it, early on and suffixed with blushes.
He’s thrilled about husband. He’s thrilled about the way it fell from Patrick’s mouth, and the way it sounds around his own, even prematurely, even in jest. There’s something solid about it, something steady, like he could bounce between the syllables and not lose balance. He likes the way it fills him up, and that his tongue stops the sound instead of getting tangled around it. He loves that he’s going to be one, soon. He’s going to have one.
Patrick leans closer, tries to quell his grin against the fabric of David’s sweater for a moment, his lips warm on his shoulder. He’s valiantly attempting to feign annoyance, but his eyes are bright when he peers up at him, and laughter bubbles at the corners of his mouth.
‘Husband isn’t a pet name.’
‘It is now.’
David likes these games they play, on and off, day to day. He likes that he knows the rules, this time, likes that they play together. There are boundaries, and they shuffle within them, skirting the edges if it helps them navigate what he would otherwise take far too seriously. They take turns besting each other in rounds, and still like each other at the end of it. He supposed that’s marriage, too.
This round is his. Any lingering apprehension he has at the way the day might go slips away as the rest of the table catches on, and it becomes a group effort to cajole Patrick into saying it again. They’re all just as quick, just as warm, as him and he watches Patrick as the hours unfold, an unspeakably fond expression set firm on his face, steadfast in his resolve to win. He stays tight-lipped and amused, lets David bookend every sentence with it - between mimosas and through the streets, at half-time of a ball game and in the crowded pub afterwards.
He lets David mumble it against his mouth in the car that night outside his parents’ place with their seatbelts off and their hands all over each other. Patrick lets him say it over, and over, and over (husband, husband, husband), until David has to pull away to take a breath, feeling light-headed, half-married.
*
He admits defeat in not so many words, a few hours later, as the mattress in the guest bedroom dips below Patrick’s weight and he’s a bit quieter than David would have liked. He’s worried he’s toed the line too closely, wants to tell him he’s sorry, he’ll stop, he can wait (can’t wait, doesn’t want to wait) to marry him.
‘You okay, honey?’
The triumph is evident from the smile that plays in Patrick’s expression, so he might just be tired. He might have been messing with him, but his hands are restless against the bedcovers, and David watches the words he’s trying to get out spin around in his head until he can put them in the right order.
‘You know earlier,’ he says softly. David knows he’s looking at him, but old anxiety screws his ribcage tight and he fixes his gaze on Patrick’s hands instead, watches him push his thumb roughly along the lines of his palm. ‘Making out in the car. I felt like a teenager.’
‘Me too.’
‘I wish I could have had that, back then.’
It knocks the air from his chest. He’s not sure what he was expecting, to be admonished, maybe, to be teased, but the admission is gentle, said around a shrug, and David doesn’t know what to say. He wishes he knew what to say. He wishes he had Patrick’s composure, looking at him like he always does - soft, close, and kind, and trying to be honest, always trying to be honest. He wishes Patrick could have kissed the boys he wanted to kiss, twenty years ago in the front seat of his car, parked outside his parents’ place.
The things he wants, the things he wants for Patrick, fill up his lungs like water so the breath he tries to suck in has nowhere to go, the long inhale just reaching the back of his throat, lodged against words he can’t seem to get out. He wants to kiss him. He wants to marry him. He wants to cry.
He shuffles closer, instead, buries his head in the space above Patrick’s collarbone. Their bodies are almost flush, save for a tangle of sheets and a mess of pyjamas, and Patrick fights through them to reach the line of David’s hip, give it a gentle squeeze.
‘Husband’,  he feels Patrick say, feels him brush his thumb against the cool skin at his waist, beneath his shirt. It sounds different, now, less fumbled, more reverent, and David presses his lips against the crook of Patrick’s neck to muffle the wet sob that fight its way from his throat.
‘I like the way you say it.’
‘I like the way you say it,’ Patrick echoes, and David cranes his neck to chance a look at him. He’s not looking back, eyes closed, head turned towards the ceiling, but a smile blossoms full and bright across his face, laugh lines bracketing his mouth. He seems settled and unfettered all at once, in the guest bedroom of his childhood home, like he’s tugged the roots from its walls and let them grow elsewhere - into the cracks between the floorboards of Rose Apothecary, and behind the white-washed walls, between piles of boxes, around the sign above the door, flowers pressed between flowers. His name. Their name, maybe. He’s grown his roots around David, and David has grown his roots around him, and that’s marriage too. ‘I just don’t want you to get sick of it before - ’
‘I’m not going to get sick of it.’
‘Before I am your husband,’ he continues. ‘And you end up calling me something else.’
‘What else would I call you?’ David asks, and Patrick opens his eyes, shuffles down on his pillow and twists so he can shift both arms around David, collect the fabric near his shoulder blades underneath his fingers.
‘I don’t know. Pat?’
‘No.’
‘Or like, “hey, you”, you know?’  
He can feel his ribcage expand so his lungs can fill with laughter, and it spills out breathlessly against Patrick’s mouth as he surges forward. His shirt is collected beneath David’s hands, his thigh is pressed between David’s thighs, and he tries to catch his lips but they’re too happy to kiss tidily, and it soon dissolves into a tender sort of chaos, all tongues and teeth and teasing.
*
He can’t find his husband.
‘Maybe he made a run for it after those toasts,’ Stevie offers around a champagne flute, straining her jests above the music, and the thrum of conversation around them.
David is beginning to regret inviting so many people, craning his neck across the room to catch a sight of Patrick. It’s crawling towards midnight, and the room is still swelling with their guest list, fuelled by an open bar and a line-up of power ballads. He needs them to leave. He needs to leave.
Stevie’s face falls when he doesn’t wave her joke away with a dismissive hand, shuffling past her instead and gesturing to the fire door. He wants to tell her he’s had a good day. He wants to dive headfirst into cliche and tell her it’s been the happiest day of his life, because it has been, because it is. He’d always rationed happiness, carved up what he was given and felt it piece by piece like there was some sort of quota on how much joy one person was allowed. But he’d woken up this morning, in his single bed, in his motel room, and felt everything all at once, felt it for the last eighteen hours, feels it now that his family is close by, and he knows every person here, and Patrick, somewhere, wherever he his, married him.
He’s an uneasy recipient for this sort of unchecked love, he thinks, takes and takes and takes it until he feels like he can’t take anymore, exhausted and full to the brim and drowning in it and he can’t, can’t catch his breath. He wants some air. He wants sleep. He wants Patrick.
He finds him at the other end of the long corridor outside the room. He’s a sight for sore eyes, shirt sleeves rolled up his forearms and legs splayed out along the plush carpet, and he wants him, but he doesn’t want to interrupt his peace.
He hovers nearby instead, watches Patrick twist the ring on his left hand, a newly married take on an old telltale habit. There’s an energy about him that teeters on restlessness, a nervousness David’s only been privy to a handful of times, because it’s dampened by a steady charm and irresistible self-assurance. He doesn’t fake it, doesn’t bluster his way into semblances of poise like David does. He just believes in himself, and pours that belief into David, and handles everything until he can’t handle everything, and has to take a moment, take a hike, take a few deep breaths.
It’s David’s own shaky exhale that gives him away, earns him a guilty smile, and a pat to the carpet next to Patrick. He can tell Patrick wants to explain, wants to apologise for disappearing from his own reception, but David shakes his head, sliding down the wall next to him and stretching his long legs out so the tip of his well-polished shoe can tap against the sole of Patrick’s.
He meets his gaze for a moment - soft, tender, tired - before he reaches forward and starts to unravel the tie still knotted perfectly around Patrick’s neck. When it hangs loose beneath his collar, David leans over.
‘Hey, you.’
David can feel the soft laughter build in Patrick’s chest, warm and shaking, as he presses a kiss between each button he teases undone, until he can reach the space near his collarbone. He can feel a smile blossom across Patrick’s face, find its shape against David’s hair, as he drops his head against him.
‘Hey, you.’
67 notes · View notes
aromanthur-lester · 3 years ago
Text
Ohh, I love talking about my fucked up language!
Basically you always need to conjugate the verb, but you often don’t know how does the word conjugate, because it’s completely random (unlike to French or Spanish, where all you have to do is find the subject and add the correct suffix).
Usually (or should I say ‘sometimes’, because ‘usually’ usually doesn’t work in Polish) you just cut off the ‘ć’ and add the suffix, although it’s often fucked up in the first person.
So, as for swear words, when you conjugate for example ‘chrzanić’ (which is the least-harsh ‘to fuck’, also used as ‘to fucking talk’. it’s barely a swear word, but it’s easy to conjugate) it goes like:
I — ja [ya] — chrzanię
you — ty — chrzanisz
he/she/it — on/ona/ono — chrzani
we — my [mi] — chrzanimy
you — wy [vy] — chrzanicie
they — oni/one — chrzanią
This goes for a lot of verbs, although sometimes in the first person you have some irregularities (like ‘chcieć — chcę’, or ‘bać się — boję się’, or ‘dawać — daję’), but the rest of the conjugation is often regular.
Unfortunately there is no ‘they’ in singular in Polish, so the closest thing to a singular ‘they’ is ‘ono — it’.
As for the swear words, there’s a lot of verbs, nouns and adjectives and adverbs, depending on one’s creativity, but everything (except for adverbs) needs to be conjugated, so for example when you have a noun ‘chuj — dick’, you conjugate it like:
ja jestem chujem — I am a dick
ty jesteś chujem — you are a dick
on jest chujem — he is a dick
my jesteśmy chujami — we are dicks
wy jesteście chujami — you are dicks
oni są chujami — they (masculine) are dicks
but when you have ‘chujowy’, which is an adjective and basically means dickish you conjugate it differently, like:
For every singular form — chujowy/chujowa/chujowe (depending on gender)
For every plural form — chujowi/chujowe (depending on gender)
So basically there’s a lot of stuff, none of it makes sense, but I hope this post can make swearing in Polish at least a little bit easier for you— have fun with annoying your roommate, pissing off Polish people is really fun and also usually easy! Sorry that this post is so long, hope you don’t mind me ranting about this horrifying language
Tumblr media
29K notes · View notes
nolifer-pl · 6 years ago
Text
CommandBus na sterydach w praktyce
Najpierw zacznijmy od teorii. Command Bus o którym będzie tu mowa to połączenie wzorca polecenie (Command pattern) z warstwą usługi (service layer).
Wzorzec warstw usług to wzorzec polegający na grupowaniu usług na warstwy funkcjonalne. Powoduje to, że zmiany dokonywane są na mniejszych fragmentach kodu które dotyczą konkretnego zagadnienia. Zmniejsza to ilość zależności w ramach konkretnego działania.Usługi powinny być zaprojektowane w taki sposób, aby umożliwiać ich ponowne wykorzystanie. A ograniczenie ich odpowiedzialności do konkretnego zadania upraszcze ich budowę i logikę.
Wzorzec Polecenie (Command pattern) polega na zdefiniowaniu klasy która przechowuje niezbędne informacje do wykonania polecenia. Oraz oczywiście samego kodu wykonującego to polecenie. Implementacji tego wzorca widziałem wiele. Są źródła które zamykają wszystko w jednej klasie, ale są też takie które rozbiają te zależności na osobne byty. Nie chciałbym się skupiać tu na szczegółach a oprzeć się na implementacji którą oferuje league/tactician i osadzić ją w Symfony dzięki gotowemu już thephpleague/tactician-bundle.
Zacznijmy od zainstalowania biblioteki.
$ composer require league/tactician-bundle
Teraz dodajemy nowego Bundle do naszego AppKernel:
<?php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new League\Tactician\Bundle\TacticianBundle(), ); // ... } // ... }
Dodajmy teraz konfigurację:
tactician: commandbus: default: middleware: - tactician.middleware.locking - tactician.middleware.command_handler
Aby nie definiować wszystkich handlerów ręcznie, dodajmy taki wpis do naszego pliku services.yml
CommandBus\Command\: resource: "%kernel.project_dir%/src/CommandBus/Command/**/*Handler.php" tags: [{name: tactician.handler, typehints: true}]
W końcu możemy przejść do rzeczy. No więc jak działa Command Bus? Zasada jest dość prosta. Potrzebujemy prostą klasę polecenia (Command) która przyjmie konkretne dane wymagane do wykonania. Powinny być to dane proste. Nie całe encje a np. identyfikator który pozwoli tą encję wybrać z bazy. Szczegółowa implementacja może wyglądać tak jak to ustali zespół który zamierza z tego korzystać. Może być to prosty klasa z publicznymi właściwościami. Może być to klasa z samymi "geterami". Dobrze aby wymuszała ona istnieje wszystkich niezbędnych parametrów. Przykład takiej klasy:
<?php declare(strict_types=1); namespace CommandBus\Command\User\AddFriend; class AddFriendCommand { /** * @var int */ private $userId; /** * @var int */ private $firndId; public function __construct(int $userId, int $firndId) { $this->userId = $userId; $this->firndId = $firndId; } public function getUserId(): int { return $this->userId; } public function getFirndId(): int { return $this->firndId; } }
Teraz potrzebowalibyśmy czegoś co nam wykona takiego commanda. Klasy tekie niech będą miały surfix Handler zamiast Command pozwoli to na łatwe odnalezienie takiej klasy która zdefiniuje nam właśnie serwis który wykona oczekiwaną operację. Przykład takiej klasy:
<?php declare(strict_types=1); namespace CommandBus\Command\User\AddFriend; use CommandBus\Command\User\AddFriend\AddFriendCommand; use UserBundle\Entity\UserRepository; class AddFriendHandler { /** * @var UserRepository */ private $userRepository; public function __construct(UserRepository $userRepository) { $this->userRepository = $userRepository; } public function execute(AddFriendCommand $command) { $user = $this->userRepository->find($command->getUserId()); $friend = $this->userRepository->find($command->getFirndId()); $user->addFriend($friend); } }
I teraz jak wygląda wywołanie takiego polecenia. Nalezy przekazać Command do naszego CommandBus reszte załatwi zainstalowana biblioteka. Czyli:
<?php declare(strict_types=1); use League\Tactician\CommandBus; use Symfony\Component\HttpFoundation\Request; use CommandBus\Command\User\AddFriend\AddFriendCommand; class UserController { private $commandBus; public function __construct(CommandBus $commandBus) { $this->commandBus = $commandBus; } public function addFriend(Request $request) { $command = new AddFriendCommand( $request->request->get('userId'), $request->request->get('friendId') ); $this->commandBus->handle($command); return $this->json([]); } }
Domyślnie command zostanie wykonany natychmiastowo. Czyli poniżej moglibyśmy pobrać listę znajomych i powinna ona być wzbogacona o dodanego w nim nowego znajomego. Więc jeżeli ktoś potrzebuje zwrócić od razu rezultat to może. Ale nic nie stoi na przeszkodzie by zdefiniować sobie drugi własny command bus który będzie odkładał polecenie na kolejkę. (Przykładu takiego serwisu) Do tego dodać konsumera który takie zadania będzie z kolejki ściągać i wykonywać. A przerzucenie zadania które wykonuje się za długo w kontrollerze na kolejkę sprowadzać się będzie tylko do użycia innego command busa.
I to jest podstawowe użycie i działanie. Nie jest źle ale szału nie ma. Command Bus od tactician pozwala nam na dodawanie pośredników (middleware). Co pozwala sprawić, że narzędzie to staje się jeszcze bardziej użyteczne. Obecnie proces wykonania polecenia wygląda następująco:
Dobrze jest rozdzielić warstwę kodu który wykonuje daną odperację od walidacji jego danych. Walidacja czasem jest prosta a czasem bardziej skomplikowana ale raczej zawsze jakaś jest. Dlatego spróbujmy stworzyć middleware który uruchomi walidator commanda by zweryfkować czy Command w ogóle powinien się wykonać.
Aby odróżnić błędne wywołania które zakończą się jakiś wyjątkiem. Lepiej tak zaprojektować middleware by błędy były po prostu zwracane. Może być to true/false może być to po prostu string, ale jeżeli zamierzamy mieć różne wersje językowe serwisu to lepiej niech to będzie obiekt do którego będzie można przekazać klucz tłumaczenia i predykaty. Ja na razię przekazuje po prostu treść błędu ale tu każdy powinien przemyśleć to co będzie odpowiednie do jego rojektu.
<?php declare(strict_types=1); namespace CommandBus\Middleware; use League\Tactician\Middleware; abstract class AbstractMiddleware implements Middleware { const COMMAND_SUFFIX = 'Command'; public function createServiceName(string $commandClassName, string $suffix): string { $commandSuffixLength = \strlen(self::COMMAND_SUFFIX); if (substr($commandClassName, -$commandSuffixLength) !== self::COMMAND_SUFFIX) { throw new \Exception(sprintf('Class %s is no command class', $commandClassName)); } return substr($commandClassName, 0, -$commandSuffixLength) . $suffix; } }
<?php declare(strict_types=1); namespace CommandBus\Middleware; use Symfony\Component\DependencyInjection\ContainerInterface; class ValidateMiddleware extends AbstractMiddleware { const VALIDATOR_SUFFIX = 'Validator'; /** * @var ContainerInterface */ private $container; public function __construct(ContainerInterface $container) { $this->container = $container; } /** * @return mixed * @throws \Exception */ public function execute($command, callable $next) { $validatorName = $this->createServiceName(get_class($command), self::VALIDATOR_SUFFIX); if (!$this->container->has($validatorName)) { throw new \Exception('Validator service can not be found'); } $validator = $this->container->get($validatorName); $error = $validator->validate($command); if ($error) { return $error; } return $next($command); } }
Dodajmy middleware do konfiguracji:
tactician: commandbus: default: middleware: - tactician.middleware.locking - CommandBus\Middleware\ValidateMiddleware - tactician.middleware.command_handler
Dopiszmy teraz klasę walidacji do naszego Command-a.
<?php declare(strict_types=1); namespace CommandBus\Command\User\AddFriend; use UsersBundle\Repository\UserRepository; class AddFriendValidator { public function __construct(UserRepository $userRepository) { $this->userRepository = $userRepository; } public function validate(AddFriendCommand $command): ?ValidationFailed { $user = $this->userRepository->find($command->getUserId()); if (!$user) { return new ValidationFailed('User does not exists'); } if ($user->isBanned()) { return new ValidationFailed('User is banned'); } $friend = $this->userRepository->find($command->getFirndId()); if (!$friend) { return new ValidationFailed('Friend does not exists'); } if ($user->hasFriend($friend)) { return new ValidationFailed('Users are already friends'); } } }
Proces działania naszych poleceń wygląda teraz tak:
Fajnie by było aby wszystkie Polecenia były zamknięte w transakcje. Jeżeli programista nie będzie musiał o tym pamiętać to jest szansa, że ochroni to nas przed kilkoma, czasem przykrymi w skutkach problemami. Zobaczmy jak taki middleware dodający transakcje mógłby wyglądać:
<?php declare(strict_types=1); namespace CommandBus\Middleware; use Doctrine\DBAL\Connection; use Doctrine\ORM\EntityManager; class TransactionMiddleware extends AbstractMiddleware { /** * @var EntityManager */ private $entityManager; public function __construct(EntityManager $entityManager) { $this->entityManager = $entityManager; } /** * @throws \Doctrine\Common\Persistence\Mapping\MappingException * @throws \Exception */ public function execute($command, callable $next) { $this->entityManager->getConnection()->setTransactionIsolation(Connection::TRANSACTION_READ_COMMITTED); $this->entityManager->beginTransaction(); try{ $error = $next($command); if ($error) { $this->entityManager->clear(); $this->entityManager->rollback(); return $error; } $this->entityManager->flush(); $this->entityManager->commit(); } catch (\Exception $exception) { $this->entityManager->clear(); $this->entityManager->rollback(); throw $exception; } } }
Dodajemy go do konfiguracji:
tactician: commandbus: default: middleware: - tactician.middleware.locking - CommandBus\Middleware\TransactionMiddleware - CommandBus\Middleware\ValidateMiddleware - tactician.middleware.command_handler
Teraz proces działania naszych poleceń wygląda tak:
Gdy mamy operacje zamknięte w transakcje może wystąpić problem, że w trakcie trwania naszej transakcji encja zmieni stan na taki który już by nie przeszedł walidacji. Lub inne zadanie zablokuje rekordy w innej kolejności co spowoduje zablokowanie się zadań nawzajem. Zminimalizować wystąpienie tego problemu można blokując samemu rekordy wykonująć zapytanie SELECT FOR UPDATE. Jako, że mieszanie technikali z logiką biznesową nie jest najlepszym pomysłem zróbmy middleware który wywoła serwis w razie potrzeby i zablokuje sobie na czas transakcji odpowiednie rekordy. Przykład takiego middleware mógłby wyglądać tak:
<?php declare(strict_types=1); namespace CommandBus\Middleware; use Symfony\Component\DependencyInjection\ContainerInterface; class LockingStrategyMiddleware extends AbstractMiddleware { const LOCKER_SUFFIX = 'Locker'; /** * @var ContainerInterface */ private $container; public function __construct(ContainerInterface $container) { $this->container = $container; } /** * @return mixed * @throws \Exception */ public function execute($command, callable $next) { $lockerName = $this->createServiceName(get_class($command), self::LOCKER_SUFFIX); if ($this->container->has($lockerName)) { $lockingStrategyService = $this->container->get($lockerName); $lockingStrategyService->lock($command); } return $next($command); } }
Dodajemy middleware do konfiguracji:
tactician: commandbus: default: middleware: - tactician.middleware.locking - CommandBus\Middleware\TransactionMiddleware - CommandBus\Middleware\LockingStrategyMiddleware - CommandBus\Middleware\ValidateMiddleware - tactician.middleware.command_handler
No i dodajmy klasę blokującą nasze rekordy.
<?php declare(strict_types=1); namespace CommandBus\Command\User\AddFriend; use Doctrine\ORM\EntityManager; class AddFriendLocker { /** * @var EntityManager */ private $entityManager; public function __construct(EntityManager $entityManager) { $this->entityManager = $entityManager; } public function validate(AddFriendCommand $command): void { $this->entityManager->find('UserBundle\Entity\User', $command->getUserId(), LockMode::PESSIMISTIC_WRITE); $this->entityManager->find('UserBundle\Entity\User', $command->getFirndId(), LockMode::PESSIMISTIC_WRITE); } }
Proces działania naszych poleceń wygląda teraz tak:
Możemy stworzyć dodatkowo middleware który będzie logował wywołanie każdego Command-a oraz ewentualne błedy. Wtedy bez problemu będziemy w stanie ponowić takie commandy gdy poprawimy działanie naszego kodu.
<?php declare(strict_types=1); namespace CommandBus\Middleware; use CommandBus\Command\LoggableInterface; use Psr\Log\LoggerInterface; class LoggingMiddleware extends AbstractMiddleware { /** * @var LoggerInterface */ private $logger; public function __construct(LoggerInterface $logger) { $this->logger = $logger; } /** * @param object $command * @param callable $next * * @return mixed */ public function execute($command, callable $next) { $commandInfo = [ 'class' => get_class($command), ]; try { $this->logger->info('Execute command', $commandInfo); $error = $next($command); if ($error) { $this->logger->warning( 'Command not pass validate', [ 'command' => $commandInfo, 'error' => $error, ] ); } else { $this->logger->info('Command executed', $commandInfo); } return $error; } catch (\Exception $exception) { $this->logger->error( 'Command failed', [ 'command' => $commandInfo, 'error' => $exception->getMessage(), 'stacktrace' => $exception->getTraceAsString(), ] ); throw $exception; } } }
Dodajemy middleware do konfiguracji:
tactician: commandbus: default: middleware: - tactician.middleware.locking - CommandBus\Middleware\LoggingMiddleware - CommandBus\Middleware\TransactionMiddleware - CommandBus\Middleware\LockingStrategyMiddleware - CommandBus\Middleware\ValidateMiddleware - tactician.middleware.command_handler
Teraz uzyskaliśmy taką architektórę naszego CommandBus:
Zastanówmy się teraz jaki uzyskaliśmy rezultat.
Mamy proste wejście do każdej operacji zapisu w naszej aplikacji. Bez problemu więc możemy napisać command Symfonowy który wywoła dowolny command w naszej aplikacji.
Mamy ładny obraz tego co nasz system robi. Nawet nowa osoba w zespole widząc taką listę commandów szybciej zrozumie co się dzieje w systemie niż grzebiąc i szukając po kontrolerach co gdzie jak. A tworząc kod analogicznie jest większa szansa, że będzie on spójny z resztą. W natłoku serwisów często zadarza się tak, że każdy pisze kod trochę inaczej.
Dodaliśmy transakcje do każdej opercji zapisu - nie trzeba już o tym pamiętać
Rozdzieliliśmy logikę blokowania rekordów do zapisu, walidacji oraz wykonania.
Logujemy wykonanie i niepowodzenie każdej operacji zapisu w naszym systemie.
Łatwo możemy wydelegować dowolne zadanie na kolejkę. Jaśli raz stworzymy taką wersję command bus-a. Wystarczy zmienić commandBus do którego przekażemy Command.
Dzięki ładnemu podziałowi odpowiedzialności na rózne klasy nasz kod stał się bardziej SOLID.
Będąc uczciwym trzeba powiedzieć kilka słów o wadach tego rozwiązania. Jeżeli oddzielnie pobieramy encje Lock oddzielnie w Validate i na koniec w Handler to zwiększya się ilość zapytań bazodanowych. W większości przypadków to nie będzie problem. W większości pozostałych przypadków przeniesienie zadań na kolejkę rozwiąże problem. A dla pozostałych przypadków można postarać się o modyfikacje middleware-ów i przekazywanie pobranych encji między tymi warstwami. Osobiście pracując nawet przy projektach gdzie wykonywanych było naprawdę dużo zapisów w jednym czasie. To o ile zapytania wykorzystywały indeksy to nie powodowało to większych problemów.
Drugim minusem to na pewno większa liczba klass do napisania. Jeżeli kogoś bardzo drażni tworzenie tylu klas to ten problem można rozwiązać tworząc command w cli. Przekażemy do niego nazwę commanda a on nam wygeneruje wszystkie pliki w odpowiednim katalogu.
Kiedy więc takie rozwiązanie nam się nie sprawdzi. W małych aplikacjach, czyli takich które da się ogarnąć jedną myślą w kilka minut. W aplikacjach które są czystym CRUDem. Wtedy zapewne lepszym pomysłem będzie użycie jakiejś biblioteki lub frameworka który zapewne proste zapisy i odczyty załatwi za nas. W takich przypadkach byłby to przerost formy nad treścią. W każdym innym przypadku zapewne szybko docenimy wyżej wymienione zalety. Oczywiście należy pamiętać, że to nie jedyny sposób rozwiązania omawianych tu problemów. Zawsze wprowadzając jakieś nowe rozwiązanie/wzorzec do projektu trzeba rozważyć wady i zalety.
W rozbudowywaniu procesu naszego Command Bus-a o nowe middleware ogranicza nas tylko wyobraźnia. Ale co najważniejsze robimy to raz dla wszystkich commandów i zapominamy. W naszej gestii zostanie tylko pisanie nowych Command i ich wywoływanie. Czyli dokładnie to czego dotyczą zadania. Kwestie transakcji, kolejkowania, czy logowania tego co się dzieje w systemie mamy już rozwiązane. Ciekaw jestem czy ktoś ma jakieś pomysły na inne middleware które mogłyby w czymś pomóc?
1 note · View note
ainaraoftime · 7 years ago
Text
Tumblr media
you jest but in spanish its pretty common to make nicknames by adding suffixes, like ainaruski, ainareta or ainarita
3 notes · View notes
joel-furniss-blog · 7 years ago
Photo
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Another set of works based on Jamie Reid’s pieces. Once again dealing with Imperial Japan, but this time a specific event.
The Nanking Massacre was a mass murder/rape conducted by Japanese forces in the Chinese city of Nanking in December and January of 1937-38. During the massacre, soldiers of the Japanese army killed approximately 200,000 Chinese citizens. Their crimes include mass executions via rifle or bayonet, gang raping around 20,000 women and girls as young as thirteen, penetrating women’s vaginas with bayonets and bamboo poles, feticide via bayonet, nailing people to walls, severing genitalia, beating children to death, throwing babies into the air and piercing them with a bayonet for sport, boiling infants alive, taking sex slaves, compiling mass graves (including a ‘Ten-Thousand-Corpse Ditch’), burying people alive, immolating prisoners for entertainment, using captured civilians as target practice, multiple beheadings (via a contest to kill one hundred people with a sword), forcing family members to commit incestuous acts, mass arson, and theft.
Overall, the most abhorrent shit committed by human beings ever. What makes the event even worse (if that is possible) is the fact that many Japanese public officials hotly debate the extent and nature of the highly recorded massacre, with some outright denying it’s existence. Even many of the Japanese public are skeptical about the events as a result of the massacre only being briefly mentioned in school textbooks, and not in enough detail to pay attention too. Japan itself has never formally apologized for the event, with WWII anniversary speeches often being vague and never addressing the massacre by name.
Overall it is a very loaded topic to explore, which made it perfect for me. While my understanding of the entire event is admittedly ignorant, I feel that works for my intention of a ‘fake deep’ political activist stance I was using for this particular avenue of work. While it is arguably immoral for me to use the massacre as a muse without giving much thought about it, I think that that is seemingly perfect for the ‘shock art’ portion of my project.
Visuals used with these works include the Empire of Japan flag (as used in the previous collection), images from dramatized movies detailing the massacre (in order to tie into the pop culture theme), images from the massacre itself (primarily for shock value), Japanese weaponry (a relation to the massacre and once again the pop culture theme), and once again, Nazi imagery. I also used elements of humor in my work (as with the previous and further ones), mainly for the tongue-in-cheek jest at the method of juxtaposing humor and horrific imagery as well as a parody of poor-taste black comedy.
I also branched out into some more experimental visual elements and compositions from my previous work, basically new ways of exploring the flag and text I had used before. I’d also like to point out the fact that using ‘Nanking’ as a suffix for the ‘God Save the’ prefix ends up evoking the gendered ‘God Save the King’ phrase through rhyme. Just something I thought was funny.
2 notes · View notes
jb21sf · 4 years ago
Text
feast
c. 1200, "secular celebration with feasting and entertainment" (often held on a church holiday); c. 1300, "religious anniversary characterized by rejoicing" (rather than fasting), from Old French feste "religious festival, holy day; holiday; market, fair; noise, racket; jest, fun" (12c., Modern French fête), from Vulgar Latin *festa (fem. singular; also source of Italian festa, Spanish fiesta), from Latin festa "holidays, feasts, festal banquets," noun use of neuter plural of festus "festive, joyful, merry," related to feriae "holiday" and fanum "temple," from Proto-Italic *fasno- "temple," from PIE *dhis-no- "divine, holy; consecrated place," suffixed form of PIE root *dhes-, forming words for religious concepts.
0 notes