Common Lisp

Where to host your project as a solo-founder?

Recently I asked solo-founders what are their choices when it comes to hosting their projects. Here are the most common choices along with their rationales.
Read more

Things to consider when choosing nodes for your Kubernetes cluster

Regardless of whether you’re architecting new services or preparing to migrate your workloads – choosing the proper underlying nodes size can make or break your experience with this amazing tool. Here are some key points you should pay attention to.
Read more

Introducting authmagic.io - a passwordless authentication service

Lately I have decided to take some time to work on my side-projects and make them useful for the broader public. Inevitably, I bumped into a problem. Actually, not really a problem, but I had to implement a simple authentication scheme that at the same time wouldn’t be an overkill. I decided to use passwordless login and registration links because it seemed to fit my app just right and I wanted to have as little overhead as possible.
Read more

Abandon relations all ye who enter here: a treatise on silver bullets

Recently I read an article about The Guardian migrating from Mongo to Postgres. What struck me far more than the article itself, was the heated discussion going on under the reddit post.
Read more

Launch a CI service in 100 lines of Clojure

There are many factors that contribute to the quality of the code we produce. Undoubtfully, adopting Continuous Integration is one of the biggest leaps one can make when closing the gap between The Holy Grail Of Software Engineering. Over time there have emerged quite a few CI services that make it easy to integrate changes to our code. Unless you’ve been living in vacuum for the past few years, you must’ve heard names like Jenkins, TravisCI or CircleCI. But what if I told you, you could roll your own YetAnotherCI in just around 100 lines of Clojure? If this sounds interesting, make sure to follow along and ship YACI with us.
Read more

Using git notes to improve workflow

TL;DR There used to be a post about using git notes in a hypothetical CD scenario, but since I thought it wasn’t providing any value anymore I decided to rake it and instead I’ve limited it to describing git notes features and linking to the official documentation.
Read more

Redirecting output to other terminal

There are many reasons one might want to see output from shell commands in another terminal emulator but it definitely has its uses. The other day it just so happended that I needed such a functionality. Without going into details I’m going to show you how to achieve such behaviour – and more – easily, by leveraging the fact that under the hood std(in|out|err) are just *nix file descriptors.
Read more

Haskell-style lambdas in Lisp

Recently I was toying around with Lisp a bit and thought I’d share some insights. As you may or may not know programming in Lisps is somewhat different from the average programming languages you’re used to. In what way, you might ask – and no, I don’t mean being swarmed up with parenthesis (besides syntax should be the least concern when picking The Right Tool). Here’s why.
Read more

Launching terminal emulator in current working directory in XMonad

Recently I got a bit fed up with my XMonad configuration and decided to add some of the missing bits. After all I made the switch with productivity in mind so it would be silly to endure even the slightest tradeoffs. If you don’t know what XMonad is – it’s an extremely customizable tiling window manager – the default configuration is, however, pretty crude, so it doesn’t really make sense to switch if you’re not going to tweak it, even if just slightly. To the point – one of the things I was missing was the ability to open a new terminal emulator window in the same working directory as the one I had focused. I felt that existing solutions such as the WorkspaceDir extension were lacking and not exactly what I was looking for. And so I had to write one myself. Since I figured I couldn’t be the only one in need I decided I’d share my snippet.
Read more

Polyglot assembly 101

As promised in my somewhat lengthy “Hello World” post, although much later than intended, I finally got down to writing a follow-up post. I remember one of the very first lectures during my uni course – when assembly language was being introduced. Nothing too deep, really. However, I recall a statement being made, that probably still lives in the minds of the many that heard it (and perhaps even more that didn’t). Namely – that assembly code is not portable. In this post we’re going to take a look at how misleading that statement is and explore writing polyglot assembly code.
Read more