So it's been a while since I last blogged about anything. Life's been really busy. Here's a quick update...
I changed jobs in mid-May after having been with the great people at NetBox Blue for around 7 years (a long time in the IT world!). It wasn't an easy decision; I'd been with the company from right when the NetBox product was starting and I had invested so much time and effort into the project. The product and company has now become very successful and I'm proud to have been a part of it. Still, I needed to do something new, and working remotely from London was slowly driving me crazy.
I hit the big three-oh in May. I don't feel any different. Nor are there any walking sticks or wheelchairs in sight :)
Susanna organised a suprise trip to celebrate. On the night 2 days before my birthday I was told that I'm going on a flight the following day and not going to work like I thought. Susanna had organised leave for me with the pH Group before I had even started and my new boss didn't give anything away!
For added suspense, the destination wasn't revealed until we arrived at the airport. We ended up flying into Bilbao (Spain) and then travelling to San Sebastian where we had a self-contained apartment. The trip was truly memorable: friendly locals, fabulous food, beautiful coastlines and beaches.
Dinner on my birthday night at a 3 Michelin star rated restaurant called Arzak. San Sebastian is a true "foodie" destination and apparently has more Michelin stars per capita than anywhere else in the world. Arzak is one of the many world class restaurnts on offer, and possibly one of the best. The meal we had is easily the finest restaurant meal I've ever had. The tastes and presentation were out of this world. Highly recommended.
Apart from the flashy restaurants, more cullinary delights can be found in the bars of San Sebastian. They all serve the Basque version of tapas known as pintxos (pronounced something like "pin-chos"). Most of the dishes available are literally sitting on the bar and are typically served on sliced stickbread. The protocol varies between venues but you typically ask for a plate and grab what you want, making sure the barman sees what you're taking so he can keep track of your bill. You eat standing up, while having a drink or two. Most bars give you complementary small glass of local white wine when you start. When you're finished (usually to move to the next bar!), you ask for the bill. Warning: the dishes are extremely more-ish and the temptation is to eat way more than you really should.
We also went to the awe inspiring Guggenheim in Bilbao. The architecture of the building and the art works inside are mind-warpingly good. Another highlight was the beautiful old town of Pamploma where the running of the bulls are held every year. What an awesome trip!
I have a bunch of photos to put online soon. Will blog about them when it happens.
Filters ate my Blogger comment notifications
I've been missing people's comments on my blog because the spam filter (my employer) in front of my mailbox was blocking the notifications. Turns out that Blogger sends from an address which doesn't exist. This gets caught by Sender Address Verification, which we have turned on. I've whitelisted the address now, so notifications should get through.
For anyone who's interested, the notification emails come from email@example.com.
Back from the snow
I'm back from an awesome 2 weeks of snowboarding in France and Austria. I'm somewhat weary in body and mind and have tons to catch up on, but boy was it worth it. Despite snowfall being way below what it should be this year, conditions were still quite good for the most part. My snowboarding has improved a lot too thanks in no small part to the crew at Alliance Snowboarding. I definitely want to go again next season (if global warming permits).
Photos to come...
Martini Design Patterns?
Sometimes the random text to put off filters in spam emails is hilarious. This is an excerpt of one I received today (odd line breaks as per source):
In a way that lets you put principles will help the "Trading Spaces" show. support in your own code. so that you can spend You want to learn about the patterns that to know how they you get to take same problems. the patterns that in between sips of a martini. the patterns that or on the real relationship "secret language" Head First book, you know challenging. Something But you don't just in between sips of a martini. the next time you're Design Patterns, you'll avoid alone. At any given moment, used in the Java API deep understanding of whyLooks like they randomised the words of some design patterns book, although I don't know where the martini references come from.
Deferring Postfix delivery
Sometimes it's handy to have your gateway email server accept all messages but not deliver them out. I sometimes need this when testing that a big mail out to clients isn't going to have embarrassing consequences.
If you're using Postfix this is easy; use the defer_transports setting. To hold all mail use
defer_transports = smtp
To trigger delivery use
sendmail -q. Very useful.
Holland photos online
I've put up the photos from our trip to Holland. There's heaps there. Some still need captions but it's mostly done. It's such a big effort processing that many photos even with all help you get from Gimp. Glad it's done!
Red eye be gone
I'm sure we've all seen the red eye effect in flash photos. You know, when some or all of the people in a photo look like demon spawn from hell.
Lately I've been processing a lot of digital photos with Gimp and have had to deal with the red eye problem. There's a number of tutorials out there that instruct you how to use Gimp to manually remove red eye. I'm sure the techniques are valid but they all take a long time and require more Gimp skillz than I possess.
The best way I've found to exorcise the demons is schumaml's Gimp extension
redeye.c. Compile and install it using
gimptool. You just need to roughly select the problem eyes with say the rectangle tool and then select Filters:Misc:Auto Rede Eye Remover. There's also a manual option for when tweaking is required, but I haven't found it necessary. The results are great and are quickly achieved.
I discovered Rockbox today. It's a complete open source replacment for the firmware of several portable audio players include the iPod. It supports many audio formats including MP3, Ogg Vorbis and WMA and has cool stuff like gapless playback (great for mix CDs), themes, bookmarks and much more. I also love the fact that no special directory layout is required. Use your normal shell commands (eg.
rsync) or file management interface (eg. Nautilus) to copy tracks to your iPod.
I installed it on my iPod this afternoon; wow. It's not perfect (the tag cache system is fiddily) but it's stable and works as advertised. My main criticism is that there's too many options and features to fiddle with; great for geeks but not for the general consumer. But hey, it's open source so someone could create a friendlier version at some point. I love the idea that I can play with the code if I want to. It also has a plugin system for add-on apps which I'd love to check out at some point.
Rockbox is definitely staying on my iPod (yes the process is reversible).
The strike is off. No travel changes required. Sweet.
There is a bloody train strike which conveniently overlaps with when I've got tickets to travel to LugRadio Live. Many routes will not be running and others will be at skeleton capacity. Not happy Jan...
Alternative A is to travel on Friday morning instead and fork out for for an extra night of hotel accomodation. This has the added benefit that I can make the planned conference festivities on the Friday night. I'll have to take a day off work and miss the party I was supposed to go to however.
Alternative B is to get a refund for the outward journey and take a bus instead. This is actually going to mean: tube to central London, 2.5 hour bus ride to Birmingham, shorter bus trip to Wolverhampton. High potential for suckage.
There is a chance that the strike will be called off but I can't really count on that. Alternative A is looking the most attractive right now... will have to sort this mess out tomorrow.
I've recently updated my system to Fedora Core 5 (yes I'm very behind the times) and couldn't play various video formats again. Proprietary codecs suck but I haven't weened myself off them yet. The trick is to install the xine and/or totem-xine packages and download the essential codecs . Extract the archive and and copy the contained DLL's etc into
/usr/lib/win32. All those funny/crude joke videos you get from friends in your email will be playable again.
South West UK Photos
I've put up more photos on SmugMug. This time from our trip to the South West of the UK. I'm pretty happy with the photos. Not bad for a cheap digital camera.
SmugMug's drag and drop gallery arranging features rock. It's really nice to use, very fast and responsive.
Met Office English
From today's weather forecast courtesy of the UK Met Office...
There will be rather large cloud amounts, but some brightness.Hmmm ...
My brother was nice enough to get me an account at SmugMug for my birthday. Lots of nice features and they really encourage all sorts of hacks via an extensive API(s).
Hauppauge WinTV Nova-T USB2 on Fedora Core 4
I've spent a little more time getting the new TV tuner device working on FC4. Turns out I was using the wrong software to try and watch TV. I couldn't get tvtime to work it all. It looks for a
/dev/videoN device node which the dvb-usb-nova-t-usb2 driver doesn't seem to expose. xine seemed to have the correct DVB support and worked well.
Instructions for Fedora Core 4
This is what I did with FC4. The is with kernel version 2.6.16-1.2069_FC4. I imagine other recent kernels will work as well but I haven't tried them.
- Extract the device firmware: The driver needs load the device firmware into the device. The device is useless without it. You may be able to find the firmware on the net somewhere. The firmware filename is
dvb-usb-nova-t-usb2-01.fwfor me. The firmware needs to be extracted from the Windows device driver files. I used the online extractor from Patrick Boettcher.
- Install the device firmware: Copy the fireware file to
/lib/firmware. The hotplug daemon will pass it to the driver from that location.
- Plug in the TV tuner: Plug it in. You should see something like the following in your kernel logs or
dvb-usb: found a 'Hauppauge WinTV-NOVA-T usb2' in cold state, will try to load a firmware dvb-usb: downloading firmware from file 'dvb-usb-nova-t-usb2-01.fw' usbcore: registered new driver dvb_usb_nova_t_usb2 usb 4-2: USB disconnect, address 2 dvb-usb: generic DVB-USB module successfully deinitialized and disconnected. usb 4-2: new high speed USB device using ehci_hcd and address 3 usb 4-2: configuration #1 chosen from 1 choice dvb-usb: found a 'Hauppauge WinTV-NOVA-T usb2' in warm state. dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. DVB: registering new adapter (Hauppauge WinTV-NOVA-T usb2). dvb-usb: MAC address: 00:0d:fe:07:17:ad dib3000: Found a DiBcom 3000P. DVB: registering frontend 0 (DiBcom 3000P/M-C DVB-T)... input: IR-receiver inside an USB DVB receiver as /class/input/input3 dvb-usb: schedule remote query interval to 100 msecs. dvb-usb: Hauppauge WinTV-NOVA-T usb2 successfully initialized and connected.Check for a
/dev/dvb/adaptor0directory. It should contain several symlinks.
- dvb-apps: Install the
dvb-appspackage which should be in Fedora Extras (
yum install dvb-apps)
- Scan channels: Ensure your TV antenna is connected. As root run something like
dvbscan /usr/share/dvb-apps/dvb-t/uk-Oxford > channels.conf. You will need to pick a tuning file from
/usr/share/dvb-apps/dvb-tthat's close to your area. Check the output in channels.conf. There should be a line for each channel.
- Run Xine:As root, copy your new channels.conf to /root/.xine. Run xine and click the "DVB" button. You can select channels from the playlist functionality. You should see some TV.
It's unfortunate that the above doesn't work out of the box for non-root users. I'm sure a bit of udev configuration fiddling would provide the device nodes in /dev with more liberal permissions. I'll post details of that once I've played with this.
The remote control works partially. The volume controls work but the channel changing doesn't. I think this is a configuration issue. I'll need to figure this one out as well.
Reusing OpenSSH connections
Since I've moved to the UK, the initialisation time for my OpenSSH connections to various hosts in the Brisbane office has been much longer. There's a lot of data transferred when the connection is set up and this takes a while.
Turns out OpenSSH has a ControlMaster feature which allows reuse of connections to a host if there's already a connection open. This rocks! Saves me a painful wait whenever I open an SSH session.
Worse than lawyers
I know this is a little old now but wow.
Hauppauge WinTV Nova-T USB2 TV tuner - First Impressions
Susanna and I don't watch a lot of TV and our new place doesn't have much space so we decided not to get a TV. My wonderful girlfriend does however suffer from chronic CSI addiction. Its about the only show she'd miss. I decided to investigate a TV tuner card for my notebook.
After a bit of research I decided to go with a free-to-air digital (DVB-T) tuner. The UK has quite a few free digital channels available and all the analog stations are also available on digital. Also, the reception will be much better being digital and all.
I ended up settling on the Hauppauge WinTV Nova-T USB2 because it's cheap (50 quid), easily available and has drivers in the mainline Linux kernel that ships with Fedora Core 4. Its a box that plugs in to the roof antenna cable and a USB port on your computer. It also an IR receiver for the included remote control.
I messed around trying to get it work for a little bit in Linux. The driver loaded fine once I put the device firmeware in the correct place but I wasn't able to figure out how to get tvtime to actually show anything. I'm close to having it work but I wanted to make sure the hardware was actually functioning so ...
... I booted into Windows. The drivers and software worked well. I was able to autoscan the channels immediately. They all get named nicely because (I assume) the name is transmitted as part of the channel. The watching software uses its own GUI toolkit so it took a little while to get used to but it works well. I tested remote and scheduling software. No problems there at all.
With a bit of luck CSI shall record properly tonight. We won't be around to watch it because are meeting one of Susanna's friends for dinner. Hopefully the resident CSI junkie will get her fix :)
I will try finishing the Linux/Fedora setup in the next couple of days and will post more detailed instructions then.
Fruit is for the birds
Susanna related an interesting idea this morning over breakfast...
When we grow fruit we go to extraordinary lengths to prevent birds from eating them. We're really fighting mother nature when we do this because the fruit is there precisely for the reason of attracting birds. Plants have evolved to produce fruit that is attractive to birds. The birds then eat the fruit, moving the plant's seeds to other places, inadvertently aiding the plant's reproductive process.
Most growers get upset when birds eat "their" fruit. The fruit isn't really meant for us in the first place.
I arrived without too much incident. Fantastic to see Susanna again. Very surreal but things are going great.
London is insane. So immense, busy and chaotic. I sometimes think the whole place is hurtling out of control, just barely making it from day to day. Everything works, but only just.
I swear that over 50% of the population of London aren't native English speakers. You hear foreign languages and accents everywhere. Even the people who are native to England can be mistaken for speaking another language due to the strong accents. Kinda fun and very different to home.
We spent much the weekend looking for a new place to live. Only looked at about 5 places before signing up to a nice studio in Putney. It's big for a studio but still small. New carpet and furniture, separate kitchen and bathroom. Should be much roomier than our current arrangments. The upfront money required is crazy, especially once you convert to Australian dollars. Glad I managed to sell the car before I came over!
I'm at Incheon Airport on the morning of my layover, catching up on email etc. The hotel that was part of my ticket rocked (Hyatt). Great interior design, big room. My only complaint was that the room was a smoking room so there was a noticeable odour from that. Oh, and the vodka martini I had last night was terrible. Overall though, everything has been great. I'll know tonight whether the layover helps with jetlag. I'm hoping to arrive in a much better state than normal.
Getting to the hotel from the plane yesterday was fun. My itinerary said "hotel, confirmed"; oh so very detailed. The travel agent had said to "look for the crowd other people like yourself and head to the transit desk". Signage was minimal and I couldn't find this supposed "crowd". I ended up hooking up with a similarly confused Australian from my flight (Belinda) and we spent the next hour or so walking around the airport, asking questions, showing passports and playing the lost tourist until we eventually found the right place to go. Note to others doing a layover with Korean Air: don't go to the Transit Hotel in the airport, you do need through immigration, find the KA arrivals desk on level 1. Despite the confusion it was kinda fun to be lost in new place for a while and meet a new person.
Off to the UK in 2 hours! Can't wait to see Susanna again.
First post using Blogger
I've just transfered my blog to using Blogger after hearing from Stephen that you can host the blog on your own site. I haven't looked much yet at the customisation options but its pretty slick. Very quick to set up.
I've manually transfered the old entries that were remotely interesting, preserving the date.
I'm going to try and be a little more consistent about my posting frequency. There'll be plenty top blog about with the upcoming move to the UK.
Much Yum progress
Stayed up late last night working on the yum sqlite integration. Hacked out a new iterator style parser so yum doesn't load all the metadata into memory (and dump to a pickle) when importing into sqlite. I'm quite happy with it.
Also cleaned up a few other parts of Gijs' TODOs (and then added more of my own) :). All in all a productive and fun night although I'm more than a little tired this morning. In an effort to regain some fitness I've been walking every morning but I'm thinking that might not happen today :)
Seth emailed Gijs and me this morning in order to get CVS commit access organised. Sweet.
Windows Client and Long DHCP Leases
I've been meaning to note this for a while but never got around to it so here goes.
A few weeks back I updated the DHCP server used in my employer's internet gateway appliance. With the previous version of the server we issued leases with infinite lease times but the new version no longer supports infinite leases. To work around this I configured the server to issue very long leases, over 3-4 years if I recall correctly.
This caused some rather unexpected behaviour with Windows XP clients.
Instead of using the long lease as expected, the Windows client would re-request a new lease within seconds or minutes of receiving one. This looks like a signedness or overflow issue when handling the lease time value. Several different Linux DHCP clients worked correctly.
Googling around didn't find anyone else with this problem. I'm guessing this doesn't come up much because people rarely use such long leases. Also the Windows DHCP server doesn't allow you to specify such long lease times. I'm betting the Windows DHCP client implementation was mainly tested against the Windows DHCP server.
Rather than wasting more time on this (a lot of time has been wasted on debugging this) my workaround was to simply set the lease time to 2 years and be done with it. That's long enough to suit our needs and seems to not confuse Windows.
Fingers crossed that this keeps on working as time goes on... Wouldn't it be nice if everything just worked like it was supposed to?
Reasonable amount of activity on yum-devel recently. Some arguing about how/if new features should be done and lots of bits and pieces being worked on. The arguing is mainly people proposing new features and Seth fighting against them. I see where Seth's coming from: he's got to make sure that not any old thing gets into yum creating a maintenance and usability nightmare. Still, he seems to be fighting awfully hard... Sometimes I think its better just to write some proof of concept code to show how the proposal might work. This gets everyone on the same page and makes the arguments more productive.
To help resolve some of the discussions I brought up the idea of maybe doing plugins for yum so that people can do external hacks for the more wierd shit without them making it into the main yum codebase. Funnily enough Panu and Gijs piped up straight away; they'd been thinking the same thing. Seth initially wasn't too keen on the idea but then gave a little ground. Seth now wants us to solidify the idea somewhat. I've got some rough ideas but haven't had the energy to put them to the list. Maybe tomorrow.
Kernel hacking, Software Suspend (Suspend2) and other coolness
Lots of interesting stuff in yesterday's sessions. Did the full day kernel hacking tutorial with Rusty Russell and Robert Love which despite the disorganisation and the fact that we ran out of time was a great intro and a lot of fun. Although they might not realise it, Rusty and Robert have a good dynamic that stops things from getting boring.
The open source quiz was great to watch. Some fairly crazy madness.
I hung around until late for some of the Birds of a Feather (BOF) sessions. The most interesting for me was the Software Suspend "installfest". This stuff is seriously cool. Fully featured suspend to hard disk with no special hardware/power management support required. You really don't ever need to shutdown your Linux system again. I was lucky enough to have all the Suspend2 developers helping me get it working on my notebook. It was suprisingly easy. I'm planning on contributing a cleaner kernel Fedora RPM with the Suspend2 patches. The guys are pushing to get this into the mainline kernel soon which should make this a lot more accessible.
At around 10pm we were kicked out by the organisers and some of us headed down to the Wig and Pen (again!). Drank too much (again!) and chatted to lots of cool people. Finally managed to track down Colin Charles who Seth Vidal told me to look out for at the conference. I should really easy up on the drinking one of these days...
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.- Brian Kernighan