Christmas Parties

Well, I went to a christmas party last weekend that was possibly one of the strangest experiences I've ever had at a party. AndyFitz really knows how to throw a bash that has everything. I think this list of dot-points should cover most of the details:

  • Many good looking girls.
  • A bunch of geeks.
  • Some stunning steak.
  • $3.95 takeaway pizza from dominos.
  • A car crash, directly in-front of where we were BBQing/drinking.
  • Directing traffic until emergency services arrived.
  • A tour of the firetruck.
  • Cute ambulance officers that turn down an invite to the party.
  • One of the guys in the crash comes to the party.
  • Elspeth lost her watch and we all searched for it, in the dark. (Found it the next day)

Notes: no one was injured in the accident, it was just a little traumatic.


Something that made us laugh today

A vision of the future?
The full documentation for this command is maintained as a Wikipedia page. If the web browser is properly installed at your site, the command

              www-browser http://en.wikipedia.com/wiki/command

should give you access to the complete manual.


The Wheel of Time Turns

The Wheel of Time turns, and Ages come and pass, leaving memories that become legend. Legend fades to myth, and even myth is long forgotten when the Age that gave it birth comes again. In one Age, called the Third Age by some, an Age yet to come, an Age long past, a wind rose. The wind was not the beginning. There are neither beginnings nor endings to the turning of the Wheel of Time. But it was a beginning.
- James Oliver Rigney, Jr. October 17, 1948–September 16, 2007.

The man I know as Robert Jordan has passed away. Details are on wikipedia, tarvalon.net and his own blog. I'm still in shock.

Rest in Peace. We will miss you.


Birthday Party :)

I am turning old again, and I plan to have a party at my house on the 18th of August. I plan to have a simple house party and fire up my BBQ.

Please bring: Drinks and BBQ food.
Please RSVP by: 12th of August.
The party will start around 5pm at my house in Indooroopilly.

If you'd like to come along, drop me a line on my email address.


One Content Filter Per Child

Reuters say that kids looked at porn on the Internet, using the prototype laptops provided by OLPC.

I have been told in response to that article that content filtering software on the laptops themselves will be strongly discouraged. If it is indeed implemented somewhere, it will likely be done at the gateways.

Content filtering at the point of the internet connection will be possible. It will not be standard, it will not be integrated, and it will be organised and implemented by the individual countries or organisations that are running the laptop programs.

Disclaimer: I'm just a volunteer repeating what I've heard, I don't represent OLPC.


Delta Called Off

The camp I was going to be running in the first week of July, Delta, has been called off due to lack of numbers. The last few weeks have been quite stressful because of anxiety over this camp going ahead. We're now planning to run it in January instead, and hopefully we'll attract a few more people.

I'm still planning to take that week of holidays. I'll probably end up hacking on olpc stuff if I can find a few quiet moments.

It's all been a bit of an emotional roller coaster for me.


Experiences at a new Cafe

Those who know me, know I'm a coffee snob. A big one. So when I recommend a cafe I usually use words like 'acceptable'.

Well, I've gotta say, AFK Cafe is certainly acceptable. It's a new cafe that is very geek friendly. Free wifi (in AUSTRALIA!), gaming computers. There are D&D groups that play there. I've even heard rumours of Blood Bowl games... All this in a cafe has only been open 8 weeks.

