JavaOne, speaking, meetup

# 2008-05-05 10:55:45 -0400 | General / Java | No Comments

It is JavaOne time again, and I arrived in San Francisco this morning. I’m finally getting used to the 13 hour flight from Sydney to SF. I don’t know if that is a good thing.

It is going to be a busy year this year. Some highlights below. If you are in San Francisco note that the Lightning Talks and Javabloggers meetup are tomorrow.

Community One (Monday)

We are running a Lightning Talk session at Community One (12noon I think). I’m one of the speakers, my title is “You suck at webapps” (or will be if I can finish it between now and then). It should be fun. Be there, or … be one of the less square people in SF at the moment.

Javabloggers meetup (Monday night)

Atlassian is sponsoring the Javabloggers meetup at Thirsty Bear downtown San Francisco after CommunityOne. Free beer from 7:30pm proudly sponsored by Atlassian.

Pimp Your Build (Thursday TS-5596)

Conor and I are speaking at JavaOne on Thursday 4:10pm. “Pimp My Build: 10 Ways to Make Your Build Rock”. Come along, you’ll learn a little, cry a little, and come away feeling full of hope.

Atlassian Booth (Pavillion)

I’ll be at the Atlassian booth, come say hello, watch a demo and get an awesome t-shirt.

Escape velocity is cool

# 2008-04-03 20:44:47 -0400 | General | No Comments

Check out this sequence of images of a NASA shuttle being prepared for a mission. Space is still cool. (Via boing boing.)

Got a Jolt!

# 2008-03-07 21:11:50 -0500 | General / Java | 1 Comment

FishEye and Clover won Jolt awards this year! FishEye in the “Change and Configuration Management” category and Clover in the “Testing Tools” category.

They are “the Oscars of our industry” which — for better or for worse — is about right. But I still I have a fondness for the Jolt awards. The first time I saw the awards in Dr Dobbs Journal, I remember thinking how nice it was that this caffeinated beverage company targets us sleep-deprived code monkeys, and gets us enough to award us for our deeds. And fondness for the Jolt awards certainly has something to do with my fondness for Dr Dobbs Journal.

I’ve poured a lot of code into FishEye over the years. And we are still working quite hard at improving it, so it is sometimes hard to keep at the top of the stack the fact that a lot of people use it and think it is awesome. When non-nerds ask me what I do I give a standard response of “I develop tools for other software developers”, which most people seem to grok reasonably easily. This response took me a few years to refine and means such lines of conversation quickly get to the point where a change of subject is needed (to the relief of both parties). Conversations with other nerds run a little different. We can either be rather evasive, or overly detailed — seeing a fellow nerd’s face gloss over is a bad sign. It is a balancing act that I don’t always get right. But now, if someone’s curiosity matches my current grandiosity, I might just say:

I’ve won a Jolt.

From yay to nay in 16 minutes

# 2008-01-30 22:21:56 -0500 | General / Java | No Comments

Via the teaparty:

10:49:42 PM spud: it’s finally being pooped out http://paulgraham.com/arc0.html
10:52:58 PM michael: @spud: gentlemen, start your parentheses!
10:59:10 PM spud: “Arc only supports Ascii. I realize that supporting only Ascii is uninternational to a point that’s almost offensive … But the kind of people who would be offended by that wouldn’t like Arc anyway.” Well, now I don’t like it… shesh!
11:00:23 PM adrian: Ewwww.
11:00:37 PM conor: too full of himself
11:00:49 PM spud: that’s paul g all over
11:01:11 PM spud: I like the direction erlang went, it doesn’t have a char type, just uses lists of ints
11:01:17 PM conor: probably only 7bit ASCII
11:01:27 PM * adrian likes the name Erlang.
11:01:39 PM conor: Having done traffic engineering, I find it difficult to use a language called Erlang
11:01:48 PM spud: ?
11:02:10 PM adrian: Erlang is the unit of measurement of telecommunications traffic.
11:03:28 PM adrian: 1 erlang = 100% occupancy
11:02:57 PM spud: wow didn’t know that
11:03:07 PM michael: so it’s for stupid mono-lingual programmers writing software for other stupid mono-lingual programmers without funny accents in their names? please!
11:03:57 PM spud: I’ll wait for Erlang 2.0 then
11:04:02 PM peter: Riley (read any 2 yearold) = 2 erlang
11:04:09 PM conor: I’m a .5 Erlang developer
11:04:11 PM spud: @peter lol
11:05:49 PM spud: meh fuck lisp
11:06:18 PM spud: that took 16 mins

JavaPolis 07

# 2007-12-07 12:47:40 -0500 | General / Java | No Comments

So I’m off to JavaPolis 07. If you — my trusted readers — are going to be there, drop me a line or pop in to the Atlassian booth and say hello.

How I manage my Wordpress

# 2007-11-27 21:39:57 -0500 | General | 1 Comment

Apparently, Wordpress is famous for its 5 minute install procedure, and claims upgrading Wordpress is even easiier. And to be fair, it is a reasonably straightforward three (four?) steps:

  • Step 0: Before You Get Started: Backup and deactivate plugins.
  • Step 1: Replace WordPress files: Extract the new tarball over your existing installation. With special notes about what files you need to be careful to preserve.
  • Step 2: Upgrade your installation: Hit your wp-admin/upgrade.php URL, which nicely upgrades your DB.
  • Step 3: Do something nice for yourself.

My problem is I’m always, always recalcitrant in upgrading Wordpress, because I cannot help but shirk at Step 1. Have I preserved the correct files (I have a whole lot of custom static content that sits alongside Wordpress)? Did I make any changes anywhere that I need to keep (I once change a core Wordpress file to work around a bug)? How do I even tell if I’ve accidentally overwritten the wrong file? And at about this stage it gets thrown into the too-hard basket, to be retried next weekend.

But not anymore!

Thanks to funionfs I no longer have first-step fear. And while some of you may think that fiddling with /etc/fstab and yum is a level of complexity well beyond Step 1, I can honestly say that this is what I consider an elegant solution.

funionfs

funionfs is a union filesystem, and sits on top of FUSE (Filesystems in Userspace).

A union filesystem is something I’ve pondered the existence of before (and trust Ivan to know exactly what I wanted). They allow you to fold up a set of separate directory trees and have them appear as one. One of the directories is usually read-write (with copy-on-write), while the others are read-only.

I recently moved madbean.com to a new FC8 box, and low and behold — sudo yum install funionfs just worked!

What’s in my docroot?

I have a reasonable chunk of static content (images, flash animations, software archives, etc) that I keep in a Subversion repository and deploy to this website via rsync. This content existed before I started using Wordpress, and will exist if I ever stop using Wordpress, so it is not appropriate content for Wordpress to own.

I have Wordpress, which is a whole bunch of .php and what-not.

I have my all my files that sit on top of Wordpress. My wp-config.php config file, the .htaccess file that Wordpress generates so my URLs look cool, some plugins and my theme. It is these files that cause my Step 1 fears. (And in fact, these fears prevent me from making some much needed changes to my theme, too).

All these files, with their different sources and different life-cycles used to be clumped into the one scary directory.

What’s where now?

Now, I have three different directories:

  • /home/matt/madbean.com/static: My rsync-ed static content.
  • /home/matt/madbean.com/wordpress-2.1-orig: An extracted wordpress-2.1.tar.gz with no modifications.
  • /home/matt/madbean.com/wp_data: my Wordpress config, plugins, themes, etc.
  • /home/matt/madbean.com/wordpress_all: An empty directory.

After a bit of fiddling with funionfs options, I settled on a mount like this:

sudo funionfs -o dirs=\
/home/matt/madbean.com/wordpress-2.1-orig=RO:\
/home/matt/madbean.com/static=RO:\
/home/matt/madbean.com/wp_data=RW:\
 NONE /home/matt/madbean.com/wordpress_all

After running that, wordpress_all contains exactly what Wordpress wants to see: a big mishmash. Any writes Wordpress makes (e.g. to configuration or .htaccess) get written through to wp_data. Each time I rsync my static content to static it is automatically visible in wordpress_all. And as you will see below, upgrading is a scream.

To ensure this union mount exists next time the box reboots, I converted the above funionfs instruction into an /etc/fstab entry:

funionfs#/home/matt/madbean.com/wp_data /home/matt/madbean.com/wordpress_all fuse rw,nosuid,nodev,allow_other,dirs=/home/matt/madbean.com/wordpress-2.3.1=RO:/home/matt/madbean.com/static=RO 0 0

Upgrading

Having set that up, it was now time to finally upgrade from Wordpress 2.1. This is what it looked like:

