๐ "When I let go of what I am, I become what I might be." - Lao Tzu
Hey friends!
I hope you had a lovely week. Mine was fun visiting with family and friends for Thanksgiving, and now I'm excited to be in the "let's circle back to this in the new year" season!
Was this forwarded to you? You can subscribe here!
Web links of the week
An Interactive Guide to CSS Grid
Weird HTML Hacks
Intro to Shaders for Web Developers
The State of JS 2023 Survey is Now Open (if you take this, mind sharing this newsletter in the Resources section?)
Something that interested me this week
In the U.S. we had Thanksgiving this week, which was a welcome break to see friends and family! I also squeezed in some coding time, where I added a couple features to my game Jumblie that I'm excited about:
I've noticed when I talk about Jumblie to non-technical folks, almost everyone wants to play it via an app on the App Store/Play Store, rather than a web app that they can easily add to their home screen. If you've navigated that dynamic before, I'd love to hear how!
Sponsor
Warrant is authorization and access control infrastructure for developers.
Devs use Warrant to implement roles and permissions (RBAC), ABAC, fine-grained authorization, multi-tenancy, and even feature entitlements based on SaaS pricing tiers in their web and mobile apps.
- Fully managed authorization as a service, exposed as easy-to-use REST APIs.
- SDKs for all major languages and drop-in React components for UIs.
- Management dashboard to quickly view, audit, and manage your data.
- Works with your existing authentication (in-house or vendor).
It's easy to get started, sign-up for an account at warrant.dev and start building! Email us at hello@warrant.dev and mention rendezvous with cassidoo to receive 50% off a paid plan for your first year.
Interview question of the week
Last week, I had you return certain numbers between two integers. Awesome work Miguel, Saad, Ten, Fernando, Josh, Steve, Anirban, Neil, Fraol, Austin, Karthick, and Chase!
This week's question:
Given two arrays calories and prices, where calories[i] and prices[i] represent the calorie content and price of the ith food item, and a daily calorie goal, find the minimum cost to achieve or exceed the daily calorie goal. If it's impossible to meet the goal, return -1.
Example:
let calories = [200, 400, 600, 800]
let prices = [50, 60, 80, 100]
let dailyGoal = 1200
> minCostForCalories(calories, prices, dailyGoal)
> 160 // the 2nd and 4th items add up to 1200 calories for the minimum cost
Cool things from around the internet
BGKYPRO GH60 keyboard
Eternal Sunset
The Periodic Table of Tools
Hunter-gatherer approach to childcare suggests that the key to mother and child well-being may be many caregivers
Joke
What's the difference between a poorly-dressed person on a tricycle, and a well-dressed person on a bicycle?
Attire!
That's all for now, folks! Have a great week. Be safe, make good choices, and start bundling up!
Special thanks to Gabor, IceSloth, Ezell, Sebastiรกn, Ben, and Kinetic Labs for supporting my Patreon and this newsletter!
cassidoo
website | twitter | patreon | github | twitch | codepen | polywork | mastodon