Howdy y'all,
I hope your October kicked off well! I admit the news kind of got me down this week, but my daughter was a flower girl in a wedding this weekend, so I'm happy to end it on a high note! Let's learn.
Was this forwarded to you? You can subscribe here!
Let's Be Specific: CSS Specificity Explained
I want to intercept Boolean Coercion for Objects in JavaScript
How much do you really know about media queries?
PIRACYKILLS
I, like many people, tried the latest Sora 2 video generation app from OpenAI. After watching it make me fail to do the worm and pass my typical AI video/image generation test prompt, I... deleted my account.
I think it's really interesting to see how far media generation models have come. But, after scrolling through the feed of the Sora 2 and seeing all the copyrighted characters acting out in ways I highly doubt would be approved by Disney/Nintendo/etc legal teams, I just don't think it's the type of app I want to contribute to. I talk about it a bit in the blog post I just linked above: I don't really like seeing images and videos generated by AI. I think they can be helpful for an artist to use as a reference, but I would never want to just consume AI slop on purpose. Like the quote on my blog's AI manifesto says: "If you couldn't be bothered to write something, I won't be bothered to read it."
Tired of waiting on approvals? Graphite helps you ship faster by breaking large pull requests into smaller, independent ones. With stacking, each commit can be tested, reviewed, and merged on its own—so you stay productive even while others review. Stop waiting. Start shipping.
Last week, I had you find hyperfactorials! Blammo Trevor, Raymond, Ten, David, Jeremias, Gavin, Fortress, Kaartic, Andrew, Paul, Jonathan, and Amine!
This week's question:
You're building a tool that tracks component edits and groups them into a changelog. Given an array of edit actions, each with a timestamp and a component name, return an array of grouped changelog entries. Edits to the same component within a 10-minute window should be merged into one changelog entry, showing the component name and the range of timestamps affected.
Example:
const edits = [
{ timestamp: "2025-10-06T08:00:00Z", component: "Header" },
{ timestamp: "2025-10-06T08:05:00Z", component: "Header" },
{ timestamp: "2025-10-06T08:20:00Z", component: "Header" },
{ timestamp: "2025-10-06T08:07:00Z", component: "Footer" },
{ timestamp: "2025-10-06T08:15:00Z", component: "Footer" },
];
> groupChangelogEdits(edits)
> [
{
"component": "Footer",
"start": "2025-10-06T08:07:00Z",
"end": "2025-10-06T08:15:00Z"
},
{
"component": "Header",
"start": "2025-10-06T08:00:00Z",
"end": "2025-10-06T08:05:00Z"
},
{
"component": "Header",
"start": "2025-10-06T08:20:00Z",
"end": "2025-10-06T08:20:00Z"
}
]
(you can submit your answers by replying to this email with a link to your solution, or share on Bluesky, Twitter, LinkedIn, or Mastodon)
Hi!
This is the Jam.dev team.
We’ve taken over this spot in Cassidy’s newsletter to tell you that today at 1:15pm PT we’re going to be announcing a really big deal very exciting new engineering tool from the live stage at OpenAI!
Watch on the livestream at 1:15PT
Or you can just go here and sign up for early access before all those shlups from OpenAI do.
I turned the Lego Game Boy into a working Game Boy
V4N4G0N Embrace - 45% Mechanical Gaming Keyboard (video)
The Last Days Of Social Media
In Praise of RSS and Controlled Feeds of Information
What animal is always complaining? The whine-oceros!
That's all for now, folks! Have a great week. Be safe, make good choices, and avoid doomscrolling!
Special thanks to Ezell, Ben, Kinetic Labs, Marta, and Flora for supporting my Patreon and this newsletter!
cassidoo
website | blog | github | bluesky | twitter | patreon | twitch | codepen | mastodon