Opera vs Microsoft | December 18, 2007

As you’re all probably aware, Opera founder Hakon Lie recently filed a complaint against Microsoft with the European commission. The first part of the complaint seems fairly reasonable, at least from a certain perspective. Hakon complains that Microsoft are using their desktop monopoly to force Internet Explorer on users, to the detriment of other browser vendors. You could argue that other desktop vendors like Apple use similar techniques, and you’d be right. However the issue has less to do with software bundling and more to do with the market effect.

Say there was a level playing field with Apple, Microsoft and Linux all having equal market share. If They each bundled their own browsers into the OS, no one company would dominate. So success in the browser market would be a result of normal market forces such as quality, price, marketing budget etc. However with a 90% market share, Microsoft are effectively a monopoly. If they bundle a new application or technology into their OS, they can dominate the competition and own the market with very little effort on their part.

A lot of people would argue that Microsoft has worked hard to gain market dominance, so why shouldn’t they exploit the fact? After all, if Apple were in the same position, wouldn’t they do the same? Well the answer is obviously yes, but that’s not quite the point. This isn’t a Microsoft vs Apple debate, it’s about preventing any company using its size to drown out the competition. Without viable competition, we all end up worse off.

This has in fact already happened in the video player market. By bundling Windows Media Player with their OS and discouraging computer vendors from installing other players, Microsoft were able to build up a dominant position very quickly. Why bother providing content in Quiktime or RealPlayer format when you know that 90% of visitors will have Windows Media Player installed. Thankfully YouTube and Flash has managed to put a stop to that debate and re-introduced some much needed competition.

Interestingly this is exactly how the European Commission viewed the situation, and ruled that copies of Windows sold in Europe should come without Window Media Player Installed. Annoying for Microsoft, but potentially good for competition.

The complaint from Opera seems in part a result of this case. However you do have to wonder why they—or anybody else for that matter—didn’t try this avenue years ago. Back in 2000 Microsoft used it’s monopoly to win the browser wars and pown the market. It’s these monopolistic practices that left web development and the advancement of web standards in the doldrums for so long. With no credible competition Microsoft didn’t need to advance it’s browser technology and left us poor web developers pulling our hair out.

Like many monopolies, Microsoft spent the next few years acting like an absentee landlord and failed to see the groundswell of opinion turn against them–either that or they just didn’t care. Along came Firefox, and while it didn’t quite topple the Internet Explorer crown, it introduced credible competition back into the marketplace. This forced Microsoft to start paying attention to it’s Browser again and resulted in IE7.

Had Opera done this 5 years ago, I think the majority of developers would have been behind them. However Microsoft are now back in the game and things appear to be moving forward, at least on the browser front. Instead of being the champion of progress, this move runs the risk of looking like a marketing ploy or a cynical manoeuvre to claw back some market share.

Despite the possible business motives behind this move, I do think it’s worth exploring some more. If Microsoft were no longer able to bundle Internet Explorer into Windows, what would happen? Well first off, computer manufacturers would be free to install whatever browsers they wanted on the machines they produced. We’d probably see Firefox take an upwards turn, and possibly Opera and Safari as well. Hopefully company IT departments would probably follow suite. Assuming Microsoft wanted to protect it’s market share, they would be forced to pick up the pace of innovation and create a browser that people actually wanted to download, rather than one that was there by default. This would help stimulate competition and we’d all benefit. Unless of course Microsoft decided that the future of the Internet was outside the browser and use it’s dominance elsewhere.

The main thing that irritates me about the Opera complaint is the fact they they bought web standards into the mix. I think standards are important, but I believe they should be voluntary and not enforceable by law. By conflating the two issues, I feel Opera has significantly weakened their argument. The cynical side of me wonders if this was purely a marketing ploy to get the anti Microsoft standardistas on their side. If it is, I fear the ploy may have backfired.

