Hellloooo!
Can you believe it's December already? I truly cannot. Time is so weird. Let's kick off the month with a bang!
Was this forwarded to you? You can subscribe here!
Measuring Product Impact Without A/B Testing: How Discord Used the Synthetic Control Method for Voice Messages
This Website is Hosted on Bluesky
I learned React Native as a web developer, and I got everything wrong
Structured Editing and Incremental Parsing
This past Thanksgiving week was full of very welcome family time! I had such a packed week of toddler-wrangling, eating with family, watching the new Wicked movie, and just being more offline than usual.
That being said, I did get back into blogging a bit more, this week! I wrote about:
That last post there is my first in my newest Blogvent series, where I'll (try to) write a blog post every day for December!
The fastest way to build AI apps.
Writer is the full-stack generative AI platform for enterprises. Quickly build and deploy AI apps with Writer AI Studio, a suite of developer tools fully integrated with our LLMs, graph-based RAG, and AI guardrails. Use Writer Framework to build Python AI apps with drag-and-drop UI creation. Our API and SDKs allow you to integrate AI into your existing codebase.
Start building with AI Studio.
Last week, I had you organize a family meal! I fully messed up my own examples for the question and I apologize for that. Blame my sleepy brain writing code at that hour. Good catch to the folks who figured it out and worked around it! Good work smarties Ender, Yosola, Austin, Phillip, Amine, Andreas, Ten, and Eric!
This week's question:
Santa is conducting his daily roll call for the reindeer, but the printer has mistakenly printed all their names backwards. To take attendance properly, he urgently needs a tool to reverse the reindeer names and put them in alphabetical order! Can you help Santa?
Example:
rollCall(["yzneT","ydissaC","enimA"])
["Amine","Cassidy","Tenzy"]
rollCall(["rennuD","nexiV","recnarP","temoC","neztilB","recnaD","diduC","rehsaD","hploduR"])
["Blitzen","Comet","Cupid","Dancer","Dasher","Donner","Prancer","Rudolph","Vixen"]
rollCall(["A","B","C"])
["A","B","C"]
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
This question is brought to you by Advent of TypeScript: a free month-long event running from December 1 to Christmas, featuring daily TypeScript challenges. You'll be able to test your skills, climb the leaderboard (win prizes!), and be part of a community!
‘We Were Wrong’: An Oral History of WIRED’s Original Website
Luminkey LX60 ft. Moth & Flame keycaps
This to That: Because people have a need to glue things to other things
Kurt Vonnegut: ‘We are Dancing Animals…’
Where do young cows eat lunch?
In the calf-eteria!
That's all for now, folks! Have a great week. Be safe, make good choices, and stay cozy!
Special thanks to IceSloth, Ezell, Sebastián, Ben, Kinetic Labs, Faisal, and Marta for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon