Hey friends!
I hope you had a good week! It was a fun Pi Day and river dyeing weekend over here in Chicago.
Let’s learn!
Was this forwarded to you? You can subscribe here!
Web links of the week
Let the stagger experiments begin
The URL is a great place to store state in React
Make a ski game with LittleJS
Learn Zod So You Can Trust Your Data and Your Types
Something that interested me this week
This was a long week for me, y’all. I had a ton to do at work (got some videos and blogs publishing soon, keep an eye out on GitHub’s channels!) and I admit I was fighting off “pregnancy brain” with a lot of ups and downs. I’m at that point where I’m nervous about having a second kiddo, but also VERY ready to not be pregnant anymore. I wrote about that in more detail, and also about how I think we should be introducing more friction into our lives, rather than trying to smooth out everything forever.
Sponsor
Sometimes for a major project, you’ve got to bring in the experts. Amazon Q Developer is built to handle your most ambitious efforts, so that you can go on being your visionary self. It’s an AI code assistant that writes, tests and reviews code fast, freeing you to focus on world domination or whatever it is you’re working on these days.
Amazon Q Developer will:
- Ship large projects with AI agents. Use the
/devagent to put in new features, document code or refactor your projects. Cute! - Have a conversation with your code. Chit-chat with your project and get to know its deepest secrets, like its auth flows and its service dependencies.
- Do your dirty work. Meaning your README files and your dataflow diagrams, of course. Somebody’s gotta do it.
Interview question of the week
Last week, I had you get piano key intervals! Awesome job Jesper, Ten, Muhammad, Neha, Ian, Murtala, and Ricardo!
This week’s question:
Write a function scoreHand(cards) that calculates the total score of a Cribbage hand. The input is an array of 5 card strings (including the starter card), where each card is represented as rank+suit (e.g., “AH”, “10D”, “KS”). Here are the scoring rules:
- 15s: 2 points for each combination of cards summing to 15
- Pairs: 2 points for each pair of same-rank cards
- Runs: 1 point per card in a run of 3 or more consecutive ranks
Example:
> scoreHand(["7H", "8C", "9D", "JH", "KS"])
> 5
> scoreHand(["AH", "2C", "3D", "4S", "5H"])
> 7
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
Cool things from around the internet
“Wait, not like that”: Free and open access in the age of generative AI
Protagonist 60 Copper-PC with GMK Dandy Green keycaps
The teacher lies sometimes
A New Sudoku Layout With 81 Uniquely Shaped Cells
Joke
What do you call a gorilla wearing headphones?
Anything you’d like, it can’t hear you.
That’s all for now, folks! Have a great week. Be safe, make good choices, and think about new perspectives!
Special thanks to IceSloth, Ezell, Sebastián, Ben, Kinetic Labs, and Marta for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon

