FOSDEM 2009: Day 1

Day 1 of FOSDEM was great fun, and exhausting! I managed to attend the following sessions:

  • Keynote: Mark Surman, Mozilla: Free, Open, Future?
    My favourite keynote of the day. Mark looked at FOSS philosophically, and asked the questions: “what next?” and “how far can free and open source software go?”. He touched on the values of FOSS (study, copy, modify, share) and how it’s shifted the market and changed our world. He predicted the next major development in FOSS as being the mobile platform, and asked “what do we need to do in order to make the mobile platform free and open?”
  • Keynote: Bdale Garbee, Debian
    Bdale gave us a run-down of Debian’s history and the project’s values. The most memorable thing I took from this talk was “never understand the value of values”. He showed us how the Debian project has a very strong community of developers open doors that welcome new contributors, and that it works well because of the clear values the project has (shown in it’s Social Contract to the free software community).
  • XMPP: “PubSub and the Web” by Nathan Fritz and “Integrating XMPP into Web Technologies” by Jack Moffitt.”
    Nathan talked about how his company uses XMPP to power their social networking site, and Nathan shows us through Strophe.js, his extremely robust and optimised XMPP client written 100% in JavaScript.
  • Bazaar: “Why you should use Bazaar for maintaining your OSS project” by Lenz Grimmer
    Lenz works for MySQL (Sun) and explains the reasons why they switched to Bazaar as their VCS last year (finally, a chance to escape the git hype).
  • PostgreSQL: “What’s coming in PostgreSQL 8.4″ by Magnus Hagander, and easily the most interesting session of the day: “Replication, replication, replication” by Simon Riggs.
    There are a lot of fantastic new features coming in PostgreSQL 8.4. I just have to talk about this some more. Some of the changes include:

    • max_fsm_pages and max_fsm_relations are gone! (in favour of dynamic sizing)
    • Improved visibility map. Partial VACUUMs.
    • Parallel restore with multi-threaded pg_restore (multiple connections to the database using multiple cores).
    • Improved pg_stat statistics, useful for debugging applications: pg_stat_user can count the number of calls to functions. pg_stat_statements will now show you the most used statements, include time spent, how many rows returned etc. auto_explain will automatically log query plan slow queries.
    • SSL completely rewritten. Changes to authentication and pg_hba, now with SSL certificate authentication.
    • And most exciting for me: “hot standby” – replication with reads to the slave (may make it in 8.4)

    The replication talk was amazing; it went into a lot of technical detail. Simon took us through streaming replication (which unfortunately won’t make it into 8.4 – it’s around a year away, according to him) and then hot standby.

    Definitely looking forward to seeing this one.

  • Finally, Augeas from RaphaĆ«l Pinson
    A talk delivered from an Ubuntu developer in the Fedora/CentOS room on Augeas, the configuration file parser written for Fedora! This one interested me as I’m particularly keen to start using it with Puppet.

Ouf!

Looking forward to tomorrow!

FOSDEM 2009

Brussels, BelgiumNext week I’ll be heading off to Brussels to attend FOSDEM 2009.

I’m excited to be able to make it to such a popular event like this. I would have claimed that my old home town would never host any distinguished geek events, however, Hobart recently just hosted Linux.conf.au (which I unfortunately missed out on since I’m on the other side of the world).

This year at FOSDEM I’m particularly eager to attend talks on:

I’m also looking forward to seeing some small snippets of Brussels, as it’ll be one of the rare occasions where I actually leave the house on the weekend, and the first time I’ve left London since I arrived here.

Bring on the Belgian beer!

April Fools 2008 at Squiz Hobart office

So I had been waiting all year to pull a prank inspired by the original Upside-Down-Ternet, and today turned out to be a good time to try it out.

After arriving at work in the morning, Karl, my manager had organised to have the batteries removed from my keyboard. I had totally forgotten about April Fools (so ha ha, joke’s on me). Little did he know, I was going to pull a prank that would spank the pants off him (although unfortunately, we’ve already seen Karl pantless).
Read more »

Taming Leopard’s syslogd

A short while after upgrading to Leopard, I began experiencing a problem where the syslogd daemon would begin to hog the CPU, causing my Macbook Pro to whirr noisily (in a fashion that made me feel like I should be running some sort of “pre-flight checks” prior to taking off in a jet plane).

Furthermore, this only seemed to occur when I was doing something really important (like backing up to Time Machine, or running VMware Fusion).

Further investigation online saw that other people were having similar issues[1][2], and that it’s caused by a mysterious overgrown log file[1].

It seems Apple have may have updated syslogd in Leopard to now log to a “data store” (located at /var/log/asl.db) that is searchable using syslog(1). According to syslogd(8), this data store is pruned nightly and on system boot-up (for those who don’t keep their computer switched on at night).

Unfortunately, I rarely reboot, and my computer is usually asleep when I am. This causes the data store to fill up without being pruned, which is the apparent cause of syslogd going nuts when the data store grows too large.

To make the problem go away, you can prune your data store. Here is the quick and dirty way to delete the entire data store:
sudo launchctl unload com.apple.syslogd.plist
sudo rm /var/log/asl.db
sudo launchctl load com.apple.syslogd.plist

