Posts in category personal - page 4

Apology for the odd theme and sluggish speed

I’ve switched to a lightweight theme (300KB less per initial hit) whilst we are overloaded with requests from the excellent Daring Fireball regarding the font rendering philosophies post.

I’ve tried moving some images off site but it’s just typical this happens the week before I move to proper hosting. My poor home DSL line is melting!


Things have calmed down and through a combination of moving images off-site, switching theme and enabling GZip compression for .js and .css the site has survived despite being overloaded at times through lack of bandwidth (CPU and RAM were just fine)

I’ll leave the theme as it is for now in case we get a second wave – the hits appear to come in waves as different time-zones hit different parts of their wake-up, get-to-work and get-home cycles.

The 60 day old post has now had 20,000 hits – about 19,500 of them within the last 24 hours. Slicing and dicing the stats in SQL reveal that my blog has been running for 977 days, consists of 263 blog posts averaging one post every 3.5 days. It has received 1239,51 hits in that time, a sixth of which were in the last 24 hours.

It’s amazing for so many people to read something I have written but as analytics is already pointing out fame is fleeting.

Here’s hoping a few of them decided to add me to their news reader :)


What are you doing for the next 6 months to be a better developer?

Scott Hanselman posed the open question on his Hanselminutes podcast and there have already been some good responses. My own plan includes:

Improve programming techniques

My girlfriend gave me the well-regarded Code Complete, Second Editionfor my birthday. I shall read it cover to cover and adopt good practices I am not currently practicing.

Manage my life

I have started reading GrinGod’s copy of Getting Things Done: The Art of Stress-Free Productivity. I will move tasks out of my head and concentrate on what is achievable right now.

I have set-up these tasks now in Midnight Inbox (great but a little rough) and will keep an eye on OmniFocus. I will be prepared to use my free Moleskine I won in the Moleskinerie summer draw if neither does the job and not immediately write my own software.

Interact with other developers

My Subversion talk at the Guernsey Software Developers Forum went well. I will seek new members and engage in discussions of development with regards to local issues such as those in the finance industry.

I will spend less time on IRC as it is distracting and the non-persistent nature means good answers are lost. Instead I will help more on forums and be prepared to wait for answers to my own questions.

Learn new technologies

I will investigate technologies and learn them where they appear applicable to my work or I find personally interesting. These include:

  • Ruby on Rails – clean MVC development with AJAX support… but what about libraries and performance?
  • LINQ – simple but powerful object-relational mapping as standard but far away in .NET 3.5
  • Cocoa – Apple’s OS X development based around Objective-C giving compilation and dynamic typing
  • MonoRail – if I’m going to continue with ASP.NET it won’t be with WebForms
  • SharpDevelop – the Visual Studio API is terrible and this project looks well designed and usable

Contribute more to open source

I will contribute more to my favorite open source projects. This includes:

  • AnkhSVN – improve user interface and head up the 1.1 release
  • SubSonic – refactor more code and help out where I can

Lead development at work

At my new job I will concentrate on the new technology and vision for the next-generation of tools to deliver to our staff and customers and lead my team as appropriate.

I will distill my experience contracting for the last 7 years into the best practices for the company and continue to lead them in adopting modern practices. We now have have source control, formalized request for change and release management procedures however we still need to embrace new tools, write comprehensive unit tests and switch to object-relational mapping for new development.

Switch key-map to Dvorak

I have swapped out my DAS 2 at work for my Apple Pro with the key caps rearranged for Dvorak. I will stick to this layout until I can properly touch-type. I won’t actually make me a better developer but it should keep RSI at bay. (This post was written using Dvorak)


