Archive for March, 2010

The mobile data monopoly : what holds smartphones back from the masses.

Friday, March 19th, 2010

I have been paying a lot of attention to smart phones and expending a lot of brain power trying to gaze into their future to predict what is coming.

crystal_ball

One thing that baffled me for some time, was companies approaches to platforms. Google seems to be pursing two technologies, Android and ChromeOS similarly Nokia are doing the same with Symbian and Meego.

Why expend efforts on two seemingly similar projects and not converge them?

Well, I think the answer lies in market segmentation. At the current rate of progress, users break down into two types of categories, Tech savy and Non tech savy. Which conveniently for me is plainly clear by the difference between me and my sister. I go and seek out new technologies to use when they are still in their infancy and unrefined. She on the other hand holds back for as long as possible until the technology is mature and actually ubiquitous and useful.

Now lets move over to the iphone for a moment. Curiously they ARE NOT pursing two platforms. Again we ask why? Well, what was the underling cause of the success of the iPhone? Was it it’s amazingly slick user interface, the seamless integration of phone, media player and personal organizer or perhaps a phenomenal marketing campaign?

None of those.

The reason iPhone was such a successful product was because Apple did something very clever and forced you to have a free data package with the phone when you brought it. This meant that it was the first phone that a lot of people experienced the service of mobile internet on. Bang. Without free data, the app store and the iPhone would have been a spectacular non-event.

So still I hear you ask, why two platforms?

Well, mobile data is expensive, as much as we might wish for companies like Vodafone and O2 to disappear off the face of the planet, they are not going to. They make a large amount of money from holding the keys to these services and charging you whatever they can get away with for the privilege to use them here, overseas, anywhere. The phrase money for old rope springs to mind.

Undoubly they will die or change significantly. Their business model is old and out of date. But in the mean time, it leaves a gap.

This is a gap of technically able users who can use smart phones but who can not afford the functionality associated with mobile data. Also more significantly in this gap are users who do not have access to data, for example the billion+ people in India for whom 3g is not a possibility not from prohibitive cost but from lack of infrastructure.

Hence Google and Nokia are positioning a suitable fallback. An operating system that caters for online/offline users, users who are less likely to use mobile data, but more likely to come home and connect their phone to their home broadband powered wifi. An operating system that takes full advantage of all the services offered by smart phones that are not dependent on mobile data.

It is no co-incidence that Nokia is launching all it’s new phones with Ovi maps built in and not requiring a mobile data connection. It was quite a shock recently when my European based partner came to visit me in the UK but was unable to use Google maps on her iPhone becuase of the prohibitive cost of roaming data from her cellualr services provider. There is a large an important market place waiting to be tapped here.

So what can we do to slowly errode the control of unhelpful companies like Vodafone that painfully extract excessive amounts of money from consumers preventing innovation and more use of mobile data?

Well, I’d like to cross over back into Google land for a moment. I think someone at Google read this post on economics by Joel Spolsky the basic premise of which states that if you commoditize complimentary services to your own then your product sells more e.g. if you sell beer glasses it is in your interest to make beer as cheap as possible. This theory pretty much explains all of Google’s moves into other sectors, broadband, browser, mobile the list goes on. The more people use the internet, the more they use Google and it’s advertising. Kerrrrr ching.

So how do we commoditize mobile data in order to force the prices down? Well, we need to create viable alternatives to the networks controlled by these mega telcos. We need to create the equivilent of “open mobile data networks” based on the same principles as the internet, a collection of nodes freely passing information at no charge to the consumer.

But how? Well fortunately we already have the technology. It’s called WiFi.

Unfortunately however a few years ago, the mega telcos did a very clever thing and brought up all the hotspots. I was horrified when I went to a hotel recently where T-mobile wanted to charge me 30 euros an hour to use the wifi network. Hmmmm. That is not going to encourage the use of WiFi on smartphones.

What companies like Google and Nokia need to do is club together and create a simple WiFi router, that they give away for free, on the premise that users sacrafice a bit of their bandwidth to local wandering strangers trying to use their smartphones breaking the mobile data monopoly.

Joel on Software: end of a era

Wednesday, March 17th, 2010

Thought I’d just write a quick post to both commiserate and celebrate the news that Joel Spolsky has decided to retire from blogging.

In the final .inc article Joel quotes Kathy Sierra:

“an entrepreneur’s blog has to be about something bigger than his or her company and his or her product”

so I thought I’d write up a brief tribute of why I thought Joel Spolsky’s blog/writing was important to software development as a whole.

Five years ago, I was working as a technical lead in a small design firm. I was the only full time technical person and dealt with everything, wearing hats from server admin to lead developer to pitching to printer technician to technical manager hiring and firing freelancers.

Suffice to say, the quality of work that came out of that company was not high and we were constantly faced with the very real possibility of bankruptcy. 14 hours a day I was rushed off my feet trying to get everything done, always playing catch up. I was inexperienced and stressed and after a grueling year I quit to take some time out and regain the shreds of my sanity.

At this time my love of the software industry was not very high, it seemed like a lot of hard work for not much reward and I was about ready to jack it in and become a wine farmer in Slovenia.

That was until I found myself reading a book that would change my opinions.

Here was a book that did 2 vital things for me.

