Index ¦ Archives  ¦ Atom  ¦ RSS

Hermetic Build Systems

Tue 31 December 2013

Over time, I've come to really like and expect a good hermetic build system. It allows you to really be sure of what's going to happen when you run your binary on any supported system. This makes keeping development and production systems in line very easy, just have the same architecture and the few system packages required for each language, irregardless of what will get run on the machine (or VM, Container, virtualenv, etc).

Continue reading →

Another reminder about the debt ceiling

Tue 01 October 2013

The debt ceiling is  not the cause of the current government shutdown, nor will not increasing it benefit anyone. Instead, passing a proper budget would end the shutdown and could change the situation around the multi-trillion dollar debt.

Continue reading →

G13 Part 3

Thu 22 August 2013

After some time, I've come back to this and thought the next useful thing would be to add graphics to the LCD. While I've written low-level graphics before, it wasn't a pleasant experience so I went with a graphics library I've seen used before that had built-in support for fonts and images: cairo.

The latest g13 code is on github as usual and this time it has some example code for using

Continue reading →

G13 Part 2

Sat 29 June 2013

I've updated the code on github to include the state machine and some plugins I promised in the last post. I wrote it back then but, once again, didn't have time to post about it until now. There is an example plugin that simply activates a new state after a couple seconds, but the interesting stuff is in the OS and Chrome plugins.

The OS plugin handles using the joystick as a mouse and G17/G18 for left and right clicks.

Continue reading →


Sun 31 March 2013

I got a G13 recently, but not for the usual use-case. Instead of gaming, of which I do very little, I bought it for speeding up my own workflow both at home and at work. Since I'm not using it for the expected use-case by Logitech, their software obviously didn't cut it, not just because it's Windows-only and I run Linux at work.

Therefore, I spent some time with the various G13-interacting code that's already written on the interwebs and wrote my own Python code using libusb1/libusbx for it. I'll describe what was already out there to explain why I had to write my own.

Continue reading →

Wikipedia "templates" Part 2

Fri 01 March 2013

I'll start this adventure off with the basics, what one would expect in a template language for an online encyclopedia. We'll be skipping all the text-formatting and layout markup since they're well-documented and very straight forward. You can find it on the Help:Wiki markup page, I'll be skipping the first two sections Layout and Format. Note that those two sections are half that entire page, despite the page having 11 other sections to cover.

Continue reading →

Wikipedia "templates" Part 1

Mon 25 February 2013

Wikipedia templates seem to have grown organically, and that's the nicest way to describe it. They look simple at first glance, just a bunch of squiggly brackets to denote everything, how bad can it be?

In this multi-part series, I'll be writing about the complicated bits of the wikipedia template syntax.

Continue reading →

Wikipedia "templates"

Sat 23 February 2013

I've been dealing with Wikipedia 'templates' recently, so I'll be exploring their syntax, parsing, and rendering in the next few posts. Here's a taste:

Wikipedia templates seem to have grown organically, and that's the nicest way to describe it. They look simple at first glance, just a bunch of squiggly …

Continue reading →

Everything I say rhymes.

Thu 21 February 2013

I just have a complicated rhyming scheme.

I also hope to start updating this more often.

Continue reading →

Error upgrading man-db (and others)

Thu 10 January 2013

When upgrading man-db recently, I ran into this unexplained error:

Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/Debconf/DbDriver/ line 44, <DEBCONF_CONFIG> chunk 3.
Use of uninitialized value in -e at /usr/share/perl5/Debconf/DbDriver/ line 46, <DEBCONF_CONFIG> chunk 3 …

Continue reading →

© Fahrzin Hemmati. Built using Pelican. Theme by Giulio Fidente on github.