Nathan's Notepad Field notes from a software developer

Running Debian 0.91 in qemu August 23, 2016 – Nathan Osman

Yes, you read that right. In this article, I am going to detail the process of getting Debian 0.91 up and running in qemu on an Ubuntu 16.04 host. The adventure promises to be a fun one since Debian 0.91 was released in... 1994.


Why I Stopped Buying Nexus Phones July 01, 2016 – Nathan Osman

I have always been a big fan of the Nexus product line. I first wrote about the Nexus 5 back in January of 2014. It was a truly excellent phone. When the Nexus 6 was released, I grabbed one of those as well and thoroughly enjoyed the increased screen size and turbo charge. That would prove to be the last Nexus phone I purchased.


Icon Themes March 27, 2016 – Nathan Osman

One of the most confusing aspects of packaging applications on Linux continues to be icon themes. Despite the simplicity of the original concept, getting your application's icon to display correctly in a broad range of desktop environments continues to challenge even the best of programmers.


Building Packages in Raspbian with sbuild November 21, 2015 – Nathan Osman

Getting sbuild up and running in Raspbian can be a tricky process. This article will describe the process from start to finish.


Benchmarking Brotli September 22, 2015 – Nathan Osman

Brotli is a new compression algorithm being introduced by Google. It's gaining traction very quickly - there's an IETF draft proposal for the data format. There are even plans to include Brotli as an accepted Content-Encoding in Firefox 44:


Non-blocking Channels in Go September 13, 2015 – Nathan Osman

One of the latest projects I've been working on is a simple SMTP client written in Go. I've really enjoyed developing applications in Go since it provides concurrency primitives out-of-the-box. In this article, I'm going to describe a technique for sending any number of values on a channel without having the send block.


Investigating an Email Scam August 19, 2015 – Nathan Osman

Today I opened up my inbox to discover this little gem.


BuildBot in Docker on a Raspberry Pi 2 June 05, 2015 – Nathan Osman

In a previous article, I took a look at setting up a BuildBot slave on Windows. Today, I'm going to describe the process of creating a BuildBot slave for a Raspberry Pi 2. The easiest way to do this is by setting up the BuildBot slave as a Docker container.


Using Visual C++ Express with BuildBot June 04, 2015 – Nathan Osman

I recently began setting up a small build farm for a Qt library I was working on. Due to the nature of the library, it was important that the test suite run on as many different platforms and compilers as possible. After some research, I came to the conclusion that BuildBot was the ideal tool for the job.


Nexus 5 - A Review January 30, 2014 – Nathan Osman

Phew - it's been a number of months since my last article. I have been extremely busy with all manner of different projects, including a new Firefox add-on named REST Easy. I apologize for not writing sooner, but you would be surprised at how easy it is to get neck-deep in code for weeks on end. (Then again, you might not be surprised.)


Writing Secure Server Applications with Qt September 18, 2012 – Nathan Osman

Qt is an excellent framework for developing cross-platform console and GUI applications. I have used the toolkit for developing a number of applications which are listed here on my website. I recently found myself faced with the task of developing a TCP server application which communicated with a set of clients in a secure fashion. Rather than reinventing the wheel, I decided to make use of Qt's own SSL classes (QSslSocket for instance).


Using the Unity Web API July 21, 2012 – Nathan Osman

One of the exciting new features scheduled to be included in Ubuntu 12.10 (Quantal Quetzal) is the introduction of Web Apps. These consist of a UserScript that bridges the gap between the JavaScript code on the page and the user's desktop. For example, a script written for Gmail might display a desktop notification when a new message arrives in the user's inbox. Or perhaps a script written for MySpace would make use of the desktop media player interface to display Title / Artist / Track information for currently playing music.