I learned something fun about the difference between Postgres vacuum and vacuum full today while trying to trim the fat on an Supabase instance that was getting close to the free tier database size limit.When a row is deleted from a Postgres table, the underlying tuple on disk is not actually deleted, but marked as deleted. This is enables all the fun MVCC magic. Then Postgres kindly runs a…
I want to know when HTTP requests sent to my Node server are canceled by the user. In the past you could listen to the 'abort' event on a http.ClientRequest, but that event and it's related fields on the request object have been deprecated since node v16.12. You can still listen to this event. It's continued to work for me, but I don't want to rely on an event that's explicitly deprecated.TL;DR
I'm reimplementing one of my projects, movemygif, in Go. In short, movemygif is a digital picture frame I've hung on my bedroom wall that plays a GIF and tracks the motion of the viewer looking at the frame. When the viewer moves towards the frame, the GIF plays forward, if they move backwards the GIF reverses. I wanted to benchmark the Go implementation against the original…
The "starter" tier($9 at the time of writing) for a Ghost hosting membership does not include custom integrations. This means you can't get API keys to manage customer and content information from remote applications. So, if I want to, for example, fetch a list of my active susbscribers inside an AWS lambda function, I have to upgrade to the "creator" tier and pay $25 a month. I do not want to do…
During the past year, I've been reading about and building projects with a programming language called, Clojure. For those who aren't familiar, Clojure is a modern-day LISP that runs on the JVM. Yes, it's one of these parenthesis hogs...
Javascript is getting a new operator! Maybe.A new operator is currently in stage 1 of the TC39 proposal process. Stage 1 is still early in the process, but getting to stage 1 means that it is being considered, and has an audience of developers pushing for it. If you have recently learned Javascript, or you’re still inexperienced with the language, you may be wondering what new operator Javascript…
For my first post, I wanted to do something strange and entertaining. I don't want to bore you with super serious facts, or cover anything practical for that matter. Instead, we'll be walking through a programming exercise of sorts. The ideas in this post come from a topic in math called Church Encodings, and were inspired by another article, List out of Lambda.Introduction: