Signing an Android App

Before you release you’ll need to sign your .apk file. The guide from Google implies that you should make a single key for your identity, and sign all your apps with that key. I recommend against that. You should make a key per app. The reason I suggest that is because one day you might… Read More »

Bitcoin Explained (VIII)

Last time we saw how once you are the “owner” of some bitcoins, that gives you the magical power of being able to specify what conditions the next claimant must meet before they become the “owner” As flexible as it is, there is a problem with this arrangement. Every client has to be taught how… Read More »

Bitcoin Explained (VII)

This series of articles is an extension to my earlier Bitcoin Explained series. It absolutely isn’t necessary for understanding bitcoin, the previous articles are still valid. However, I recently made use of the Brawker website, and wanted to understand their use of P2SH more fully. This new series of articles is the result of me… Read More »

Compile-Time Polymorphism

Let’s say we have a peripheral, like an accelerometer, connected via an SPI bus. Then let’s say we have to different embedded projects that make use of this same chip, implemented on two different microcontrollers. Wouldn’t it be nice to be able to write the accelerometer communication code once, keep a low runtime overhead that… Read More »

Basic Pointers

I saw this question on reddit, and decided to help. It’s a little more fundamental than I usually blog about, but I thought it might help someone one day who only seen the abstractions that high-level languages present to us, never the nitty-gritty underneath. So as a beginner programmer the line of code: int *pApples… Read More »

Dell XPS 15 and Linux

I’ve got an XPS15 – Dell’s flagship laptop. This article is my notes on how I set it up to run Linux. I’ve had considerably harder times than I had with this laptop when I was installing Linux on laptops in the past. Everything “Just Works” once you install the necessary drivers. All in all,… Read More »

Git Alternates And Sparse Trees

I was working on a project that was kept in a large repository. Unfortunately I was working on two parts of it, each on a different branch. I wanted, therefore, two working directories, but I didn’t really want to pay the disk space cost of two checkouts, nor to have the entire project checked out… Read More »

Renaming The Past With Git

I added a directory to a repository I was working on; made some commits to the files in that directory, added some files, removed some files, then decided that I didn’t like what I’d named it. When you make a mistake like this in files with git, you can easily use git rebase -i to… Read More »

PostgreSQL and Row IDs

From a blog post [PostgreSQL] allows for treating INSERT and UPDATE statements as table references, when used with the RETURNING clause. This is quite fancy, even if not very useful in everyday SQL. “not useful”? Madness I tell you I respectfully disagree. I only discovered RETURNING in the last year; and it’s incredibly useful in… Read More »

ChibiOS/RT

ChibiOS is an open source RTOS for embedded systems. It’s comparable with FreeRTOS; but for my money is a nicer project. Comes with a hardware abstraction layer – i.e. device drivers (kind of). That means we target the ChibiOS API rather than a particular platform. A lot of manufacturers supply a device layer specific to their… Read More »