We had coffee there on Friday night. Elspeth and I have the distinctive combination of a Short Macchiato (hers) and a Short Black (mine). Sometimes (such as when the cafe serves Robert Timms and we didn't realise until the last moment) we take the better part of valor and have tea. On this occasion the poor man make our usual coffee on the faith that he wouldn't botch it, and he pleasantly surprised us by delivering an acceptable pair of coffees.

... several rounds of coffee later, we ended up keeping the proprietor and his lovely wife entertained till the wee hours of the morning, until the point where the poor man realised that he had to be back at work in 6 hours to open again. Whoops.

We went back on Sunday, and this time for a meal. Elspeth had their 'Aussie' Pizza. Australian Pizza has an egg on it. This had several. We both really liked it. I had the Fettuccine Con Pollo. Yum, a little small of a serving, not enough Fettuccine, a little too much sauce, but it was really nice. I ended up eating a slice or two of Elspeth's pizza because I was hungry.

Again, we ended up yakking to the proprietor. I love getting to know the staff of places I like.


News Limited Internet

So I was reading whirlpool today, I don't read the forums, and only skim their articles. It's the little sidebar of interesting internet related news articles that I go there for.

I found this gem:
Telstra is willing to invest more than $4 billion of its own money in a FTTN network.

We are ready, starting within days to dig the trenches, lay the cables, connect the fibres, light up the network and change the way Australian families and businesses communicate with each other and with the world.

Telstra can raise the money immediately so financing for us is not an issue.

It would be an open access network, available to our competitors at a price reflecting the cost of the network and a competitive return for the Telstra shareholders who are risking their money to build it.
-- A phantom to create an illusion - Telstra CFO John Stanhope

Wow. Just wow. Telstra's plan has been behind closed doors for a long time now. The best figures I've seen, that actually give specifics, put the monthly cost of a 512kbit internet service at $80. Over $100 for real broadband.

Today, you can get faster, cheaper, internet using ADSL2+ from a non-telstra provider. This is a clear indication that either someone is slandering Telstra by saying their costs to the consumer are too high (likely), and/or Telstra is going screw us (certain).

Telstra is saying it would be an open network. Telstra is also blocking the network from going ahead until the ACCC is banned from ever telling Telstra that they are charging too much. The conclusion I am forced to draw is that Telstra is going to be charging as much as the market can possibly pay.

I'm sorry John. Take your anticompetitive bullshit and stick it.

Results of using a Touchstream LP

A few months ago I bought a Fingerworks Touchstream LP keyboard. I am a little bit fanatical about keyboards, even more so since I started having problems with my wrists.

Touchstream on Flickr

If you've not heard of it, the Touchstream is a keyboard like none you have ever seen. If you can imagine that little area of touch sensitive mousing surface used on laptops, blown up into two massive totally touch sensitive surfaces, printed with keys, and then given a usb interface. That's what this keyboard is.

Frequently asked questions that I will answer immediately:
  • There is no tactile feedback that you have touched a key.
  • Yes it is very hard to type on.
  • No, you cannot buy these keyboards, you have to get them second hand, usually from the cold dead hands of their previous owners.
I was quite lucky that I had a friend who found that his RSI problems were not exacerbated by his usage of a laptop keyboard and trackpad, so he was kind enough to sell his to me for what he bought it for.

I love my touchstream. My typo rate has gone up considerably, but I no longer have RSI problems linked to my work. I only really have problems when I have marathon gaming sessions at home. Previously, playing GTA for 3 hours was enough to give me wrist pain for a week. Now playing a game for 8 hours means that I'm a little sore the next day, and that's it.

I give it 6/10 for being a keyboard, 11/10 for being a mouse.


BrisPy rc2

The second meeting of BrisPy went well last night. Clinton Roy did a great talk on ANTLR and the python target. As I now understand it, ANTLR is a LL* parser that can generate recursive descent pure python parsers.

The wonderful thing about a recursive descent parser is that you don't have to spend 3 hours with a pad of paper to evaluate the parser by hand on sample input to track down which rule has a bug in it, it just generates a single function per grammar rule, and all the functions are easily human readable.

It sounds like the parsing side of things is a super happy easy world, but the generation side of things requires using intermediate abstract syntax trees in order to be able to do things like have multiple targets - using the same grammar file to do pretty printing, code rewriting and code generation looks like it's harder than it needs to be with ANTLR3.

Regardless, this means I won't have to handcraft many recursive descent parsers anymore. I have a few around. Exarkun got me to do an nsswitch.conf parser, Nevow has a JSON parser I wrote, I have a dice rolling irc bot that can handle (10*3d6+(1d4+1)*(1d6 drop lowest)). All of those are recursive descent parsers.

The meeting went well, there were a few non-computer scientists that were left behind, but you kind of expect that.

We'd like someone to volunteer to give a talk next month (we meet on the first Wednesday of the month) but we don't have any volunteers yet. I think something using one of the many python web technologies would be received well.


Over Reliance on Google Apps

With all that [overreliance on google services] in mind, I read something today that made me step back: Google sent this guy a DMCA complaint notice for copyrighted material on his Google Notebook. The material is the title of this post, the string 09:F9:11:02:9D:74:E3:5B:D8:41:56:C5:63:56:88:C0. What makes this particular string of hexadecimal characters so terrible is that it is the HD-DVD processing key for most movies released so far, published on the net by the AACS (Advanced Access Content System) a couple of days ago by mistake.

-- 09:F9:11:02:9D:74:E3:5B:D8:41:56:C5:63:56:88:C0 from Roberto De Almeida

Scary stuff indeed.

I use blogger, gmail, google groups, gtalk, reader. I'm just a little more worried today than I was yesterday. Maybe all those people who told us that gmail was bad back when it was released were right...


Camp Delta

I have been involved with Scripture Union for many years, I used to go to their camps, and then I started helping run them when I was in University, I directed "Uber Tweak", the current incarnation of Scripture Union Queensland's Computer Camp last year in spring, and now I'm really excited because we're running a new camp this year:

Delta is an entirely new concept for us, it is a camp we are running that will be mostly concerned with educating those who are already geeks with how things are really done by real software engineers. Taking protogeeks who know a little bit of programming and telling them that no, copying a file sideways is not how you do version control, bzr, hg or svn are how you do version control.

We plan to be doing real software projects on the camp. We're running it at Griffith University in the Mt Gravatt campus. It will be a real change from Uber Tweak which we would run at a school 2 hours drive out of Brisbane. We would have to cook and eat meals in the Home Economics block. :)

"Campers" are required to byo laptop.


How To Turn It Off

Well, I've got an OLPC btest2 unit. Due to circumstances surrounding the wireless card being DOA, I'm going to be shipping it back to the OLPC folks tomorrow.

In the meantime, I've been exploring the operating system and have discovered that turning the machine off is sometimes problematic, and have decided to document the procedure.

If you are in X, running the sugar interface, you can turn the machine off cleanly by pressing the power button.

If you are not in X, the following things have the following outcomes:

Pressing Power Button: Nothing.
Pressing Power Button for 10 seconds: Machine will hard power off.
$ halt: Machine will stop operating system and remain power on.
$ shutdown now: Machine will go to runlevel 1.
$ shutdown -h now: Machine will shutdown and power off cleanly.
$ poweroff: Machine will shutdown and power off cleanly.

In conclusion. use poweroff or shutdown -h now to turn the XO off while not in X.

See #513 for some more details if curious.


First Brisbane Python User Group Meeting

I think the first meeting of the Brisbane Python User Group went well. I think we decided to call it BrisPy or something.

People arrived, we had a few people come who I had only known from #python on freenode, and we had a few interested humbuggers come along. I gave a talk (slides are available) on scapy, which is something that I use at work for playing with network packets.

My talk was only 30 minutes, but I ended up demonstrating a few things on the projector afterwars. We ended up leaving at about 10pm, after a 6pm start.

Thanks to everyone who attended. We're looking for someone to give a talk next month (Wednesday 2nd April) - and one of the interesting topics that I'd love to see a talk on is either a web framework, or ctypes.


Oh, But There's Good News

Further to my previous post, it seems that the olpc project has kickstarted a business unit at Quanta, the olpc manufacturer. A gentle reader pointed out to me that Quanta are going to be using technology similar to what's in the olpc to create a commercialised product similar to the OLPC.


Aw, "But I Want One"

I feel it's necessery to point this out, as every so often I talk to someone about the olpc project and a major misconception is discovered. So I am going to say this as plainly as I can. I should also say that while I'm a developer, I don't actually work for the One Laptop Per Child project, and I don't speak for them.

The One Laptop Per Child project has no plans to commercialise the product.

You will not, as a first world high flying pay $500/week on gadgets software developer sysadmin engineer be able to buy this gadget[1]. There is significant doubt as to if you will even be able to buy them on ebay second hand off a third world arms dealer.

However, if you are an open source fanatic and love the idea of being able to educate little people in the third world, have good ideas and the required time to implement them, you can help the project.

You can run the sugar interface in emulation. There is a livecd you can boot, there are qemu and vmware images. There is even the ability to run the software under a linux such as Fedora or Ubuntu. See the wiki for more information.

There is also a program where you can apply for a laptop to be given to you so you can do development on them. See Developers Program page on the olpc wiki.

[1]It is not a gadget, it is an educational machine.


Originally uploaded by iamstephenthorne.
We went on a holiday a few weeks ago, up to the Sunshine Coast. We stayed in Buderim, and we visited a bunch of wineries while we were up there.

This is a nice shot (by my standards) of the vines at Flaxton Gardens. I bought a 'pro' flickr account today, which means I can start taking pictures more often and uploading more of them. :)