$ cd ~/madbean.com
$ wget http://wordpress.org/wordpress-2.3.1.tar.gz
$ tar fvxz wordpress-2.3.1.tar.gz 
$ mv wordpress wordpress-2.3.1
$ sudo vi /etc/fstab
$ # change the line to refer to wordpress-2.3.1 instead of wordpress-2.1
$ sudo umount /home/matt/madbean.com/wordpress_all
$ sudo mount funionfs#/home/matt/madbean.com/wp_data
$ sudo /etc/init.d/httpd graceful   # for good measure
$ # hit upgrade.pgp in my browser

Do you know how happy that made me?

Next steps

I’m thinking of making the static and wp_data directories Subversion workspaces (checked out directories). I can then version control my Wordpress config. And by being able to remotely edit my theme and check it in (and check it out on a test Wordpress server) I’m finally likely to make some changes.

On Balance

# 2007-11-21 22:46:12 -0500 | General | 3 Comments

There used to be an SBS program that aired late Saturday nights called Eat Carpet (on wayback). It featured a handful of short films each week and was standard viewing for me for quite a few years after I finished Uni.

I don’t know exactly when it was, but it was on Eat Carpet that I saw the best animated short I had ever, and still have ever, seen. After that I would often watch Eat Carpet just on the hope they would show it again. The animation itself was good — the movement, sound and mood where all perfectly matched — but I think it stuck in my mind mostly because of its poignant comment on the human condition.

For some reason that animation popped into my head today, so it was time to stretch my Google-search skills and see if I could find it. The combo of “short film animated four men box” finally did it. Which is lucky because it turns out it contain five men, not four.

The film is called “Balance” (Wikipedia, IMDb), and actually won the Oscar for Best Animated Short in 1989.

Good old internet. And on You Tube too, so without further ado:

Talking nerdy

# 2007-11-13 15:53:11 -0500 | General / Java | 2 Comments

So, as I said 3 months ago, I’m now at Atlassian. I couldn’t imagine a workplace more compatible with the old Cenqua lifestyle. I mean, we had a DnD group up and running in the first few weeks!

Atlassian has a rich and vibrant technical culture — the internal blogs are pure bliss. And there is always room for a bit of fun, which lead to the following little video blog:

Talking Nerdy

(Apologies if the sound is a little off. It’s not too bad considering it was all done with the movie-mode on my digital camera.)

Temporary Service Interruption

# 2007-11-13 09:28:49 -0500 | General | No Comments

Once again, I forgot to renew my DNS hosting this year, so apologies to any problems that caused. It’s not like my DNS hosting provider didn’t send me enough warning emails (actually they rock) — I just didn’t read them.

This time I renewed for 5 years, so you won’t experience this problem again until late 2012.

The Pharyngula mutating genre meme

# 2007-10-09 22:39:21 -0400 | General | 1 Comment

My parent is PZ Myers.

1) The best time travel novel in SF/Fantasy is…

Dirk Gently’s Holistic Detective Agency, by Douglas Adams.

2) The best romantic movie in historical fiction is…

Erik the Viking.

3) The best nerd song in rock is…

Code Monkey, by Jonathan Coulton.


The Pharyngula mutating genre meme

There are a set of questions above that are all of the form, “The best [subgenre] [medium] in [genre] is…”. Copy the questions, and before answering them, you may modify them in a limited way, carrying out no more than two of these operations:

  • You can leave them exactly as is.

  • You can delete any one question.

  • You can mutate either the genre, medium, or subgenre of any one question. For instance, you could change “The best time travel novel in SF/Fantasy is…” to “The best time travel novel in Westerns is…”, or “The best time travel movie in SF/Fantasy is…”, or “The best romance novel in SF/Fantasy is…”.

  • You can add a completely new question of your choice to the end of the list, as long as it is still in the form “The best [subgenre] [medium] in [genre] is…”.

You must have at least one question in your set, or you’ve gone extinct, and you must be able to answer it yourself, or you’re not viable.

Then answer your possibly mutant set of questions. Please do include a link back to the blog you got them from, to simplify tracing the ancestry, and include these instructions.

Finally, pass it along to any number of your fellow bloggers. Remember, though, your success as a Darwinian replicator is going to be measured by the propagation of your variants, which is going to be a function of both the interest your well-honed questions generate and the number of successful attempts at reproducing them.