To prune it the proper way, use the syslog command (syslog(1)). For example, to remove all messages older than one day, run:
sudo syslog -p -k Time ge 1d

See syslog(1) for more information about pruning using different expressions.

As a permanent solution, some people online suggest setting the cutoff (-c) option for syslogd to 0[3] (so that it never logs to the data store). If you’d like to give this a go, you’ll need to modify this launchd plist file: /System/Library/LaunchDaemons/com.apple.syslogd.plist (read on).
Read more »

Wasabi joins lolcats

As a proud surrogate father of Wasabi, my flat mate’s beautiful jet black (and cheeky) kitten, I wanted to ensure her a bright future. Which is why I scraped around for some pictures to caption so she can join the ranks amongst her fellow kitteh’s:

If you don’t enjoy lolcats and loldogs, what can I say… you’re really missing out. It’s bash for the new-age Gen-Y.

We wish Sabi the best. Please vote if you enjoy.

Automated SSH bouncing

Where I work (Squiz.net), we have a lot of servers with IP restrictions for different parts of our network. For example, in order to connect to some client servers, I have to SSH to a server in our Sydney office (from Hobart) before connecting.

I found it difficult to keep track of which hosts allowed direct connections, which didn’t, combined with having to remember which hosts can be bounced through.

I wrote this script that reads a configuration file and bounces you through hosts in a “behind the scenes” manner, using the -t option of SSH which allows you to run commands on the host without attaching to the local TTY.

(For example, `ssh -t foo ssh bar’ allows you to SSH to host “bar” without ever really seeing that you’re going through “foo”. Obviously, you must use key authentication)

The script reads a configuration file which looks like this:

intranet
cooee:delta,intranet
bob:delta,intranet
deltaex:alpha

It contains a list of hosts on newlines, which in turn has a list of hosts that need to be bounced through in order to get there. You can also specify a “default bouncehost” (at the top of the script), which means any hosts in the configuration file that don’t have bounce hosts specified will use the default one.

Whenever I find a host that I can’t SSH directly, I add it in the configuration file, and voila! I never have to think about it again.

The script has many other features, such as doing local lookups of the hosts first in your /etc/hosts file, and then translating them to IP addresses for the bounce hosts. This allows you specify quick “aliases” to use for hosts that don’t have a simple hostname, or one at all, eg: `ssh int’ where ‘int’ is defined in your hosts file.

Check it out (literally) here:

SVN: svn co http://www.spockboy.com/svn/sshbounce/
WebSVN http://www.spockboy.com/svn/listing.php?repname=sshbounce&path=%2F&rev=0&sc=0

Scrobbling iPhone played tracks to Last.fm

UPDATE: Now an even better solution — scrobble tracks straight from your iPhone to last.fm, as you play them: http://www.installerapps.com/2007/11/30/mobilescrobbler/

If you are obsessed with ensuring that your Last.fm profile is up-to-date with the most accurate music statistics for you, then you would be disappointed to discover that iScrobbler (the alternative Last.fm client for OS X that allows scrobbling tracks from your iPod) doesn’t support the iPhone or iPod Touch!

The problem is that the iPhone and iPod Touch no longer use the “volume mounting” method in iTunes (that is, where iTunes reads information from the iPod_Control folder on your iPod volume). This means iScrobbler is currently unable to detect when an iPhone or iPod touch has been plugged in.

There is a workaround described on the iScrobbler discussion forums, which involves mounting a DMG image that is a “Fake iPod” to fire the event in iTunes that allows iScrobbler to read the playlist and scrobble the tracks that you’ve listened to.

Unfortunately, this workaround means you have to load the DMG and unload it manually when you plug in or eject your device, so I wrote a shell script that detects the insertion of an iPhone (using iPhuc — sorry iPod Touch users, I don’t think this will work for you) and automatically mounts the iPod DMG to allow iScrobbler to do it’s magic.

http://www.spockboy.com/iscrobbler-iphone-automount/

Read more »

A devil of a weekend

It is no secret that I love swing dancing, and for the past few months I’ve been helping put together Devil City Swing — Tasmania’s first social swing dancing exchange, which was held over this weekend gone (22nd – 24th June).Devil City Swing posse enters a colouring-in competition

The whole weekend was rather huge and fairly exhausting, as these social exchanges ought to be! Our Saturday night event saw over 100 dancers from all over Australia — and some from international lands afar!

My proudest achievement of the weekend was having the opportunity to introduce people to our local bands and music scene culture, all of which us local Tassie folk get to experience every week for free. Three awesome bands played over the weekend, including The Cakewalking Babies, James Maddock and his band (JMH JHM Swingin’ Six), and Billy Whitton + Hep Cats.

Thanks to everyone that came and made the event a success, and loads of fun!

Everyone else, check out the photos to see why you should get pumped about swing and come along to our exchange next year!

Time to join the revolution

It’s been four years since the release of Wordpress, and in that same year was the release of MySpace – the leader of the latest online social revolution!

Apparently I’m behind the times. I’ve got a MySpace page where I ‘comment’ on people, so I thought it was about time I threw up a copy of Wordpress and started blogging as well.

Don’t worry, I’ll try not to talk about my feelings too much.