Saturday, 18 January 2014

LCA TV: More fun at linux.conf.au 2014

LCA2014 was a whole lot of fun, for so many reasons!  One thing I love is talking with people from all over the Free and Open Source community from around the world - meeting new people doing exciting things, as well as catching up with those who have become dear friends from years of shared experiences.

This year James Bromberger had a wonderful idea: LCA TV.  How about we interview people on the couch and broadcast these casual chats live alongside the conference video streams?  A kind of free software equivalent of David Letterman or Steve Vizard.  This fantastic new thing allowed me to combine a few of my favourite things together, and allow others to get to know some of the conference attendees in a more casual setting.

So, how did it go?  It went off like a bang, and despite having a few technical challenges, I think this 'experiment' was a raving success, and hopefully the start of yet another LCA tradition!

The result of these videos are now available over on youtube: http://www.youtube.com/playlist?list=SPmiuOcBMoxjdzEQTvqwHH46VbCib-_Icd and will soon also appear on the LCA mirror.

Monday, 13 January 2014

Getting your CFP abstract accepted 101 - linux.conf.au 2014

I had the wonderful privilege of speaking at linux.conf.au 2014 last week in Perth, Australia on Getting your CFP abstract accepted 101.  This is in the context of the linux.conf.au papers committee, which I've been a part of for the past decade.

I feel like it's an important service to the community to help some of the amazingly smart people who attend linux.conf.au take the step up to becoming a speaker.  I hope that what I've had to say will assist, and I feel honoured that I myself was given the opportunity to speak to this (despite my protestations that other talks be accepted instead).

Here's a link to the video of my talk, and to the slide pack.

Any comments on this material, or on my presentation, are of course welcomed!

Thursday, 2 January 2014

LCA2014 - 2 sleeps to go!

Somehow, 99 days have flown by and we're now at 2 sleeps until LCA2014.  Wow.

So what's happened in this period?  How can 99 days pass without comment?  It's only by examining my photo-stream and Tripit that I can piece together what's been happening:

I started a great new job at Rackspace working on upstream OpenStack - which has been wonderful!  I've helped out on a school camp for 10 year olds. I've been to San Antonio for the first time, and Sydney 4 times. I've dressed up as a mullet-toting 80's rocker and had weekends away on Yorke Peninsula, Victor Harbor and Mt Crawford forrest (twice) with my family.  And spent many nights playing board games with good friends.


Life is busy but such a blessing.

The next week is also a highlight of the year - linux.conf.au.  The best conference going, along with a great community of freedom lovers!  Not to mention catching up with a whole bunch of people I only get to see once a year.  What talks am I looking forward to this coming week?
  • Monday:  
    • There's a bunch of stuff on the Developer, Testing, Release and Continuous Integration Automation miniconf that's interesting, especially failtest: more path testing for C
  • Tuesday: 
    • Just about everything in the OpenStack Miniconf.  This will be fantastic!
  • Wednesday: 
    • VirtIO 1.0: A Standard Emerges
    • Building an affordable differential GPS positioning system
    • Linception: Playing with containers under linux
    • Python 3: Making the Leap
    • HTTP/2.0 And You
    • Rock your Emacs
    • The changing Linux kernel development process
    • Building 2D rendering acceleration with OpenGL
    • Embedding Codec 2
    • Bringing more women to Free and Open Source Software
    • Advances in Validation of Concurrent Software
    • Continuous Integration for your database migrations
  • Thursday:
    • Python Packagin 2.0: Playing well with others
    • Rapid OpenStack Deployment for Novices and Experts Alike
    • Gtk to Qt - a strange journey
    • Going Global: Building Global Clusters for OpenStack Swift
    • OpenCL, saving parallel programmers pain today!
    • Zero-Copy Compositing Research to Reality
    • There and Back Again: An Unexpected Journey in Agile Documentation
    • Introduction to Go
  • Friday:
    • Raspberry Pi Hacks
    • Building APIs Develoers Love
    • How OpenStack Improves Code Quality with Project Gating and Zuul
    • The Rust Language: memory, ownership and lifetimes
    • Diskimage-builder: deep-dive into a machine compiler
    • The best CTDB bugs ever!
    • Processing Continuous Integration Log Events for Great Good
    • Best of Breed vs Batteries Included: Design Decisions When Building Frameworks
    • Provisioning Baremetal with OpenStack

Wednesday, 25 September 2013