Alternatively it could just be the result of frustrations within the CSSWG. There have always been accusations of stalling techniques being used by companies to prevent disadvantageous features being included in the spec. So maybe this is just a last ditch attempt to force Microsoft to adopt some unpopular features like font embedding. Either way, I do share some peoples concerns about how this will affect the working relationship within the CSSWG. I realise that companies bring about spurious legal claims as a matter of course these days, but this one somehow feels a little closer to home than normal.

That being said, I don’t think the complaint by Opera and the obvious failings of the CSSWG have much in common, so I’ll leave that discussion for another day.

Comments (21)

The Soundtrack to my Year | December 17, 2007

Every year Rich creates a mix his favourite songs from the last 12 months and hands it out to his mates. Rich has excellent music taste, so the CD is always greatly anticipated. This year Rich had the idea of creating an office mix as well. Each of us would nominate our two favourite tracks and we’d end up with a CD that reflected the year’s soundtrack at Clearleft.

I found it very difficult to pick just two tracks, so it got me thinking about the soundtrack to my year. I don’t know about you, but I tend to associate specific events in my life with specific songs. For instance, “Playing With Knives” by Bizzare Inc reminds me of walking back from the PSV club in Manchester during my university years, while “Wonderwall” reminds me of sitting in a hammock in Thailand with an old girlfriend. So I decided to compile my soundtrack based on the songs I listened to each months and the events surrounding them. It’s a little contrived at times, but you get the picture.

January - “Alala” by CSS

A punkey blast of riot girl power, this track kept me bouncing well into the New Year.

February - “Ice Cream” by New Young Pony Club

Introduced to me by my then girlfriend, NYPC were a natural progression from CSS and the Yeah Yeah Yeahs. Sexy, sassy and fun, just like her.

March - “Binary Love” by The Rakes

The Rakes provided the backdrop for my post SXSW road trip down the coats from San Francisco to Big Sur. Good times.

April - “Young Folks” by Peter, Bjorn and John

Another introduction by my then girlfriend, this song is beautifully upbeat and is almost impossible not to hum along to.

May - “Hoppípolla” by Sigur Ros

This gently haunting song is the perfect soundtrack to a relaxing night in.

June - “Rock & Roll Queen” by The Subways

Rather sadly I came across this song via a TV advert featuring Kate Moss. Despite that, Rock & Roll Queen is a class act, unlike our Kate.

July - “Season Song” by Blue States

Watching 28 days later reminded me how much I love this track. Perfect music for drifting off to sleep.

August - “The Crane Wife 3” by The Decemberists

The Clearleft office was pumping with the sound of the Decemberists in the run up to dConstruct this year, thanks in no small part to Mr Keith.

September - “It’s Not Over Yet” by the Klaxons

The album is a bit hit or miss, but this floor stomper really kicks butt. Golden Skans is also pretty cool.

October - “It’s a Hit” by We Are Scientists

Spent the autumn rocking out to “We Are Scientists”. It was really tough picking out a single track as they’re all so good.

November - ” Doing It Right” by the Go Team

This high energy track with it’s catchy cheerleader chants is enough to get anybody bouncing rounds the house. And they’re from Brighton to!

December - “When Anger Shows” by Editors

There’s something about the time of year than makes wandering round town listening to the Editors melancholic power ballads feel appropriate.

So that’s my rundown for the year. How about you?

Comments (5)

Liveblogging the Yahoo Developer Conference - Day 1 | December 5, 2007

Yahoo! are having their second internal developer conference this week, and they have very kindly invited a few external people to attend. As well as their London front end team, myself, Simon Willison, Natalie Downe, Glenn Jones, Matthew Somerville and a few other folks are in attendance.

First up is Simon Willison talking about Comet. Comet is essentially an old idea that has gained traction recently due to somebody giving it a name. Unlike Ajax, Comet was deliberately named after a cleaning project.