Firstly, it made me feel like I was no longer alone. Here was a person who had realized the same things that I had realized about the nature of software development and was willing to stand up and champion this best practice. Now when a project manager tried to tell me why using SVN took too much time or a designer tried to tell me it was ok that he had done his design in anti-aliased VAG rounded and the web page needed to be exactly like it, I had the confidence to push back.

Secondly it taught me or clarified some best practice principles across other disciplines, from legacy code to complimentary services. It both increased the depth and breadth of my knowledge again helping me to feel more confident to push back in other areas that were not my specialty.

I finished reading the book and was excited to be a software developer again, armed with a new set of skills and I will always be very grateful for that. Joel spent many years evangelizing software development best practice and made mine and I suspect a lot of other people’s lives a lot easier giving us the knowledge and tools to be able to get on with the exciting pieces of building software.

After reading the book, I also listened to the ups and downs of the stackoverflow podcast and gleaned some new bits of industry information from that, but ultimately I think that had run it’s course and am happy they decided to end/change it.

I don’t know where Joel’s journey will take him next but I hope that it is equally as prosperous and continues to allow him the freedom and scope to do what he wants. I was certainly very interested to see the new Kiln project and incredibly helpful mercurial guide. Which I in turn will be using to help educate younger developers. So thanks Joel for ten years of great software development insights.

Where to put your CSS hacks - conditioning your conditionals.

Wednesday, March 3rd, 2010

I’ve had/heard/seen this argument many times on blog after blog. So I thought it would be a useful blog post to highlight to upsides and down sides to each argument.

Conditional Comments

Conditional commenting is the practice of putting code in special comments in your HTML document that get executed only in specified IE browers, it usually looks something like this:

conditionalcommment
  • Pro’s

  • Keeps hacks separate making style sheet look clean.
  • Allows for automated validation of main style sheet
  • Enables clean easy use of completely browser specific enhancement code like filters and expressions
  • Is backwards compatible
  • Con’s

  • Encourages people to write browser specific CSS instead of writing better CSS. (broken windows theory)
  • Decoupling of styles can result in more bugs when people forget to update the conditional stylesheet. Also bugs can be harder to track down.
  • Is an extra HTTP request

Inline CSS Hacks

Inline CSS hacks are where you write *hacked* attribute, property pairs in your CSS using combinations of ascii characters to take advantage of bugs in different CSS parsers, looking something like this:

inlinehacks
  • Pro’s

  • Keeps hacks together with real code for easier tracing/debugging.
  • Less likely duplication of code
  • Con’s

  • Encourages people to use hacks instead of writing better CSS. (broken windows theory)
  • Stops automated validation of CSS as hacks are in the core code.
  • Hacks can be unreliable and have adverse effects on different browsers other than the infamously un-robust IE family.
  • Is not backwards compatible, if a hack gets fixed the rendering will break on later browsers

Ultimately it’s a preference thing and you can spin these pro’s and con’s either way to support your chosen method of development, but once it’s been chosen all developers need to stick with it. I think the important thing is that everyone needs to be vigilant that both are used with extreme caution and care as a last last resort in the CSS.

I see two useful things that could be created to follow this up to create the desired behaviour:

  • setting up some code that analyses the amount of CSS versus the amount of hacks or conditionals, then having a theoretical limit say 5% that you are not allowed to go above for a successful build.
  • Having a rule to write a detailed reasoned 3 line discourse in comments giving a description of why and in what circumstance each hacked rule is required.

Personally I opt of the conditional method, but that’s because I have a bizarre obsession with automated validation of CSS. See CSSOrder.

Biology is getting interesting!

Wednesday, March 3rd, 2010

When I was in school, biology was one of the dullest classes I had to endure.

Pointless experiments with Bunsen burners and peanuts, long drawn out processes that you had to learn by rote and videos on autopsies of smoker’s lungs is what I remember most.

In fact the most exciting thing was when our teacher vanished mysteriously for a period of six months and we had a replacement teacher.

On maybe the third lesson we had he with him he was late. Another class had over run, no problem, time to doodle and relax. However as I looked out of the window I saw him on the second story of the block of class rooms on the other side of the playground. He was very slowly approaching the stairs. The stars were white steel framed with blue rubber treads with embossed circular bumps the kind that had gaps in between the steps so you could see through to the bottom. He got to the edge of the stairs and stopped. After a long pause, he tightly clutched the banister rail and put out his foot as if he was about to step off the edge of a skyscraper or precipice. He slowly lowered his foot and as it touched the next step, he suddenly crumpled and desperately grasped at the railing on the side then he quickly turned around and on his hands and knees crawled quickly off back through the glass doors of the stairwell. I never saw him again. To this day he may still be there, crippled by what one must assume was a terrible case of vertigo. Anyway. He was nothing like this guy:

Fuck me. If biology had been this interesting when I was in school, I may well have actually listened rather than ignoring it to pursue a career in programming and advertising.

I can’t wait for the stage when we as engineers and software developers get some kind of higher level language abstraction to play with and start developing out own organisms, that we can then send off as code to some lab in China or India that will produce the DNA in dish and send it back to us. Then I can watch it grow in to the giant Killer monster I always dreamed of that would destroy this world and help me build a new civilisation. Or maybe, I’d just like to create some glow in the dark grass for my back garden.