I found that I could post to flickr using this incredibly simple shell script:
for i in *.jpg; do mutt -a $i -s Photo $name@photos.flickr.com </dev/null; done

The '-s Photo' makes the title of every photo 'Photo'. I guess that's better than some of the alternatives. IMG_1234.JPG justisn't appealing to me.


Situational Update

Recently I've been blogging about my past work and such. After a while it got to the point where I didn't really care anymore. I guess that's a good thing.

In the past few weeks a whole bunch of exciting things have come to the fore, and here's a short list of the important ones:
  • The laptop project have agreed to send me a prototype of their little green educational machine. Thanks to Lindsay and Jim from the olpc team for that.
  • I received my FingerWorks Touchstream LP. After a few weeks I can already type on it relatively sanely.
  • We received approval yesterday for a new Scripture Union camp. We are going to be running a 5 day event at Griffith University, for year 11 and 12 students. We intend to make it an intense software engineering experience.
  • I am starting a Python Users Group in Brisbane. My work, NetBox Blue is sponsoring the event, giving us usage of the boardroom and putting on food+drinks.
Exciting times.


Shell scripts breaking in Ubuntu

Ubuntu Bug 61463 is a reasonably large issue. I talked with some folks about it a while back, and decided to lay off because it was a bit of a hot rock.

