Recent conferences

November 25th, 2012

Over the last few months I have been to conferences to talk about what I’ve been doing the last year and a half (which is working on Grace; more below).

A large cactus

Most recently I was at SPLASH in Tucson, Arizona last month, presenting “Patterns as Objects in Grace“, and also an author on “Grace: The Absence of (Inessential) Difficulty“. Major takeaways from the location were that Arizona is orange and that I really didn’t appreciate the scale of cactus (pictured). I think the presentation went well and there was some interesting discussion sparked from it.

Before that I was a last-minute fill-in at Strange Loop in St Louis in September, talking about Grace in general at the Emerging Languages Camp. There will be a video of my talk available, apparently on February 25. I don’t have any pictures from St Louis because basically the whole time I was there was occupied by the conference itself, but I did go past the Gateway Arch on the way from the airport — it is bigger than I expected. Strange Loop was a great conference full of interesting sessions, and really well organised. I highly recommend it to anyone who gets the opportunity. It’s a shame it’s so far away and I probably won’t get to go there again.

Beijing Olympic Stadium

Even further back in June I was at ECOOP/PLDI in Beijing, presenting at STOP but mostly just attending. There were some interesting sessions there as well. I didn’t get to do much tourism while I was there, but I did get to the nearby Olympic stadium. It was an interesting location for the European Conference on Object-Oriented Programming, and one I probably wouldn’t have been to otherwise

Although there was value in all of these conferences I am glad to be back home for the foreseeable future. What I’ve been talking about at them is my work with Grace, a new object-oriented language aimed at education, and especially my work on implementing the language in my Minigrace compiler. The compiler is available both in tarball form and on Github, and should work on any POSIX-compatible system (including Cygwin and Mac OS X). It includes all the pattern-matching work I talked about as well as most of the rest of the language. It’s all at the experimental stage still, but it is complete enough to compile itself and a variety of other programs, though it doesn’t always do quite what you want. There’s also an online client-side frontend compiling to JavaScript, which actually runs the same source code as the native compiler. I’m still working on developing, extending, and writing about the compiler as part of my PhD research at Victoria University of Wellington.

Election visualisation

November 27th, 2011

I have hacked up a booth-by-booth visualisation of votes in Wellington Central. The visible (non-occluded) area of each circle is proportionate to the party vote received, and the circles proceed inwards from most votes. It only shows the top three five parties at each booth at the moment (from skimming over the data, further down than that they become negligibly small). It’s not really as interesting as I’d hoped, but I may try it on other electorates that might show something better later on.

Update: I’ve extended it to the top five, rather than three, parties, and it gets a little more interesting then. The fifth-place party varies quite a bit.

Update 2: More electorates:

Announcing retail – tail with regular expressions

November 26th, 2011

I have broken down and implemented my own tail command. retail can output that part of a file (or pipe) following the last match of a regular expression, which can be useful for logfiles and various other kinds of data. It is also a fully compliant implementation of the POSIX.1-2008 tail command, so you can theoretically replace your system tail with it.

The driving use case of this for me is log files – I want to get all of the file after the current occurrence of some event. After establishing that I couldn’t do that with sed, and that although I probably could with awk it would be a bad idea, I set about writing this in C. It does exactly what I want, and I’ve also been over the POSIX tail spec to add everything from that as well, so it is a usable tail command.

The code is on GitHub (for the moment at least), accessible with `git clone git://`, or in an automatic tarball . Although it satisfies my original use-case there are a couple of additions I’d still like to make along with efficiency improvements, and, of course – patches welcome.

Some usage examples:

retail -r Beginning logfile.log

Output everything after the last occurrence of “Beginning” in the file.

retail -r Beginning -u 'succeeded|error' -f logfile.log

Same as the last one, and continue reading as any lines are appended until one matches /succeeded|error/ (i.e., it contains either of those words), and then terminate.

retail -n +10

Start printing at line 10, until the end of the file. Just like in regular tail. Negative numbers, bare [-+]N, and -c work too.

Once more, retail.

LCA video

October 22nd, 2010

The video from my GoboLinux talk at earlier this year is finally up. I can’t watch (too many claps), but it’s there for anybody else who wants.

The /System/Aliens talk from the Distro Summit is still missing in action. I’m not sure whether it’s coming or not, but it’s looking unlikely at this point.

LaTeX symbol classifier

May 29th, 2010

This is pretty neat: a tool that lets you draw symbols and tells you the LaTeX name for them. Much easier than searching through the symbol listing.

Scripts 2.10.2 and Compile 1.13.3 released

April 27th, 2010

More releases, all bugfixes this time.

Scripts has a fix for the man directory path in PrepareProgram (actually used by Compile), and handles dependency conversion better. It also includes updates to the database used by the CommandNotFound system as usual.

The only notable behaviour change is a special case in the useflag code: having -INSTALLED in the environment variable will now disable automatic flags from occurring at all, rather than applying the change at the end of the process. This helps debugging of recipes and is useful for targeted compilation, and the previous more consistent behaviour doesn’t seem to have a use case.

Compile has a single direct bugfix, affecting a case where a failed direct dependency would not cause the build process to terminate. It also benefits from the changes made within Scripts.

The packages are on the master now and will propagate to the mirrors shortly. You can use `InstallPackage Scripts 2.10.2` and `InstallPackage Compile 1.13.3` to install them. Please report any bugs you encounter in the bug tracker and request help either on the mailing lists or the forums.

Thanks to all those who contributed to this release, particularly “Baffo32” who sent patches to Scripts. is proudly powered by WordPress
Entries (RSS) and Comments (RSS).