Of course I have a backup!

Random blobs of wisdom about software development

Async/await destroys stack traces in Node

Saturday, September 29, 2018

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.


Tagged as: | Comments (0)

Use Dropbox on any filesystem

Monday, September 17, 2018

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.


Tagged as: | Comments (1)

Slack removes IRC gateway

Friday, March 09, 2018

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.


Tagged as: | Comments (0)

Using Slack with Weechat, through ZNC

Wednesday, February 08, 2017

I set this up 2 years ago, but today I had to add another Slack network to add, and it took me an hour to figure out. The connection to ZNC was working fine, but when ZNC was trying to connect to the Slack server, I always got "Invalid user name or password" from slackbot. Slack doesn't explicitly tell you, but the username it gives you is supposed to be your nickname, and your ident, and you have to set this up before making a connection attempt.


Tagged as: | Comments (2)


Friday, November 04, 2016

The package manager for python, pip has some shortcomings, and we will look at solving the biggest two: not being able to record only the top level dependencies in a project (the dependencies of the dependencies also get lumped together), and finding a way to record only dev dependencies.


Tagged as: | Comments (0)

Current window manager: i3

Tuesday, October 25, 2016

List of window managers I have tried so far: metacity (gnome), fluxbox, xmonad, awesomewm, and the latest one, is now i3. I think fluxbox stuck for the longest time, around 5 years, while i3 is the second with about 1.5 years.


Tagged as: | Comments (0)

Ergodox Infinity review

Tuesday, August 30, 2016

I got an ergodox infinity keyboard about half a year ago. I was always fascinated with split keyboards since I saw the original Microsoft "Natural ergonomic keyboard", but never actually got around to buy one. Fast forward 5-6 years later, I developed an unhealthy obsession with mechanical keyboards, so it was time to go ahead and finally try a split keyboard.


Tagged as: | Comments (4)

Specifying the terminator in dictConfig

Saturday, July 30, 2016

Python added logging.config.dictConfig() in 3.2 (2011), which is the "new" recommended way of configuring loggers, instead of the old .cfg format. What also came with 3.2 was a terminator attribute on handlers, which allows you to specify the line ending character for log statements, however, terminator is not configurable in the constructor, which makes it seemingly impossible to configure through dictConfig().


Tagged as: | Comments (0)