Jonathan Oxer
[Blog]
>> Jondo the mandroid is RX-8 enabled
Sat, Jun 21st 2:20pm 2008 >> SuperHouse
Well, it's been a long time coming but *at* *last* I've got my hands on the car that was designed specifically for me. I've previously owned an RX2, 4 RX3s (one of which is still in a shed at my Mum's place), an RX5 (briefly, mainly as a donor car for parts), and an RX7. In early 2000 when I was talking about getting another RX7 Ann didn't like the idea because they're only a 2 seater, and she said that Mazda needed to build a 4 seater version. It was about that time that stories of the RX-EVOLV project started leaking out of Mazda, and I knew that if they ever actually built it I'd have to buy one.
Stephen and Elspeth were kind enough to let me drive their RX-8 while I was up in Brisbane a little while ago, and about a month ago I started seriously looking for one. Mission accomplished, because now we have a new member of the family:

Well, it's been a long time coming but *at* *last* I've got my hands on the car that was designed specifically for me. I've previously owned an RX2, 4 RX3s (one of which is still in a shed at my Mum's place), an RX5 (briefly, mainly as a donor car for parts), and an RX7. In early 2000 when I was talking about getting another RX7 Ann didn't like the idea because they're only a 2 seater, and she said that Mazda needed to build a 4 seater version. It was about that time that stories of the RX-EVOLV project started leaking out of Mazda, and I knew that if they ever actually built it I'd have to buy one.
Stephen and Elspeth were kind enough to let me drive their RX-8 while I was up in Brisbane a little while ago, and about a month ago I started seriously looking for one. Mission accomplished, because now we have a new member of the family:

>> Secret project progressing nicely
Thu, Jun 5th 9:15pm 2008 >> SuperHouse
Turns out I got my weeks stuffed up: after preparing a talk for phpMelb I discovered that the meeting is next Thursday, not today. Which is great, because there were two exciting deliveries today and so I get to play with new toys instead of doing a talk!
The first package was one of these little babies, a Canon HV30:

It's a compact little camera, but unlike a typical consumer camcorder it does high-definition widescreen at progressive 24 frames/second (1080i/24p, for those who care!) which is what you need for broadcast-quality footage. It also a lot of the manual controls you'd normally only find in professional gear - all for under $1200! Very sweet. This is what will become the "B" camera for my secret project, ie: the camera we take into nasty places like under the house and inside the ceiling. The primary camera will probably be a Sony HVR-Z1, but that hasn't arrived yet.
The other package was a pair of radio mics. Only cheapies (good ones cost more than a camera!) but I did some quick testing tonight and the audio quality seems pretty good. They'll do for filming the pilot, at least, and we'll see what happens after that.
Which reminds me: last week I went into a local specialist camera shop that has a decent range of quality video gear, and gave them a laundry list of gear that I wanted including the HV30, the HVR-Z1, radio mics, lighting, and other bits and pieces, and they couldn't give me prices on the spot so they said they'd call me back the next day with a good price. And they never called! You'd think that when someone walks in and says they want to buy $10k of gear they'd actually bother following it up, but apparently not.
Turns out I got my weeks stuffed up: after preparing a talk for phpMelb I discovered that the meeting is next Thursday, not today. Which is great, because there were two exciting deliveries today and so I get to play with new toys instead of doing a talk!
The first package was one of these little babies, a Canon HV30:

