Well, I don't normally write much about personal stuff here, but it's just getting too much now. I woke up an hour ago and since then my partner called to tell me he'd been fired for "complaining about his job to his staff", and my Mum called to tell me my Dad's had another seizure (he was diagnosed with a malignant meningioma in his brain a couple of months ago, it was surgically removed and he's had radiotherapy to try and prevent recurrence, but now he's still having seizures, and we really don't think he should be).

My own problems I can cope with, but now I just don't really know what to do.

Edit: happily, we heard back from the consultants treating my Dad that the seizures are almost certainly caused by brain swelling resulting from the radiotherapy, and they should likely go away when the swelling goes down. So that's a big relief. Now, back to job hunting...

hv3 - light Tcl/Tk-based web browser

Thanks to an article on freesoftwaremagazine by Gary Richmond, I learned of hv3 (and the tkhtml3 and tclsee widgets it's based on), a very lightweight browser based on Tcl/Tk with Javascript rendering capability (which is important, as most very light browsers can't do JS). It has a somewhat messy structure and buildsystem and relies on some obscure stuff, but with a couple of hours work I got it building nicely. It actually works rather well - as the article mentions, it's much better than Dillo at rendering complex pages. It managed passable cuts at engadget, CNN, and Blue's News in some quick tests I threw at it - impressive. In a quick test - launching and openly a moderately complex test page (Distrowatch) - hv3 took 20MB of RAM, while Midori took 60MB (plus, of course, whatever GTK+ uses). I like those numbers.

The package will land in Cooker and 2009 backports once I'm done with my big Tcl/Tk 8.6 migration project, as it depends on some macros and conventions that are only being introduced with that version. Take a look at it then. Until then, here's a pretty picture!

Hv3, showing Mandriva's site

On a side note, I'm incredibly grateful for all the kind comments people have made in all sorts of places - here, OS News, Distrowatch, Linux Format forums, Mandrivausers, MCNL, MandrivaBrasil, mandrivaclub.de, just to name a few - in response to my contract being terminated. It really means a lot to me, and you guys are amazing, as Vincent said so well.

Bye bye

Well, I was rather expecting this after reading Vincent's blog this morning (and to be honest, doing some basic mental arithmetic on our recent financial results), but I have been told that as of December 31st, I'll no longer be working for Mandriva, as all external contractors are being canned.

I've had a great time working for Mandriva, and hopefully whatever job I find next will leave me enough time and flexibility to keep working on the distribution as a volunteer. I'll try and still be around the user community after my contract expires, too.

Obviously, if anyone is interested in hiring me, please do get in touch :). My personal email, which is adamwill AT shaw DOT ca, is probably more appropriate than my work one...I guess most people reading this have a reasonable idea of what I do, but an updated CV / resume is of course available.

Thanks, Albert

Hugely insightful football commentary on ESPN, after a dropped pass:

"And that...is a touchdown...if he is able to catch that pass...and get into the end zone..."

Gee, ya THINK? Glad I got these geniuses commentating or I wouldn't know what was going on.

A very Canadian American election night...

So I've got a pizza, six bottles of Okanagan Spring and six of Granville Island, and the TV flipping between NBC and the Canucks game.

I studied American history as part of my degree, and I'm amazed, pleased and impressed that, at this time in its history, the country has chosen Senator Obama. I don't think it's a decision they, or the rest of the world, will regret.

Whoops - outgoing mail

I wondered why my last post wasn't getting any comments - I figured if anything deserved 'em, that did. :)

Then I realized that outgoing mail from the blog likely wasn't working, as I'd forgotten to set it up again last time I re-installed the webserver. So, I just did that. If you tried to register or change your password or something and never got an email...try again. It should work now. Sorry about that!

Why I don't like Canonical

Very important to preface this with: it's my own personal opinion, written on my own personal blog. This obviously relates to Mandriva and is informed by my own experience working there, but it is not the official opinion of Mandriva, and please don't read it as such. If you want Mandriva's opinion, ask our PR folks for an official statement, and it will not look like this. :)

So, I've just been (implicitly) quoted bashing the Mark Shuttleworth / Canonical business model. (The rating on my ZDnet post is a stunning -21 as I write - my most negatively rated comment anywhere ever - but, strangely enough, no-one's replied to refute my argument). I thought it was worth expanding my point from my own tiny pulpit.

