Random thoughts on being late

Don’t know if you’ve heard but Microsoft had to delay the launch of Vista until 2007

Apparantly this caused a lot of fuss, and even some rather dodgy reports of a 60% rewrite of the codebase, predictions of the demise of Microsoft, an opportunity for Apple and/or Linux, and so on.

Scoble had an interesting series of posts where he got increasing irate at some of the bad journalism and then collected all the tellings off he got.

To me the whole thing is a quite bizarre storm in a teacup – is it really so shocking that a Microsoft operating system schedule slipped? Given that in their entire history they’ve never shipped and OS according to the original ship date. I’m not just trying to pick on MS here – it’s an extremely common thing for software projects to miss their ship date, especially extremely large projects that have to have an earthquake like effect – even Ubuntu have had to slip Dapper by six weeks – although it just goes to show what a great job the Ubuntu team have done releasing 3 previous versions every 6 months on the dot (and the whole 6 month release cycle starts to look quite clever).

I did find the mini-microsoft response interesting, especially all the kvetching from Microsoft employees (or bored geeks trying to cause trouble?). This has got to be the most worrying aspect for Microsoft, not the peed-off OEMS, vulture like media pundits, or effect on the stock price. If the staff have such low morale, and so many bureaucratic hoops to dance through to get their code checked in, is it any wonder that the beast is shipping late? And what does that bode for the quality and especially the security of the system?

The other amazing aspect is that this is all this fuss for an operating system. This is just the stuff that allows you to run the applications you want (or need) to use. The comparison to Ubuntu above is a little disingenuous, because Ubuntu is more than just an operating system, it includes a whole range of additional software.

To be fair, the big 200lb weight that Microsoft have round their neck is that they feel they have to keep backwards compatability. The article by Joel Spolsky on how Microsoft lost the API war seems so prescient, for example he said in June 2004

Even if Longhorn ships when it’s supposed to, in 2006, which I don’t believe for a minute, it will take a couple of years before enough people have it that it’s even worth considering as a development platform.

(and in the article he explains the obsession with backwards compatability)

The weird thing is that when Vista does come out (and I wouldn’t bet against another delay) despite what anyone might say, whether it’s good or not so good, whether it requires only the fastest new hardware or will run just fine on a bottom of the range Dell, it’ll probably be a huge success – the juggernaut is just that big. Every OEM will want to ship it (to make up for the lost Xmas sales), and many large enterprises will start to roll it out, so the CIO can justify the large Software Assurance licence they bought.

Please, please me

Good to see Jono is on board with my plea for someone (or many people) to help the Xorg project with the simple, no eye candy, missing features related to rotation, mirroring, and dual head.

I think that perhaps I need to clarify what’s wrong and some ideas of how I’d like things to be (although, unfortunately I have no idea where or how to start coding X ro the relevant drivers).


Why is rotation important?

  • LCDs. Most LCDs have the ability to rotate from landscape to portrait mode. There are some situations where this might be useful, for example DTP page layout. Also, if you happen to watch it, in Twelve weeks with geeks check outJoel Spolsky’s desk – two Dell widescreens (I assume 21’’ 2005FPW) rotated and in dual screen mode (talk about double hell to try and configure in Linux, dual head and rotation).
  • Tablets. While the jury is still out on whether tablet pc’s (or the new Origami form factor) will ever take off in the general market – I think they will be relevant in certain vertical markets, for example education and design.

There is some support for rotation in the xrandr (X Resize and Rotate) extension. This is the extension that’s used in the screen size applets in Gnome and KDE that allows dynamic resizing of the display – which is great, however in my experience there aren’t any open-source drivers that support rotation, except the specialised ones for the ipaq and Nokia 770.

So the missing features are;

  • consistent rotation support across the most common drivers e.g. ati, radeon, nv, i810 (anyone for any others?).
  • ability to individually rotate screens in dual head setup

Dual head

Why is dual head important?

  • Hardware wise it’s becoming easy and cheap – even bottom end cards have two outputs, and the price of monitors is always falling. Most laptops have graphics chipsets that can drive two screens.
  • Many developers that I know either use laptops with an external monitor, or a desktop with two screens, in dual head mode. Again, look at 12 weeks with geeks – all the interns had dual screen desktop machines.

The good news is that most of the drivers I’ve played with support dual head. The bad news is that it’s tricky to setup and requires a restart of X to switch from single head to dual head and back to single head.

So the missing features are;

  • Abliity to dynamically switch (i.e. without restarting X) between single and dual head mode.
  • Ability to change the resolution of each head independently – of course without needing to restart X
  • Autodetection of a monitor as it’s attached – I realise this is a big ask. Windows doesn’t always deal with this well (probably a driver problem), OS X does well in my experience, but it should as Apple have control of all the hardware.


Why is mirroring important?

Do I really need to explain? Goto any conference, goto to any Universtiy, goto any corporate office, goto any sales meeting, and you will see laptops and projectors.

So the missing features are;

  • Ability to turn mirroring on and off
  • Auto negotiation of the best compatible resolution between the laptop screen and the projector.
  • Just like dual head – autodetection of a monitor as it’s attached. The ability to choose between mirror or dual head setup.

Final stuff

I imagine all of this is difficult, but is it more difficult than Xgl or AIGLX? My guess is probably, simply because of the reverse engineering of the hardware needed to drive the features of the chipset. However I would point out that for dual head the basic functionality is already there – it just doesn’t happen in a Just Works way.

Less eye candy please

