Michael Meeks: Geek of the Week

Richard Morris talks to Michael Meeks, a young Geek who has made a huge impact on the quality of Open source software in the past eight years. He is a Cambridge graduate, a committed Christian, and is modest about his impressive achievements. He gives an interesting interview too!

644-MichaelMeeks.jpg

Michael Meeks is a software developer who was first hired by Ximian’s founders Nat Friedman and Miguel de Icaza in June 2000. He is best known for his work on the desktop start-up GNOME he has been a major contributor to the project for a long time working on its infrastructure and associated applications, particularly CORBA, Bonobo and Nautilus and the application’s accessibility

As an open source hacker (someone with an intimate understanding of the innards of computers) he has contributed a lot of time to decreasing program load time. He created the direct binding, hashvals, and dynsort implementations for GNU Biutils and glibc. Most of this work was focused at making OpenOffice.org start faster. His work on iogrind also allows applications to be profiled and optimized to first-time start far more rapidly. He now works full-time at Novell on OpenOffice.org and is graduate of Cambridge University.


RM:
Michael; as a seasoned hacker, though in a slightly different sphere, what are your feelings towards the Gary McKinnon case and do you think it’s fair to imprison someone for something that seems to have been blown out of all proportion?

MM:
I would call Gary McKinnon a ‘cracker’ – someone engaged in attempting unauthorised entry to other people’s systems. I havn’t followed the case closely; though from what I recall it fits my general prejudice against script-kiddies: a generally un-skilled person with some luck and lots of time, often attacking bugs in the wet-ware. Personally, I don’t think it’s clever, and if you go breaking the law, please don’t complain if you get caught and prosecuted. Having said that Government incompetence seems the most plausible explanation for much of what went on, rather than any real malice.

Now if someone was being prosecuted for a violation of the iniquitous DMCA – perhaps for playing their own DVD, or if there was a good demonstration to attend against software patents – I’d be much more interested in getting involved politically.

RM:
You ended up at Novell after the company bought out Ximian where you were working on various pieces of software including GNOME. What are you doing at Novell these days?
MM:
Somehow I seem to have been promoted to a role that involves learning about, and caring for the whole Linux desktop stack. Today that means performance optimisation for running SUSE Linux on netbooks and mobile devices – which is rather fun. There is some great work happening here across the Linux ecosystem today, in large part provoked by the Moblin project which showed that booting inside five seconds is quite achievable. Tomorrow, perhaps I’ll be working on OpenOffice – with some serious performance challenges of its own – which have expanded my code-reading horizon down into the kernel, and C libraries. That is one of the huge joys to a hacker of working on a Free Software (sometimes ‘Open-Source’) system, that there is no black-box. If an API doesn’t do what you expect, you can look inside, read the code, see how it works and learn new things. That in turn leads to good habits – instead of blindly tweaking the code and ‘trying’ it (the last resort of the feeble developer) – you can fully understand and fix an issue. Of course, compared to Ximian, it’s nice to have bigger customers too – SLED 10 in 2006 was the first prime-time Enterprise Linux desktop, and it has been great seeing the feedback and improving the product to suit that market. We’re just putting the finishing touches to SLED11 now, and the scale of improvements all over the board is most encouraging – Novell’s size and clout can take Linux to places that Ximian simply couldn’t, and resource it to match.
RM:
Even spun in the most positive way, OO.o doesn’t seem to be going anywhere. What’s the solution to the problem do you think? Is it time to fork the code?

MM:
My preferred solution is two-fold, to encourage new developers to get involved with OpenOffice, and to encourage Sun to make it a really ‘open’ project. Unfortunately lack of action on the latter makes the former a really challenging task. I can understand Sun getting tired of hearing my encouragement to fix the obvious problems, so what we really need are many more developers to make the same point. Unfortunately, without a developer-run, meritocratic, flexible, relational structure, which is fun to work in, and is welcoming to new people: we have a real problem getting there.

Currently we have a OpenOffice branch, or distribution at http://go-oo.org/ (editor’s note: Michael is now working on Libreoffice, with updates here) that includes a lot of code that Sun refuses to include – for various reasons: they want to own it. My hope is that they’ll moderate that position, and eventually start to include our nicely separated components. They are not on-record with any well articulated reason not to. Interestingly, although people like to stress the differences, much of our work is still assigned back to Sun, and included in the product. Where we are simply tweaking their code that is of course reasonable.