Comet applications keep a connection open and the event gets pushed to the browser. This is the reverse of Ajax clients polling the server every 5 seconds for updates. Sites like Google docs and Meebo currently use Comet. The concept first appeared in Netscape 1.1 as “server push”. The functionality still remains in modern browsers, but their is no notification when the connection is severed. Because of this, most people roll their own.

The current Comet methods are very hacky and usually use 4 or 5 different techniques to cover all the various browser quirks.Use XHR to open up a connection, and then watch for the ready state to change to indicate new data. This works in good browsers but doesn’t work properly in IE.

The other main method involves opening up an iFrame. However every time an update comes through browsers will click and the loading bar will throb. So a lot of Comet hacks involve hiding the throbbing and clicking sounds. Sane developers don’t want to deal with these issues, so it’s good that a lot of the crazy hacking has been done for you.

All these techniques work on the same domain. However you probably want to have cross-domain comet. For instance, you’re only supposed to have two connections open from a domain at the same time.

The most popular method is long polling. You open the connection, wait till something happens and receive the event. Once you’ve got the event the connection is automatically closed so you re-open the connection for the next event.

Client side Comet really sucks. However the big problem is scaling the server as it requires thousands of simultaneous connections. Apache isn’t set up to do this, so it doesn’t scale. What you need is event based IO. Instead of a thread or process per connection, you have one process that loops through hundreds of connections at a time. To do this, you probably need a separate Comet server.

Bayeaux is a protocol for Comet. Any Beueaux client can talk to a Beueaux server. Data is encoded using JSON. Essentially these servers are black boxes, so are interchangeable. Servers include Meteor and Orbited. Jetty is probably the easiest toi set up.

Despite all the crazy stuff you need, Comet apps are actually really easy to build using the Dojo library. Simon spends the next 5 minutes showing us how to build a simple Comet app.

Next up is Norm talking about coding standards. This is a rerun of the talk he did at BarCamp, so I’m sat at the back of the room, plugged into the Internets.

After a catered lunch, a few of us went to stretch our legs and grab a cuppa. On the way we dropped by the Neals Yard cheese sop so Simon and Nat could put their Christmas orders in. Think I’ll pop back at the end of the day to pick up some supplies. Over lunch we have a lively debate about a range of geekey topics. These ranged from how much better Django is than Rails, the benefits of CouchDB, and some obscure programming language used in the telecoms industry.

After lunch saw a talk on event handling and the YUI. Sadly the person giving the talk was very soft spoke, so I only caught every third word. Must move closer for the next session.

The next session is Nicole Sullivan talking about high performance web sites. I’ve been really impressed with the performance stuff Yahoo have been putting out there recently, so this should be good. In fact, Nicole works for a six person Yahoo team called “Exceptional Performance”.

Nicole starts by talking about their team make-up and the fact that they want Yahoo to be seen as a centre of good performance. In fact, one of their team has just published a book on the subject.

About 95% of user response time comes from the front end, so need to start there. This is where the biggest gains can be made, and they are usually much simpler to implement.

Nicole’s team do a lot of experiments. One of the experiments revolved around caching. They looked at the percentage of people who came in with an empty cache versus a full cache, allowing them to test download speeds. Apparently 40-60% of Yahoo users come in with an empty cache.

The next experiment was to look at parallel downloads. The results showed that having two domain aliases helped speed up response times, but any more than four would slow things down.

Yahoo have 14 rules for high performance websites. Not going to cover them all. This looks very similar to the info Nate has presented in the past.

Rule 1: Make fewer http requests by using CSS sprites and combine scripts and stylesheets. Most big sites don’t do this. Using something called the combo handler, which is unfortunately Yahoo only at the moment.

Some discussion about the ideal size of sprites and the maximum pixel size before Opera suffers a buffer overflow. One suggestion is to use rounded corner boxes with a transparent centre, allowing you to use CSS borders. Sprites aren’t always a good idea on page heavy sites as you pay the price on maintenance. Some discussion on whether you should optimise on a page/module basis or a site basis. Apparently Yahoo Europe have developed a public tool for CSS Sprites.