I've written before about what I think about Ubuntu. It's a good distribution. It does a lot of stuff right. Around 2004 it was better than MDK / MDV in many ways. I don't think it was ever better in every way, and I think MDV is a better product now, but that's by the by. This is about Canonical, and Mr. Shuttleworth.

First, the facts: Canonical is a privately-held company. It has no external shareholders and is not listed on any stock exchange. This means it has no legal obligation to provide any information to the public about its assets, liabilities, revenues, costs, or anything at all along those lines. The only information we have is what is volunteered by Canonical staff in interviews and so forth.

From this information we don't know a lot of detail, but we know the big picture. Canonical does not make money, and has never made money. According to the press call with Mr. Shuttleworth cited above, it is not expected to make money for some time. I don't know if it's accurate, but I've read a figure suggesting it has cost Mr. Shuttleworth personally $10m over the last four years, suggesting annual losses of approximately $2.5m. Canonical has a substantial amount of paid staff both in development and ancillary areas (I can't find a reliable figure on this, but I think it's more than Mandriva), and clearly has a substantial marketing / evangelism budget, given the ShipIt program and its presence at (and sponsorship of) major conferences all over the world.

Now, the facts about Mandriva: it is a publicly traded company (on the Euronext exchange) and posts quarterly financial results, which you can look at for the details if you like. From 1998 (its foundation) to 1999, it made a modest profit almost entirely from sales of boxed products to home users. From 1999 to 2004 (especially following public flotation in 2001), the new management attempted to expand the business rapidly into all sorts of different areas, with the result that costs mushroomed and the company started running substantial losses. Since then, the external management went, and the company has been re-trenching around three core areas: selling Linux products to home users, selling Linux products to 'corporate' users, and OEM deals - like the one in which Mandriva will be pre-loaded on the Emtec Gdium netbook system, or the major pre-load deal we have with Positivo in Brazil. Mandriva is currently not profitable, but its losses have been reducing steadily for a while, and we are projected to hit break-even reasonably soon, if all continues according to plan. But, importantly, selling products to individual end-users is a part of the business that is shrinking in importance year on year. It's now around 20% of total revenue. This isn't by natural choice, but out of necessity; Ubuntu has more or less killed the market for Linux distributions normal end-users will pay money for.

OK, so much for the facts. Here's my spin. :)

What Mr. Shuttleworth did with Canonical and Ubuntu was divebomb the distribution pool. I can't claim to know anything about his personal motivations: I've never met him and we've never interacted. He's on public record as saying his motivation is to promote the usage of Linux in particular and free software in general, and that's a laudable goal and one I can't with good conscience say is not his true aim. However, if I accept that that's his aim, I still question his methods.

Ubuntu is fundamentally in a position of deeply unfair competition within the Linux distribution market. I know Mr. Shuttleworth frequently says its true competition is Microsoft, but that's exactly it - he tends to act as if other distributions were irrelevant at best and a hindrance at worst. Ubuntu is a commercial distribution, with a large staff of paid developers - like Mandriva, Red Hat (and, to an extent, Fedora), or SUSE. However, it is not remotely self-supporting and does not plan to be self-supporting in any reasonable timeframe.

This is patently unfair. If Mr. Shuttleworth were a man of typical means and had taken the Canonical 'business plan' to a bank or to potential funding sources (venture capital groups and so on) for funding, he'd have been laughed out of court. Well, any time after the dot.com boom, anyway. Let's imagine the meeting.

Venture Capitalist #1: So, Mr Shuttleworth, you want us to provide several million dollars of annual funding for your brand new commercial Linux distribution. What's the business plan?

Shuttleworth: Well, we're going to give the product away for free, and not have any product for which we charge money. We're going to spend a lot of your money on promotion. We're also going to ship the product anywhere in the world for free.

VC1: Um...when do we start making money?

Shuttleworth: Well, I figure about ten years down the road.

VC1: Ooookay...how are we going to start making money?

Shuttleworth: I haven't exactly figured out the details on that yet, but the word "services" is going to figure very prominently!

VC1: Thank you very much, Mr. Shuttleworth. The door is that way.

Think I'm exaggerating? Read the pile of flimflam that is Canonical's services page. Then compare it to a real company's. Canonical doesn't have a business plan, it has a collection of vague aspirations and a distinct tendency to throw money all over the place and hope it sticks somewhere (viz. Ubuntu Server). Remind you of anyone?

