Saturday, September 9, 2017

Eleksmaker Laser Belt Fastenings

My latest toy is the Eleksmaker A3X laser engraver. While building it, I found the provided drive belt clamps didn't work, and I came up a better method of fastening them.

Thursday, May 16, 2013

Korean IPS Monitors and Nvidia under Linux

The business is doing well, so I thought I'd upgrade my computer. Bye bye old laptop plus extra 23" monitor; hello new desktop system, SSD, a meaty Nvidia graphics card and best of all, a pair of awesome Korean 26" IPS monitors. Cool!

Actually, not cool - the displays wouldn't work due to what turned out to be a stupid bug in the Nvidia drivers for Linux. Read on for the story and a solution...

Tuesday, October 18, 2011

Migrating a Subversion Project to Git on BitBucket

Subversion is still the gold standard for version control (a.k.a. source control) systems, but the new kid on the block - Git - has undeniable advantages for many development models. Even for solo or centralised hierarchical development organisations, Git's agile branching and merging make it a joy to use.

But if you're going to go to the effort of switching version control systems, you probably also want to consider moving your repository to the cloud. This increases your options for off-site developers, and reduces the risks and maintenance costs of internally managed version control servers.

This article describes how to migrate a Subversion repository to Bitbucket, one of several online repositories.

Wednesday, June 22, 2011

High-Replication Migration Lessons

It's about a month since the migration, so how's it gone, what did we learn? What's it done to latency, error rates and CPU consumption? Most of all, was it worth the pain?

Tuesday, April 26, 2011

Migrating an App to High-Replication Datastore on Appengine

Google's Appengine now gives you the choice between the original master-slave datastore, and the new high-replication datastore. In a nutshell, high-replication provides more reliable storage (in terms of data security and latency) but has slower write times and costs considerably more.

The owners of almost all serious applications will choose the high-replication datastore. The extra cost is a small price to pay (literally) to escape the maintenance outages, datastore timeouts and high-latency requests that plague the master-slave datastore.

The following article explains how to switch a production application from master-slave to high-replication with the minimum impact on your users.

Saturday, April 2, 2011

Installing Multiple Versions of Python on Linux

The Google Appengine SDK requires at least version 2.5 of python, or else it spits the dummy. To compound matters, Google has announced that version 1.4.3 of the SDK is the last to support python 2.5, and all newer versions will require python 2.6. [Update: and now you need python 2.7 for multi-threaded apps.]

So how do you install later versions of python without impacting the system default version - which is required for all sorts of vital system services?

Saturday, February 12, 2011

Cascade Saddle 2010

Click map to go to photo gallery
The Cascade Saddle track has a reputation of being one of New Zealand's harder walks, compensated with awe-inspiring views over the Matukituki valley, Mount Aspiring and the Dart Glacier. Who could resist?