click here for my current blog

this blog is no longer maintained and is here only for archival purposes

Archive for the 'Tech' Category

Go at Google

Sunday, May 2nd, 2010

Late last year I interviewed at Google. It was an interesting experience which, at first, I took kind of whimsically. As the hiring process progressed, I began to realise that I might have actually be in. On Christmas Eve I was told I’d be receiving an offer, and by early January I had given notice at my previous workplace.

The job I took was Developer Programs Engineer for the Go team. Go (see golang.org) is a new, experimental programming language by a team led by Rob Pike at Google in Mountain View. Being a DPE is basically about being an engineer in service of developers, both inside and outside Google. My primary goal is to make life better for developers interested in Go; to improve the language’s tools, infrastructure, libraries, and documentation, and build the community. Needless to say, I have my work cut out for me.

Go is a really interesting and exciting language. At first glance, it doesn’t appear to offer anything particularly new. Its expressive concurrency primitives (goroutines and channels) are its most eye-catching features, but other languages have done these things before (among them is Newsqueak, for which Rob was also responsible). What excites me most about Go is the care and taste with which it has been crafted. The spec is short, comprehensible, and – most importantly – consistent. Its design addresses the issues of real programmers in a pragmatic way; it is a joy to use.

Recently, I’ve been coding almost exclusively in Go (although I have been using Python for godashboard). The more I use it, the better I like it. In addition to the code I’ve contributed to the Go project, I’ve put a couple of small things up on my github page. There should be some more interesting stuff there over the next couple of months as my productivity picks up.

I started at Google on the 1st of February, I’ve now been there 3 months. I’ve learned a huge amount in that time. It’s taken a while, but I’m now just starting to feel comfortable in my role. It is an amazing privilege to be part of such a star-studded team at a truly extraordinary company. Beyond my small team, the other engineers at Google are – unsurprisingly – the best I’ve ever worked with. (Many of them have quickly become my friends.) There is a wonderful culture of directness, openness, and co-operation which enables some incredible engineering at unprecedented scale. It is both inspiring and humbling to be a part of it.

If you’re interested in learning Go, then have a look at the Go Tutorial as well as the “Writing Web Applications” code lab I recently published.

New work showing at Kudos Gallery

Thursday, November 26th, 2009

For the next two weeks you can see some of my new work at Kudos Gallery, as an auxiliary to the COFA Annual 2009. It’s a group show, exhibiting the work created by participants in the Porosity Studio this semester. My work is a piece about Shanghai, a computer program written for the in Z80 assembly for the ZX Spectrum 48k. Essentially it is an image slide show, with some simple transitions. The challenging parts were the conversion of the images to something that looks half-decent through the Spectrum’s limited colour palette, and compressing the image data to fit in the ~32k of usable RAM.

I was chuffed to actually install my Speccy in a gallery setting. It really is a beautiful machine, and one which is relatively unknown in Australia (in contrast to its contemporary, the Commodore 64). It’s concerning that a power interruption might cause the program to be lost from memory, and force me to come back in to re-load it from “tape” (ie, a DOS program that emulates a tape), but I think this volatility is part of the charm of the project.

If you’re interested, head down to Napier St in Paddington and check it out. Once the show has closed I will post some documentation and a TAP image of the program so that you may run it in an emulator, or on a real Speccy if you are lucky enough to own one. =)

Syntax Party 2009

Thursday, November 26th, 2009

A few weeks ago I flew down to Melbourne to participate in Syntax Party 2009, Australia’s largest demoparty. I brought my ZX Spectrum down, and – on the day – hacked together a little demo in Z80 assembly just in time for the competition. It was a simple cellular-automata-style fire effect in a little over 128 bytes, and placed 6th in the Old-School Competition against some truly excellent entries. In fact, there were 10 old-school prods, and only 2 new-school demos. Clearly the retro scene is alive an well in Australia. =)

(Click the screenshot to download the source and TAP image.)

Amusing antics ensued when it was discovered my MacBook can’t output an audio signal loud enough for the Spectrum to demodulate. Firstly, to prove that the demo worked, darkmoon and I painstakingly typed each of the 139 bytes into the machine as decimal DATA lines in a BASIC program. (Incidentally, the BASIC environment on the Spectrum is quite excellent, if slow.) alhazan took a video of us getting it running; it was quite an emotional moment.

When it was time to get it shown on the big screen, one of the party organisers (an4ki rob) was kind enough to lend me his little Behringer mixer so that I could boost the audio signal from my MacBook to successfully load the prod via tape emulation. After some tweaking of levels, it worked splendidly. But then, when it came time to show the product during the competition, disaster struck:

Huge thanks to the organisers and participants of Syntax. It was a great day! For next year I hope to produce a new-school demo with some friends, and a proper Spectrum demo (full-length, with music) of my own.

Updated Projects Page

Friday, August 28th, 2009

