Koc poc helper

Laravel Performance: Vercel's Serverless vs. the cheapest DigitalOcean droplet

2024.04.13 01:35 moghwan Laravel Performance: Vercel's Serverless vs. the cheapest DigitalOcean droplet

I benchmarked basic Laravel database/Eloquent operations (user counts, selects, collection operations.) across two setups:
I've used SQLite for simplicity, but the results should be similar with MySQL/Postgres.
I've run the logic 2500 times with Laravel's Benchmark helper to get a better average. Here are the results:
Vercel surprisingly beat DigitalOcean in speed, but the 10-second limit for serverless functions in the free plan is a killer for longer-running tasks.
So, what to choose?
Bonus: Vercel offers built-in CI/CD, but no SSH access (serverless trade-off).
Here's the repo with the benchmark code: https://github.com/moghwan/laracel-app/
Also the repo is deploy-ready and set up with a github actions pipeline, so you can test it yourself. instructions are in the readme.
I've posted more details and stats in a twitter thread
last but not least, the idea came to mind when I wanted to deploy some laravel projects with the least cost possible, while not caring about heavy usage or server maintenance, just for showcasing purposes.
looking forward for your feedbacks and opinions.
cheers!
submitted by moghwan to laravel [link] [comments]


2024.03.03 05:20 cc6090280 I can’t believe I beat fatal 185 using this team 😭 I’ve never made to past this battle

submitted by cc6090280 to mkxmobile [link] [comments]


2024.02.24 09:49 _HUBERT_THE_ROCK_ [FO4] reinstalled cbbe many times... please help

[FO4] reinstalled cbbe many times... please help submitted by _HUBERT_THE_ROCK_ to FalloutMods [link] [comments]


2024.01.27 10:16 69-weeb [Resumé Review] Roast My Resumé - YOE -1.5

[Resumé Review] Roast My Resumé - YOE -1.5
Hi guys. Please suggest for any improvements in my resumé.
Thanks in advance.
https://preview.redd.it/1oc0x7fx9yec1.jpg?width=1275&format=pjpg&auto=webp&s=951b4ecae16177719e55f5002ad8fd1e4103daca
submitted by 69-weeb to developersIndia [link] [comments]


2024.01.25 02:06 fixtheblue FEBRUARY Book Menu - All book schedules + useful links and info

What does your Reading Menu look like for February?
New here? Head to our New Readers Orientation post here for the basics. Also be sure to introduce yourself below. We love to hear how you found us, what you like to read, and what your first bookclub read is/will be
February Line-up - The Underground Railroad (POC), Call Me By Your Name (Romance), Purple Hibiscus (Read the World), Love in the Time of Cholera (Evergreen), The Red Tent (Discovery Read), Know My Name (Quarterly Non-Fic), The Devotion of Suspect X (Mod Pick), Priory of the Orange Tree (Runner-up Read), The Farthest Shore (Bonus Book), Memnoch the Devil (Bonus Book), Radiant Sin (Bonus Book), Record of a Spaceborn Few (Bonus Book), A Song Flung up to Heaven (Bonus Book), The Untitled Books (Bonus Book), Dune Messiah (Bonus Book) + The Monthly Mini & Poetry Corner.
[MONTHLY MINI]
Rabbit Test by Samantha Mills
[POETRY CORNER]
was nominated by u/fixtheblue and will be run by u/midasgoldentouch, u/eeksqueak, and u/Pythias
The Schedule with direct links to all the discussion posts Marginalia can be found here (Caution! Spoilers!)
Discussion Schedule
  • February 5th: Ajarry - Ridgeway
  • February 12th: South Carolina - North Carolina "The town hushed. Jamison gave the word."
  • February 19th: North Carolina "To explain why he and his wife kept Cora imprisoned in their attic, Martin had to go back a ways." - Caesar
  • February 26th: Indiana - End
    [ROMANCE]

    Call Me By Your Name by André Aciman

was nominated by u/fixtheblue and will be run by u/dat_mom_chick and u/Pythias.
The Schedule with direct links to all the discussion posts Marginalia can be found here (Take care spoilers!)
Discussion Schedule
  • February 7th Part 1 - Part 2 "Don't let your body give the whole thing away."
  • February 14th Part 2 "Was it my fault?" - end of Part 2
  • February 21th Part 3 - End
    [READ THE WORLD]

    Purple Hibiscus by Chimamanda Ngozi Adichie

for Nigeria will be run by u/bluebelle236
The Schedule with direct links to all the discussion posts Marginalia can be found here (Warning: this post may contain spoilers)
Discussion Schedule
  • 13th February - start to end of paragraph beginning 'That night I dreamed I was laughing' (section 1-6)
  • 20th February - 'Papa drove us to a Christmas mass' to 'My cousins and Jaja laughed' (section 7-9)
  • 27th February – ‘Papa -Nnukwu had woken up before anyone else’ - 'As he drove, we sang Igbo courses' (section 10-12)
  • 5th March - 'The Green sign outside the church' to end (section 13-end)
    Next RtW country is Kyrgyzstan
    [EVERGREEN]

    Love in The Time if Cholera by Gabriel Garcia Marquez

will be run by u/lazylittlelady, u/luna2541, u/eeksqueak and u/Superb_Piano9536.
The Schedule with direct links to all the discussion posts Marginalia can be found here (Spoilers here)
Discussion Schedule
  • February 11: Beginning to "cover over with a sacramental cloak some premature mistake." ~107 (u/Superb_Piano9536)
  • February 18: to "it was the most beautiful animal Florentino Ariza had ever seen." ~213 (u/luna2541)
  • February 25: to "'Hairless wonder!' he shouted." ~318 (u/eeksqueak)
  • March 3: to end (u/lazylittlelady) ***** [Feb-Mar DISCOVERY READ] ***** #The Lies of Locke Lamora by Scott Lynch
is our Steampunk Discovery Read. This book will be run by u/thebowedbookshelf, u/Vast-Passenger1126 and u/Reasonable-Lack-6585.
The Schedule with direct links to all the discussion posts. Marginalia can be found here (be wary of spoilers here).
Discussion Schedule
  • Feb 20: Prologue to Part 1, Interlude: Locke Stays for Dinner (141 pp)
  • Feb 27: Part 1: Chapter 3 to Part 2, Chapter 5 (163 pp)
  • March 5: Part 2: Interlude: Jean Tannen to Part 3: Interlude: The Schoolmaster of Roses (147 pp)
  • March 12: Part 3, Chapter 10 to Part 4, Chapter 14 (156 pp)
  • March 19: Part 4: Interlude: The Daughters of Camorr to Epilogue: Falselight (end) (114 pp)
    [MOD PICK]

    The Devotion of Suspect X by Keigo Higashino

The winner of the Mod Pick - Member's Choice nominations will be run by u/miriel41, u/espiller1 and u/eternalpandemonium
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Beware spoilers may be here)
Discussion Schedule
  • 14th February: Chapters 1 – 5
  • 21st February: Chapters 6 – 10
  • 28th February: Chapters 11 – 15
  • 6th March: Chapters 16 – 19 ***** [BONUS READ] ***** #The Farthest Shore by Ursula K. Le Guin
