Home
Public Sources logrun math-trainer mp3cd-tools fakepop aunic-modify ausadmin sms-notify apt-cacher video-capture wav-fixer misc
TRS-80 software I wrote
Hats I wear New Technology Ethical Internet Advertising Digital Freedom Anti-spam Age of plenty Ditch Windows Technical Big Server Spam Unclassified Zeta Internet Links
Your donation gives me time |
This is the homepage of the Nick Andrew who has been involved with computers from the late 1970s and started one of the first Internet Service Providers in Australia. I did a few other things too. Nick Andrew News2008-05-07 - ars technica on Windows programming
In From Win32 to Cocoa: a Windows user's conversion to Mac OS X—Part II, Peter Bright writes:
It's nice to see confirmation of this from an experienced Windows programmer. Since I don't program for Windows at all, my opinions are based on what I see and read about Windows, rather than coal face development experience. The take-home message from this article is that mediocrity rules the Windows development ecosystem; although there are no doubt many developers who write high quality Windows applications, there are also many who do not, and Microsoft supports the latter to the detriment of the former. 2008-04-25 - Distributed SCM
I've become a recent convert to distributed SCM systems, particularly Mercurial and Git. Use of a distributed SCM is a much more sensible way to release open source software than the traditional tarfile, or even having a public CVS or SVN repository. In particular:
Having a public CVS or SVN repository solves only the problem of giving users quick access to the latest version of the software. CVS and SVN don't help with feedback or maintenance of local changes. They can help with upgrades - but it's of little practical benefit when local changes can't be committed into the repository. I was in the process of converting my CVS repositories to SVN (it takes a long time) when I discovered the virtues of Distributed SCMs. I'm using both Git and Mercurial. Git is perhaps more powerful but Mercurial is more user-friendly. So I have halted all conversion to SVN and I'll be converting remaining repositories to Mercurial. I'll be converting most of my SVN repositories over to Mercurial too. Ultimately the only code/data remaining in SVN will be that which I particularly need to be centralised (it might end up being none at all). I have started to put some repositories of my public source code online already. The full list is available at: http://www.nick-andrew.net/hg and individual repositories which are currently online are:
2008-02-16 - Linux vsplice export fix for OpenVZ
Here's a patch which I believe solves the recent linux local root problems, for the latest stable OpenVZ kernel (2.6.18-028stab053). 2008-02-14 - OpenVZ virtualisation
To run linux guests I can highly recommend OpenVZ. It's a container system - you run only the host kernel which is modified to implement isolation between containers and each other, and the host. Processes in the containers run as processes on the host, with a container-specific root directory. The upshot of all this is that overhead is almost zero; each guest runs at almost native speed. There are various other benefits too, such as:
There are some caveats though:
Overall OpenVZ is very stable and functional. I haven't had any kernel crashes related to OpenVZ. I would like them to support newer kernels - specifically 2.6.23 and above, since there are features in 2.6.23 that I want to use. But the patch is quite extensive and so I can't really blame them for picking a version and sticking with it for a long time. OpenVZ patch developers have contributed many security and stability fixes back to Linus. One day, much of OpenVZ will be integrated into the mainline kernel. Already 2.6.24 supports PID namespaces (in which process IDs are unique to each guest, not the host) and further OpenVZ functionality will move into the mainline kernel over time. 2008-02-09 - The bank, a law unto itself
Importing my bank account history today from a CSV file exported by the bank's website, as I do every month, and the import failed. The reason was that the bank changed the dates on several transactions made from December 2007 to as early as April 2006. The dates were changed from 17th or 16th to 15th in each case. What is it about banks that they can arbitrarily change transaction dates, even 12+ months after the transaction occurs? This could have been legally problematic for me, say if I had to transfer money by a certain date (and did that) and sometime later the bank's "official" record of the transaction has changed. What has happened is that my financial records now no longer agree with those of the bank, for no good reason, and I have to adjust mine accordingly, or else there will forever be a discrepancy. 2007-03-20 - LifeView TV Walker Twin
Firmware for the LifeView TV Walker Twin (DVB-T USB digital TV receiver) can be found here at dvb-usb-tvwalkert.fw. Copy the file (without renaming it) into /usr/lib/hotplug/firmware/. This is needed to make the device work in linux. I'm working on a driver and it will be merged into the linux-dvb project repository in a few days. 2007-02-25 - pwned again!
AA 85 6A 1B A8 14 AB 99 FF DE BA 6A EF BE 1C 04 2007-02-17 - raid1 superblock version
It seems that the software raid1 superblock version 1.0 is not fully supported by linux. I created two raid1 arrays, one with a version 0.90 superblock and the other with version 1.0. During kernel boot, the md autoconfiguration found the 0.90 superblock array, but said it could not find a superblock for the other array. Furthermore, LILO refuses to install onto a raid1 array with a version 1.0 superblock. As soon as I converted it to version 0.90, LILO worked fine. Lastly, the manpage for pivot_root(2) fails to note that the system call cannot be used to move away an initramfs. I dug into the kernel source code and it's clearly noted in a comment above the function definition. 2007-02-14
09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 2006-11-09 - A tiny web template tool
It took me just one hour to write a tiny web template tool in perl which is now driving this website. The news items are now included using the following tag:
{News dir=data/news limit=10}
This instantiates the 'News' module and runs it with the supplied arguments.
The key to getting it going so quickly was that it processes the
same SHTML files which I used to use to give the site a consistent
layout. It parses the '#include' directives and runs itself
recursively on the specified filename. Thus, I was able to move the
site to the templating CGI script without changing any of the
content files. I then added the tag parser to instantiate modules
from a "Plugins" directory, and wrote a
|