Forgot to mention that a few weeks ago Jono and I got Xgl working – or what I should say is that Jono spent two days failing to get it working on his Radeon based laptop, and I learnt from hist mistakes and got it working on a Intel based machine in a couple of hours.

I have to say that the visual effects were at the same time cool and a bit underwhelming. Part of it was probably to do with the slowness since it was on a mere Intel 915 graphics chip (although bear in mind that the Intel 8xx/9xx family are the most widely deployed graphics chips) and of course this was just released stuff that didn’t have much / any optimisation yet (of at least I hope that optimisation is to come). Of all the stuff I’d probably use the expose-like function the most.

Of course a few days later RedHat / Fedora release aiglx (warning fedora wiki is slow today – FC5 was released). So it would seem that Novell and RedHat are now competing to see who has the best / most eye-candy.

All of this is great and I don’t want to discourage anyone from hacking on Xgl/AIGLX or whatever offsping becomes of those two, however I would like to point out to the Novell, RedHat, Ubuntu and the Xorg project that I still can’t easily do simple things like plug in a projector and mirror the display, or plug in an external monitor and expand my desktop, or rotate my LCD and then rotate X to match.

Most of this is possible, which is the first problem – we need all of it to be possible – but the second problem is that it requires knowledge and hackery of xorg.conf and then a RESTART OF X! The closest I’ve seen to a user facing tool for any of this was on Fedora Core 2 (and still there presumably – I’ll check when I’ve finished downloading FC5). This tool allowed you to configure desktop mirroring or dual head configurations – but then you had to log out (so that X could, you guessed it, restart).

This is madness. We already know that laptops have overtaken desktops in sales, pluging in a laptop to a projector to give a presentation or training course (or even just watch a DVD) is becoming at least an every week occurance for many people (and think of the influence of people for whom this is an every day thing), and more and more developers I know are using their laptop in a dual head configuration when it’s on their desk.

Given Jono’s success in invoking the lazyweb to buld an audio editor to meet his needs, I’m calling out to anyone involved with X to help sort this out. I’m not good at hardware driver coding but I’ll help with testing, documentation, encouragement, whatever I can. If you ever visit Birmingham or I meet you at a conference then I will buy you beer (or other beverage of your preference). But only if rotation, mirroring, and dual head setup are easy for nornal users and don’t require an X restart.

Aside Xinerama as a name has such great marketing potential, but no one uses it because it’s so damn hard to setup. Just think: YourFaveDistro, brought to you by Xinerama dual head display.

When people talk about Linux desktop adoption, what that really means from now on (in fact from about 2004 on) is Linux laptop adoption – and laptops are all about, hardware wise, plugging and unplugging external devices, whether that’s usb keys, external hard discs, dvd burners, mp3 players, digital cameras, scanners, printers, pcmcia cards, keyboards, mice, docking stations, and monitors / projectors. Nearly all that stuff behaves really well and ‘Just Works’ when it’s dynamically plugged and unplugged from the machine, all except for external monitors and projectors. That stuff requires wizardry.

I don’t know if 2006 will be the year of the Linux laptop (or desktop) or the year of Linux desktop eye-candy but I would love it 2006 was the year of Just Works rotation, dual head, and mirroring.

Napsterize your Knowledge

Don’t just take it from me that shared ideas are more valuable – so say Ben McConnell and Jackie Huba of the Church of the Customer Blog

The primary lesson: The more that a company shares its knowledge, the more valuable it becomes.

Companies that share their intellectual property and business processes with customers and partners are more likely to have their knowledge (or products) passed along to prospective customers. People tend to evangelize products and services they love, admire or find valuable, so Napsterizing one’s knowledge allows for the grassroots effect of distributed marketing. The network is the channel.

Companies that Napsterize their knowledge in the marketplace also tend to have the marketplace respond with help and improvements to its intellectual capital.

from the article Napsterize your Knowledge (see BugMeNot for a pass).

Saw this quote in the Getting Real book and had to get it in here.

Shock news

The CEO of a large IT company says that large IT companies are the key to the success of Linux and open source, and not communities.

It’s all very amusing because in the end Linus and Andrew Morton don’t ask IBM, Intel, or Oracle, what to allow into the kernel, rather it’s IBM, Intel, and Oracle engineers who ask Linus and Andrew to let their stuff in. In fact it’s even more complicated than that because probably someone from Oracle is the maintainer for one sub system, and someone from Intel another sub system, IBM another, and so on, so they are all asking each other to accept their patches with Linus and Andrew the ultimate arbiters. Which all sounds terribly polititcal, except it isn’t because the fact it’s GPL means that code flows in all directions, engineers talk to engineers in the open and avoid all of the legal and contractual issues that cross corporation work would normally entail. (Anyone remember the debacle that was OS/2).

It also amuses me how these guys never learn from history – IBM lost control of the PC market on two fronts; the open architecture of the hardware meant they lost that to Compaq, Dell, and others, and the decision to outsource the operating system to Microsoft (not once but twice!) eventually led to a flipover point in the late 80’s or early 90’s where IBM needed Microsoft more than Microsoft needed IBM (a situation which has irked the corporate psyche of IBM ever since OS/2 lost and this became obvious).

If you took away to corporate involvement with Linux (and other healthy open-source projects) then the community would change, but would carry on mostly unaffected. However if you took the community out of Linux devleopment – took away the openness, the independent leadership, the ‘no single company in control’ – then would Oracle, et al, want to, or even be able to continue? My guess is that already Oracle and IBM need Linux more than Linux needs them.