Things I learnt in Japan


  1. Commercial airlines take the fun out of flying. Airports are often overcrowded and always have so much ‘dead-time’ waiting for check-in, security, boarding, take-off, baggage claim, customs…
  2. Heathrow is horrific and I’m glad Guernsey doesn’t fly there any more.
  3. When UK customs say one piece of hand-luggage per person they mean it. Handbag and laptops are a piece and taking liquid or gels is still a pain.
  4. It takes around 1h 20mins to transfer between Heathrow and Gatwick by coach.
  5. Seoul’s airport is impressive even under construction – shame about the one-hour delays on the runway.
  6. Korean Air’s fleet delivers interactive individual LCD screens with seat-to-seat gaming or ancient dodgy CRT projectors depending on the luck of the draw.


  1. The JR Rail Pass offers massive savings for those wishing to get around. As well as Shinkansen bullet-trains between major cities you can take slower trains between towns and JR lines inside cities.
  2. Show your JR Pass and ticket at gates instead of putting your ticket in the machine. Otherwise be prepared for a polite yet firm official to tap you on the shoulder.
  3. JR Pass doesn’t let you get on the Nozomi Shinkansen. The quickest you can ride is the Hikori which is the same speed but has more frequent stops often.


  1. Tokyo subway is quite easy to navigate despite the sheer size and number of people thanks to near-complete Romaji maps.
  2. Kyoto subway is a bit of a mess thanks to multiple operators and no unified map.
  3. Fukuoka’s subway is fast, clean and easy to navigate… it is also new.
  4. Buy a credit ticket that will be deducted per trip. It saves a whole lot of time messing around with machines and costs and lets you get on the last few trains when the ticket machines have closed.


  1. All Internet cafes should consist of cubicles you can sleep in with TV, workstation, bean-bag, unlimited soft drinks and a free comic library like Gera Gera.
  2. Mobile phones are everywhere with people texting and gaming in the street, on trains etc.
  3. Mobile phone system is UTMS/3G so a GSM-only phone won’t work. You’ll also need to make sure your operator has a roaming partner in Japan because you can’t buy pay-as-you-go SIM’s in Japan unless you’re a resident.


  1. Japanese people are incredibly polite and helpful whether it’s a stranger sharing her umbrella at a road junction, somebody helping you pick up the contents of your bag sprawled across the floor or somebody from a shop coming outside to help you get your map the right way up and point you in the right direction.
  2. Tiny Police stations (boxes) scatter Tokyo and are equipped with maps to help lost people – addresses are hard to find without one. Check the web-site for where you’re going and you’ll probably find a printable map.
  3. Emotion is all about the eyes and not the mouth in Japan. It’s not just anime but even emoticons are eyes-only. A sad mouthed-face here is tearful eyes!


  1. The street-tent Japanese eateries are a great place to meet people as locals of all ages and foreigners get chatting.
  2. Cheese, milk and chocolate are not common. Kit-Kat and Snickers are about the only recognizable brand chocolate bars.
  3. Eggs turn up in many many dishes. Boiled and dropped into soups, or cooked and laid upon practically anything or sometimes raw over rice dishes.
  4. Food is beautifully prepared, even supermarket sandwiches and lunch-boxes. Crusts are too ugly for their sandwiches.


Remote denial of present (DoP) attack via Amazon wishlist

I placed eleven items this year into my Amazon wish-list for my family and girlfriend to pick from and all were quickly purchased.

A few days later my mother asks if I can put some items to buy because after purchasing one or two the others have now gone.

My brothers don’t have debit cards, my sisters have limited net access my girlfriend claims she hasn’t brought them and nobody else knows about it.

Either I’ve got a secret Santa fulfilling my every Amazon wish or… somebody is executing a remote denial of present attack upon my Christmas!

How it works is simple.

  1. Find the Amazon wish-list of the target
  2. Buy items from the wish-list but ship to your own address
  3. Enjoy the items yourself
  4. Rejoice in knowing the target is deprived of the item now that Amazon believes he will get it

It’s pretty evil.

The only way I can see that Amazon would be able to prevent this attack is to either let you pre-select other Amazon accounts that are able to use your wish-list or to be able to see who brought what.

Ho-ho hum,