Deploying a git server using juju.

I run a private git server that I use to manage my config files (oooh, passwords) and projects that I’m just not ready to publish on github. Granted, setting up a simple git server is not difficult, but with the introduction of actions in juju this seemed like the perfect use for them. The git charm deploys a server with git set up to serve over ssh. In addition to that, the charm exposes actions that make handling the management of users and repositories easy.

Screen locking with awesome wm and lightdm

There are a few ways of solving the screen locking/screensaver problem if you’re using awesome wm: xautolock and slock xscreensaver lightdm and light-locker xautolock and slock xautolock and slock probably come as close (in terms of lightness and philosophy) to awesome, as it gets. They both solve very specific problems: slock: blanking the screen and handling user re-authentication xautolock: controlling and invoking the screen locker on user inactivity Installing and setting them up is quite simple, as described here:

Forgetful systems with overlayroot

Not too long ago I needed to make a laptop resilient to ungraceful shutdowns. This meant that at some point the file system needed to become read-only, because I did not want to depend on journaling and filesystem checks to recover from power failures. To surprise, there weren’t many ways to do this - I could: boot to RAM use a modified livesystem disk image make root read-only use a linux distribution that supports this (e.

Historically relevant

Historically significant There are places that seem to attract events. Historically significant events. Like geological layers, they pile on to each other, with sometimes nothing else but their geographical proximity in common. There is a place like this not so far from Vilnius called Paneriai. It’s set amidst forested hills. The name roughly translates to “close to Neris”, Neris being the largest river crossing Vilnius.

The podcasts I listen to

I spend way too much time listening to podcasts. But it’s ok - I can stop whenever I want to. No, really. On the other hand, without them my trips downtown or long weekend car rides would be unbarable. Since I’m constantly surprised to find how many people don’t listen to podcasts or don’t know what they are, here’s the list of my guilty pleasures. Radiolab The podcast whose name almost always comes up when talking about podcasts.

Restarting the blog

After a long (more or less 5 years) period of complete inactivity, I’m restarting my blog (again). A lot of things have changed. I quit the startup I worked at (and helped co-found, to a certain extent) and spent the next year working at a Lithuanian biometrics company, working on matching server clusters and voice identification (for a short while). I am currently a happy employee of Canonical, working on a powerful cloud orchestration solution.

Document similarity in postgresql

Once you have a full text search index available, it seems only natural to be able to find similar documents. Doing this with postgresql’s full text search requires a few tricks though. When considering search in the vector space model, documents and queries are very similar (identical if we have unweighted terms). Hence comparing a document to a query or to another document is basically the same operation: finding the cosine of the angle between two vectors.