I’ve updated my projects page, with a lot of stuff I’ve done in the past year or so. Most recently released is flickr-rip: a suite of Python scripts that export photos from Flickr and store their metadata in a MySQL database.

The projects page is now the default landing page for nf.wh3rd.net. I am going to replace this WordPress blog with something bespoke, but for now (and until I have time to write some things) the blog will stay here as-is. I will attempt to preserve the RSS feed and old articles when  I make the transition.

twexpire v0.2

Saturday, January 31st, 2009

Announcing twexpire version 0.2. This new release includes two major updates:

  • Support for pruning sent and received DMs, and
  • Unicode support.

I also rewrote a large chunk of it, making it generally a bit nicer. Enjoy.

GBA Development: Phase 1

Thursday, December 11th, 2008

Christmas season has arrived, and with it gift ideas. Ava was begging us for a Nintendo DS. And if you know me, you know you don’t have to ask me twice to buy a new gadget. They’re surprisingly affordable, so much so that I half considered buying one myself.

What stopped me, though, was that I still have a previous-generation Gameboy Advance (which the DS is backwards-compatible with). This realisation, coupled with my recent hankering to do some low-level coding, resulted in me reading up on GBA development. It’s surprisingly straightforward, and, as the platform has been around for quite a while, there is a lot of good documentation out there.

GBA Development

The results of a couple of hours work this morning were: a basic working knowledge of the GBA platform, a functional development environment, and my first functioning ROM image. It’s a simple thing: it displays the two photographs I recently showed at the COFA Annual (and won a prize for!). Press A and you see Botany Industrial Park Study #1, press B and you get Study #2. Neat-o.

I hope to put together a small game. Hopefully this won’t just peter out into yet another unfinished side project. (”This time for sure!”)

It’s meme time again

Friday, November 14th, 2008

Infected by Jonathan Oxer, this time.

  • Grab the nearest book.
  • Open it to page 56.
  • Find the fifth sentence.
  • Post the text of the sentence in your journal along with these instructions.
  • Don’t dig for your favorite book, the cool book, or the intellectual one: pick the CLOSEST.

My book? If on a winter’s night a traveller by Italo Calvino. The quote:

“I felt a kind of vertigo, as if I were merely plunging from one world to another, and in each I arrived shortly after the end of the world had taken place.”

It’s a great book!

Projects section, twexpire

Thursday, September 18th, 2008

A few days ago I wrote a Python script to cull old entries from my Twitter timeline. I have now released it: It’s called twexpire. It is linked from my new projects page.

Me, now

Thursday, September 18th, 2008

Because dichro told me to.

Instructions:
Take a picture of yourself right now.
Don’t change your clothes, don’t fix your hair – just take a picture.
Post that picture with NO editing.
Post these instructions with the picture. 

Most boring blog post ever.

Bleep and Squarepusher lead the way in music online

Tuesday, September 16th, 2008

Warp Records has just released the latest Squarepusher album through their award-winning mp3 store, Bleep. (click this link to go straight to the album) Warp have been releasing their artists’ music in this way for years, but this is the first mp3 release I’ve bought that felt like more than just a rip of a CD, for these reasons:

  • It’s been released in this format well in advance of the CD/Vinyl releases (which are due on October 27th),
  • The package contains a beautifully produced four-page PDF in traditional “album sleeve” style (complete with Squarepusher’s little story as to how he came to produce the album),
  • Each of the (320kbit, DRM-free) mp3s contains its own unique variation on the cover art (as the album plays on my iPhone I can see the visual progression).

With a package like this, I feel as if I’m getting a well formed product,as opposed to an afterthought. The album stands out amongst the others on my mp3 player like a shiny, perfectly formed jewel. If other record companies would put this much care into their mp3 releases, I would spend a great deal more on music online.

Again, kudos to Bleep’s ordering system. It makes purchasing music just as easy as pirating it. I did actually download the album via a BitTorrent community before purchasing it through Bleep. The only advantage there was the sustained download rate of 1mb/sec, about 10x faster than Bleep’s apparent 100kb/sec limit. I’m not sure why they do that, and it can be frustrating when you’ve bought a few albums at once and have to wait an hour for them to download. The faster I get the product, the more satisfied I will be with my purchase. Perhaps it’s a legacy decision from when they launched the store in 2004. 4 years later, our pipes are fatter and bandwidth is cheaper than ever. Fix the speed issues, Bleep, and you’re likely to get more custom from me.

As for the cover art variations for each track, I can’t help but think how fitting this would be for Aphex Twin’s Selected Ambient Works Volume II which uses photographs in place of track names in the liner notes. I’ll have to get my copy scanned sometime. (Or perhaps Warp will do it and re-release it through Bleep, and I’ll buy the album again out of sheer laziness.)

Oh, yeah, and as for the actual music: Not bad. There’s a couple of stormers on there. It has the “live” instrumentation of his Hard Normal Daddy-era work with the production of Ultravisitor and Hello Everything. I’m sure it’ll grow on me.