Of course I have a backup!

Random blobs of wisdom about software engineering

Archive About Me Consulting My toolset

I have been fascinated with keyboards for a long time now, I think I currently have 6 in my flat, and I usually bring one with me to my workplace. This week I finally managed to finish my Lets Split keyboard that I ordered 2 years ago.

Continue reading ...

The ways you can cache assets with HTTP has been already beaten to death by many other blog posts, but I want to highlight a very big gotcha that still bites many people. This is when you deploy a new version of your application, but some browsers still show the old CSS and JS files, even though the contents of those files have changed.

Continue reading ...

I tried to get into rust 3 times now. Every time I gave up after about ~20 hours (combined), for various reasons. A week ago I gave it another shot, and I think I finally managed to have a breakthrough. Here is a list of things that I wish somebody has taught me before starting.

Continue reading ...

Execute yarn. Do not go git checkout --theirs ... and git reset ... and whatever else people might suggest. Just type yarn and press enter. Yarn has an automatic conflict resolution built into it, it will detect that the yarn.lock file has conflicts, and use its internal algorithm to figure out what to do. This was a public service announcement.

Some libraries, tools, and technologies that have made a lasting impact on me in 2018.

Continue reading ...

And it's a terrible mess, and nobody should use it until this is fixed. Yeah I said it. The internet is already full of "5 reasons async/await blows Promises away" and "How to escape callback hell with async/await", only thing they all fail to mention is that is that it will lead to errors that are missing crucial stack trace information.

Continue reading ...

If you have been using Dropbox on a filesystem other than ext4, you have been probably getting annoyed by the following warning, in the past 2 months:

Move Dropbox location. Dropbox will stop syncing in November.

According to Dropbox, this is intended, and their official response is:

Hi everyone, on Nov. 7, 2018, we’re ending support for Dropbox syncing to drives with certain uncommon file systems. The supported file systems are NTFS for Windows, HFS+ or APFS for Mac, and Ext4 for Linux.
We’ve updated our desktop requirements accordingly here.
A supported file system is required as Dropbox relies on extended attributes (X-attrs) to identify files in the Dropbox folder and keep them in sync. We will keep supporting only the most common file systems that support X-attrs, so we can ensure stability and a consistent experience.

Which is the corporate bullshit version of saying "sorry we run into some obscure problems with some filesystems, so we only have the capacity to support one for now", but that is a big marketing and sales no-no, so instead they sell it as a "consistent experience" and "stability", and some random bit about xattrs, which every filesystem supports. Here's a workaround.

Continue reading ...

Slack has decided to remove the XMPP and IRC gateways, they will cease functioning on May 15th. It's a real shame, because these were the only usable interfaces to slack, both the web UI and the desktop app hog memory like a separate browser session, but there are still some solutions you can use to avoid using them.

Continue reading ...

If you are running kubernetes on google cloud, you probably run into the issue that it's not so straightforward to connect to a cloudsql instance from within the cluster. The official best practice is to run cloudsql proxy as a sidecar container in your pods, and connect through that. There are two problems with this, and I will address both.

Continue reading ...

About one and a half year ago, I wrote about the shortcomings of the python package manager, pip. Finally, there is now an officially recommended package manager, called pipenv, that solves all of the problems mentioned there, and providers a few extra goodies too.

Continue reading ...