LCA2014 - only 101 days to go!

Only 101 days until LCA2014 begins.  All very exciting!

Early Bird registrations are already open, if you haven't already you should secure your spot before they sell out.

In other news, the miniconfs are all getting themselves organised, and for various reasons, I'm quite looking forward to the LCA2014 OpenStack miniconf.  Should be a blast!

Wednesday, 17 July 2013

Continuous Integration with python and blink(1)

I've been a big fan of Continuous Integration / Continuous Deployment (CI/CD) for some time now, and we've been using it with great success in my day job building something awesome. But that setup is team-focussed, uses a build server, is triggered from revision code checkin, with promotion between development, test, staging and production environments gated by passing all the regression suite tests.  We even spam the team over Jabber when tests fail.

At the other end of the scale is personal software development on my laptop.  Here I want something more lightweight that the excellent Jenkins, and I want builds triggered not on revision control checkins, but on every save.  In essence, something compatible with the team-focussed environment, but something even more agile and lightweight.

My personal development is more likely to be in Python than anything else, and I like to write my code test-first. Normally I have three windows open - one editor for code, one editor for test code, and one shell with onchange.pl running to automatically run tests every time a change is made to tests or code.  This is all well and good, but it still requires me to take my focus off the editors and check that tests succeeded in the shell window.  This can be improved upon.

Enter my latest toy, blink(1).  It's a USB multi-coloured RGB LED, that's easily programmable with code available.  But they provide a command-line tool which is sufficient for many use cases.

With a small script that checks the result of the test run, it's very easy to get blink(1) to give me a quick visual indication of the result of my development efforts.  It's as simple as...

#!/bin/bash
nosetests
if [ "$?" -eq "1" ]
then
    blink1-tool --red --blink 5 2>&1 >/dev/null
else
    blink1-tool --green 2>&1 >/dev/null
    sleep 5
fi
blink1-tool --off 2>&1 >/dev/null



Maybe it's a bit gimmicky, but so far I'm loving it!

Monday, 8 July 2013

Updating Ubuntu's sources.list

Frustratingly, I keep on forgetting to:

sudo bash
cd /etc/apt
sudo cp sources.list sources.list-`date +%Y%m%d`
sudo sed -i 's#au.archive.ubuntu.com/ubuntu#mirror.internode.on.net/pub/ubuntu/ubuntu#g' sources.list

This really needs to be a post-install hook or something.

Wednesday, 26 June 2013

New Work MBP has arrived!

Just took hold of my new work MacBook Pro.  It's one of the new Retina 15-inch laptops (early 2013) running Mac OS X 10.8.4. With a 2.4 GHz i7 with 8GB DDR3 1600 MHz RAM, 250Gb SSD, & NVIDIA GeForce GT 650M 1025Mb graphics it should fly.

[The old MBP was getting a little long in the tooth - it has developed some heat-related hardware faults such as wireless network failures and sticky keyboards keys.  It was a 15-inch Early 2008 running Mac OS X 10.7.5, 2.4GHz Core 2 Duo, 4 Gb DDR2 667 MHz RAM, 200Gb SATA Disk, & NVIDIA GeForce 8600M GT 256Mb graphics. But at least it had an optical drive!]

Just for posterity, here's the list of things I needed to do to set it up:

  • Apply OS updates to bring it up to the latest Mac OS X release
  • Move over my GPG and SSH keys
  • Install VirtualBox 4.2.14 and move over the VMs from my old laptop.
  • Setup Mac Mail and Calendar to connect to the local Exchange server and to hit my Google accounts
  • Install GPGTools
  • Install Google Chrome
  • Install Dropbox
  • Install XCode (and then the Command-line Tools from inside XCode)
  • Install Homebrew (and then a whole schwag of things: ack, bcrypt, berkeley-db, boost, cowsay, daemontools, gearman, git, glib, gnupg, graphviz, postgresql, python3, s3sync, sipcalc, sl, sqlite, wget etc :-)
  • Install 1Password3 (moving the licence over)
  • Install Caffeine
  • Install Omnigraffle (moving the licence over)
  • Install Things (moving the licence over)
  • Install AppZapper2 (moving the licence over)
  • Install BetterSnapTool (out of the Apple AppStore)
  • Install Colloquy
  • Install DBVisualiser
  • Install SoapUI
  • Transfer over ~/src, ~/Documents, ~/Downloads from my account on the old laptop
And then reimage the old laptop before handing it back.