So, how does Canonical get away with this? Because it's all funded by Mr. Shuttleworth's own money. The only person he has to justify his business plan to is himself, and he gets a pretty easy pass there.

Okay, so, what's the problem with this?

Imagine you're a guy selling wooden carvings. You're not Wal-Mart, but you've got an honest business going. Sure, the wood's basically free, but you put your own time and effort into it and people like your carvings, so they pay you a reasonable fee for them. You get by.

Then a rich guy shows up in town. He calls a press conference.

"I like wooden carvings. Not enough people have wooden carvings. I would like to give the world of wooden carvings a giant boot up the ass. So, I am opening Rich Guy's Free Wooden Carvings Emporium."

Rich Guy's Free Wooden Carvings Emporium is three times as big as your store, excellently lit, and air-conditioned. It has greeters. There's a workshop with five well-paid and skilled carvers kicking out nicely made carvings - maybe they're not quite as good as yours, with all your years of experience, but their wood is more consistent and higher quality as they can afford to pay a high-class wood supplier. For customers who can't make it out to the Emporium, they'll ship a carving right to their door. And all the carvings are completely free. How does Rich Guy's Free Wooden Carvings Emporium manage this feat? It doesn't have a magic way of making money. No, it loses money, hand over fist. But Rich Guy pays for it all.

How do you feel? Pretty fucking pissed off, I'd imagine. How the hell are you supposed to compete with Rich Guy's Free Wooden Carvings? You can't. You're screwed. You find another job, find some kind of wooden carvings niche that RGFWC hasn't figured out a way to cover yet, or you swallow your pride and go take a job working for Rich Guy. An attractive set of choices there! And what happens when Rich Guy runs out of money, or just loses interest, is never adequately explained.

That's Canonical's impact on the Linux distribution market, in a nutshell. Competition's great, but unfair competition isn't. It's just fundamentally very difficult for a truly independent, properly funded company to compete with Mr. Shuttleworth's Giant Shiny Magic Box Of Coins. The playing field is not level.