This is book 3 in the Earthsea Cycle series. Links to A Wizard of Earthsea book #1 and Tombs of Atuan book #2 are here. This book will be run by u/inclinedtothelie.
The Schedule with direct links to all the discussion posts. Marginalia can be found here closer to the start date. (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • January 29 - Chapters 1-3
  • February 5 - Chapters 4-6
  • February 12 - Chapters 7-9
  • February 19 - Chapters 10-13 ***** [BONUS READ] ***** #The Untitled Books by C.J. Archer
Glass Library book 1 - The Librarian of Crooked Lane links can be found here, book 2 - The Medici Manuscript here. This book will be run by u/sunnydaze7777777 and u/Meia_Ang
The Schedule with direct links to all the discussion posts Marginalia can be found here ( Proceed with caution. Spoilers)
Discussion Schedule
  • February 1: chapters 1 to 6
  • February 8: chapters 7 to 12
  • February 15: chapters 13 to 18 ***** [BONUS READ] ***** #Radiant Sin by Katee Robert
This is book #4 in the Dark Olympus series. Find book #1 Neon Gods discussion links here, links to book #2 Electric Idol are here, and links to book #3 Wicked Beauty here. This NSFW book will be run by u/lazylittlelady.
The Schedule with direct links to all the discussion posts Marginalia can be found here (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • Freaky Friday February 9: Chapters 1-10
  • Freaky Friday February 16: Chapters 11-21
  • Freaky Friday February 23: Chapters 22- End
    [BONUS READ]

    Record of a Spaceborn Few by Becky Chambers

This is Book 3 in Wayfarers series. Discussions to Book 1 - The Long Way to a Small Angry Planet can be found here, discussions to Book 2 - A Closed Common orbit can be found here. This book will be run by u/NightAngelRogue.
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • Discussion 1 - February 24th: (BEGINNING) Prologue - Four Standards Earlier, Tessa: "Mom, can I go see the stars..." through Chapter 16 - Isabel "Dinner had been chaos"
  • Discussion 2 - March 2nd: Chapter 17 - Tessa "This was a battle of wills" to Part 2: We Have Wandered / Part 3: To This Day, We Wander Still - Chapter 33 - Tessa "Aren’t you supposed to be at work?"
  • Discussion 3 - March 9th: Chapter 34 - Isabel "So it’s true then" to Chapter 45: Tessa “There was never a day”
  • Discussion 4 - March 16th: Chapter 46: Eyas “Eyas hurried into the Centre” to Chapter 60: Isabel, Three Standards Later (END)
    [BONUS READ]

    A Song Flung Up to Heaven by Maya Angelou

d discussion links for book 1 I Know Why the Caged Bird Sings here, and book 2 Gather Together in My Name here, book 3 Singin' and Swingin' and Gettin' Merry Like Christmas here, and book 4 The Heart of a Woman. This book will be run by u/DernhelmLaughed
The Schedule with direct links to all the discussion posts Marginalia can be found here (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • February 9th: Chapters 1 to 8
  • February 16th: Chapters 9 to 20
  • February 23rd: Chapter 21 to 33 (End) ***** [BONUS READ] ***** #Dune Messiah by Frank Herbert
Links to book #1 Dune. This book will be run by u/Tripolie, u/mustardgoeswithitall, u/Pythias and u/luna2541
The Schedule with direct links to all the discussion posts Marginalia can be found here (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • February 21 - Prologue to Chapter 5 ( u/mustardgoeswithitall )
  • February 28 - Chapter 6 to 11 ( u/Pythias )
  • March 6 - Chapter 12 to 18 ( u/luna2541 )
  • March 13 - Chapter 19 to End ( u/Tripolie ) ***** [BONUS READS] ***** #A Dead Djinn in Cairo/The Angel of Khan el-Kahlili/The Haunting of Tram Car 015 by P. Djèlí Clark
Links to A Master of Djinn can be found here. This check in will be run by u/lazylittlelady and u/DernhelmLaughed.
Discussion Schedule
  • 10th Feb - All 3 stories ***** [BONUS READ] ***** #Memnoch the Devil by Anne Rice
Find the links to Interview With the Vampire (The Vampire Chronicles #1) here, links to The Vampire Lestat (The Vampire Chronicles #2) here, The Queen of the Damned (The Vampire Chronicles #3) here, and The Tale of the Body Thief by Anne Rice (The Vampire Chronicles #4) here. This book will be run by Greatingsburg.
The Schedule with direct links to the discussion posts. Marginalia can be found here
Discussion Schedule
  • Monday 5th February: Beginning - Chapter 3
  • Monday 12th February: Chapter 4 - Chapter 5
  • Monday 19th February: Chapter 6 - Chapter 10
  • Monday 26h February: Chapter 11 - Chapter 13
  • Monday 4th March: Chapter 14 - Chapter 19
  • Monday 11th March: Chapter 20 - End
**** *CONTINUING READS
[EVERGREEN]

The Golem and the Jinni by Helene Wecker

will be run by u/thebowedbookshelf, u/Vast-Passenger1126, and myself (u/fixtheblue) because when it was mistakenly nominated last month it did really weil until its disqualification.
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Spoilers here)
Discussion Schedule
  • 5 Jan - Start through Chapter 5
  • 12 Jan - Chapter 6 through Chapter 10
  • 19 Jan - Chapter 11 through Chapter 15
  • 26 Jan - Chapter 16 through Chapter 19
  • 2 Feb - Chapter 20 through Chapter 23
  • 9 Feb - Chapter 24 through End-
    [Jan-Feb DISCOVERY READ]

    The Red Tent by Anita Diamante

Was nominated by u/bluebelle236 and will be run by u/midasgoldentouch, u/Blackberry_Weary and u/sunnydaze7777777.
The Schedule with direct links to all the discussion posts Marginalia can be found here (note the spoiler restrictions vary on marginalia posts)
Discussion Schedule
  • January 21 - Prologue through Part 2 Chapter 1
  • January 28 - Part 2 Chapter 2 through Part 2 Chapter 5
  • February 4 - Part 2 Chapter 6 through Part 3 Chapter 1
  • February 11 - Part 3 Chapter 2 through end ***** [Quarterly Non-Fiction] *** #Know My Name by Chanel Miller
Was nominated by u/bluebelle236 and will be run by u/sunnydaze7777777, u/infininme, u/eeksqueak and u/Blackberry_Weary
The Schedule with direct links to all the discussion posts. Marginalia can be found here (take care, spoilers are here)
Discussion Schedule
  • January 25th - Intro - Chapter 4
  • February 1st - Chapter 5 - Chapter 7
  • February 8th - Chapter 8 - Chapter 11
  • February 15th - Chapter 12 to End (including impact statement) ***** [RUNNER-UP READ] ***** #The Priory of the Orange Tree by Samantha Shannon
This book was nominated back in June 2022 and March 2022 by u/lovelifelivelife for a Big Read. It will be run by u/Bonnieearnold, u/lovelifelivelife, u/nopantstime and u/NightAngelRogue.
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Be aware of spoilers)
Discussion Schedule
Links to earlier reads in the series. This book will be run by u/bluebelle236, u/nopantstime, and u/Vast-Passenger1126.
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • January 22nd - Act 1, ch1 to Act 1, ch14
  • January 29th- Act 1, ch15 to Act 2, ch5
  • February 5th - Act 2, ch6 to Act 2, ch20
  • February 12th - Act 2, ch21 to Act 2, ch34
  • February 19th - Act 2, ch35 to Act 3, ch9
  • February 26th - Act 3, ch10 to end
submitted by fixtheblue to bookclub [link] [comments]


2024.01.18 19:27 midasgoldentouch [Megathread] r/bookclub's 2024 Book Bingo

Welcome to bookclub's second annual book bingo!
This is the Megathread for bookclub's 2024 Book Bingo. This is where you can post your bingo cards to share and track your progress. You are allowed to have one comment per board but otherwise please EDIT your comments throughout the year, rather than making multiple comments to update the same board (these will be deleted).
For all the rules and FAQs please head over to our book club bingo FAQ wiki, which is accessible through the menu at the top, under ‘MinistryOfMerriment`. You can ask questions in our Q&A posts throughout the year. And here is a link to the bingo helper spreadsheet where you can find all the bingo box categories and books that fit these categories. The spreadsheet can be edited by everyone, so feel free to update with the bookclub books that you are reading.
You can find links to a printable version of the bingo board here: Option 1 and Option 2. The list of squares is also printed below:
Row 1
Row 2
Row 3
Row 4
Row 5
Here's a reminder of your options for final card submission.
We will be posting check-ins during the year to see how you all are doing with your Bingo cards. Enjoy and have fun book worms!
bookclub's Ministry of Merriment
submitted by midasgoldentouch to bookclub [link] [comments]


2024.01.06 00:44 sulliedjedi Somnophilia Kink List

Hey guys!
I have a Somnophilia List that I want to add to! (61 books so far, thanks for all of the new ones!!)

What is somnophilia? 😴💤💤

Sometimes called sleeping beauty syndrome or sleep sex, it's sex when someone is unconscious or pretending to be unconscious.
Somnophilia can be consensual and pre-planned, dub-con (where one MC initiates without discussing it first but it's implied it's mutual), or non-con (there's no background showing it would be wanted or it's done in a devious manner.)
Often in the books I've read, the sleeping MC really isn't sleeping or wakes up within seconds, but enjoys pretending to be asleep or not in control.
I've left book information and tags on the list. If you know of any books that have a somnophilia scene, I'd love to add more to the list. Helpful but not required, it would be great to know if it's consensual or not. If it's allowed by the Mods, I'll edit my list and add a finalized doc later.
Please check all CWs before reading. And many thanks to u/queermachmir for old HOOR posts and tagging somnophilia!
Fade to Black by Jasper Blew CNC, trans MC, pre-planned consensual drugged somnophilia, friends to lovers, dubcon, erotica novella
{Sweet Baby Boy by Simon Strange} ex-step-fathestep-son, camping, erotica novella
{Playing Pretend by Simon Strange} stepbrothers, erotica novella
{Cheaters by Simon Strange} (somnophilia flashback) stepbrothers and cheating (not on each other) erotica novella
{Daddy's Other Boy by Simon Strange} MMM, humiliation, cock cage, consensual cuckolding, somnophilia, full-length book
{Misbehaved by Simon Strange} age gap, daddy kink, age play, bratty boy, hurt/comfort, spanking, enemies to lovers, professostudent, somnophilia, full-length book
{Finder's Keepers by Simon Strange} D/s, spanking, somnophilia, erotica novella
{Daddy's Little Helper by TM Chris} fatheson incest, practically all somnophilia, short book
{Apple Pie by West Greene} friends to lovers, military/bartender pairing, size difference, brief somnophilia scene, 27 pages, erotica novella
{The Good Liar by CP Harris} step-brothers/pseudo-incest, full-length book
{Bad Wrong Things by CP Harris} check CWs, full-length book
{Quillion's Covert by Joseph Lance Tonlet} fatheson incest, small somnophilia scene, full-length book
{Rend by Roan Parrish} face-fucking, somnophilia, hurt/comfort, marriage in crisis, check CWs, full-length book
{Dear Daddy, Please Praise Me (Naughty or Nice #5) by Luna David, Amy Bellows} daddy kink, praise kink, lace and lingerie, holiday book, consensual somnophilia, full-length book
{Pretty Wreck by JR Gray} in-depth somnophilia conversations and planned somnophilia, rock stars, full-length book, CW toxic abusive gaslighting ex
{Truck Me by BJ Blakely} pure PWP, age gap (20 years), truckers, college student, daddy kink, D/s, exhibitionism, jerking off in someone's truck and leaving a mess behind, voyeurism, threesome, rough sex, bratty boy, public sex, full-length book
{Maahes (Malicious Gods: Egypt Series) by Emma Jaye} dark romance, check CWs, full-length book
{Hostile Takeover by Cara Dee} uncle/nephew (by marriage) pseudo-incest, D/s, age gap, shared sex scenes, full-length book
{Happy Pride (Pride Pet Play 2023 series) by RA Frick} trans sub, D/s, primal play, pet play, full-length book
{Never Have I Ever: Submitted to My Enemy by Willow Dixon} frenemies to lovers, college, so much consent, positive ADHD rep, CNC, somnophilia, full-length book
{Dark Possession by Amelita Rae} Yaoi Prison Feminization Erotica, check CWs
{Sweetboy by Amelita Rae} prison setting, erotica novella, check CWs
{Consequences of Crying by Abigail Kade} dark romance, retelling of The Boy Who Cried Wolf, vampire/incubus pairing, soulmates, reincarnation, erotica novella
{Shelter in Place by Simon Strange} COVID lockdown, D/s, humiliation, exhibitionism, friends to lovers, tons of kink exploration, watersports (once), realistic anal sex conversations, full-length erotica book
{Stepbrother Next Door by Anna Wineheart} omegaverse, mpreg, stepbrothepseudo-incest, spanking, DP, exhibitionism, sex toys, age gap, professostudent pairing, full-length book, CW self-harm, pregnancy complications, discussion of miscarriage (1 scene, consensual)
{Dad's Omega Best Friend by Anna Wineheart} omegaverse, mpreg, age gap, professostudent, younger Alpha/older Omega (1 scene, consensual)
{Two Daddies for the Single-Dad Omega by Anna Wineheart} MMM, omegaverse, mpreg (1.5 scenes, consensual)
{Forced by the Alpha Prisoner by Anna Wineheart} cover to cover noncon erotica novella (1 scene, noncon)
{Forced by the Alien Monster} alien reptile, kidnapping, erotica novella, cover-to-cover noncon, check CWs (1-2 scenes, somnophilia undertones throughout, noncon)
{Monster-Forced: The Monster's Forced Breeding by Anna Wineheart} erotica novella, cover to cover noncon, forced breeding, check CWs (several scenes throughout, noncon)
{Monster Bait by Anna Wineheart} erotica novella, noncon, forced pleasure, forced breeding, check CWs (2 scenes, noncon)
Not released yet {Forced by His Wolf Brother by Anna Wineheart} (1 scene, noncon)
{Enemies by Cara Dee} duology, does anyone know in which book somnophilia occurs? (A New Enemy or I'm Not Your Enemy)
{Top Priority by Cara Dee} novella
{Their Boy by Cara Dee} MMM, DDlb, two daddy Doms/one Little, full-length book
{Doll Parts by Cara Dee} polyam, full-length book
{We Have Till Monday by Cara Dee} MMM, daddy switch, DDlb, age play, race car bed, full-length book
{Out by Cara Dee} age gap, dirty talk, praise, somnophilia discussions and planning, full-length book
{Out for the Holidays by Cara Dee} 150-page sequel to *Out*, played out somnophilia scene planned from the previous book
{Taken in His Sleep (Deeper Space #1) by Adri Armstrong} often free on SW, itsy bitsy erotica
{Marrow by Trisha Wolfe, Brynne Weaver} forensic anthropologist serial killewildlife biologist serial killer pairing, check CWs
{Teach Me to Sin (Water, Air, Earth, Fire #4) by Riley Nash} MMM, double age gap, enemies to lovers, forced proximity
Added from comments
Drawn Together by ZA Maxfield Cajun MC/Japanese manga artist pairing, anime con, road trip, running from a stalker, noncon somnophilia (passed out drunk) CWs: past mention of animal abuse, torture, multiple murders, kidnap, mutilation.
Sleepwalkers (Garden of Fiends #2) by Daniel May estranged vampire mates, grumpy/grumpy pairing, lover-to-enemies-to-lovers, 100 years apart, on the run in catacombs, forced proximity, hate sex, second chance, PNR with some horror, blood, dubcon, somnophilia.
Off Limits by Daniel May bro-cest, dubcon, noncon somnophilia, accidental aphrodisiacs, erotica novella, buy on SW
Mastery (Sex Wizards #2) by Alethea Faust part of a series/best read in order, polyam, kink-based magic system, hard BDSM, 24/7 D/s, magic school, consensual drugged somnophilia, long list of kinks, check CWs
Ride Me (Dress Me #2) by KD Ellis MMM, polyam, stalker Daddy/biker Daddy/pretty Boy, switching, doll play, consensual somnophilia
Under His... Shorts by Adara Wolf collection of short stories, *New Year's Eve** short has noncon somnophilia*
Sleep Tight Little Bro by Becca Vale bro-cest, dubcon somnophilia, erotica novella, buy on SW
Good Boy (Vanilla Baby Trilogy #2) by Jett Masterson omegaverse, sugar daddy, age gap, billionaire/college student pairing, BDSM, praise kink, consensual somnophilia
Unsuitable Omega by Jamie Kessel trans alpha/trans omega pairing, omegaverse, domestic discipline, consensual somnophilia
Precious by Roe Horvat omegaverse, forced proximity, trapped together during omega's heat, heat sex, fisting, womb sex, somnophilia (during a heat, omega is out of it)
Lost in a Moment (Trials of Fear #4) by Nicky James hurt/comfort, best friends to lovers, GFY, pets named after the Beatles, chronophobia (fear of the passage of time), clock collection, amputee, PTSD, hoarder, somnophilia à deux
Just the Tip (Extracurricular Activities 0.5#) by Neve Wilder dubcon, enemies-to-lovers, somnophilia, erotica novella
Corin and the Courtier (Beautiful Beasts #2) by Eliot Grayson omegaverse, dragon shifter, belly bulge, forced proximity, only one bed, 15-year age gap, size difference, somnophilia when MC faints from being knotted
A Dream of Daisies by Lemi Young omegaverse, fluff, mpreg, instalove, size difference, somnophilia, cuddles, lots of flowers, novella
Sword and Sorcerer (Claw and Crown #2) by Richard Lunch viking fantasy, wolf-shifter, commoneprince, forced proximity, magical lube, breath play, bondage with magical plants, somnophilia
Igni Ferroque (Tennebrose #2) by Ashlyn Drewek necromancedemon pairing, enemies-to-lovers, noncon, torture, vers, flipfucking, breath play, light somnophilia
Overtime (Alpha Omega Hockey #3) by Marina Vivancos omegaverse, hockey, alpha/alpha pairing, best friends-to-lovers, codependent, possessive, praise kink, orgasm denial, double rut, breath play, consensual somnophilia, CW sex with others on page
Levity (Dragons of Ardaine #2) by Roe Horvat omegaverse, grumpy alpha dragon shiftebroken human omega pairing, lactation, nursing, breeding, fisting, half-shifted sex, humiliation, masteslave, service kink, shifted while rimming, somnophilia
Loving the Legend (Chasing Rings Book 1) by Kit Grey basketball, POC MCs, rookie/star player pairing, hurt/comfort, grief/trauma, intercrural, breath play, cockwarming, edging, consensual somnophilia
Alpha Kings by Roe Horvat MMM, alpha bear-shiftealpha wolf-shifteomega pairing, virgin, kinks and fetishes: heat sex, knotting, breeding, male pregnancy, rough sex, cum play, nipple play, male lactation, lactation kink, double penetration, fisting, orgies, ritual deflowering, biting, mild blood play, half-shifted sex, exhibitionism, voyeurism, size difference, fainting/unconscious somnophilia, ritualistic sex scenes, cockwarming.
Edited for formatting and to add new books!
submitted by sulliedjedi to MM_RomanceBooks [link] [comments]


2023.12.24 23:01 fixtheblue JANUARY Book Menu - All book schedules + useful links and info

What does your Reading Menu look like for January?
New here? Head to our New Readers Orientation post here for the basics. Also be sure to introduce yourself below. We love to hear how you found us, what you like to read, and what your first bookclub read is/will be
January Line-up - Starter Villain (2023 release), Around the World in 80 Days (Gutenberg), Caribbean Chemistry: Tales from St. Kitts (Read the World), The Golem and the Jinni (Evergreen), A Master of Djinn (Discovery Read), Lonesome Dove (Mod Pick), The Priory of the Orange Tree (Runner-up Read), Xenocide (Bonus Book), The Angel's Game (Bonus Book), Artificial Condition (Bonus Book), Authority (Bonus Book), Anne of Windy Poplars (Bonus Book), Loop (Bonus Book) + The Monthly Mini & Poetry Corner.
Any last minute questions you may have about bookclub Bingo can be directed to the Q&A post here.
Check this handy Bingo reference to help you organise your bingo cards.
[MONTHLY MINI]
The Swimmer by John Cheever
[POETRY CORNER]
Sonnets from the Portuguese by Elizabeth Barrett Browning
[2023 RELEASED]

Starter Villain by John Scalzi

was nominated by u/DernhelmLaughed and will be run by u/DernhelmLaughed, u/Greatingsburg and u/eeksqueak.
The Schedule with direct links to all the discussion posts Marginalia can be found here (Caution! Spoilers!)
Discussion Schedule
  • January 9th: Chapters 1 to 9
  • January 16th: Chapters 10 to 18
  • January 23rd: Chapter 19 to end ***** [GUTENBERG] ***** #Around the World in 80 Days by Jules Verne
was nominated by u/miriel41 and will be run by u/Amanda39.
The Schedule with direct links to all the discussion posts Marginalia can be found here (Take care spoilers!)
Discussion Schedule
  • 1/14: Chapters 1 - 14
  • 1/21: Chapters 15 - 25
  • 1/28: Chapters 26 - 37
[READ THE WORLD]

Caribbean Chemistry: Tales From St. Kitts by Christopher Vanier

for St. Kitts and Nevis will be run by u/bluebelle236, myself (u/fixtheblue), and new read runner but seasoned Read the Worlder u/nicehotcupoftea.
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Warning: this post may contain spoilers)
Discussion Schedule
will be run by u/thebowedbookshelf, u/Vast-Passenger1126, and myself (u/fixtheblue) because when it was mistakenly nominated last month it did really weil until its disqualification.
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Spoilers here)
Discussion Schedule
  • 5 Jan - Start through Chapter 5
  • 12 Jan - Chapter 6 through Chapter 10
  • 19 Jan - Chapter 11 through Chapter 15
  • 26 Jan - Chapter 16 through Chapter 19
  • 2 Feb - Chapter 20 through Chapter 23
  • 9 Feb - Chapter 24 through End-
    [Jan-Feb DISCOVERY READ]

    The Red Tent by Anita Diamante

Was nominated by u/bluebelle236 and will be run by u/midasgoldentouch, u/Blackberry_Weary and u/sunnydaze7777777.
The Schedule with direct links to all the discussion posts Marginalia can be found here (note the spoiler restrictions vary on marginalia posts)
Discussion Schedule
  • January 21 - Prologue through Part 2 Chapter 1
  • January 28 - Part 2 Chapter 2 through Part 2 Chapter 5
  • February 4 - Part 2 Chapter 6 through Part 3 Chapter 1
  • February 11 - Part 3 Chapter 2 through end ***** [Quarterly Non-Fiction] *** #Know My Name by Chanel Miller
Was nominated by u/bluebelle236 and will be run by u/sunnydaze7777777, u/infininme, u/eeksqueak and u/Blackberry_Weary
The Schedule with direct links to all the discussion posts. Marginalia can be found here (take care, spoilers are here)
Discussion Schedule
  • January 25th - Intro - Chapter 4
  • February 1st - Chapter 5 - Chapter 7
  • February 8th - Chapter 8 - Chapter 11
  • February 15th - Chapter 12 to End (including impact statement) ***** [RUNNER-UP READ] ***** #The Priory of the Orange Tree by Samantha Shannon
This book was nominated back in June 2022 and March 2022 by u/lovelifelivelife for a Big Read. It will be run by u/Bonnieearnold, u/lovelifelivelife, u/nopantstime and u/NightAngelRogue.
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Be aware of spoilers)
Discussion Schedule
Find discussions for book #1 Ender's Game here, and book #2 Speaker for the Dead here. This book will be run by u/zenzerothyme and myself (u/fixtheblue)
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • Jan 3 - Start through Chapter 5
  • Jan 10 - Chapter 6 through Chapter 8
  • Jan 17 - Chapter 9 through Chapter 11
  • Jan 24 - Chapter 12 through Chapter 13
  • Jan 31 - Chapter 14 through Chapter 15
  • Feb 7 - Chapter 16 through End. ***** [BONUS READ] ***** #The Angel's Game by Carlos Ruiz Zafon
Links to earlier reads in the series. This book will be run by u/bluebelle236, u/nopantstime, and u/Vast-Passenger1126.
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • January 22nd - Act 1, ch1 to Act 1, ch14
  • January 29th- Act 1, ch15 to Act 2, ch5
  • February 5th - Act 2, ch6 to Act 2, ch20
  • February 12th - Act 2, ch21 to Act 2, ch34
  • February 19th - Act 2, ch35 to Act 3, ch9
  • February 26th - Act 3, ch10 to end
    [BONUS READ]

    Authority by Jeff VanderMeer

Links to Southern Reach book 1 - Annihiliation can be found here. This book will be run by u/miriel41, u/nopantstime, u/Reasonable-Lack-6585 and myself (u/fixtheblue).
The Schedule with direct links to all the discussion posts Marginalia can be found here (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • 8th January: Chapter 000 – 004
  • 15th January: Chapter 005 – 014
  • 22nd January: Chapter 015 – 021
  • 29th January: Chapter 022 – end ***** [BONUS READ] ***** #Anne of Windy Poplars by L.M. Montgomery
Links to Anne of Green Gables are here, Anne of Avonlea right here, and Anne of the Island right here. This book will be run by u/Pythias, u/Liath-Luachra and new RR u/tomesandtea.
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • Jan 2nd - 1st yr Ch 1 - 1st yr Ch 12
  • Jan 9th - 1st yr Ch 13 - 2nd yr Ch 8
  • Jan 16th - 2nd yr Ch 9 - end
    [BONUS BOOK]

    Artificial Condition by Martha Wells

Links to Murderbot book 1 - All Systems Red can be found here. This book will be run by u/midasgoldentouch.
The Schedule with direct links to the discussion posts. Marginalia can be found here (Proceed with Caution - Spoiler policy is looser here)
Discussion Schedule
January 10 - Chapters 1-5
January 17 - Chapters 6-9
[BONUS BOOK]

Loop by Kōji Suzuki

Here are links to Book #1 Ring and book #2 Spiral. This book will be run by u/escherwallace, u/Reasonable-Lack-6585 and u/Regular-Proof675.
The Schedule with direct links to the discussion posts. Marginalia can be [found here]( soon (spoilers)
Discussion Schedule
  1. Friday, 1/19/24 (run by u/Regular-Proof675) At The End Of The Night: Chapter 1 through the end of The Cancer Ward: Chapter 11
  2. Friday, 1/26/24 (run by u/Reasonable-Lack6585) The Cancer Ward: Chapter 12 through the end of Journey To The End Of The Earth: Chapter 8
  3. Friday 2/2/24 (run by u/escherwallace) Journey To The End Of The Earth Chapter 9 through the end of the book!
    CONTINUING READS
    [BIG WINTER READ]

Demon Copperhead by Barbara Kingsolver

was nominated by u/bluebelle236 and will be run by u/bluebelle236, u/fixtheblue, u/sunnydaze7777777 and u/Meia_Ang.
The Schedule with direct links to all the discussion posts Marginalia can be found here (Take care spoilers!)
Discussion Schedule
  • 7th December – ch1-9
  • 14th December- ch10-20
  • 21st December- ch21-29
  • 28th December- ch30-39
  • 4th January - ch40-45
  • 11th January- ch46-55
  • 18th January- ch56-64
    [Dec-Jan DISCOVERY READ]

    A Master of Djinn by P. Djèlí Clark

was nominated by u/lazylittlelady and will be run by u/lazylittlelady and u/DernhelmLaughed
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Beware spoilers may be here)
Discussion Schedule
  • December 30th - Chapters 1 to 7
  • January 6th - Chapters 8 to 15
  • January 13th - Chapters 16 to 22
  • January 20th - Chapters 23 to Epilogue (End)
  • February 10th - A Dead Djinn in Cairo (available online), The Angel of Khan el-Khalili (available online), and The Haunting of Tram Car 015
[MOD PICK]

Lonesome Dove by Larry McMurtry

was the Winner of the Mod Pick - Read Runner Edition Nomination. It was nominated by u/Pythias (and u/Vast-Passenger1126). It will be run by u/Pythias, u/Vast-Passenger1126 and u/Tripolie
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Beware spoilers may be here)
Discussion Schedule
Find links to book #1 Shōgun discussions here. Links to book #2 Tai-Pan discussion posts can be found here,links to book #3 Gai-Jin discussions here, links to book #4 King Rat can be found here, and links to book #5 Noble House can be found here This book will be run by u/Blackberry_Weary, u/infininme, u/fixtheblue and u/mustardgoeswithitall
The Schedule with direct links to all the discussion posts Marginalia can be found here. (Marginalia allow reference to the whole book/series. Proceed with caution. Spoilers)
Discussion Schedule
  • 3 Nov 2023 - Chapter 1 to 6 (ending "...your back garden, as always")
  • 10 Nov 2023 - Chapter 7 to 16 (ending "...roadblock for Tehran.")
  • 17 Nov 2023 - Chapter 17 to 24 (ending "...was the best he ever had.")
  • 24 Nov 2023 - Chapter 25 to 29 (ending "...I know we can.")
  • 1 Dec 2023 - Book Two - Chapter 30 to 35 (ending "...he was thinking happily.")
  • 8 Dec 2023 - Chapter 36 to 41 (ending "...that's what we're mixed up in.")
  • 15 Dec 2023 - Book Three - Chapter 42 to 48 (ending "...his already meticulous desk.")
  • 22 Dec 2023 - Chapter 49 to 54 (ending "He preferred it without ice.")
  • 29 Dec 2023 - Chapter 55 to 61 (ending "...Iran only a memory.")
  • 5 Jan 2024 - Chapter 62 to 66 (ending "He rushed off.")
  • 12 Jan 2024 - Chapter 67 to 72 (end).
submitted by fixtheblue to bookclub [link] [comments]


2023.12.20 00:27 Snoo-80420 Will trade merry kissmas for watch out or peg e! ✨✨

Will trade merry kissmas for watch out or peg e! ✨✨ submitted by Snoo-80420 to Monopoly_GO [link] [comments]


2023.10.18 06:34 dptrax awhellnah

submitted by dptrax to RimWorld [link] [comments]


2023.10.05 03:18 tstephansen Making macOS Windows Transparent

Making macOS Windows Transparent
I have been (slowly) working on a PoC maui app over the past year. One of the requirements of this app is to have a second window that's transparent. I looked all over the web but couldn't find a way to actually make the window transparent.
My solution was to create a native library that uses swift to make the window transparent. The repo for this library along with an example is located here. Hopefully this will help any others that have a similar requirement or that having trouble with transparent windows.

Here's a screenshot
submitted by tstephansen to dotnetMAUI [link] [comments]


2023.09.18 15:23 -nervos- Open Transactions

Open Transactions
Research is a big part of building, recently the core team has been diving deep into Open Transactions. In this thread, we'll explain what has been narrowed down so far about Open Transactions in (hopefully) simple terms!
https://preview.redd.it/jqqob3dwj0pb1.png?width=1200&format=png&auto=webp&s=c149f30a873ed68d0933b6f7bfdb21a314776a83
Open Transactions are a more efficient way for multiple parties to collaborate on creating a single transaction. Imagine working on a group project where everyone contributes their piece at different times. That's what Open Transactions can do for CKB users.

https://preview.redd.it/c57z2d4zj0pb1.png?width=1200&format=png&auto=webp&s=1029be8af586a69ba827b9729657c2855abd8c10
Open Transactions help users and services communicate and share information more easily. They're especially useful when multiple people or services need to work together on a single transaction.

https://preview.redd.it/19b9hb52k0pb1.png?width=1200&format=png&auto=webp&s=fc6a13a536cebcbe21f494eb932bbd8657a644b1
This innovative approach helps in two main ways: (1) allowing participants to add their part one after the other, and (2) letting third parties combine different transactions into one. It's like everyone working together on a puzzle!

https://preview.redd.it/4386b3b8k0pb1.png?width=1200&format=png&auto=webp&s=e3f17fe376e7814abb31321fd213a27dc956fd88
But what does it mean for decentralized applications (dApps) on CKB? Open Transactions can have a significant impact on #dApps in various ways, leading to better user experiences and more powerful applications.
First, they enhance composability, making it easier for dApps to interact and compose with other dApps, services, or users. This enables the creation of more complex and feature-rich applications that can leverage multiple services and components.
https://preview.redd.it/7o19fhoak0pb1.png?width=1200&format=png&auto=webp&s=4c9d4518d8b595e60770f9d09568a3f6ae246bb5
Improved transaction efficiency is another benefit. Incremental transaction construction and aggregation facilitated by Open Transactions can help optimize network usage, reducing congestion and improving the overall performance of dApps.

https://preview.redd.it/652man3dk0pb1.png?width=1200&format=png&auto=webp&s=ffe70129e7b063db951b5b8afbc18296df00b646
Greater flexibility and choice for users are possible with Open Transactions. Users can choose different services at each step of the transaction process, giving them more control and options when using dApps and interacting with the CKB ecosystem.
Enhanced privacy is another advantage. Open Transactions can enable privacy-preserving techniques, like CoinJoin, to help anonymize transactions and protect user privacy. This can make dApps on CKB more appealing to users who value privacy and security.

https://preview.redd.it/wv2lqvggk0pb1.png?width=1200&format=png&auto=webp&s=32bab4da68005fe042ae98bd867d37f7c264faba
Moreover, Open Transactions help mitigate the hot cell problem, where multiple transactions compete for the same input cell. This reduces the need for users to repeatedly create and sign transactions, resulting in a smoother experience when using dApps.
In conclusion, Open Transactions on CKB simplify collaboration and communication between different parties involved in creating a transaction. They provide a more efficient and secure way to complete transactions on the network.

https://preview.redd.it/eznwbrklk0pb1.png?width=1200&format=png&auto=webp&s=265f6d78cb956b7ea9563eb45cb1af123e218bb8
With their potential to enhance the functionality, efficiency & user experience of dApps on CKB, Open Transactions can contribute to the growth & success of the CKB ecosystem. If you want to dive into the deep end, check out this post on Nervos Talk:
https://talk.nervos.org/t/exploring-the-ckb-otx-paradigm-accomplishments-and-insights-from-building-a-transaction-streaming-prototype/7346

1 Synopsis

The CKB Open Transaction (OTX) allows users to create transactions that are open to change. Users send these open transactions to a network, where many autonomous agents provide services for assembling CKB transactions from open transactions.
This report will recap the accomplishments and insights we gained in designing a OTX proposal and building a prototype. The purpose of this prototype is to test a possible design, understand its pros and cons, and find unexpected obstacles and potential improvements to the core protocol. Most of the OTX prototyping work is done by Ethan Yuan and myself. Credits go to Jiandong for helping us design and implement the first version of OTX Lock based on the Instructions List.
The OTX Prototype project can be divided into four areas, each of which will be discussed in a separate chapter later in the text. Please note that all the work here is for prototype purposes, the OTX protocol could be very different from this prototype in future iterations. Here is a summary of these areas:
  • OTX Format: An extensible transaction format used to describe a CKB transaction along with its attached metadata.
  • OTX Streaming Pattern: A pattern that involves placing open transactions in a stream and dividing the process of constructing transactions into smaller, reusable components.
  • OTX Lock: A partial signing lock script that excludes certain transaction properties from the signature, allowing the signature to remain valid even if those properties are altered.
  • OTX Framework: A framework for designing and developing dApps utilizing OTX Lock, OTX Streaming Pattern, and OTX format.

2 OTX Format

Constructing a CKB transaction can be complex. Even a basic CKB transfer transaction requires gathering live cells, forming an output for the recipient, allocating sufficient fees, and creating the change output for the remaining CKB.
To address the issue of transaction construction, several teams have formulated step-by-step approaches and developed proprietary formats to store intermediate results. For instance, ckb-cli incorporates additional fields for signing informations 2 and stores them into a JSON file within the tx sub-command. Similarly, Lumos offers the TransactionSkeleton interface to construct transactions. However, the use of proprietary formats prevents collaboration across different tools. For example, it’s impossible to construct a transaction in Lumos first, then sign it using ckb-cli.
To address this, the OTX Format has been introduced as a transaction format specification standard that promotes collaboration and component reuse, enabling seamless movement of transactions between components, processes, and machines across the network. The proposed specification, submitted as PR#406 4, is available for review in the Nervos Network/rfcs repository.
The OTX Format stores metadata as key-value pairs, with keys as 32-bit integers and values as opaque data types. The key determines the encoding of the corresponding value. Applications serialize and deserialize values of interest while treating others as raw byte arrays. This modular design decouples dependencies and enables the creation of simple, reusable, and composable components.
To avoid key conflicts, the community should collectively determine the allocation of keys via the RFC process, where the implication and usage of the keys are defined, specified, and reserved in the RFC repository. The RFC repository serves as a registry for sharing information among transaction construction applications. Proprietary keys can be used by applications without community consensus if they are not transmitted over the public network. A rich library of shared keys is essential for facilitating successful collaboration among applications using the OTX Format.
A typical pattern to use the keys is to store commands that instruct a service to construct transactions. For instance, a service may have a key named TRANSFER_CKB . The code in Listing 1 below shows an example of the value. From the code snippet, it is easy to derive that the user “alice@ckb” intends to transfer 1,000 CKB to “bob@ckb”, where the fee rate must be within the range of 0.0001 to 0.00011. As depicted in the example, the sender and recipient addresses use an email-like format, and the service can lookup the corresponding CKB lock script in the name registries. Clients who wish to transfer CKB can initiate an open transaction by setting TRANSFER_CKB without needing to know the underlying details. The service will use the TRANSFER_CKB key to generate a valid CKB transfer transaction, much like calling a method transferCKB . This pattern has evolved into the OTX Streaming Pattern, which is discussed in Chapter 3.
Listing 1: Example value of the key TRANSFER_CKB
{ "from": "alice@ckb", "to": "bob@ckb", "amount": "1000", "minFeeRate": "0.0001", "maxFeeRate": "0.00011", } 

3 OTX Streaming Pattern

The Streaming Pattern is an architecture that enables software to react and operate as events occur. This pattern allows for software components to work together in a real-time, decoupled, and scalable fashion. It is well suited for the development of modern real-time distributed systems, such as dApps. Confluent offers an excellent introduction to the Streaming Pattern; 1 and ReactiveX an example of the Streaming Pattern framework that supports numerous languages.
The OTX Streaming Pattern uses the OTX Format as the event payload. Autonomous OTX Agents subscribe to the OTX Stream to receive notifications of new open transactions and then process them selectively based on their criteria. The agents also emit modified or new transactions, which are merged into the OTX Stream.
Figure 1: OTX Streaming Pattern
📷
As demonstrated in Figure 1, one of the components is optional. For instance, an agent that receives transactions from RPC will only require an OTX Source, while an agent that sends finished open transactions to a CKB node only needs an OTX Processor.
To further illustrate the pattern, here are some examples of agents.
  1. RPC Emitter receives transactions from an RPC endpoint and forwards them to the OTX Stream.
  2. CKB Sender sends completed transactions to the CKB RPC endpoint.
  3. Signer identifies signing requests in the stream via a registered OTX Format key and stores them locally. A wallet application retrieves the pending signing requests from the Signer agent for users. These requests are presented to users as a list in the application’s UI. After reviewing the requests, users authorize the wallet application to sign the transactions using their private keys. The application then submits the signed transactions to the RPC Emitter agent. Once the Signer detects the presence of the signed transactions in the stream, it removes the corresponding local unsigned versions.
  4. Atomic Swap Matcher functions as an order book for the atomic swap proposals. It indexes the swap proposals locally and offers an RPC to search for these proposals. Clients have the option to search their own proposals to check their status or search proposals made by others to take the orders. The agent also tries to merge matched proposals and emit the merged open transaction to the OTX Stream. Therefore, the Atomic Swap Matcher acts the roles of both OTX Processor and OTX Source.

4 OTX Lock

CKB lock scripts typically require users to sign the entire transaction, which involves two steps to complete an open transaction. First, users need to send the initial open transaction. Then, they must wait for its completion before signing it. In case of failure, users have to wait for a new completed transaction to sign again.
The OTX Lock offers partial signing mechanisms that protect specific properties of a transaction while leaving the other parts free to change. The signature remains valid as long as the signed properties remain unchanged. This enables users to pre-sign open transactions using OTX Lock, facilitating a fire-and-forget style similar to typical CKB transaction processes.
In the following sections, we will discuss two different ways to design the Lock: the Instruction List Lock and the Sighash Lock. Furthermore, Chapter 6 will present several new directions for further exploration.

4.1 Instructions List Lock

The Instructions List Lock enables users to specify the content for inclusion in the digest message for signing through an instructions list. Each instruction adds transaction properties to the digest, such as a full input cell or the number of output cells. We previously presented a design proposal in the RFC: Composable Open Transaction Lock Script 2.
We have tried to use the lock in different scenarios; two of the most studied ones are Atomic Swap and Unilateral Payment.
  • In Atomic Swap, users send swap proposals as open transactions. These proposals describe the assets and quantities users wish to obtain, as well as the assets and quantities they want to pay. Each proposal is unbalanced, and it is the responsibility of the Atomic Swap OTX Agent to merge the matched proposals into a balanced CKB transaction.
  • In Unilateral Payment, we want to design a mechanism based on open transactions to pay assets without interactions from payees. The requirement is from the scenario that users pay small amounts of CKB or user-defined tokens (UDT) but don’t want to incur the storage costs of creating a cell for the payee.
The design of the transaction structures and the instruction lists can be found in an older revision of the repository EthanYuan/open-transaction-pool.
During the experiments to design those scenarios, we experienced significant drawbacks of the proposal. It’s challenging to create a secure instructions list, and the field-by-field inclusion algorithm is not powerful enough for most complex dApps.
The security issues originate from the uncertainty of uncovered transaction fields, making it difficult to predict how open transactions will be consumed. In subsequent paragraphs, we will recapitulate two categories of security issues.
The first category is the Replay Attack, which occurs when an attacker reuses the signature created from a specific instruction list to gain access to other assets owned by the same user. This can occur when the instructions list does not include a field unique to the current transaction. To prevent this, users must avoid signing any unknown digest messages. Additionally, instructions lists must include at least one input cell outpoint to ensure uniqueness.
The second category of security issues arises from the absence of support for Cell Grouping. One of the key features of OTX is the ability to merge open transactions. However, when multiple transactions are merged, it becomes impossible to reference cells based on their absolute locations. To address this, the proposal introduces the method of referencing a cell using the relative index, which is a number relative to a base value. While anyone is allowed to modify the base values, it is typically the responsibility of the Agent who merges open transactions to set the appropriate values without compromising the existing signatures. See how Listing 3 sets the base values for the Open Transaction 2 after merging two atomic swap proposals.
Listing 3: Atomic Swap Merging Example
Open Transaction 1: # Alice wants to get 20 SUDT X by paying 200 CKB inputs: 0: CKB 200 owned by Alice outputs: 0: SUDT X 20 owned by Alice inputWitnesses: 0: # Initially, both base values are set to 0 inputBase: 0 outputBase: 0 instructions: # The first input starting from inputBase - "inputs[inputBase + 0]" # The first output starting from outputBase - "outputs[outputBase + 0]" signature: "0x..." Open Transaction 2: # Bob wants to get 200 CKB by paying 20 SUDT X inputs: 0: SUDT X 20 owned by Bob outputs: 0: CKB 200 owned by Bob inputWitnesses: 0: # Initially, both base values are set to 0 inputBase: 0 outputBase: 0 instructions: # The first input starting from inputBase - "inputs[inputBase + 0]" # The first output starting from outputBase - "outputs[outputBase + 0]" signature: "0x..." Open Transaction 1 + 2: # Make proposals from Alice and Bob inputs: 0: CKB 200 owned by Alice 1: SUDT X 20 owned by Bob outputs: 0: SUDT X 20 owned by Alice 1: CKB 200 owned by Bob inputWitnesses: 0: # Transaction 1 comes first, so the base values are zeros. inputBase: 0 outputBase: 0 instructions: # The first input starting from inputBase - "inputs[inputBase + 0]" # The first output starting from outputBase - "outputs[outputBase + 0]" signature: "0x..." 1: # Shift the base values by one to reference the correct cells. inputBase: 1 outputBase: 1 instructions: # The first input starting from inputBase - "inputs[inputBase + 0]" # The first output starting from outputBase - "outputs[outputBase + 0]" signature: "0x..." 
Allowing anyone to set the base values is dangerous, as adversaries can exploit this by reusing a cell in different open transactions. This is possible because output cells in the CKB transaction lack unique identifications. Let’s revise the swap example by splitting Bob’s proposal into two identical proposals as in Listing 4. By reusing the last output, Bob only receives 100 CKB instead of the intended 200 CKB.
Listing 4: Cell Output Reusing
Open Transaction 1: # Alice wants to get 20 SUDT X by paying 200 CKB inputs: 0: CKB 200 owned by Alice outputs: 0: SUDT X 20 owned by Alice inputWitnesses: 0: inputBase: 0 outputBase: 0 instructions: - "inputs[inputBase + 0]" - "outputs[outputBase + 0]" signature: "0x..." Open Transaction 2: # Bob wants to get 100 CKB by paying 10 SUDT X inputs: 0: SUDT X 10 owned by Bob outputs: 0: CKB 100 owned by Bob inputWitnesses: 0: inputBase: 0 outputBase: 0 instructions: - "inputs[inputBase + 0]" - "outputs[outputBase + 0]" signature: "0x..." Open Transaction 3: inputs: 0: SUDT X 10 owned by Bob outputs: # This output is identical to the one in Transaction 2 0: CKB 100 owned by Bob inputWitnesses: 0: inputBase: 0 outputBase: 0 instructions: - "inputs[inputBase + 0]" - "outputs[outputBase + 0]" signature: "0x..." Open Transaction 1 + 2 + 3: # Make proposals from Alice and Bob inputs: 0: CKB 200 owned by Alice 1: SUDT X 10 owned by Bob 2: SUDT X 10 owned by Bob outputs: 0: SUDT X 20 owned by Alice 1: CKB 100 owned by Bob # The adversary removes the output from Open Transaction 3 inputWitnesses: 0: inputBase: 0 outputBase: 0 instructions: - "inputs[inputBase + 0]" - "outputs[outputBase + 0]" signature: "0x..." 1: inputBase: 1 outputBase: 1 instructions: - "inputs[inputBase + 0]" - "outputs[outputBase + 0]" signature: "0x..." 2: inputBase: 2 # The adversary sets this to 1 to reuse the output in Transaction 2 outputBase: 1 instructions: - "inputs[inputBase + 0]" - "outputs[outputBase + 0]" signature: "0x..." 
In conclusion, a cells-grouping mechanism that prevents tampering by adversaries is crucial for merging open transactions. Implementing the mechanism in CKB is much simpler compared to using contracts, but it requires careful design to minimize overhead and ensure compatibility.
There is a concept called script group, which is similar to cell grouping. It involves grouping cells based on scripts and arguments and then running the script once for each group. However cells in an open transaction often do not align with a script group. What’s even worse is that there are often overlaps between open transactions and script groups. If a lock script fails to iterate through all the cells in the group or limit the number of cells, it becomes vulnerable to an attack where adversaries can append input cells that belong to the same script group. These additional inputs get unlocked along with existing ones without requiring a new signature from the user. This clearly violates the intentions of the user. Listing 5 depicts an OTX Lock implementation that is vulnerable, as it only verifies the first input witness in the group. Listing 6 demonstrates an attack that exploits this vulnerability. Pay attention to input 2 of the merged transaction. Specifying the number of input cells when signing can solve this issue, but would prevent merging open transactions from the same user into a single CKB transaction. This is a common scenario in merchant apps where a buyer purchases multiple items in a single transaction. Restricting the number of input cells would result in a complex design where goods belonging to the same seller cannot be combined in the same transaction.
Listing 5: A vulnerable OTX Lock which verifies only the first input witness in the group
function main() { const { instructions, signature } = getInputWitnessInGroup(0); const digest = generateDigest(instructions); verifySignature(digest, getPubkeyFromArgs(), signature); } 
Listing 6: An attack that appends cells in the same script group
Open Transaction 1: # Alice wants to get 20 SUDT X by paying 200 CKB inputs: 0: CKB 200 owned by Alice outputs: 0: SUDT X 20 owned by Alice inputWitnesses: 0: # Initially, both base values are set to 0 inputBase: 0 outputBase: 0 instructions: # The first input starting from inputBase - "inputs[inputBase + 0]" # The first output starting from outputBase - "outputs[outputBase + 0]" signature: "0x..." Open Transaction 2: # Bob wants to get 200 CKB by paying 20 SUDT X inputs: 0: SUDT X 20 owned by Bob outputs: 0: CKB 200 owned by Bob inputWitnesses: 0: # Initially, both base values are set to 0 inputBase: 0 outputBase: 0 instructions: # The first input starting from inputBase - "inputs[inputBase + 0]" # The first output starting from outputBase - "outputs[outputBase + 0]" signature: "0x..." Open Transaction 1 + 2: # Make proposals from Alice and Bob inputs: 0: CKB 200 owned by Alice 1: SUDT X 20 owned by Bob # Adversaries append the cell which is in the same script group as input 0 2: CKB 1000 owned by Alice outputs: 0: SUDT X 20 owned by Alice 1: CKB 200 owned by Bob inputWitnesses: 0: # Transaction 1 comes first, so the base values are zeros. inputBase: 0 outputBase: 0 instructions: # The first input starting from inputBase - "inputs[inputBase + 0]" # The first output starting from outputBase - "outputs[outputBase + 0]" signature: "0x..." 1: # Shift the base values by one to reference the correct cells. inputBase: 1 outputBase: 1 instructions: # The first input starting from inputBase - "inputs[inputBase + 0]" # The first output starting from outputBase - "outputs[outputBase + 0]" signature: "0x..." 
Another drawback that was mentioned earlier is that the Instruction List Lock is not powerful enough. For instance, it is not possible to replicate the logic of Anyone-Can-Pay (ACP) Lock using an instruction list, because there are no commands available for performing arithmetic calculations and comparisons. We have been cautious about adding new instructions, due to the possibility of requiring endless additional instructions. The sustainable approach would be through script composition, where dApps expose verified assertions for signing. There are two threads 4 in the CKB GitHub repository relevant to this topic.

4.2 Sighash Lock

To simplify the design of the instructions list, why not limit users to a set of established patterns for signing transactions? This is where the concept of OTX Sighash Lock comes into play.
The OTX Sighash Lock design is modeled on the Bitcoin Sighash pattern. If you want to learn more about the Bitcoin Sighash, check out the tutorial from saylor.org: CS120: Bitcoin for Developers I, Elliptic Curve Signatures. For those interested in implementing OTX Sighash Lock, refer to the following Github repository: EthanYuan/otx-sighash-lock.
Although the Sighash pattern provides only six options, it does not simplify the issue. Rather, the complexity is shifted elsewhere. Sighash pattern requires an elaborate transaction layout design, as seen in the Atomic Swap demo, where users need to prepare a dedicated cell for the open transaction instead of using existing ones. For a reference, see the atomic swap documentation 2. By contrast, the older Instructions List Lock design gave users more freedom to choose from existing cells.

5 OTX Framework

OTX Framework combines OTX Format, OTX Streaming Pattern, and OTX Lock together to provide an easy-to-use instance for developers.
The central component of the framework is the implementation of the OTX Streaming Pattern, referred to as the open transaction pool. A Rust Proof of Concept (PoC) is available on GitHub at EthanYuan/open-transaction-pool 1.
Using the open transaction pool as a foundation, we can develop various agents, such as Atomic Swap and Signer. In our vision, there will be a public marketplace where agents can be shared. Developers can easily incorporate agents from this marketplace and construct complex transactions through agent composition. Certain agents, such as the one designed to collect live cells based on a specific criterion, can significantly facilitate the transaction construction process.
The SDK acts as the interface of the framework for developers. We already have code snippets to work with Open Transactions in Rust and Javascript 2, but these are far from an SDK for the framework.

6 Future Works

6.1 New Directions of OTX Lock

Both the Instruction List Lock and Sighash Lock require a redesign of the Cell Grouping mechanism. In the short term, it is necessary to integrate a solution into the OTX Lock. In the long term, further research is needed to determine how to support cell grouping in the CKB transaction structure.
There are also other mechanisms of partial signing, such as signing the user intent rather than specific fields. An intent is a message indicating the operation that the user wants to perform, such as the example in Listing 7.
Listing 7: An intent to swap 10 CKB with 50 SUDT
{ "app": "0x...", "nonce": 1, "command": "swap", "from": { "assets": "ckb", "balance": "10", }, "to": { "assets": "sudt", "id": "0x...", "balance": "50", } } 
The dApp checks the intent has been successfully carried out. The transaction properties that do not affect the intent execution are free to change. For example, the intent above does not care which inputs have been collected to provide the 10 CKB balance; it only needs to check whether the user’s CKB balance has decreased by exactly 10 CKB.
The dApp verifies the successful execution of intent. The transaction properties that do not affect execution are free to alter. For instance, the specific inputs used to attain the 10 CKB balance do not matter - only the user’s CKB balance being reduced by precisely 10 CKB matters.
To prevent repay attacks, it’s crucial to implement a mechanism to make the intent unique, such as the nonce field in the example.
Intent functions as the instruction for constructing a transaction as well. This means that dApps can use the same logic for both constructing and verifying transactions. The verification code rebuilds the transaction using the intent and checks that it matches the target transaction being verified.

6.2 Others

  • A public P2P network to exchange open transactions is crucial for the adoption of dApps. We could incorporate an opt-in protocol in CKB to relay open transactions.
  • Create a uniform interface for transaction construction across SDKs, for both CKB and open transactions. Developers can experience a seamless transition with a turn to the open transactions solution.
  • Improve tools for better developer experience.
    • We already have code snippets to work with Open Transactions in Rust and Javascript 2. We could improve the JavaScript SDK further. Besides working with the OTX Format, the SDK must hide the complexity of the OTX Lock and support a mechanism to seamlessly integrate the features provided by agents.
    • We have a Rust PoC for the Streaming Pattern available on GitHub at EthanYuan/open-transaction-pool 1. We could implement the Streaming Pattern and all agents in JavaScript.

We're excited to see the potential of Open Transactions unfold and how they can revolutionize the way people interact with the CKB network and its dApps. Keep an eye out for more updates and developments from Nervos!

https://preview.redd.it/haovtlocl0pb1.png?width=1200&format=png&auto=webp&s=65645b3b5480228c4205a4650d3b20e14707fa37
submitted by -nervos- to NervosNetwork [link] [comments]


2023.08.22 17:51 Hess20 Crown Zenith Was Fun

This was arguably one of my favorite sets ever since I started collecting.
submitted by Hess20 to pokemoncards [link] [comments]


2023.07.18 11:39 Mindless-Hyena1320 PXE not working over SDA

Hi All
I m working on setting up a PXE deployment via SCCM . We are using a DNAC managed SDA network where I have configured IP helper on the SVI the endpoints are connected to . This is the configuration on the Fabric Edge node
SDA-EDGE-POC-1#sh run interface vlan 1025 Building configuration...
Current configuration : 397 bytes ! interface Vlan1025 description Configured from Cisco DNA-Center mac-address 0000.xxx.f65d vrf forwarding Corporate_VN_POC ip address 10.223.7.1 255.255.255.0 ip helper-address 172.28.251.10 <------------ DHCP Server ( Cisco 3650 switch ) ip helper-address 172.28.86.174 <------------ SCCM Server ip helper-address 172.28.86.175 <------------ SCCM Server no ip redirects ip route-cache same-interface no lisp mobility liveness test lisp mobility 10_223_7_0-Corporate_VN_POC-IPV4 end
Although the config appears to be fine , I m unable to get it working - stuck on the "start pxe over ipv4" screen . As per the attached pcap it look like it doesn't even go past the DHCP Discovery process . However I can also successfully obtain an IP address from the expected DHCP pool while connecting a working device to the same interface . I can then assume routing to the DHCP server is not an issue here .
I have not used any DHCP Options as the the IP helper method appears to be the recommendation when the DHCP/SCCM server sit on a different subnet .
I m also convinced that the SCCM server is properly configured as the deployment is working fine on the traditional network .
What I m missing here ?
Thanks in advance
submitted by Mindless-Hyena1320 to SCCM [link] [comments]


2023.07.17 18:13 Mindless-Hyena1320 SCCM in SDA

Hi All
I m working on setting up a PXE environment for SCCM device builds . We are using a DNAC managed SDA network where I have configured IP helpers on the SVI the endpoints are connected to . This is the configuration on the Fabric Edge node
SDA-EDGE-POC-1#sh run interface vlan 1025 Building configuration...
Current configuration : 397 bytes ! interface Vlan1025 description Configured from Cisco DNA-Center mac-address 0000.xxx.f65d vrf forwarding Corporate_VN_POC ip address 10.223.7.1 255.255.255.0 ip helper-address 172.28.251.10 <------------ DHCP Server ip helper-address 172.28.86.174 <------------ SCCM Server ip helper-address 172.28.86.175 <------------ SCCM Server no ip redirects ip route-cache same-interface no lisp mobility liveness test lisp mobility 10_223_7_0-Corporate_VN_POC-IPV4 end
However, I m unable to obtain an IP address from the DHCP server let alone getting the client to PXE boot ( stuck on the "start pxe over ipv4 screen ). As per the attached pcap it looks like it doesn't even go past the DHCP Discovery process . However I can also successfully obtain an IP address from the expected DHCP pool while connecting the device to the same interface . I can rule out a routing issue at his point .
I have not used any DHCP Options as the the IP helper method appears to be the recommendation when the DHCP/SCCM server sit on a different subnet .
This deployment method works fine on the traditional network so I can only assume that all is fine on the SCCM front .
https://preview.redd.it/9lg2apylujcb1.png?width=1568&format=png&auto=webp&s=a6f6e137e48247832a6c106e737cd45fc309231e
Not sure what am I missing here ?
Thanks in advance
submitted by Mindless-Hyena1320 to SCCM [link] [comments]


2023.06.20 12:50 thili17 Citrix ADC with Azure AD SAML

Hi guys
I have configured Citrix Multisession Host with LDAP authentification. This all worked. Now I wanted to implement MFA with Azure. So I used this guide https://docs.citrix.com/en-us/tech-zone/learn/poc-guides/cvad-azuread-federation.html
I have setup all of it without FAS. To my understanding, FAS is only need for SSO. So I skiped it for now.When i Connect to my Workspace URL I get redirected to Azure login with MFA. After that I get "cannot complete your request " from Storefront.In the Eventviewer of the Storefront Server I get:
CitrixAGBasic single sign-on failed because the credentials could not be verified for the following reason: Failed. The credentials provided were: User: xxx@xx.xx Domain:xx.xx 
and
A CitrixAGBasic login request failed. Citrix.DeliveryServicesClients.Authentication.AG.AGAuthenticatorException, Citrix.DeliveryServicesClients.Authentication, Version=3.23.0.0, Culture=neutral, PublicKeyToken=null Authenticate encountered an exception. at Citrix.DeliveryServicesClients.Authentication.AG.AGAuthenticator.Authenticate(HttpRequestBase clientRequest, Boolean& passwordSupplied) at Citrix.Web.AuthControllers.Controllers.GatewayAuthController.Login() System.Net.WebException, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 The remote server returned an error: (403) Forbidden. Url: https://127.0.0.1/Citrix/WorkplaceAuth/CitrixAGBasic/Authenticate ExceptionStatus: ProtocolError ResponseStatus: Forbidden at System.Net.HttpWebRequest.GetResponse() at Citrix.DeliveryServicesClients.Utilities.HttpHelpers.ReceiveResponse(HttpWebRequest req) at Citrix.DeliveryServicesClients.Authentication.TokenIssuingClient.RequestToken(String url, RequestToken requestToken, String primaryToken, String languages, CookieContainer cookieContainer, IEnumerable`1 acceptedResponseTypes, IDictionary`2 additionalHeaders) at Citrix.DeliveryServicesClients.Authentication.AG.AGAuthenticator.Authenticate(HttpRequestBase clientRequest, Boolean& passwordSupplied) 
and #Edit
An authentication attempt was made for user 'xxx.xx\xxxx' with a realm context of '' and the result was: Failed (Windows error code: -1073741715). 
On NetScaler Session Police - SSO is disabled
On Storefront CallBack URL is configured and is accessable from storfront server
on Storefront Server Trusted Domain is to any
even without FAS I should get to see my Citrix Apps right?
#edit
Solution: Got it working now with this link
https://support.citrix.com/article/CTX289511/cannot-complete-your-request-error-only-occurs-to-certain-users-connecting-from-adc-with-azure-mfa-over-to-storefront
submitted by thili17 to Citrix [link] [comments]


2023.05.12 18:28 Fault23 How should I sort these mods?

How should I sort these mods? submitted by Fault23 to Bannerlord [link] [comments]


2023.04.26 07:03 JobsinQ8 Latest KOC Jobs, Multiple Job Vacancies in Kuwait Oil Company

Latest KOC Jobs, Multiple Job Vacancies in Kuwait Oil Company

Gulf Spic (Long Term) Urgent Requirement for Kuwait

Job Description

Gulf Spic Urgent Requirement for Kuwait – Gulf Spic (Long Term). Direct Client Interview at Visakhapatnam & Chennai This Month-End Koc Project – Manpower Requirement.

Job Position / Qualification / Experience / Salary

1.Electrical Engineer(Testing)
Qualification: B.E Degree
Experience: Power Substation as Testing and Commissioning or Protection Engineers/Production and Control Relays of Substations(Distance, Differential, and Simple Protection Relays /Electrical Substations Production and Control Schematic /Power Equipment Test (Power Transformer, Powercable, Ct, Vt, Cb)
Salary (KD): 350 to 550
2. Fabricator
Qualification: ITI / High School Level
Experience: Shall Be Capable of Reading Isometric Drawings.Shall Have Experience in the Fabrication and Erection of Cs/Ss Piping. Shall Have Experience in the Fabrication and Erection of Pipe Supports. Shall Have Experience in Oil & Gas Piping Construction.
Salary (KD): 110-150
3. Welder (Tig & Arc) – Cs
Qualification: ITI / High School Level
Experience: Shall Have Experience in Cs Pipe Welding in 6g Position. Shall Have Experience in Tig Welding for Root and Full Welding. Shall Have Experience in Arc Welding for Cap and Fill up. Shall Have Experience in Repair Removal and Re-Welding.
Salary (KD): 120 to 160
4. Structural Fabricator
Qualification: ITI
Experience: Shall Have Experience in the Fabrication of Structural Steels, Shall Have Experience in Erecting Structures & Able to Do the Job as per Drawing Independently.
Salary (KD): 100-120
5.Grinder
Qualification: High School Level
Experience: Shall Have Experience in Cutting and Bevel Preparation in Cs, as & Ss Pipes. Shall Be Capable of Handling Various Types of Grinding Machines. Preferably with Shutdown Experience. Shall Be Capable of Cutting and Grinding of Structural Steel. Shall Have Experience in Cleaning of Welds.
Salary (KD): 75-90
6.Rigger
Qualification: ITI / High School Level
Experience: Shall Be Conversant with All Rigging Signals. Shall Have Knowledge in All Rigging Tools. Shall Have Knowledge in Swl of Crane.Shall Have Knowledge in the Weight and Cog of the Lift.
Salary (KD): 75-90
Latest KOC Jobs, Multiple Job Vacancies in Kuwait Oil Company
7.Pipe Fitter
Qualification: ITI / High School Level
Experience: Shall Have Experience in the Fabrication & Erection of Cs/Ss Piping, Pipe support. Shall Have Experience in Oil & Gas/ Petrochemical Piping Construction Projects.
Salary (KD): 75-90
8. General Fitter
Qualification: ITI / High School Level
Experience: Shall Have Experience in Fabrication & Erection of Cs/Ss Piping, Pipe support. Knowledge about Iso, Power Tool Handling & Spanner Sizes. Shall Have Experience in Oil & Gas/ Petrochemical Piping Construction Projects.
Salary (KD): 75-90
9. Helper
Qualification: High School Level
Experience: Knowledge in Tools & Tackles. Shall Have Good Communication Skills. Able to Adopt Safe Work Practices.
Salary (KD): 70
All Should Have a Minimum of 5 Years of Experience in the Oil & Gas field.
Free Food & Accommodation, 8 Hrs Duty + Ot
Alghanim Jobs in Kuwait, Call Center Agent, Purchase Officer
KOC Jobs, Mechanical, Environmental Specialist, Spray Painter / Sand Blaster, QA / QC Vacancies
Alghanim Jobs in Kuwait, Call Center Agent, Purchase Officer
📷
KOC Jobs Gulf Spic
Kuwait Alghanim Jobs, Accountant, Administrative Assistant, Delivery Advisor
Indians in Kuwait Jobs, HR Vacancies, Planning, General Manager
submitted by JobsinQ8 to u/JobsinQ8 [link] [comments]


2023.04.26 07:01 JobsinQ8 Latest KOC Jobs, Multiple Job Vacancies in Kuwait Oil Company

KUWAIT OIL COMPANY (KOC) HIRING

KUWAIT OIL COMPANYKuwait City

Latest KOC Jobs, Multiple Job Vacancies in Kuwait Oil Company

Required for KUWAIT OIL COMPANY (KOC) only local Hiring from Kuwait.First time contract will be for 5 months, if your work is good they will renew your contract.1) Steel Fixer 10 Nos salary 8 hours KD:200/2) Carpenter 10 Nos Salary 8 hours KD:200/3) Helper 25 Nos Salary 8 hours KD:105/4) Mason 10 Nos Salary 8 hours KD:200/5) Cleaning Labor’s 100 Nos Salary 8 hours KD:110/6) GRE pipe Fabricator 15 Nos Salary 8 hours KD:210/7) GRE pipe Fitter Nos 10 salary 8 hours KD: 210/Additional Benefits:Accommodation,Transportation,Uniforms.READY TO JOIN IMMEDIATELY.Contact 00965-98583520
iik Jobs, Accounts, E-Commerce, Marketing, Sales, Call Center

Kuwait Alghanim Jobs, Accountant, Administrative Assistant, Delivery Advisor

KOC Maintenance Support

Experience : 3 – 8 Years
Job Location : Al KuwaitKuwait
Education : Any Graduation
Nationality : Any Nationality
Gender : Not Mentioned
Vacancy : 1 Vacancy

Job Description

Roles & Responsibilities

Exp in Oils & gas, Refinery Senior Instrumentation Technician – 3 yrs of exp Salary- 360 KD 2. Instrumentation Technician -with 3 yrs Salary- 275 KD 4. Instrument Fitter -SSC ITI with 5 yrs of exp in Salary- 165 KD FFA Overtime Perks and benefits FREE FOOD ACCOMODATION TRANSPORT OVERTIME

Company Industry

Department / Functional Area

CLICK HERE TO APPLY

KOC Jobs, Mechanical, Environmental Specialist, Spray Painter / Sand Blaster, QA / QC Vacancies
Opportunity For KOC Maintenance Support – Kuwait

Hiring for KOC KUWAIT3 – 8 years6-13 Lacs P.A.Kuwait

Job description Exp in Oils & gas, Refinery
Senior Instrumentation Technician – 3 yrs of exp Salary- 360 KD
  1. Instrumentation Technician -with 3 yrs Salary- 275 KD
  2. Instrument Fitter -SSC + ITI with 5 yrs of exp in Salary- 165 KD
FFA + Overtime
Perks and benefits
FREE FOOD + ACCOMODATION + TRANSPORT+ OVERTIME Role: Other Industry Type: Oil & Gas Department: Other Employment Type: Full Time, Permanent Role Category: Other Education UG: Diploma in Electrical, Electronics/Telecommunication, Engineering, Any Graduate, B.Tech/B.E. in Electrical Key Skills Skills highlighted with ‘‘ are preferred keyskills
Alghanim Jobs in Kuwait, Call Center Agent, Purchase Officer
Indians in Kuwait Jobs, HR Vacancies, Planning, General Manager
submitted by JobsinQ8 to u/JobsinQ8 [link] [comments]


2023.04.09 22:09 Miscoms_aplenty Just another average baby delivery on the rim

submitted by Miscoms_aplenty to RimWorld [link] [comments]


2023.03.30 11:16 GobySec_ Goby Exploits Memory Shellcode Technology Details [Technical Edition]

Goby Exploits Memory Shellcode Technology Details [Technical Edition]

01 Introduction

This is the third article in Goby's community memory shellcode series. The first article, "Ghost King in Shell - JAVAWEB Memory Shellcode [Cognitive]" introduced the history and classification of JavaWeb memory shellcode technology, and introduced common JavaWeb memory shellcode technology from a cognitive perspective; the second article, "Using Goby to Inject Memory Shellcode with Deserialization Vulnerabilities [Exploit]" mainly introduced how to combine memory shellcode with vulnerabilities to enable Goby to inject memory shellcode with one-click through deserialization vulnerabilities, and integrate with Goby's PoC and extension system. Users only need to click a few buttons to complete the injection of vulnerabilities with one-click.
This article mainly introduces some technical details used in the process of using Goby to inject memory shellcode with one-click through deserialization vulnerabilities, based on the first two articles. Of course, users do not need to know these details during the injection process using Goby PoC, but understanding and learning the technology helps to grasp some common ideas.
This article is mainly divided into three parts: "Exploiting Pre-Vulnerabilities", "Generating Memory Shellcode", and "Using Memory Shellcode", sharing some technical points and details or pitfalls related to Goby, and welcome everyone to discuss together.
Here is a brief demonstration of the use of some related technologies. The following video demonstrates the use of Goby to inject a Filter-type memory shellcode with one-click through deserialization, and carry false information through a custom URLClassLoader to avoid security personnel's investigation. The purpose is achieved by clearing the log without a trace.

https://reddit.com/link/126hgcu/video/khixam196uqa1/player

> The one-click Memory shellcode injection feature of Goby can be used for free in the community version.
> [Get version](https://gobies.org)

02 Pre-vulnerability Exploitation

First, let's talk about the pre-vulnerability exploitation. As mentioned in previous articles, from the perspective of practical vulnerability exploitation and weaponized development, we tend to inject a memory shellcode with one click during the vulnerability exploitation process, rather than obtaining a JSP webshell first and then converting it into a memory shellcode. Therefore, here we need to consider how to directly execute the implantation action of the memory shellcode during the vulnerability exploitation process.
2.1 Dynamic Loading and Class Initialization
In most current vulnerability exploits, if you want to execute complex malicious attack logic, you usually use a new URLClassLoader, the current thread's class loader, or a custom class loader to load and initialize malicious class bytecode. In different exploitation scenarios, you can choose different class loaders according to the situation, but sometimes you cannot choose and need to adjust according to the situation:
  • Use a new URLClassLoader. If not specified, the system class loader is used as the parent ClassLoader by default, which is the AppClassLoader.
  • Use the context class loader of the current thread, generally obtained using `Thread.currentThread().getContextClassLoader()`.
  • Create a custom class loader, generally by defining a method for loading classes through bytecode, which is like encapsulating a public `defineClass` method.
  • In some exploitation scenarios, it is not possible to customize ClassLoader, such as using BCEL ClassLoader for exploitation.
When using different ClassLoaders to load malicious classes in different situations, different problems will be faced:
  • When using the context class loader of the current thread or cannot control the class loader, there may be a situation where the same class name cannot be loaded twice and additional processing is required.
  • When using special ClassLoaders such as BCEL ClassLoader, due to the problem of loading across classes, some classes and interfaces need to be accessed and called through pure reflection, which requires a relatively large amount of physical work.
When dynamically loading classes during vulnerability exploitation, it is generally necessary to manually break the parent delegation mechanism and inject the malicious class into the system. Class initialization is closely related to class loading. Usually, in malicious code, some initialization malicious logic will be written, which can generally be written in the static statement block or public parameterless constructor:
  • The static statement block is executed once when the class is loaded and only executed once during its lifecycle.
  • The public parameterless constructor is called during class initialization, and it is called each time a new class instance is created.
Therefore, you can choose a class loader according to the specific situation and place the malicious logic in an appropriate location.
2.2 Echo and Memory Shellcode
After the Goby deserialization implantation extension went online, I enhanced and corrected the exploitation of deserialization vulnerabilities in the vulnerability library. Friends familiar with Goby may know that Goby's detection of vulnerability exploitation is divided into PoC and EXP. When facing native Java deserialization, the original detection and exploitation procedures were:
  • PoC uses URLDNS combined with Goby's built-in dnslog platform GodServer for vulnerability detection.
  • EXP uses the bytecode of YSOSERIAL, dynamically replaces the hex value of the command execution part, and writes the command execution.
The above logic is used to detect vulnerabilities, which is the way most people detect deserialization vulnerabilities. Technically, there is no problem with this detection method, but in practice, the following problems may be encountered:
  1. Due to unstable network or DNSLOG platform, it may not be possible to receive DNSLOG or DNSLOG may have a long delay.
  2. Vulnerability exploitation only performs command execution, and it is often impossible to determine whether the vulnerability exploitation is successful or what the result of the vulnerability execution is.
  3. In a scenario where there is no outbound network connectivity, it is not possible to perform a reverse shell or execute more advanced actions. In terms of practicality for real-world scenarios, its usability is quite poor.
Therefore, to address the usability issues in practical scenarios, all subsequent updates to the vulnerability exploitation PoCs have adopted echo-based techniques to return the command execution results in the response. As for the exploits (EXP), they are directly injected into the memory as a shellcode, saving a lot of intermediate processes.
https://preview.redd.it/om35mjpa8uqa1.png?width=3526&format=png&auto=webp&s=50d20516faf1de88f808f0fd6d293214a179cd96
2.3 In constructing an echo
It involves locating the critical request, searching memory, and other technical points. And to inject a memory shellcode, it is necessary to prepare a highly available memory shellcode for the vulnerability environment. With these technical supports, the problems mentioned above can be solved without the need for third-party dnslog, OOB, etc., directly conducting high-precision detection and utilization of vulnerabilities.
There are many types of vulnerabilities, and there are also many types that can provide arbitrary code execution, such as Java native deserialization vulnerabilities, Fastjson/Jackson/XStream deserialization vulnerabilities, SpEL/Ognl expression injection, etc. However, many situations require additional utilization methods to complete the vulnerability utilization process. Taking advantage of the native deserialization as an example, some modifications of the utilization chain are listed to directly inject memory shellcode.
  • The Transformer[] utilization chain is the most classic utilization chain, generally chain a Runtime.getRuntime().exec() or new ProcessBuilder().start() to execute commands. If you want to execute additional functions, you can also use new URLClassLoader().loadClass() to perform remote class loading. Without going online, you can write JS to inject malicious classes by using com.sun.org.apache.bcel.internal.util.ClassLoader.loadClass(), org.mozilla.javascript.DefiningClassLoader().defineClass(), new ScriptEngineManager().getEngineByName("JavaScript").eval() methods, and one-click utilization of memory shellcode.
https://preview.redd.it/nqcjxw0s8uqa1.png?width=2948&format=png&auto=webp&s=b39a2f0e380f3bdb64bbd2170d01c25b57882f12
  • BeanShell chain, although Bsh supports all Java syntax and many loose writing methods, is ultimately a script language parser. If these writing methods are used or arrays are used in the script, related implementation classes' methods may be called during the deserialization process, and Interpreter objects may be used, which could result in a NullPointerException. Therefore, it is still possible to use ScriptEngineManager to parse JS and execute the memory shellcode.
https://preview.redd.it/6q0igqey8uqa1.png?width=2948&format=png&auto=webp&s=8301ebe53d4212e9c5f9a7b83be5ac15df10a1fa
  • In the original version, `C3P0` chain used PoolBackedDataSource for remote class loading to exploit vulnerabilities. However, C3P0 can also use Tomcat's getObjectInstance method to call the eval method of ELProcessor for expression injection. This allows injection of memory shellcode through EL expressions, and can also be achieved through other methods such as Groovy, SnakeYaml, etc.
https://preview.redd.it/983m1ie29uqa1.png?width=2200&format=png&auto=webp&s=a940d51c4f83e25f1aa5ac09dcee303a426d9967
Here are several techniques that link the deserialization exploit chain to memory shell. There are also many other exploit situations that can be “saved by the bell”. Considering the length of the article, further elaboration on these techniques will not be discussed here.

03 Generating In-Memory Shellcode

After discussing the direction of vulnerability exploitation, we will now discuss some technical details involved in generating in-memory shellcode.
3.1 Dynamic Code Generation Techniques
Considering different vulnerability exploitation points, different exploitation scenarios and requirements, and different personnel's habits and preferences, the content of in-memory shellcode cannot be fixed in practical environments and needs to be dynamically generated based on various configurations.
Therefore, we use javassist to dynamically generate and write malicious bytecode of in-memory shellcode. In the process of preparing in-memory shellcode, we will face some requirements:
  • The exploitation method of the vulnerability is fixed, such as command execution, commonly used tools such as Behinder, Godzilla, or self-developed webshell interaction tools, and most of them are reusable custom vulnerability exploitation methods;
  • In-memory shellcode can customize URL and password, in addition to the common AES key, additional authentication mechanisms can also be set;
  • Any in-memory shellcode technique can be freely selected, and any exploitation method can be used to quickly generate dynamically.
Therefore, I finally abstract the key logic into a same method, whose first two parameters are Request and Response objects. No matter it is command execution, Behinder, Godzilla, etc., their own logic can be injected into this method. For different middleware, due to different encapsulation and implementation, extra judgment and processing are performed before entering the key logic to make the final processing logic consistent.
For example, below is the core logic of Behinder:
https://preview.redd.it/wkwgl98c9uqa1.png?width=2550&format=png&auto=webp&s=8628569046170ba7c82fb2b32312dc4de63083fe
Here is the core logic of Godzilla:
https://preview.redd.it/ee6idwph9uqa1.png?width=2656&format=png&auto=webp&s=2422c46fe77be58d980a2ecc9b6b47ef6c84ed88
Here is the logic of command execution:
https://preview.redd.it/pxyqf7gk9uqa1.png?width=2632&format=png&auto=webp&s=be1eb3f2c94be2d7ea2c11cf152d66c47637b325
After determining the parameters to be used, bytecode can be assembled based on different Memory shellcode types and exploitation methods, with critical methods inserted into malicious classes in sequence, ultimately forming a complete memory shell.
3.2 ClassLoader Issues
As mentioned before, when dynamically loading and initializing a malicious class, it is important to consider the ClassLoader selection. This remains true after the Memory shellcode is loaded, as ClassLoader issues still need to be carefully considered.
In the first case, as the Memory shellcode file itself, the instance should generally be placed in a key position for processing routes, such as in a Map member variable of the global context. In this case, it is necessary to pass a reference to an instance, and register an instance of the shell's own object in a critical position within the system during malicious class initialization.
However, there are exceptions, such as in the Struts2 framework, where the key position stores the class name rather than the class instance. When processing routes, if a mapping is found, the class instance is dynamically created and its execute method is called for processing. Therefore, when injecting a malicious memory shell, the class name and route mapping should not be the only considerations, as the memory shell's own class should also be loaded into the critical context, allowing it to find our injected malicious class during class instantiation.
In terms of exploitation methods, in addition to command execution and feedback, the key logic of a Memory shellcode is still achieved through the transmission of class bytecode. In addition to the previously mentioned URLClassLoader, custom ClassLoader, and thread context ClassLoader, there are still many tricks that can be used, such as:
  • Registering a class using java.lang.reflect.Proxy#defineClass0()
  • Registering a class directly in the JVM using sun.misc.Unsafe#defineAnonymousClass()
  • Using some wrapper classes that may call some uncommon ClassLoaders, such as jdk.nashorn.internal.runtime.ScriptLoader#installClass() and com.sun.naming.internal.VersionHelper#loadClass()
In addition to the above, JavaSec group members have shared some other methods:
  • jxxload_help.PathVFSJavaLoader#loadClassFromBytes
  • org.python.core.BytecodeLoader1#loadClassFromBytes
  • sun.org.mozilla.javascript.internal.DefiningClassLoader#defineClass
  • java.security.SecureClassLoader#defineClass
  • org.mozilla.classfile.DefiningClassLoader#defineClass
3.3 Exploitation Methods
For Memory shellcode exploitation methods, the three most common types are command execution and feedback, and the Behinder and Godzilla shells, each with their own advantages:
  • Command execution and feedback: Simple command execution with feedback visible.
  • Behinder and Godzilla shells: Both provide advanced features that can be selected as needed.
In addition to the typical web shell exploitation methods, the latest trend is the infiltration of tunneling shells. After obtaining a web shell, attackers typically use this machine as a jump point for further intranet penetration. This requires a clear tunneling flow.
Previously, the common approach was to upload a traffic forwarding tool such as FRP to the target server and use this tool for traffic forwarding. If the network layer is not fully port mapped, this can also involve port reuse and other techniques.
However, with a memory shell, a tunneling shell can be easily created with one click, and the appropriate client can be used for direct connection, achieving a true "one-stop" solution.
https://preview.redd.it/yees98yz9uqa1.png?width=1432&format=png&auto=webp&s=628b9901b2d139d5320139152274062f491ed44a
3.4 Agent No File
The AgentNoFile technology implemented by Master rebeyond provides us with the ability to directly call the JVMTI interface without the need to provide Agent.jar or Agent.so. With this capability, we can inject Agent-type memory shellcode without file landing.
On Linux platform, shellcode is executed by modifying /proc/self/mem. On Windows platform, shellcode is implanted into the process with PID -1 through Java, so as to construct JPLISAgent object and obtain all capabilities of calling Java Agent.
In the BeichenDream's Kcon2021Code project, similar code with this technology idea is also shared.
In the implementation of memory shellcode, a Javassist dependent jar is injected into the target environment without landing, and the target critical class is dynamically modified to inject malicious logic, which realizes the dynamic modification of Agent shellcode. For example, the following figure shows the logic of hooking doFilter method of ApplicationFilterChain, injecting Behinder memory shellcode, and dumping class from the server.
https://preview.redd.it/7l4172y1auqa1.png?width=3468&format=png&auto=webp&s=3677d0f849286b6622da39e2ee7267d904d9a2a8

04 Usage of Memory Shellcode

The problem of exploiting vulnerabilities to directly inject memory shellcodes and the generation and utilization methods of memory shellcodes have been resolved. The next problem to be addressed is the issues encountered during the use of memory shellcodes.
As mentioned in previous articles, the main purpose of the Memory shellcode technology is to combat the problem of security protection devices detecting and alarming against landed files. Therefore, since its inception, Memory shellcode technology has faced and shouldered the responsibility and mission of confronting various protection capabilities.
4.1 Bypassing Security Protections
The first challenge is **bypassing traffic-side devices**. This is actually the traffic characteristics of the communication protocol between the WebShell management side and the memory shell. Since AES encryption and decryption are commonly used, with a small number of cases using DES encryption and decryption, and there are regular behaviors, such as sending several packets when connecting to the WebShell, there are some means to detect webshell connections based on these two factors. Therefore, whether it is the Behinder or Godzilla, if they have not been customized, their basic traffic characteristics will be detected.
However, basically everyone has the habit of customization, so the traffic layer characteristics are still not easy to be uniformly protected, and the latest Behinder client already supports custom communication protocol encryption and decryption programs. This allows attackers to disguise Behinder traffic as similar to business data traffic, such as Restful API return data, or similar base64 image resource return data.
The second challenge is **bypassing host-level protections**. At the host level, there may be some host-level defenses such as EDR devices, which may monitor Java process calls to system resources. However, most of the time, it is almost impossible for this level of defense to determine whether Java-level operations are sensitive operations.
Finally, there is **bypassing Java-level protections**. At the Java level, there may be some RASP products or custom security rules defenses. These defenses intercept suspicious behaviors based on stack or behavior, and hook at the position where some sensitive functions are executed.
At this point, we can bypass these defenses through reflection. Whether it is to call deeper code or even native methods through reflection, or to reflectively obtain objects that encapsulate specific methods in the system for execution, the purpose is to disrupt the stack or behavior call chain, making Java-level defense unable to determine whether you are performing malicious operations or system behaviors, thus bypassing the detection logic.
For example, bypassing command execution defense through reflection to call native methods:
https://preview.redd.it/s2akxi85auqa1.jpg?width=2320&format=pjpg&auto=webp&s=1a84dae44723fba626af08b2c509a783df28be41
Or use messy reflection to make the call chain difficult to trace:
https://preview.redd.it/sdx9g37gauqa1.png?width=2588&format=png&auto=webp&s=b92d429a2196af1b0647347b431bfd6899c77da3
Creating malicious classes using APIs like unsafe can also bypass certain security defenses:
https://preview.redd.it/5wfyjklhauqa1.png?width=2486&format=png&auto=webp&s=d07b6289921110f5511897df95d3c4888f07c786
4.2 Anti-detection
As mentioned in previous memory shellcode articles, many tools have provided detection methods to scan specific locations to check for the presence of memory shellcode. At this time, the check will include some dimension judgments. Similarly, we need to perform certain processing on these dimensions to prevent detection, for example:
  1. Detection of malicious class names and package names: For some defense measures, loading of known malicious package names and class names will be prohibited. Therefore, we use dynamic splicing and generation of malicious class package names to confuse the defense system or administrator.
https://preview.redd.it/3v02n0xnauqa1.png?width=1780&format=png&auto=webp&s=0c8d71a8e5639575edffeea9ef89730417079dfe
  1. Detection of whether files are written to disk from ClassLoader: The detection logic can be bypassed by using a custom ClassLoader to carry false information or loading malicious classes using the system class loader with an empty class loader for the malicious class.
https://preview.redd.it/km3dlaiuauqa1.png?width=3402&format=png&auto=webp&s=8ee567dd3916cc7ffa05af54465fd7e9ff71d49d
  1. Detection of critical positions in the system: Some detection tools can obtain information about critical positions and assist in manual inspection. For example, some tools obtain all Filter-type memory shellcode in the system and display them. At this time, it is possible to evade detection by exploring unconventional memory shellcode. As mentioned in the PPT I shared earlier about JavaWeb memory shellcode, all components that use the chain of responsibility design pattern in the web request processing process can be used as directions for exploring and utilizing memory shellcode. Therefore, it is not difficult to explore a new type of memory shellcode in various web middleware.

https://preview.redd.it/i6k57idwauqa1.png?width=2414&format=png&auto=webp&s=26573c1053879ba3d680b3dc44140da1f410ac09
  1. Many tools offer the ability to dump the class, allowing for troubleshooting by dumping the class bytecode in memory. Therefore, it is possible to modify the cache of relevant information in the InstanceKlass data structure of the Java class in the JVM, such as _cached_class_file, to deceive and hide by making the dumped class not contain dangerous code.
  2. Some RASPs also use redefineClasses to set the critical method content of malicious classes and functions to empty, in order to clear the memory shellcode in the running system. At this point, it is possible to make it fail by modifying the function modifiers, adding member variables, methods, etc. of the malicious class, as redefineClasses does not allow changes in class structure and signatures.
  3. Currently, most of the methods for detecting and defending against memory shellcode are implemented through Java Agent technology. Therefore, preventing new Agent injections is also a key strategy for preventing detection. As mentioned in the first article, blocking the communication between JVM processes by deleting the java pid file and preventing the loading of subsequent ClassFileTransformers can prevent the loading of other Java Agents and prevent detection.

4.3 Disappear Without a Trace
First of all, since memory shellcode have reached the point of not leaving files behind, is there anything else that can be done to hide themselves again? The answer is yes.
That is, clearing the access logs of middleware. When making access requests, middleware records logs, which are usually used as the basis for subsequent reviews and emergency responses. If access logs can be cleared during memory shellcode access, wouldn't that be anonymous browsing?
With the idea in place, the execution is simple, which is to find the component responsible for logging in the middleware and clear it. Taking Tomcat as an example.

https://preview.redd.it/hfr744p2buqa1.png?width=3482&format=png&auto=webp&s=c446370ad9a73d31dd86cc8c23ffeddfbf659606
4.4 Persistence
The final issue is the issue of persistence, which needs to consider whether the injection of memory shellcode can be restored after service restart or even operating system restart:
  • For Java, Java shutdown hook can be used for landing and other operations of memory shellcode. If the target environment is Tomcat, JSP files can be written in the resource directory of Jar package, etc.;
  • If the target environment may be killed by -9, a "daemon process" can be started to monitor the Java process on the server;
  • For operating system restart, critical malicious operations can be registered as timed tasks in advance to achieve persistence.
Since these actions are an extension of memory shellcode technology and may involve tampering and landing of Jar packages and resource files in order to achieve persistence, which is somewhat contrary to the original intention of using memory shellcode, this part will not be discussed further, and we look forward to more elegant ideas.

05 Summary

The above section briefly lists some technical issues and solutions encountered in practical use of memory shellcode technology. After researching and resolving the above techniques, there should be no problem in using memory shellcode quickly in practice.
Although we are discussing JavaWeb memory shellcode technology, it can be seen that the thinking and technology of the countermeasures have already extended beyond the Java layer to the native layer and memory level. This is still a drop in the bucket in practical use. In actual use, due to differences in operating systems, middleware versions, JDK distributions and versions, security restrictions, security protection and other complex situations, there will be various difficulties. Therefore, more research and debugging, and accumulation of ideas can enable efficient and fast use of memory shellcode in practical use.
In the face of memory shellcode technology, it is superficially a technical confrontation, but in fact it is a confrontation between people and people, thinking and thinking. I throw out some ideas here, hoping to inspire more ingenious ideas, and welcome everyone to discuss.

[All articles in the memory shellcode series](https://github.com/gobysec/Memory-Shell)
submitted by GobySec_ to u/GobySec_ [link] [comments]


2023.03.07 22:40 _adam_p Symfony forms and Vue

I'm not exactly sure how to start this topic, but I have been using Symfony for more than a decade, and Vue pretty much since its first appearance, and there is one big issue with using them together.
It is forms, as the title suggests.

Symfony forms are incredibly powerful, and I tend to use them even in an API context. I've heard and seen others do this, so hopefully this is not that odd.
Now, on the frontend side, usually in a vue component I have to create the form in actual HTML, bind it to the appropriate Vue model, and submit it using ajax.

This process is incredibly annoying and tiresome, having to do the same thing over and over again, having to deal with both frontend and server side validation...
Maybe I've just been over cuddled by symfony form themes, but I can't not miss the incredible DX that comes with that component.

So... is the core of the issue a valid concern, or am I just too lazy?
How are you dealing with form in Vue+Symfony (or any SPA basically) ?

Now for the actual idea:
Vue has a couple of form helpers I like, eg : https://vueformulate.com/guide/forms/generating-forms/#schemas
Generating a form based on a JSON schema is the way to go in my opinion.

And we basically already have a schema, all we have to do is serialize the form view, and create a "form theme" in Vue.
I've created a POC, which is capable of rendering a basic form: https://gist.github.com/Padam87/d4d6d5192b0a321cf03a6c7050f400bb
When they announced the Symfony UX initiative, I was hoping that something like this would be on the table for them, but it doesn't seem so, and I couldn't find any community packages for this problem.

Am I alone in this?
Is everyone just using Stimulus and Turbo?
Does the React+Symfony community have a good a solution for this?
submitted by _adam_p to symfony [link] [comments]


http://rodzice.org/