Twenty twenty-five
Another year already?
All content from laymonage (Sage Abdullah).
Another year already?
If you need to pass around the `resolve` and `reject` functions of a `Promise` object, creating the promise using `Promise.withResolvers()` is a nicer API that reduces nesting.
If you're an author of a Django package, you might find it useful to check whether a template has been overridden. Here's a little snippet that helps you do that.
Sooo... how was it?
The visibilitychange event does not fire when you switch between tabs if you have DevTools open with the "Emulate a focused page" option enabled.
Familiar faces in unfamiliar times brings comfort in its own ways. Puzzle pieces can be hard to understand sometimes.
Almost a year since the last entry.
Went to Chamonix on a ski trip with my colleagues!
Saw Andrew Bird in London and BANNERS in Bristol, just two days apart.
New section to replace my old logs approach.
To help prevent giscus from hitting GitHub API's rate limit, we cache the access tokens in Supabase. Here's how I did it.
Introducing giscus: a comments widget built on GitHub Discussions.
Django uses Git to manage its codebase, but how?
Google Summer of Code 2019 was a life changing experience for me. Thanks to Django, I learned a lot of things through the summer.
As a regular user of Git, I find one particular command to be extremely powerful. That command is…