GNAT is an implementation of the Ada programming language. SPARK is a restricted subset of Ada for formally verifying programs. It provide features comparable to languages like Rust and ATS. A recent article comparing SPARK to Rust caught my eye and I decided to spend some time learnig Ada and SPARK. This post just outlines installing an implementation of both,... more →
I was a fan of MUDs from my earliest introduction to computers. I remember writing to Richard Bartle when I was young asking about the possiblity of accessing MUD1 from New Zealand after having read about it in a magazine. The reply was very positive but unfortunately the cost of 300 baud modem access at international phone rates was prohibitive.... more →
rkt is a container runtime I've been using on a few projects recently. I was creating a container for Mozart which uses emacs as an IDE. This requires running an X11 application within the container and have it displayed on the host display. To get this working I needed to mount my hosts X11 unix domain socket inside the container... more →
Inferno OS ships with a version of the acme text editor. I've tried to use acme on and off for a bit and it never stuck. I've always been a vim and emacs user. Recently I watched a video by Russ Cox called A Tour of Acme that motivated me to try it again. The video is short and covers... more →
Unfortunately the server running this site had a hard drive issue which resulted in a number of corrupt files. You'll probably notice that some links to here result in a '404' error due to them being not found. I'm slowly recovering the lost data and hope to have the files restored as soon as I can. more →
Namecoin is a domain name system based on Bitcoin. It extends Bitcoin to add transactions for registering, updating and transferring names. The idea behind this is to provide an alternative to the existing DNS system where names can be taken from their owners by groups that control the DNS servers. The project was originally announced in the bitcoin forums and... more →
A few months ago I posted a short introduction to bitcoin. Since that post a number of new services using bitcoin have appeared and it has become a little easier to trade bitcoins for other currencies. If you bought bitcoins around the time of my last post you would have paid about $0.06 USD per bitcoin. The current exchange rate... more →
I recently added the ability to donate to TinyVid using bitcoins. The bitcoin website describes bitcoin as 'a peer-to-peer network based digital currency'. Bitcoins are a 'virtual' currency. There are no physical coins involved. It's very similar to virtual currency in online games where people outside the game trade it for physical money. The endpoints of a bitcoin transaction are... more →
I've stopped using Blogger for the weblog and have moved to using Jekyll. I've set things up so I can edit the posts on my local push, push to my server using git and it publishes the new post. Blogger provides a way to export all existing posts and comments as an XML file. I used this to manually import... more →
I'm still looking at the different options for tinyid to handle registration and authentication of users. My recent change added logging in using your Facebook account using Facebook Connect. Another option I'm considering is OpenID. There's a good blog post comparing the Facebook vs the OpenID stack. The same weblog has a post on using OpenID in a popup without... more →
I've been experimenting with integrating features from the social networking site Facebook into tinyvid. To do this I'm using the 'Facebook Connect' API. When you register a Facebook application you need to provide URL's to your application's site so Facebook knows where to send the user on redirects from logging in, and handle messaging between Facebook and your application. To... more →
I have a first generation Asus EEE PC (the 701 model) that I haven't really used much, mainly because I never got around to installing a more full featured Linux distribution on it than the one comes installed by default. I originally wanted it as a small portable machine to hack Factor and other languages on. Tonight I had a... more →
Al Woodshed, author of the Ukulele Hunt website, has written an e-book on How to play Blues Ukulele. This is a great book, over 70 pages, and includes many MP3 files playing the examples from the book. Al goes into good depth covering different styles and techniques. It's the most practical book on playing blues that I've read let alone... more →
There seems to be a bit of a revival in the Ukulele lately. The mainstream press has been picking up articles on it. The San Francisco Chronicle recently had a great article about the 'Jumping Flea' as well. YouTube has a lot of ukulele related content. Browsing through there you'll see lots of different Ukulele styles. Some of my favorite... more →
New Zealand's first ukulele festival is being held this weekend in Auckland. kiwiukulele.com has the details. It features international & local artists: more →
Robert O'Callahan's recent post about ownership types, stack allocation and abstraction penalties has a comment pointing to the Cyclone programming language. This is an interesting looking language in that it has many of the properties of C which make it popular for system level development: more →
I'm at the SuperHappyDevHouse Aotearoa hackathon in Wellington at The Cross. Free food, free coffee, lots of people and lots of hacking going on. Hopefully by the end of today I'll have the video tag implementation a bit further along. There's a Flickr stream of photo's under the tag shdhnz. more →
Mike Riversdale has some photo's from the Thursday lunchtime event where the Wellington International Ukulele Orchestra played in Wellington. I'm a big Ukulele fan personally. Some neat sites for Ukulele information: more →
Zimbra is an open source email server. It does email, calendar, contacts, and various other useful things that software like Microsoft Exchange does. Zimbra has some very nice web based tools that make it operate very much like a desktop application. Some screenshots from Wild Bill's blogdom are here. Zimbra is open source. They have a commercial version with extra... more →
Following on from my earlier post about installing Zimbra, I wanted to setup a development environment so I could work on the source code. My development system is currently a Windows XP machine and I documented the steps I went through in this article: Zimbra Development with Eclipse. Now I can use Eclipse to edit the code and deploy it... more →
As those that hang out in #concatenative know I've been playing online poker recently. After a slow start and a bit of book study I started winning some multi table tournaments and doing fairly well. I made more in poker in the last two weeks than I do at my job which is pretty neat. Actually that says more about... more →
The Alice programming language has some nice concurrency features to facilitate dataflow programming. Futures and Promises allow performing computations and having threads block waiting for the results of those computations in an safe, predictable manner. There have been discussions in the Narrative Javascript group about how to implement this sort of functionality on the browser client side. Given client side... more →
One of the advantages (and pretty much the only one) of being down with the flu recently is I've been able to hack away at Factor code, like the serialization library mentioned previously. I've just added simple distributed message passing support to the concurrency library. Processes now belong to 'nodes'. These are individual Factor instances running on a machine. Messages... more →
I'm working on a new web framework for Factor. My plan is to have web applications built as a collection of concurrent processes running on the server and the client browser. Processes on the server can send messages to the browser (using a 'comet' style connection) and vice versa. Client processes are implemented using the lightweight concurrency system I built... more →
On the Scala wiki there is an implementation of futures, promises and lazy evaluation modelled after the same features in the Alice programming language. Implemented as a library, without changes to the Scala implementation, it seems quite seamless. After importing the library you can create futures, etc quite easily. The examples below use this definition of the fibonacci function: object... more →
The Scala programming language has been getting a bit of attention on Lambda the Ultimate lately. One paper in particular interested me, covering the implementation of a lightweight concurrency model in Scala. Scala compiles to JVM bytecode (and apparently there is a version that compiles to .NET as well). The paper describes implementing an Erlang style concurrency system within the... more →
The Unenterprisey Languages Meeting held in Wellington yesterday went very well. The turnout was good with about 16 people there and the talks by Jonathan, Robert and Geoff were great. It's good to see and hear about languages like Io, Common Lisp and Erlang being used. Jonathan talked about Io's prototype based OO system and how inheritance works in it.... more →
I like the idea of writing device drivers and operating system components in other languages, as mentioned in a previous post about Haskell and Minix. I installed Minix 3 and ran it under qemu to try it out. It's very functional but doesn't have much in the way of software or 'nice to have' features yet. But the source is... more →
The Mt Vic Dojo is having an open day on Sunday 11th June. The day includes demonstrations, free classes, t-shirts and discounts to be won. All the styles that hve their home at the Mt Vic Dojo will be there. These being: more →
I arrived back in Wellington this morning. Melbourne's weather was just taking a turn for the worse so it looked like a good time to leave. That and I'd managed to complete enough of the project I was working on not to be there full time. Wellington's weather is not looking much better though! Hopefully I can now churn through... more →
The Ajax Experience conference has been very interesting so far. Lots of great talks and technologies. I'll post more on that later when I get some free moments. The plan after that was for me to fly back to NZ on Saturday night, arriving in Auckland on Monday morning, then from there back to Wellington. Unfortunately I now need to... more →
I'm flying out to San Francisco tomorrow to stay a week. I arrive on the 7th of May and leave on the 13th and will be at the Ajax Experience conference while I'm there. It's my first time in the US and I'm looking forward to it! more →
Jack Dempsey was a famous boxer early in the 20th century. Today I got in the mail a DVD on Jack Dempsey's style of boxing made available by Kirk Lawson on rec.martial-arts. The DVD is a garage training session led by Ken Pfrenger, a western martial arts instructor. Ken's 'western martial arts' interest covers early bare knuckle boxing, Irish Collar... more →
I stumbled across ZoomIn today which is a New Zealand map site with lots of interesting features. You can search with street addresses and get maps of pretty much all of New Zealand and explore via a Google Maps like interface. Included are optional aerial photographs of many of the regions. I like the way it uses Ajax to narrow... more →
With a group of fellow martial artists I've been working on training Rodney King's Crazy Monkey standup fighting method and have been finding it very useful. Rodney King is the creator of a fighting method known as as 'Crazy Monkey' or non attribute based boxing. The approach CM takes is to teach a primarily defence based system so that a... more →
Remember the Blackdog? A small linux server that fits in the palm of your hand, automatically turning on when plugged into the usb port of a host machine. Realm Systems, the makers of the Blackdog, held a competition for people to implement innovative ways of using the device with a grand prize of $50,000. The winner was recently announced: more →
Blogger doesn't support categories so I use del.icio.us for this purpose. Everytime I post I add the categories text at the bottom of the post and when its published I add it to my del.icio.us tags. Up until now I haven't been able to have a list of categories but I've just noticed that del.icio.us has a nifty tagroll so... more →
Is it possible to operate on only 90 minutes of sleep a day? Polyphasic Sleeping involves taking multiple naps per day, of about 30 minutes in length, instead of one long 8 hour sleep period. The theory is your body adapts to the shorter sleep cycles and ensures REM sleep kicks in earlier. It's the REM period of sleep that... more →
I'm on a break from work over Christmas/New Year so decided to so some more family tree research. It's a subject I got interested in about a year ago when I started my Pitcairn Island news weblog and wanted to find more about my Pitcairn ancestry. Lately I've had some luck tracking down some UK ancestors so I decided to... more →
It looks like del.icio.us is down and have been for most of the day. As a result my category links aren't working. Once it comes back up again things should be fine. more →
Not counting the recent seminar, tonight was my first time back grappling in the non-fundamentals class for a while. You know you've been away too long when people look at you and seem amazed that you're actually there! It's interesting what you notice when you come back from a break. The first, sitting at a desk programming has done nothing... more →
Around 1977 I started Kempo Bushido Ryu, a style of Karate, when I was aged about seven. The subject of Kempo came up on a forum I frequent recently so I thought I'd embarrass myself by posting a couple of 'home movies' of me doing kata from back then: more →
I've decided to move from my old Radio Userland weblog and try out a blogger weblog hosted under my own domain. I've been using mostly Linux for the last few years and it's just too painful running Radio Userland under Wine. more →
I recently got a Blackdog device to try some ideas out. The Blackdog is a very small Linux server with no screen or keyboard. You plug it into a PC via USB and it emulates a USB CD device. The host machine then autorun's this CD. If the host is a Windows machine it starts an X client. If it's... more →