The danger is that this unfair competition ultimately drives out all the genuinely independent commercial Linux vendors, except Red Hat. Then you have a choice of Red Hat (which is great, but not what everyone wants; they have either a very stable and well-supported, but old and expensive, corporate product line, or an extremely experimental community desktop product, nothing in the middle); Novell (and lots of people don't like THAT idea); Ubuntu; or a community distribution. Which, again, is great, but not what everyone wants. And what happens when Mr. Shuttleworth's money runs out, and Canonical / Ubuntu actually has to start making money somehow? I don't think that question's been answered yet.

Ultimately, the way Mr. Shuttleworth decided to make his move to promote Linux was a way that will prove destructive to the ecosystem of Linux vendors. I think, if he'd been willing to be more selfless, he could have had a more positive impact with a plan which worked together with the existing ecosystem instead of just blowing it out of the water and saying "it's my way or the highway".

Dirty little secret

So, I've got a dirty little secret...

I quite like Windows Mobile.

Yes, I know, there's a support group for people like me. I know! I'm sorry!

I've used tons of phones. I'm a geek, first of all. We're congenitally incapable of using the same piece of hardware for more than six months in a row. Second, my partner works in a cellphone store. So, yeah, I've seen 'em all.

For a phone - nothing but a phone - you can never beat Nokia. Right now I have a 6300, with the firmware upgraded to 6.0 and a larger capacity battery squeezed into it (this requires that you have a relaxed approach to attacking Li-Ion batteries with sandpaper...or, in my case, a kitchen knife, and so isn't advised for the cautious). As a phone, you really couldn't want much more. It's well-built, sturdy, extremely reliable, has a well-thought out operating system (Series 40), and does exactly what you need to do really well. With the firmware upgrade and the bigger battery, it has great battery life too.

But, being a geek, the lure of the smartphone is strong. I had a Palm Treo 600 for a while, a few years ago. It was a good device, but a smartphone without 3G is a painful proposition, and I never wound up using the data features enough to justify it, so in the end I sold it. Nowadays, though, with affordable 3G data, it's completely different.

I've tried out quite a few different smartphones, now. Apart from a ton of Windows Mobile models, I've tried four different Blackberry models, the ubiquitous iPhone, and some others. I haven't tried a really top-end Nokia (highest I've used is the N73), but I know that they're not quite what I'd want.

Blackberries are great. They're really, really impressive devices. However, they're built to work with Blackberry email, not IMAP, the keyboard is quite small, and they're very locked-down.

The iPhone just didn't grab me. It's very, well, cool. But I like more of a gadget than a lifestyle. And it, too, is massively locked down. I don't fancy doing the jailbreak dance forever.

There's also the T1, of course. However, no matter how open source Android is, it's still a nasty Google mess. From the reviews I've read, Android is fundamentally tied to your Google identity. You must have a Google identity, and you must be logged into it permanently, whenever you're using the phone. So Google gets to know EVERYTHING you do. ...no, thanks. Besides, I dunno, it's all still a bit v1.0.

So where does this leave me? Well, it means that in a few days I'm going to switch from my 6300 to an HTC Titan (known hereabouts as the P4000) which my partner has lying around spare. For a start, I really like it as a hardware device. It's the third generation in its line - starting with the Harrier, followed by the Apache (which I've also used).

It feels like a really polished and well-thought out device: it has little things you don't usually read about in reviews of Hot New Smartphones. It has a jog dial, for one, which is incredibly useful on a smartphone; sliding things around with your fingers is cool, but once the coolness wears off, a little wheel is in fact a lot more practical. It has a neat extendable stylus which is engineered to automatically compress when you're sliding it back into the phone, and extend when you're sliding it out: I love little details like that. The battery compartment door has a little latch button on it - when was the last time you saw a phone with that kind of attention to detail? It has a ton of useful hardware buttons in really sensible places, which don't detract from the appearance of the phone at all. It doesn't have an external antenna (which the Apache did), and is rather thinner than it. It has an easily externally-accessible microSD slot. And, finally, the slide-out keyboard is amazing - and, in yet another of those nice little touches, has two tiny hardware LEDs which indicate when you have symbol lock and caps lock modes enabled. Some hardware design team clearly put a huge amount of dedication into this phone. The only better phone hardware I've seen is the Touch Pro, which makes sense, as the Touch Pro is the successor to the Titan. I don't feel like paying $300 for one, though.

So it's an awesome device. But, how can I live with that evil, evil Microsoft OS?

OK, yes, bits of Microsoft are pretty evil. Working for Mandriva, I know that as well as anyone. Ironically, though, Windows Mobile is about the most 'open' smartphone OS around.

It's not open source, no. But then, only Android is, and we don't know how that's going to work out. Besides - I can run Android on the Titan anyway, and if it turns out to be awesome and if it turns out you can escape the Google trap, I will. But...you can install tons of apps on it, without any restrictions by Microsoft - can't do that on the iPhone, or a Blackberry. It's extensively configurable and themeable. And, thanks to the ridiculously awesome folks at PPCKitchen, you can - very unofficially - build heavily customizable, very up-to-date OS images. BuildOS lets you basically build a completely customized WM 6.1 ROM, based on the latest patchlevels of the OS, with all sorts of stuff baked in or out depending on your preferences. Then you can flash it straight from a microSD card (using nueSPL). Try doing that with a flipping iPhone. This is, of course, utterly unofficial and massively unsupported, but it's been going on for years and Microsoft has never made any serious attempt to stop it. I think they understand that it ultimately increases the market for the devices, and doesn't lose them any revenue because you ultimately had to buy a license when you bought the phone anyway. Which is fairly enlightened of them.

And ultimately, as I said, I kinda like Windows Mobile. Yes, the interface is a bit silly if you look at it from the point of view of "how should I use a mobile phone?" rather than "how can I cram Windows into a two inch screen?", but fundamentally it works. It was easy to find my way around it and know how to do what I want to do. All the apps do what they're meant to be pretty proficiently. The email app is good, fast, responsive, and works well with my IMAP server. I use Opera for a browser, and that's great. And there's a great ecosystem of little apps like ssh clients and IRC and stuff.

People bash it for being unstable or unreliable, but I haven't really seen anything like that. I've never seen an app that's actually part of WM itself crash, nor have I had spontaneous resets or hangs. It's not remotely 'cool', but it works, and the workflow is actually pretty efficient once you get down to it and forget about flicking stuff about with your finger.

So, yeah, I like HTC hardware, and Windows Mobile. And I'm not sorry! :)

Mandriva 2009 InstallFest, and what I've been doing lately

We are running an InstallFest for Mandriva 2009 in November. If you want to take part, write in! All the details are on the Wiki page.

As well as desperately trying to keep up with all the post-2009 community stuff - forums are busy, and I'm following up on reviews all over the place - I've been working on a bit of development stuff lately. Yesterday I fixed a few bugs: I fixed sound-scripts to mute Analog Loopback by default, which should resolve a problem many people have seen on 2009 where they hear an unpleasant continuous noise over their headphones / speakers. Unfortunately the change doesn't happen automatically following the update on an installed system, but it will be fixed on future installs if the update is installed at install time. If you're suffering from this, just run a mixer and mute the Analog Loopback channel.

Also fixed a rather interesting bug in curl. Someone reported that, when you're running with Turkish localization, the Control Center doesn't display any icons. Thierry tracked this back to webkit - which, from 2009, is used to render the Control Center. From there, Thierry and the webkit developers were able to trace it all the way back to curl. webkit uses curl to 'retrieve' the icons via the file:/// protocol. This protocol turns out to be broken in curl in Turkish locales, because of a notorious - in very select circles - idiosyncracy of the Turkish language. In Turkish, the letter i is not the lower case of the letter I. So POSIX standard string case comparisons on strings containing the letter i break.

Fun bug, eh? :)

Once this was eventually all figured out and reported to the curl developers, they fixed it (by implementing a custom string case comparison function which works for Turkish). However, we were still left with a problem: backporting the fix to Mandriva, which uses the latest stable curl release, obviously. Unfortunately, curl uses CVS for revision control. There's one giant problem with CVS (from the point of view of a maintainer of a package whose upstream uses CVS): it doesn't track patchsets.

What does that mean? Let's take this case as an example. To fix this bug, the developers introduced a new function and then used that function throughout curl instead of the standard string case comparison function. So to fix this one bug, over a dozen files in curl were touched. This was all done in one CVS commit, of course.

In modern revision control systems - anything from Subversion onwards, basically - this kind of change is easy to isolate. A single commit across multiple files is a 'patchset' and is easily exposed by the RCS. In SVN, for example, no matter how many files were touched, it's just one revision. You can easily use svn diff -r to generate a patch which covers every file that was touched. It's similarly easy in git and everything else modern.

But, cvs doesn't have the concept at all. CVS just tracks individual files. Even though they were all touched by a single commit, as far as CVS is concerned, they're all different changes. All it can tell you is what was changed in a given file between versions.

Just as I was contemplating the ugliness of sorting this out manually, I thought SURELY someone else had fixed it before, and hit Google. Fortunately, I was right. (It's an invaluable rule for lazy people that, before doing any kind of dull, menial task, you should hit Google and see if someone's written a tool to do it for you. Frequently, they have.) There's a tool called cvsps which handles exactly this situation. It basically logs the entire repo you're working on, and figures out the patchsets from the log. Then you can use it to generate a patch across an entire patchset.


That just left me with the fun task of combining the three sequential patchsets which made up the change, and re-diffing them for the differences between current CVS (where the patch was written) and the current stable release (which is what we use). A measly three hours later, I had a working patch. Which, if you're Turkish and have a burning desire to see icons in MCC, you can grab from /main/testing . The maintainer's life is ever interesting!

Aside from that, I also fixed a longstanding ical bug, kinda accidentally. I'm working on gradually migrating Cooker to Tcl/Tk 8.6, the upcoming new major release. I'm doing all this privately on my own system as if I just landed Tcl/Tk 8.6 in Cooker then worked on all the Tcl-based packages afterwards, it'd break them all. So, I was adapting ical for Tcl 8.6, and noticed quite a lot of functions didn't work, apparently because Tcl now doesn't like variables of the form foo(done) , thinking they look like array references or something. So I just changed all variables of that form in ical to foo_done instead. And lo, it worked. Having done that, I came across a bug filed on the exact same issue a few months ago, which I'd previously just bumped upstream. So it turns out not to be a Tcl 8.6 issue at all - my guess is that the change was made in Tcl 8.5. So I kicked the fix out as an update for 2008, 2008 Spring and 2009. So the world's three remaining iCal users will now find lots of bits that didn't work before, now do.

Well, just thought I'd do a random snapshot of maintenance work. :) All maintainers for all distros are doing things like this all the time, I just thought it'd be fun to write about it once in a while. And it makes a nice change from community work.