I think it's worth noting here that the correct procedure after installing Ubuntu Edgy or later is:
dpkg-reconfigure dash
In order to get /bin/sh pointing to something that won't break you configure scripts and shell scripts written by vendors. As the 'POSIX Compliant' shell that ubuntu now uses by default in Edgy and later (called 'dash') causes various breakages just about everywhere.

Read the linked (and closed) bug for more information.


What Not To Do

I saw this on thedailywtf.com the other day, and it bears repeating.

This is a severe anti-pattern in php:
$fp = fopen($filename, 'r');
while (!feof($fp)) {
$data .= fread($fp, 4096);
fopen(); returns null and prints to stdout on failure. feof(null) returns false because php os functions return false and print to stdout on error.

The net result is the above code turns into an instant infinite loop.

And this anti-pattern is clearly visible in the PHP manual.

Updated: typo fixed



Okay, I won. I don't know how, I was up against some serious smart people, and somehow I came out on top.

Fortunately, Ali and Dylan are driving back to Brisbane, and have kindly offered to stick the new machine (to be named "Trinket" to join "Shiny") in their back seat.

Zomgawesome. I was so hyped I couldn't calm down until I'd had a finger of scotch.


Again With The Horror

Over One Million Lines Of PHP With No Version Control.


I'm incredibly buzzed from the HackFest. I'm the kind of person who handles the stress of exam situations quite well. It's one of the only times that I'm completely and totally focused.

And wow, the hackfest was hard. There were things that were superficially easy, and other things that were really quite involved. I got 7 solutions to problems, some worked better than others. My 'break out of a chroot' answer didn't work and I don't know why.

I wrote a completely evil answer to one of the questions, and a mundane answer, I only did it because I knew that 10 out of 100 is better than 0 out of 100. (Maybe the judges will think my 'evil' answer is worth something).

I implements a socketpair() using AF_INET in 3 minutes and 10 lines of python. I'm sure if I were a more competent C programmer I could've done it in C just as quick, but time was getting close.

I'll find out what the license is on the HackFest material. I'd love to publish the questions and my answers.


Wow, Conf!

Well, that was successful I think. I had about 11 people and 10 laptops around at one point. We didn't get anything actually useful done, but there were a few thing that could be potentially useful that were actually accomplished.

Robert Collins wants my EvilTrackingNet implementation completed in time to be packaged and inserted into ubuntu. That'd be kinda neat, if I could pronounce ubuntu. As it is, he gives me a lecture every time, because apparently I can't pronounce a 'u' and ubuntu has 3 of them.

Wifi is going well. Having Mr Netgear working is a godsend. I'm glad Elspeth convinced me to bring him.

On to tomorrow! Where Elspeth is running a Research Miniconf. Papers are available :).