Some people find the criticism here rather hard, after all we should be grateful for Sun releasing OpenOffice.org in the first instance, and continuing to contribute to it. An analogy might be – being invited to build an Open-House with an initial benefactor contributing some land, and a foundation. After the initial wave of gratitude, you get enthusiasticly stuck in, volunteering to help build a fine castle, all goes well for a while, then problems start to appear. You start to realise that while you consider it as a joint effort, in fact the house you are building belongs to someone else, sure, you have some residence rights for now – but it is not collectively owned. Oh, and that owner demands the right to exclude your work, inhibit others’ involvement, and they start to encumber your labour. That is before they rent out the west-wing that you built, under unreasonable terms. At this point the doctrine of offering never-ending gratitude exclusively to the owner starts to look more problematic.

RM:
What do you think of Microsoft’s OfficeOpen XML? It’s bit of a sneaky name isn’t it?

MM:
That’s marketing for you; as Sir Humphery (a snobbish civil servant in the British television programme Yes Minister!) said ‘Get rid of the difficult bit in the title, it does less harm there than in the text’. There are lots of examples of that around the place, ‘Open’Office is paradoxically not open enough, and/or arguably doesn’t really even exist – the only significant legal entity there is Sun. Perhaps it’s just a useful heuristic for the cynic – if you have to call it something like the “Democratic People’s Republic of Korea” there is clearly a problem.

My experience of working on the ECMA/TC45 committee on OpenXML (OOXML) was most interesting, firstly – it’s challenging to meet Microsoft’s developers and realise that at root hackers everywhere are remarkably similar: many I met are not motivated by money, but by love of the software they work on (if you can believe it). Of course, there is a huge gulf between working on free software developed for the good of all owned by mankind, and proprietary software, exploited for pure financial advantage by a single corporation. I know which side I’d rather be on, but it’s interesting where people’s loyalties lie.

Producing the OOXML specification was of course an extremely focused task, and as-such simultaneously easier than our engagement in ODF (where more thought is put in, and consensus has to be reached between many parties for each feature), and yet more challenging. The scope for altering OOXML itself was approximately nil – which is disappointing when you stumble upon sub-optimalities in representation. At the end of the day though, Microsoft did do a great job in satisfying Novell’s hundreds of requests for clarification, and OOXML is clearer, and longer for it, which can only improve interoperability with OpenOffice over time.

RM:
Do you worry about the code fragmenting into many different versions?

 

 

MM:
Well, yes – it’s a shame and can waste some effort. On the other hand, sometimes some duplication is necessary to move forwards, and it’s not just me that thinks so. OpenOffice.org is fairly unusual, as one of the most fragmented projects out there – we have Sun’s OpenOffice, Lotus Symphony, Neo-Office and Go-oo (from which most Linux distros are based) to name a few. Each of these has millions of users and doesn’t seem to be going away. This sort of picture (I would argue) is symptomatic of a failure of leadership.

 

 

RM:
: Do you think software patents are a good idea?

MM:
No, software patents are an un-necessary man-made disaster area. What company, when selling product to customers, really wants to compete on the features and function of their legal team ? What value does that add ? Some companies, tragically have adopted this strategy, and have gone on to fire their development teams entirely. Novell’s posture is to compete on support and product quality, while retaining patents as a purely defensive device. Paradoxically, I’m happy to support that attitude – with my first patent for Novell granted recently – while eager personally to see the abolition of software patents. Hopefully that also makes it hard to cast my dislike as a bitter, disenfranchised, outsider’s view of the shocking waste here. It is also encouraging to me to see things like our participation in OIN, helping to build a defensive patent shield for Free Software projects.
RM:
In any company or organisation there should be set exercises which must be gone through before you even consider building an application. What do you think the most important are?
MM:
Well, the first thing is to forswear duplication, then I would advocate entering a fad-proof hermitage for some years. There is already quite enough broken and un-finished software in the world, creating new un-finished software is just silly. By the time you notice the latest fad – say Virtual Cloud web-applications, it’s too late to target that – it is necessary to bet against it – so by the time the pendulum swings back you have a product that is ready to sell .In general I would also choose a language where the compiler helps you: as strongly-typed as reasonably possible, preferably with good ‘stop-world’ debugging tools. As a great example of an environment this doesn’t apply to – take Javascript, add some asynchronicity, distribute the work across two machines, and pile in a mess of subtly different browsers. Transparently, this is not the ideal development platform for all new software, but it’s some people rave about it. Language arguments are all good of course, I like the .Net model of a Common Language Runtime – but presumably without care you end up with C#, F#, C, C++, Javascript and IronPython all in the same project, until no one person can read and understand all of it. So, in summary – building something new is almost never as good as finding, and fixing some lost open-source project, and getting involved with that.

