Requiem for a modem

Two days ago I’ve shut down the longest running electronics device I ever owned.

Alcatel SpeedTouch Home - Image from isphelp.info

The device was my an Alcatel Speedtouch Home ADSL modem which I got circa 2001 when I was lucky enough to get an ADSL line at home.

It was only turned off when there was a power failure or when I moved an apartment.

It survived 6 PC, 5 Laptops, 4 routers, 6 apartments spanning 4 cities and about 10 different cell phones.

It was hacked to use PPPoE instead of its default PPTP. Was hacked again to function as a router, and back to being just a modem.

When I started using it I had a 1.5Mbit ADSL line. It grew to 2.5Mbit and finally 5Mbps – its maximum supported speed (taking into account the infrastructure state, my distance from the switchboard, etc).

When the New Generation Network (NGN) of my landline provider Bezeq was deployed, the modem couldn’t  keep up with its 5Mbit speed because the uplink speed changed and it couldn’t sync. I downgraded to 2.5Mbps until I could get a replacement modem.

Once I got the newer modem, I shutdown the old one for good. It was now obsolete, old and unable to support faster speeds. No one would want it. No one would need it. No one would use it.

I will always remember it as the device that saved me from my happy dial-up days and brought me into the broadband age. It never failed, never stopped working and handled whatever bits were thrown at it.

It is now time for you to rest in modems heaven, where the line is always synced and the bits flow freely.

May all my current and future modems will serve me as well as you did.

Goodbye old friend. We had good times.

Scott Berkun’s Mindfire: Big Ideas For Curious Minds – Book Review

I had the pleasure of reading Scott Berkun‘s newest book – Mindfire: Big Ideas for Curious Minds. I was also forunate to get it for free in the short period of time where Scott gave it for free on his site, but this is not a guilty book review of getting the book for free.

Mindfire is a collection of 30 essays which Scott wrote in various places, mostly on his blog. The essays got cleaned up and preped for the book which made the reading very clean and flowing. Scott’s writing style is very flowing and funny and while it may seem at times as a self emporment / self help book it really isn’t.

I look at it more as a collection of percise and clear set of obersvations on the human condition and behavior alone and in a group. Some of the essays specifically talk about work related situtations, but in most cases  you can apply some of the tips and wisdom of this book to almost any interaction with other people.

I really enjoyed reading it and in some situations fully sympathize with the eassy’s topic and resolution.

UIImage in iOS 5, Orientation and Resize

One of the things I found very strange is the fact that most operations that came with iOS prior iOS 5 which revolved around UIImage didn’t take into account the orientation of the image. This meant that if you want to read a picture from the camera roll and resize it, you’d have to roll your own code to correctly flip and/or rotate the image according to its orientation value.

Being my lazy self I used the fine code of Trevor Harmon in UIImage+Resize. Trevor added some categories to make handling UIImage a bit nicer. The code takes create of everything including orientation.

My app worked great on iOS 4 and early betas of iOS 5, however in the late beta of iOS 5 and in the release it wrongfully rotated the images.

After further investigation it seems iOS 5 already rotates the image correctly. UIImage+Resize rotated it again, causing the images to get skewed.
A quick fix would simply avoid the transposition code in UIImage+Resize.

Since the code ran perfectly fine in iOS 4, for backwards compatibility I added a check for OS version and for anything below 5.0 the old code would work.
Check out this gist:

For better performance I would store a boolean flag somewhere in the app saying you are running in iOS 5 and check that instead of keep on checking the OS version every run, but this is just to get you started.