Networking :)

As I'm trying to host a few Twisted people over at Randwick Lodge today, I decided to make sure I had the appropriate equipment available. That is to say, wireless internet.

Of course, this is harder than it seems. The hotel resells some kind of NetComm captive portal product, which they've given us just the one account for (it costs $50/wk). So only elspeth's iBook has been logged on, and the rest of us have to suffer.

Which is why it was important for me to bring our wireless router and some cables. The network looks kinda like this at the moment

NetComm Gateway <-wifi-> iBook <-ethernet-> NetGear Wifi Router <-wifi-> 3 more laptops.

Side effect is, if you're in the area of Randwick Lodge, we have an open access point called 'NETGEAR'. :)

Networking :)

As I'm trying to host a few Twisted people over at Randwick Lodge today, I decided to make sure I had the appropriate equipment available. That is to say, wireless internet.

Of course, this is harder than it seems. The hotel resells some kind of NetComm captive portal product, which they've given us just the one account for (it costs $50/wk). So only elspeth's iBook has been logged on, and the rest of us have to suffer.

Which is why it was important for me to bring our wireless router and some cables. The network looks kinda like this at the moment

NetComm Gateway <-wifi-> iBook <-ethernet-> NetGear Wifi Router <-wifi-> 3 more laptops.

Side effect is, if you're in the area of Randwick Lodge, we have an open access point called 'NETGEAR'. :)


PPTP From Ubuntu

Okay, so I wanted to be able to set up PPTP so I could have some kind of vaguely secure connection while at LCA. I have access to a dozen PPTP servers I can bounce through, and I know they work, but I needed to set it up with the ubuntu laptop as the client.

I'm running feisty, if you care.

Steps! This is how to do it:

  1. $ sudo aptitude install network-manager-pptp
  2. Right click -> Remove on the network icon in your systray.
  3. Alt-f2 -> Run 'nm-applet'
  4. Left click on the new network icon -> VPNS -> Configure
    • Add a VPN with the wizard.
  5. The VPN will not appear until you do this:
    • $ /etc/dbus-1/event.d/25NetworkManager restart
    • $ /etc/dbus-1/event.d/26NetworkManagerDispatcher restart
  6. Left click Network Icon -> VPNS -> The VPN you just created.
  7. $ sudo tail -f /var/log/syslog to discover if it worked.

Yay for guis that make everything easy...

I wish I was being sarcastic. I know how much of a hell setting up pptp clients used to be.


Twisted ┬ÁConf @ linux.conf.au

It turns out there's going to be a sizable contingent of Twisted hackers at linux.conf.au '07. As such, I'm attempting to organise a Micro Conference on the sunday before the conference.

I'm planning on gathering at where we're staying Randwick Lodge, 211 Avoca St because there's wifi access available, and I'd like to be able to sit down and hack.

JML has mentioned wanting to hack on trial, and while I'm not resistant to that, I'm open to suggestions. :)