It's a compact little camera, but unlike a typical consumer camcorder it does high-definition widescreen at progressive 24 frames/second (1080i/24p, for those who care!) which is what you need for broadcast-quality footage. It also a lot of the manual controls you'd normally only find in professional gear - all for under $1200! Very sweet. This is what will become the "B" camera for my secret project, ie: the camera we take into nasty places like under the house and inside the ceiling. The primary camera will probably be a Sony HVR-Z1, but that hasn't arrived yet.
The other package was a pair of radio mics. Only cheapies (good ones cost more than a camera!) but I did some quick testing tonight and the audio quality seems pretty good. They'll do for filming the pilot, at least, and we'll see what happens after that.
Which reminds me: last week I went into a local specialist camera shop that has a decent range of quality video gear, and gave them a laundry list of gear that I wanted including the HV30, the HVR-Z1, radio mics, lighting, and other bits and pieces, and they couldn't give me prices on the spot so they said they'd call me back the next day with a good price. And they never called! You'd think that when someone walks in and says they want to buy $10k of gear they'd actually bother following it up, but apparently not.
>> Proud moments as a father
Fri, May 30th 2:40pm 2008 >> Family
You know you're a geek (and probably raising geek kids) when a conversation with your then 4-year-old daughter goes something like this:
Amelia: (after glancing at my laptop keyboard for about 2 seconds) "Daddy, why are all the letters in the wrong places?"
Me: "It's a different way of arranging the letters so I can type faster and it doesn't hurt my fingers so much"
Amelia: (Immediately, without even thinking about it) "Except the M. That's still in the same place".
Yes, I know that the A is also in the same place on Qwerty and Dvorak keyboards, but just the fact that she spotted at a glance that the M was still in the Qwerty location on a Dvorak keyboard is pretty impressive at 4 years of age!
You know you're a geek (and probably raising geek kids) when a conversation with your then 4-year-old daughter goes something like this:
Amelia: (after glancing at my laptop keyboard for about 2 seconds) "Daddy, why are all the letters in the wrong places?"
Me: "It's a different way of arranging the letters so I can type faster and it doesn't hurt my fingers so much"
Amelia: (Immediately, without even thinking about it) "Except the M. That's still in the same place".
Yes, I know that the A is also in the same place on Qwerty and Dvorak keyboards, but just the fact that she spotted at a glance that the M was still in the Qwerty location on a Dvorak keyboard is pretty impressive at 4 years of age!
>> Interview with Cameron Reilly
Tue, May 27th 11:42am 2008 >> Tech Toys
A couple of months ago Cameron Reilly from The Podcast Network came by my place with a video camera and the funkiest microphone I've ever seen to do an interview about RFID and hardware hacking in general. The first part of the interview has just been edited and put online in Cameron's podcast (or see it on YouTube).
UPDATE: Cameron has just put up the audio from the rest of the interview
A couple of months ago Cameron Reilly from The Podcast Network came by my place with a video camera and the funkiest microphone I've ever seen to do an interview about RFID and hardware hacking in general. The first part of the interview has just been edited and put online in Cameron's podcast (or see it on YouTube).
UPDATE: Cameron has just put up the audio from the rest of the interview
>> I need a car
Sun, May 25th 10:29pm 2008 >> Tech Toys
I need to buy a car in the next couple of weeks. Anyone got a Mazda RX-8 or Audi TT at a decent price? Then contact me!
I need to buy a car in the next couple of weeks. Anyone got a Mazda RX-8 or Audi TT at a decent price? Then contact me!
>> Hacking a Rinnai hot water system
Tue, May 13th 12:12am 2008 >> Tech Toys
We have a Rinnai Infinity hot water system at home (you know, the ones with a keypad where you set the water temperature and it's heated on-demand to exactly that temp instead of being pre-heated and stored in a tank) and after seeing some of my hardware hacking trickery a mate who works at Rinnai got me an extra controller to hack.
The easy part turned out to be connecting up the buttons to an Arduino board so I could then use ser2net to expose the Rinnai controller as a network socket. It takes all of about 3 minutes, so I even made a dodgy little video of the process using my digital camera:
(YouTube link: Hacking a Rinnai hot water system for home automation)
Then, just because it seemed kinda cool, I made a crude web interface by taking a photo of the actual controller and sticking an imagemap over the top so we can pull it up on the TV. With the browser in kiosk mode it's a bit spooky having a monster-size controller on the screen that actually works when you "click" the buttons:

Then I went from macro to micro and did a version scaled to fit the screen on my Nokia E61 phone, so I can pull up the water controller on my phone and set the temperature.
The next step is going to be the tricky bit: reading which segments in the display are illuminated and using a lookup table to figure out what the temperature is currently set to, so that I can make the LED display on the web interface accurately show the current temperature setting. At first I thought this would be pretty trivial because it's just a 2-digit common-anode 7-segment display module, and I thought all I'd have to do is read the level off the cathode of each segment. I scratched my head for a bit when I got unpredictable results until I realised that the display controller is multiplexing its outputs so each segment is turned on for somewhat less than 50% of the time: the numbers look static to us mere humans whose eyes can't update faster than about 20 times / second, but to the Arduino trying to track it at the speed of electrons it's like "hey, it's on... no, it's off... nope, on again ... off ... on ... hey, what the hell's going on around here?" every few milliseconds.
It'll take a little bit of jiggery-pokery in both hardware and software to make the Arduino understand the multiplexing but nothing too difficult now I know why it's happening.
We have a Rinnai Infinity hot water system at home (you know, the ones with a keypad where you set the water temperature and it's heated on-demand to exactly that temp instead of being pre-heated and stored in a tank) and after seeing some of my hardware hacking trickery a mate who works at Rinnai got me an extra controller to hack.
The easy part turned out to be connecting up the buttons to an Arduino board so I could then use ser2net to expose the Rinnai controller as a network socket. It takes all of about 3 minutes, so I even made a dodgy little video of the process using my digital camera:
(YouTube link: Hacking a Rinnai hot water system for home automation)
Then, just because it seemed kinda cool, I made a crude web interface by taking a photo of the actual controller and sticking an imagemap over the top so we can pull it up on the TV. With the browser in kiosk mode it's a bit spooky having a monster-size controller on the screen that actually works when you "click" the buttons:

Then I went from macro to micro and did a version scaled to fit the screen on my Nokia E61 phone, so I can pull up the water controller on my phone and set the temperature.
The next step is going to be the tricky bit: reading which segments in the display are illuminated and using a lookup table to figure out what the temperature is currently set to, so that I can make the LED display on the web interface accurately show the current temperature setting. At first I thought this would be pretty trivial because it's just a 2-digit common-anode 7-segment display module, and I thought all I'd have to do is read the level off the cathode of each segment. I scratched my head for a bit when I got unpredictable results until I realised that the display controller is multiplexing its outputs so each segment is turned on for somewhat less than 50% of the time: the numbers look static to us mere humans whose eyes can't update faster than about 20 times / second, but to the Arduino trying to track it at the speed of electrons it's like "hey, it's on... no, it's off... nope, on again ... off ... on ... hey, what the hell's going on around here?" every few milliseconds.
It'll take a little bit of jiggery-pokery in both hardware and software to make the Arduino understand the multiplexing but nothing too difficult now I know why it's happening.
>> MySQL training
Mon, May 12th 12:03pm 2008 >> Linux
I've done talks about MySQL all over the world and thought I knew it reasonably well, but now I'm sitting in a MySQL training day run by Arjen from Open Query and I learned 4 significant new things in the first 40 minutes.
Happy :-)
I've done talks about MySQL all over the world and thought I knew it reasonably well, but now I'm sitting in a MySQL training day run by Arjen from Open Query and I learned 4 significant new things in the first 40 minutes.
Happy :-)
>> Managing email overload
Thu, May 1st 1:35pm 2008 >> Web Development
One of the most fundamental tools used in any form of e-business is email, but most of us don't really think about it - we just use it out of habit, not with any real plan. And as business becomes ever busier it's easy to become inundated with email and fall so far behind that it becomes useless and customers get frustrated with lack of responsiveness. In "How To Build A Website And Stay Sane" I talked about some of the macro aspects of email in e-business, such as establishing an acceptable response time, delegating responsibility for inquiry responses, and use of role addresses such as "sales@example.com" so responsibility can be re-delegated when staff are away.
But I didn't talk about how to actually manage what ends up in your inbox - how to file it, archive it, and prioritise it.
Over the years I've tried a few different approaches to managing email. I personally receive about 1000 emails per day so my message load is probably a little bit higher than most, and that means I have to work really hard to keep up with it or I risk getting to the point where I have to declare email bankruptcy and just delete my inbox and start again. This morning I had 473 messages waiting for me when I got to work - and that was just new messages since I checked it before I went to bed last night!
So staying on top of email is one of the biggest burdens I have to face, and it's a problem faced by everyone heavily involved in e-business.
For many years my preferred approach was to use a highly structured filing system that had many different folders each with multiple levels. For example, I had a "Clients" folder, then inside that I had one folder for each client. As time went on that became unwieldy and just opening the Clients folder presented me with a list of hundreds of clients, so I broke it down further into Current, Inactive, and Archive - but then I was frequently shuffling folders around, and I had to remember where things were stored. I also wrote a whole bunch of filing rules on the mail server so that whenever email came in it would be automatically directed into the correct folder without my email software having to do anything.
But eventually it got to the point where it would take over half an hour each morning just to open my email software because it took so long working through the enormous list of folders, and I still ended up with over 50,000 unread emails in my inbox at one point. Not fun.
My next tactic was to just give in to the inevitable and let the avalanche sweep over my inbox. I gave up on filing entirely, leaving everything in my inbox and relying on search to locate messages related to particular customers or friends. That's the basis on which Gmail works, and it's actually a pretty cool approach. It worked for me for a while but it also had problems. Search became really slow because I had something like 400,000 messages in my inbox and it was very hard to pick out messages that still needed action. So to improve search performance I created one archive folder for each year of email, and put all messages from 2006 into one folder, 2005 into another, etc. My inbox became all messages from my current year, with anything earlier being in a year-based archive. Basically it was the "full inbox" approach with trivial archiving.
After a few months of that approach Arjen Lentz introduced me to the concept of "inbox zero", a technique developed by Merlin Mann from 37signals. Inbox zero is based on the "Getting Things Done" methodology made famous by David Allen and it's designed to leave you with an empty inbox at all times.
The promise of email nirvana!
I was sceptical at first but when you're drowning it doesn't matter what comes into reach - you'll grab at anything you can! So I thought I'd give it a try.
What I've ended up with is a system that's a blend of my previous year-based archive with the "inbox zero" prioritisation technique applied as a triage mechanism on incoming messages. I still have archives per year, but rather than use the inbox for all messages from the current year I also created an archive for the current year, and the objective of the game is to get every single incoming message into the archive as fast as possible by applying some rules to them. And that's where the "getting things done" mindset comes into play.
The first discipline is to never read an email twice while it's in your inbox. My natural tendency is to read an email, think "ok, I'll get back to that", and leave it there - but that's bad, because then you have to re-read it later to regain the context and actually do something about it. For every message that arrives in the inbox, you have to read it *once* and then classify it immediately. Do *not* think "I'll get back to that": classify it *now*, and don't take more than about 3 seconds thinking about each one.
Which leads to the second discipline: classification. I use a slightly modified version of Mann's classifications. For every email that comes in I mentally throw it into one of 5 piles: Do, Delegate, Delete, Defer, Archive. It's become a bit of a mantra that runs through my head at all sorts of odd times!
If it's something quick and all you need to do is dash off a reply, just Do it. Then file the email in the current archive.
If it's something that can be passed on to a colleague, forward the email and then file it in a "Delegated" folder.
If it's something that you really don't care about, like time-wasting "look at these funny pictures!" messages from that cousin you haven't seen in 6 years, delete it.
If it's something that will take a bit more care and time to actually follow up on, file it in a "Defer" folder.
If it's an email you want to keep for future reference but don't actually need to do anything about, file it in the "Archive" folder for the current year.
After a few minutes working through your inbox you should have every single message either Done, Delegated, Deleted, Deferred, or Archived. And your inbox will be empty. A miracle has occurred!
The third discipline is then to go through your Defer folder several times per day and action the items that will take some time and care. If you've been brutal enough with your classification process this will hopefully be a relatively short list. Once each item has been actioned, move it into the Archive folder. Once again your objective should be to achieve an empty Defer folder, but that's often not practical. I've heard of people using this technique who write a mail rule that takes anything which has been sitting in the Defer folder for more than 30 days and simply deletes it. After all, if you've deferred it for more than a month it's not likely you'll actually do anything about it, so why not just accept the inevitable? Personally I don't do that but I can understand why people do.
The fourth discipline is to regularly go through your Delegated folder and check if there's anything you need to follow up. Often you'll delegate a task to a colleague and never hear the outcome, so the messages in the Delegated folder can act as a prompt that you need to check the status of that task and then move it into Archive once it's done. Once again your objective is to have an empty Delegated folder: a sign that all the tasks you are delegating to other people are being completed quickly.
So there you have it: my technique for drinking from a fire-hose without being washed away. Everything comes into the Inbox, then is redirected into one of several folders, and eventually filters through to the archive for long term storage. Conceptually simple, but the trick is applying the discipline needed to make it work!
There's a very cool video online of Merlin Mann doing a Google Tech Talk about inbox zero. It's well worth a look if you're anything like me and wish you didn't have to spend so much time dealing with email.
video.google.com/videoplay?docid=973149761529535925
One of the most fundamental tools used in any form of e-business is email, but most of us don't really think about it - we just use it out of habit, not with any real plan. And as business becomes ever busier it's easy to become inundated with email and fall so far behind that it becomes useless and customers get frustrated with lack of responsiveness. In "How To Build A Website And Stay Sane" I talked about some of the macro aspects of email in e-business, such as establishing an acceptable response time, delegating responsibility for inquiry responses, and use of role addresses such as "sales@example.com" so responsibility can be re-delegated when staff are away.
But I didn't talk about how to actually manage what ends up in your inbox - how to file it, archive it, and prioritise it.
Over the years I've tried a few different approaches to managing email. I personally receive about 1000 emails per day so my message load is probably a little bit higher than most, and that means I have to work really hard to keep up with it or I risk getting to the point where I have to declare email bankruptcy and just delete my inbox and start again. This morning I had 473 messages waiting for me when I got to work - and that was just new messages since I checked it before I went to bed last night!
So staying on top of email is one of the biggest burdens I have to face, and it's a problem faced by everyone heavily involved in e-business.
For many years my preferred approach was to use a highly structured filing system that had many different folders each with multiple levels. For example, I had a "Clients" folder, then inside that I had one folder for each client. As time went on that became unwieldy and just opening the Clients folder presented me with a list of hundreds of clients, so I broke it down further into Current, Inactive, and Archive - but then I was frequently shuffling folders around, and I had to remember where things were stored. I also wrote a whole bunch of filing rules on the mail server so that whenever email came in it would be automatically directed into the correct folder without my email software having to do anything.
But eventually it got to the point where it would take over half an hour each morning just to open my email software because it took so long working through the enormous list of folders, and I still ended up with over 50,000 unread emails in my inbox at one point. Not fun.
My next tactic was to just give in to the inevitable and let the avalanche sweep over my inbox. I gave up on filing entirely, leaving everything in my inbox and relying on search to locate messages related to particular customers or friends. That's the basis on which Gmail works, and it's actually a pretty cool approach. It worked for me for a while but it also had problems. Search became really slow because I had something like 400,000 messages in my inbox and it was very hard to pick out messages that still needed action. So to improve search performance I created one archive folder for each year of email, and put all messages from 2006 into one folder, 2005 into another, etc. My inbox became all messages from my current year, with anything earlier being in a year-based archive. Basically it was the "full inbox" approach with trivial archiving.
After a few months of that approach Arjen Lentz introduced me to the concept of "inbox zero", a technique developed by Merlin Mann from 37signals. Inbox zero is based on the "Getting Things Done" methodology made famous by David Allen and it's designed to leave you with an empty inbox at all times.
The promise of email nirvana!
I was sceptical at first but when you're drowning it doesn't matter what comes into reach - you'll grab at anything you can! So I thought I'd give it a try.
What I've ended up with is a system that's a blend of my previous year-based archive with the "inbox zero" prioritisation technique applied as a triage mechanism on incoming messages. I still have archives per year, but rather than use the inbox for all messages from the current year I also created an archive for the current year, and the objective of the game is to get every single incoming message into the archive as fast as possible by applying some rules to them. And that's where the "getting things done" mindset comes into play.
The first discipline is to never read an email twice while it's in your inbox. My natural tendency is to read an email, think "ok, I'll get back to that", and leave it there - but that's bad, because then you have to re-read it later to regain the context and actually do something about it. For every message that arrives in the inbox, you have to read it *once* and then classify it immediately. Do *not* think "I'll get back to that": classify it *now*, and don't take more than about 3 seconds thinking about each one.
Which leads to the second discipline: classification. I use a slightly modified version of Mann's classifications. For every email that comes in I mentally throw it into one of 5 piles: Do, Delegate, Delete, Defer, Archive. It's become a bit of a mantra that runs through my head at all sorts of odd times!
If it's something quick and all you need to do is dash off a reply, just Do it. Then file the email in the current archive.
If it's something that can be passed on to a colleague, forward the email and then file it in a "Delegated" folder.
If it's something that you really don't care about, like time-wasting "look at these funny pictures!" messages from that cousin you haven't seen in 6 years, delete it.
If it's something that will take a bit more care and time to actually follow up on, file it in a "Defer" folder.
If it's an email you want to keep for future reference but don't actually need to do anything about, file it in the "Archive" folder for the current year.
After a few minutes working through your inbox you should have every single message either Done, Delegated, Deleted, Deferred, or Archived. And your inbox will be empty. A miracle has occurred!
The third discipline is then to go through your Defer folder several times per day and action the items that will take some time and care. If you've been brutal enough with your classification process this will hopefully be a relatively short list. Once each item has been actioned, move it into the Archive folder. Once again your objective should be to achieve an empty Defer folder, but that's often not practical. I've heard of people using this technique who write a mail rule that takes anything which has been sitting in the Defer folder for more than 30 days and simply deletes it. After all, if you've deferred it for more than a month it's not likely you'll actually do anything about it, so why not just accept the inevitable? Personally I don't do that but I can understand why people do.
The fourth discipline is to regularly go through your Delegated folder and check if there's anything you need to follow up. Often you'll delegate a task to a colleague and never hear the outcome, so the messages in the Delegated folder can act as a prompt that you need to check the status of that task and then move it into Archive once it's done. Once again your objective is to have an empty Delegated folder: a sign that all the tasks you are delegating to other people are being completed quickly.
So there you have it: my technique for drinking from a fire-hose without being washed away. Everything comes into the Inbox, then is redirected into one of several folders, and eventually filters through to the archive for long term storage. Conceptually simple, but the trick is applying the discipline needed to make it work!
There's a very cool video online of Merlin Mann doing a Google Tech Talk about inbox zero. It's well worth a look if you're anything like me and wish you didn't have to spend so much time dealing with email.
video.google.com/videoplay?docid=973149761529535925
1 of 23 >
[ Back to top ]