Rule 3: Add an expires header on images, scripts etc.

Rule 4: Gzip HTML, scripts, stylesheets, XML, JSON etc.

Rule 5: Put stylesheets at the top, as per spec. CSS at bottom is actually faster, but nothing renders. Use link, not @import, as this also appears faster.

Rule 6: Put scripts that aren’t crucial to the loading of the page at the bottom of the page to prevent them from blocking the load.

Rule 7: Avoid CSS expressions as they seem to slow the page. I stupidly thought she meant filters. Doh!

Rule 10: Minify JavaScript and CSS, but don’t obsfucate.

Rule 14: Make Ajax cachable.

Discussed Akamai as a content delivery management system. Norm mentioned Amazon.

Now a talk on PHP security. Potentially interesting, but not my domain, so won’t be taking notes.

Comments (4)

On Experts and Expertise | December 2, 2007

We currently live in a world dominated by experts. You only have to open a newspaper or switch on the television to see experts giving pronouncements on everything from parenting to the economy. In a world of multifarious complexities, the need for such experts is clear. We need experts to filter the huge flow of information and simplify it into something more digestible.

I experienced this recently while looking for a mortgage on my new flat. With thousands of products available and a limited knowledge of the market, I turned to an independent financial advisor for help. The financial expert helped evaluate my needs and whittled the choice down to just two or three products. With the right tools, I probably could have done this myself. However relaying on the expertise of another person made my choice much easier and helped mitigate a certain amount of risk.

The crucial aspect of being an expert is experience. We can all open a book and learn about a topic, but that doesn’t make us an expert. Expertise comes from repetition–from doing something over and over again until it becomes second nature. Experience lets us develop patterns, hone our skills and learn from our mistakes. Experience counts.

To get the most out of an expert, you need to trust their experience and relinquish a certain amount of control. This doesn’t mean that you should follow their ideas blindly without any critical analysis of your own. However when faced with a decision about which you have little or no experience, it makes sense to weight the result in favour of the expert.

Unfortunately it’s actually quite difficult to relinquish this control, especially if you’ve not worked with the expert before and can’t vouch for their results. I found this to be the case when looking for a mortgage–constantly asking the expert questions to sound out their expertise and give me enough information to make a decision. Often the real benefit of hiring an expert is in the transmission of their expertise to you.

The use of experts can help increase the chances of success, but they are no means infallible. This is because experts are simply offering an expert opinion, and while their opinions may be more informed than most, they are still just opinions. In the world of the expert, it’s not uncommon to see two experts disagree quite vehemently on a subject. This could be down to the different experiences they have had, or simply because they have chosen to interpret those experiences differently.

Sadly it seems that being an expert these days has less to do with experience and more to do with the strength and simplicity of their message and how well it resonates with the listener. We like our experts to have simple, definitive answers to essentially complex questions. How else can we explain why people listen to the advice of quacks like “Dr? Gillian McKeith over real doctors with years of medical training and experience?

If an expert pronounces something as fact, we tend to take them at face value. After all, they’re the experts right? If they turn out to be wrong, we’re safe in the knowledge that we trusted somebody better informed than us, and it was their mistake, not ours. Conversely, we mistrust experts who aren’t willing to give a definitive answer or one that fits with our own mental models. We dislike any form uncertainty and see this as a sign of weakness, rather than a true assessment of the situation.

This has lead to a dangerous form of rhetoric that values the singularity and strength of an expert’s opinion over the accuracy and validity of their assessment. People seem to admire sticking to a set of generic and intractable beliefs over the ability to critically analyze and understand a problem from numerous angles. As Albert Einstein once said, we should “make everything as simple as possible, but not simpler.” Sadly a lot of experts focus on the first part of that statement, without fully understanding the important or significance of the second part. Our craving for simplicity over complexity seems to come at the detriment of proper understanding.

Comments (8)