RM:
You turned to Christianity when you were at college do you ascribe your talents and skills as God given or human made?

MM:
I guess I became an Evangelical Christian in my gap year, due to some impressive co-incidences, that put me in the home of some house-church Elders, on a housing estate in Newbury. That was a wonderful time of reading, arguing, learning, and growth, and ten years of falteringly following the Carpenter King later, I’m so glad that happened.

As for the origin of my (very debatable) talents,if any, clearly the answer is God given and human made. There is an appalling lack of understanding today of the doctrine of concurrence – many complementary explanations can be concurrently true. As an application to a hot topic of the day – it is entirely reasonable to affirm with Exodus “For in six days the LORD made the heavens and the earth, the sea, and all that is in them”, and concurrently appreciate the latest physical estimate of the vast spans of time that that took. Is that a modern sophistry ? No – 1400 years before Darwin, St Augustine was writing of the symbolic meaning of six days, and with some great advice in that context: “Now it is a disgraceful and dangerous thing for an infidel to hear a Christian, presumably giving the meaning of Holy Scripture, talking nonsense on these topics”, but I digress.

Nevertheless, examining my life I conclude – that if it’s good it was most certainly a gift and kindness, and if it’s not good – then that’s me poking through; with Frank Brooks I have to say – Sola Dei Gloria.

RM:
What things in your technological life would you have done differently? And what are you most proud of?”

MM:
Grief, I spent my life making mistakes: “I only open my mouth to change feet”. My friend Jody Goldberg was fond of rebuking me with “Never mistake for malice what can be explained by incompetence”, I’ve often made that mistake. I’ve also made the terrible mistake of not listening to my API users – as a maintainer of a library, it is critical to seek out and adapt to the most caustic critics: often they are quite right, and only upset because you don’t seem to be listening.

Communication is key too, so often decisions have to be made quickly, with insufficient input – and end up being based on rather subjective criteria; having the resources now to put in a few international calls, quickly is a major advantage over being an enthusiastic, penniless student contributor.

One of my big annoyances was not managing to persuade people that reliable cross-process reference counting / lifecycle-management is really a fundamentally un-solved problem, and that building your architecture around it is really not clever. Luckily the last place that is really a major issue – in the accessibility world is getting rapidly fixed by Novell and Codethink guys, hopefully with some great results in improved accessibility for the impaired.

I suppose, what I’m most proud of is having had the privilege of working together with large numbers of people far more talented than I – perhaps the sharpest programmers in the world, across many companies and industries, united by a common passion to make Free software as good as it could possibly be, and enjoy doing it.

RM:
Finally, let’s look to the future: what would be your idea of a perfect IT project?

 

MM:
Wow, well lets take my perfect Free-software project. It should be staffed by a diverse team of individuals and companies – if you’re a single company wanting to start such a thing – you need to first embrace your competitors, also farming out work to smaller companies as Nokia did in its GNOME interaction is a fantastic plan – to build an ecosystem around it. It should have uniform copy-left licensing, with the same terms available to all. It should have meritocratic governance – such that people with the expertise, and experience of contribution make the key decisions. Any assets, copyrights, domain names, trademarks that must be centrally owned, should be held by an independent non-profit to avoid abuse. It should be noisy – with vigorous differences of opinion, vehemently argued, with leadership to encourage compromise in the end. And finally, of course it should have an all-consuming commitment to code-quality. That describes many excellent, successful open source projects, and my hope is that one-day it will describe OpenOffice too.