2024-12-02 15:59:10
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
2024-11-25 15:48:05
Hey friends!
Happy Thanksgiving week, Americans! I hope you have some fun plans. For everyone else, I hope you also have fun plans, even if they don't involve stuffing your face with good food. Shall we dance?
Was this forwarded to you? You can subscribe here!
Importing a frontend JavaScript library without a build system
No Fuss Light/Dark Modes
The magic of keeping one level of abstraction per function
Moderating Uploads with AI in Astro (video)
I spent the whole week at Microsoft Ignite! It's a giant Microsoft conference that I had never been to before, and it was really interesting. It's more IT-oriented than developer-oriented, which I'm not really used to, and I learned a bunch about what these highly technical people do (who don't often code, what a concept).
I gave a few talks (sadly none were recorded, BUT you can hear my voice during the keynote on the conference homepage at 2:07:36 and some other parts if you really want to, ha), manned the GitHub booth, and had some really fun conversations with attendees and my teammates. It was a good time, but I'm definitely tired and looking forward to a holiday week to rest up!
Volv is a Snapchat-backed social news app that consolidates the most important, viral, and interesting content from around the web into 9-second stories that you can just scroll through like social media. Users call it “TikTok for smart people”, since they use Volv instead of TikTok and Insta to discover quality content that they would’ve never read otherwise. So far, users have read 60 million stories on the Volv app!
Here’s a code you can use to get Volv Premium free for a month: VOLVRC
Last week, I had you maximize your profit in the stock market! To the moooooon Ender, Marco, David, Muhammad, Sophie, Ross, Kyle, Austin, Ian, Ten, Ross, Kyle, Austin, Ian, John, Amine, Kriszti, Chase, Ricardo, Alison, and Murtala!
This week's question:
You're organizing a family meal. Given a list of dishes and their respective preparation times, return the minimum number of hours required to prepare all dishes if you can cook up to two dishes simultaneously. If a dish takes longer than the remaining time of the current hour, it will be moved to the next hour.
Examples:
// Using number of minutes for prep time
mealPrep([120])
2 // one single long dish
mealPrep([30, 30, 30, 20])
1 // multiple shorter dishes
mealPrep([30, 25, 45, 30, 60, 15])
3 // many dishes with varying times
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
Rouge Bauer Lite with MW Shark Tail
The Day Celine Dion Destroyed Your Mac
What It's Like to Be… a Marine Biologist
Another Typical Article About Sabbatical—Or Is It?
Why did the turkey join the band?
Because it had the drumsticks!
That's all for now, folks! Have a great week. Be safe, make good choices, and be grateful!
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
2024-11-18 14:43:05
Hey friends!
It feels like this month is going by both super quickly, and very slowly. I hope you're having a good one! Time to read.
Was this forwarded to you? You can subscribe here!
Overflow Clip
Center the bottom row when using grid auto-fit (video)
Adding Bluesky Comments to Your Astro Blog
How a BBC navigation bar component broke depending on which external monitor it was on
This week I'll be speaking at Microsoft Ignite (which you can watch for free online!) and I'm excited to meet some more coworkers in person and show them the joys of Chicago food!
Besides that... I mentioned it before, but I have really been having fun with Bluesky as a social network. It's been really lovely having a simple feed of just people that I follow, and other lists of feeds I can follow (for example, the Good Lunch feed), and not have the algorithm decide how I browse (which makes me want to update my human curation blog post I wrote a little while back). Outside of the network itself, I recommend reading about the AT Protocol, which is how Bluesky works under the hood. It's really interesting!
Last thing, I streamed Open Source Friday with Rizel Scarlett this past week! Check it out!
Working with auth shouldn’t feel like coding with 🧤oven mitts. You really need to try Stytch.
They’re Auth0 on steroids. Beyond hosted widgets, Stytch gives you full control with options for pre-built UI, headless SDKs and comprehensive backend SDKs and APIs for authentication and authorization. Plus, it comes with the latest in fraud and risk prevention—without relying on CAPTCHA and simple network-based protections.
Stytch also supports dedicated data models for consumer and multi-tenant B2B applications, so you aren’t forced to code around the “black box” of Universal Login. All the acronyms — MFA, SSO, RBAC, SCIM – are just an API call away.
Try it free and see why Mintlify, Groq, Hex, Orb, Zapier, and Replit have switched to Stytch.
Last week, I had you look at visible buildings in a line! I loved seeing so many good answers! Great work Andreas, David, Ender, Mac, Muhammad, Miguel, Ashish, Kyle, Neil, Arban, David, Mudi, Danny, Jess, Sean, Ricardo, Amine, Jess, Sean, Ricardo, Amine, Prashant, Ten, Kriszti, and Daniel!
This week's question:
Given an array of integers representing the stock prices of a company in chronological order, write a function that determines the maximum profit you can achieve by buying and selling the stock once. If no profit can be made, return 0.
Example:
> maxTheStock([7, 1, 5, 3, 6, 4])
> 5 // (buy at 1, sell at 6)
> maxTheStock([7, 6, 4, 3, 1])
> 0 // (no profit possible)
(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 PixelPalooza! PixelPalooza is a completely free virtual conference all about using media on the web – things like images, video, audio, streaming. It's happening this coming Thursday from 12-4pm ET (UTC -5). Grab your free ticket here.
Cabel Sasser, Panic - XOXO Festival (2024) (video)
Balance is boring (video)
IMG_0416
Wind Studio Hola Mini with lubed Cherry MX Clears
Why did the coffee file a police report?
It got mugged!
That's all for now, folks! Have a great week. Be safe, make good choices, and read something!
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
2024-11-11 14:23:15
Howdy y'all,
I hope you're staying safe and healthy with folks you care about this season. This was a really intense week for a lot of people, including myself, and it's times like these where I'm grateful for the little things that make us happy. Let's learn!
Was this forwarded to you? You can subscribe here!
Generating Random Mazes with JavaScript
JavaScript's ??=
Operator: Default Values Made Simple
Debugging Microservices & Distributed Systems
A Friendly Introduction to Container Queries
Sooo, elephant in the room, the U.S. Presidential election happened this week. The results were not what I wanted, and I don't really want to talk about how sad I am about it. I hope that if the results are also not what you wanted either, you're doing okay. "Okay" is such a... flimsy word to use, and it's really hard to come up with another one. But I genuinely, really hope that you are doing okay, and have a community that you can lean on for support, and you can be that support for others.
...besides that, I've now been at GitHub for two months, I reflected on falling asleep in a driverless car, I've been really enjoying Bluesky as a social network, and I've been cuddling my 18-month-old who has recently learned how to count to five in English, Spanish, and Korean, which is very exciting.
Curious about which authorization model is best for your app? The answer is probably "all of them."
Join our webinar, How Google Handles Authorization at Scale, for a deep dive into Google Zanzibar, and why its Relationship-based approach to authorization has become so popular. Plus, a technical comparison of Google's approach with Oso's Authorization as a Service, highlighting the similarities and key differences. Walk away with the tools you need to make an informed decision about which approach meets your app's permissions needs!
Last week, I had you group anagrams! This one was really fun. Awesome work Alisa, Andreas, Muhammad, Yacine, Ten, Leyan, Mac, Yacine, Anton, Kyle, Miguel, Andrew, Ashish, Alison, Jeremias, Ricardo, Charles, Amine, Chase, John, and Jess!
This week's question:
Given a list of integers representing the heights of buildings, return the maximum number of buildings that can be seen when looking from the left. A building can see another building if it is taller than all the buildings to its left. The height of the tallest building is included in the count.
Examples:
seeBuildingsLeft([1,2,3,4,5])
5
seeBuildingsLeft([5,4,3,2,1])
1
seeBuildingsLeft([3,7,8,3,6,1])
3
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
1 Dataset. 100 Visualizations.
Massive ocean discovered beneath the Earth's crust containing more water than on the surface
Tiili-46 hand-built keyboard
Wikimedia Pictures of the Year
I tried taking some high resolution photos of local farmland, but they all turned out a bit grainy!
That's all for now, folks! Have a great week. Be safe, make good choices, and support your local news!
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
2024-11-04 22:46:33
Hey friends!
Happy November! I hope you had a fun Halloween or Diwali if you celebrated either of them, and you're ready for Mariah Carey season to enter your ears. Onwards!
Was this forwarded to you? You can subscribe here!
Making content-aware components using CSS :has(), grid, and quantity queries
How on Earth does ^.?$|^(..+?)\1+$
produce primes? (video)
Tooltip Best Practices
Building My Resume in HTML using Eleventy
I was at GitHub Universe this week! It was WILDLY busy (I was in the keynote and helped host the livestream), and so fun. My team was involved in pretty much every part of it, from the videos to the streams to the tech demos to the scheduling to the booths to the onsite podcasts to the hackable badges... phew, it was such a production! We're all really tired, but proud of what we were able to accomplish. There were some great talks, you should check them out!
Level Up Your Dev Environment with Zero-Trust Access 🚀
Ever wished you could ditch the VPN hassle while keeping your services secure? Twingate's zero-trust access solution is changing how we handle secure connectivity in modern dev environments.
Why it’s worth your time:
What I love most? The seamless integration with existing workflows. Whether you're managing a complex microservices architecture or need secure remote access to dev environments, it just works™.
Check out how it fits into your stack →
Last week, I had you implement a round of Yahtzee! It was fun learning how many folks had never played the game before. It's a good one! These folks are also good ones, with good answers: Muhammad, Max, Ricardo, and Ten!
This week's question:
Given an array of strings, group the anagrams together.
Example:
groupAnagrams(["eat", "tea", "tan", "ate", "nat", "bat"])
[["eat","tea","ate"],["tan","nat"],["bat"]]
groupAnagrams(["vote", "please"])
[["vote"],["please"]]
groupAnagrams(["debitcard", "badcredit"])
[["debitcard", "badcredit"]]
(you can submit your answers by replying to this email with a link to your solution, or share on LinkedIn, Bluesky, Twitter, or Mastodon)
This question is brought to you by Writer!
Tired of battling AI complexity? Writer has got just the thing for you.
Introducing Palmyra X 004 by Writer! It’s the AI model with function calling and built-in RAG, making it easier than ever to build powerful apps with just a few lines of code.
With Writer’s full-stack AI platform, you’ll get:
Whether it’s automating workflows or building custom apps fast, Palmyra X 004 has your back.
🚀 Ready to level up your AI game? Start building on Writer AI Studio now!
Womier SK65 (video)
Touchscreens Are Out, and Tactile Controls Are Back
Turing Machine - Working LEGO Computer
How Vinyl Records Are Made (video)
Why can't your nose be 12 inches long?
Because then it'd be a foot!
That's all for now, folks! Have a great week. Be safe, make good choices, and eat a proper meal!
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
2024-10-28 14:46:45
Hello from San Francisco!
I'm in town prepping for GitHub Universe, which has been SO busy, but also fun to meet coworkers in person!
Onwards!
Was this forwarded to you? You can subscribe here!
Where web components shine
What docs as code really means
Smarter than 'Ctrl+F': Linking Directly to Web Page Content
Angular's Approach to Partial Hydration
Y'all, getting ready for GitHub Universe has been wildly busy and chaotic, but there's some really cool stuff coming that I can't wait for you to see! You can watch the event for free online if you register. I'll be in the opening keynote if you wanna watch me try out a live demo in front of thousands of people... wish me luck!
Also, I've been much more into Bluesky this week than Twitter. It feels like the tides are turning. Give me a shout there if you have an account!
The sponsor this week has an exciting new AI product launching on Halloween, and... I can't tell you anything more about it. But I'll be tweeting then, so keep an eye out! 👀 🎃
Last week, I had you parse an RSS feed! Y'all did an awesome job with some clever solutions, great work Ashish, Ten, Amine, Muhammad, Kostas, John, Cheyenne, and Ricardo
This week's question:
Implement a round of the game Yahtzee, where 5 dice are randomly rolled, and the function returns what options the user has to score more than 0 points. Extra credit: implement all 13 rounds!
Example:
yahtzeeRound()
> { dice: [2,2,3,3,3],
options: ["twos","threes","full house","three of a kind","chance"]
}
yahtzeeRound()
> { dice: [2,3,4,2,2],
options: ["twos","threes","fours","three of a kind","chance"]
}
yahtzeeRound()
> { dice: [4,3,6,3,5],
options: ["threes","fours","fives","sixes","small straight","chance"]
}
(you can submit your answers by replying to this email with a link to your solution, or share on LinkedIn, Twitter, Mastodon, or Bluesky)
This question is brought to you by Writer! Introducing Palmyra X 400 by Writer! It’s the AI model with function calling and built-in RAG, making it easier than ever to build powerful apps with just a few lines of code.
With Writer’s full-stack AI platform, you’ll get:
Whether it’s automating workflows or building custom apps fast, Palmyra X 400 has your back.
🚀 Ready to level up your AI game? Start building on Writer AI Studio now!
We’re in the Golden Age of Garbage Clothing
Can we space elevator? (video)
Math Is Still Catching Up to the Mysterious Genius of Srinivasa Ramanujan
Madeline 30% with DSS All Hallows Eve
The rotation of earth really makes my day!
That's all for now, folks! Have a great week. Be safe, make good choices, and take a long nap!
Special thanks to IceSloth, Ezell, Sebastián, Ben, Kinetic Labs, Faisal, and Marta for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | twitter | patreon | twitch | codepen | mastodon | bluesky