Stuff Michael Meeks is doing

This is my (in)activity log. You might like to visit my employer SUSE which is an amazing company, and also Dell who in days of yore provided me with a free laptop for Gnome development / conferences. Also if you have the time to read this sort of stuff you could enlighten yourself by going to Unraveling Wittgenstein's net or if you are feeling objectionable perhaps here.

Older items: 2013: ( J F M A ), 2012: ( J F M A M J J A S O N D ), 2011: ( J F M A M J J A S O N D ), 2009, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, legacy html


2010-12-31: Friday.

2010-12-30: Thursday.

2010-12-29: Wednesday.

2010-12-28: Tuesday.

2010-12-27: Monday.

2010-12-26: Sunday.

2010-12-25: Saturday.

2010-12-24: Friday.

2010-12-23: Thursday.

2010-12-22: Wednesday.

2010-12-21: Tuesday.

2010-12-20: Monday.

2010-12-19: Sunday.

2010-12-18: Saturday.

2010-12-17: Friday.

2010-12-16: Thursday.

2010-12-15: Wednesday.

2010-12-14: Tuesday.

2010-12-13: Monday.

2010-12-12: Sunday.

2010-12-11: Saturday.

2010-12-10: Friday.

2010-12-09: Thursday.

2010-12-08: Wednesday.

2010-12-07: Tuesday.

2010-12-06: Monday.

2010-12-05: Sunday.

2010-12-04: Saturday.

2010-12-03: Friday.

2010-12-02: Thursday.

2010-12-01: Wednesday.

2010-11-30: Tuesday.

2010-11-29: Monday.

2010-11-28: Sunday.

2010-11-27: Saturday.

2010-11-26: Friday.

2010-11-25: Thursday.

2010-11-24: Wednesday.

2010-11-23: Tuesday.

2010-11-22: Monday.

2010-11-21: Sunday.

2010-11-20: Saturday.

2010-11-19: Friday.

2010-11-18: Thursday.

2010-11-17: Wednesday.

2010-11-16: Tuesday.

2010-11-15: Monday.

2010-11-14: Sunday.

2010-11-13: Saturday.

2010-11-12: Friday.

2010-11-11: Thursday.

2010-11-10: Wednesday.

2010-11-09: Tuesday.

2010-11-08: Monday.

2010-11-07: Sunday.

2010-11-06: Saturday.

2010-11-05: Friday.

2010-11-04: Thursday.

2010-11-03: Wednesday.

2010-11-02: Tuesday.

2010-11-01: Monday.

2010-10-31: Sunday.

2010-10-30: Saturday.

More API copyright nonsense

2010-10-29: Friday.

2010-10-28: Thursday.

2010-10-27: Wednesday.

2010-10-26: Tuesday.

2010-10-25: Monday.

2010-10-24: Sunday.

Repstrap gear construction

Reprap ?

The reprap project provides the designs and drawings necessary to make a self replicating, plastic extrusion 3D printer. There is only one hitch: self replication; you need a plastic printer in order to make one. Failing that you need to bootstrap your printing world by building a 'repstrap' - something that can (just about) print the pieces.

An ad-hoc repstrap

I have knocked together such a thing from spare bits of floating timber (mostly MDF and ply-wood), which has some unpleasant calibration problems: related to thermal issues, and a lack of an adjustable, (or even better heated) bed. Nevertheless it can be persuaded to print useful things. Indeed - arguably it is easier to cut a nice, rigid sheet of MDF, than to create isometric triangles made of studding with complicated plastic verticees. Anyhow - the beastie re-uses almost all the parts: steppers, controllers, belts etc. from an existing reprap - so you can re-use them in the final product (in theory). It also requires only simple hand-tools (except for the extrusion nozzle, and knurled driver which is a pain generally). It looks a little bit like this:

my repstrap

Notice the horrific warping problems that come from poor print head - bed spacing calibration, and the lack of a heated bed. Still, this is one of the largest, and most problematic prints necessary to bootstrap. I have the vague intention to create useful drawings, and instructions to replicate/iterate it for others with low-precision tooling - but the joys of LibreOffice are ship-wrecking this aspiration currently. Please also note that the all-important safety goggles are just out of frame somewhere.

Making large z axis gears

One of the most fun problems of repstrap construction are the gears. After several attempts - to whittle gears from acrylic rod, to make them from MDF, and so on I hit on a near perfect solution, reproduced here for your gear-constructing pleasure.

It turns out that simple 30mm panel-pins fit rather snugly into the required timing belt, creating a nice firm fixing. So - this makes the construction of the large gears a matter of rough cutting vague disk shapes, (or better using a nice large circular cutter) four disks from thin ply-wood, then using the stencil linked below - marking out the pin locations, drilling them through (as vertically as possible) with a 0.5mm drill, and then simply pressing the pins through. This and a pair of nuts in the centre yields a beautiful, functional z drive, as modelled by my youngest, as she concentrates on reprap assembly thus:

large gear - with model

Stencils for gears

It turns out to be remarkably hard to draw gears, or lay them out manually by measurement. Luckily most people have a phenomenally accurate ink-jet printer. Thus simply print out this file: gears.odg - clearly using LibreOffice if you don't have it. Then use a bradawl to make holes to enlarge with a drill in the right positions.

Making stepper gears

These smaller gears present a real problem for ply-wood - which would just crack and split, and not provide enough purchase on the shaft of the stepper. After some initial semi-functional attempts with some aluminium, I discovered that the perfect material for small pin gears is near to hand, and luckily is stocked in your kitchen, it looks like this:

small gear - raw material

Naturally, it is only a matter of explaining to a suitably patient wife, her desparate need of a new chopping board, and the invaluable nylon is procured. To satisfy yourself that it is indeed a wonder material, try driving a panel pin into it 5mm from the edge, and then breaking it out. Attack the chopping block with a junior hack-saw or some such device, to make an octagonal piece of suitable diameter. Again use the bradawl, stencil, and 0.5mm drill as above. Drill a larger central hole, which should be of a slightly smaller diameter to the drill shaft (which should have flats filed onto it). Simply 'drift' (ie. wallop with a hammer) the nylon onto the shaft for a fool-proof fix. Eventually you end up with something beautiful like this:

small gear - finished

Why bother ?

Hopefully, after much more wood hackery, adjustment, suffering, remedial medical treatment and so-on you can finally produce a working 3D printer, and hence something actually worthwhile. While this is only a prototype - and died on the first attempt of a lawyer to bend it, the full (more solid) version has resisted the attempts of a long line of hackers in their eagerness to break the end off; enjoy:

prototype bottle opener

Of course, you really need to use RepSnapper on openSUSE for controlling that sort of thing.

2010-10-23: Saturday.

2010-10-22: Friday.

2010-10-21: Thursday.

2010-10-20: Wednesday.

2010-10-19: Tuesday.

2010-10-18: Monday.

2010-10-17: Sunday.

2010-10-16: Saturday.

2010-10-15: Friday.

2010-10-14: Thursday.

2010-10-13: Wednesday.

2010-10-12: Tuesday.

2010-10-11: Monday.

2010-10-10: Sunday.

2010-10-09: Saturday.

2010-10-08: Friday.

2010-10-07: Thursday.

2010-10-06: Wednesday.

2010-10-05: Tuesday.

2010-10-04: Monday.

Re-factoring C++ and the vtable problem

The opportunity

Consider that you have large piece of C++, over many years, for reasons unknown, it has accumulated (at least) four boolean types: FASTBOOL, BOOL, sal_Bool and of course the native boolean type bool. Now consider a class with a virtual method in it:

class Base {       ... virtual void setValue (BOOL b); /* A */ }
class Sub : Base { ... virtual void setValue (BOOL b); /* B */ }

Please notice that these two classes are highly unlikely to be in the same header file, and may even be separated by many leagues of code, so you might never notice.

A small cleanup

Now imagine that we want to cleanup this obsolete 'BOOL' to a 'bool' - that would be nice and pretty; so - since we are hacking on 'Sub' - we change it there, and we change all the callers in Sub's implementation:

class Base {       ... virtual void setValue (BOOL b); /* A */ }
class Sub : Base { ... virtual void setValue (bool b); /* B2 */ }

At this point we have a problem - we suddenly broke the functionality of the Base class, and anyone calling the virtual method A. This is because without realising it we introduced an entirely new method with the same name and a different signature - by the miracle of polymorphism. ie. now we have two virtual 'setValue' methods, and B2 does not override A. That is not good.

Of course, because this is a feature, the compile will just love it, and suddenly, magically compile a completely different piece of code, and better - since the change is almost invisible to the casual reader this will be a nightmare to debug. Interestingly changes such as the above may seem rare, but are only the top of the iceberg - a more common incidence of these crops up in 64bit porting, where there is some mix of different types down the virtual function chain - someone overrides with a different typedef - all of which previously resolved to 'int'.

How to avoid some grief

The (rather dumb) tool I hacked up today tries to avoid this sort of problem. It does this by noticing that when we make this sort of slip, we add a new virtual method to Sub's v-table. Thus - if we simply print-out all the vtables sizes (in slots) before, and then after a change, we can rapidly check if they match. If there is a disparity - we can find the class that changed size, wind back to (all of) its parents, and work out which one is missing a suitable change. This technique was remarkably succcessful in finding 64bit portability problems (by comparing 64bit vs. 32bit builds) when Kendy was working on the original OpenOffice.org port to 64bit architectures. The tool is here

How to re-introduce grief

One final deep joy about C++ is that there is no real need to mark an overriding method as virtual (though most people, most of the time tend to). So we can write the original problem just as well as:

class Base { ... virtual void setValue (BOOL b); /* A */ }
class Sub : Base {    ... void setValue (BOOL b); /* B3 */ }

It is worth noting at this point, C#'s much better, and more readable syntax, mandating an 'override' for B3. Then lets re-add the great change we made before:

class Base { ... virtual void setValue (BOOL b); /* A */ }
class Sub : Base {    ... void setValue (bool b); /* B4 */ }

So - now we have an even nastier beastie - in this case by changing the type, we suddenly stop overriding A, but instead of creating a new virtual method, we create a normal method B4. Worse - this doesn't change the size of the vtable - so it is even harder to notice. At this point, at the moment - you loose.

All is not lost (in future)

Fortunately, this shouldn't be entirely the end of the story; in subsequent iterations, it should be easy to add a 'method count' that can be calculated for each class - and compared before and after, this would allow B4 to be detected rather easily. Perhaps tomorrow I'll expand the tool to do that too. Probably I am missing some other obvious gotchas, but getting this wrong - particularly in deeply inherited hierarchies, with complex interactions can create some particularly nasty problems to debug.

2010-10-03: Sunday.

2010-10-02: Saturday.

2010-10-01: Friday.

2010-09-30: Thursday.

2010-09-29: Wednesday.

2010-09-28: Tuesday.

2010-09-27: Monday.

2010-09-26: Sunday.

2010-09-25: Saturday.

2010-09-24: Friday.

2010-09-23: Thursday.

2010-09-22: Wednesday.

2010-09-21: Tuesday.

2010-09-20: Monday.

2010-09-19: Sunday.

2010-09-18: Saturday.

2010-09-17: Friday.

2010-09-16: Thursday.

2010-09-15: Wednesday.

2010-09-14: Tuesday.

2010-09-13: Monday.

2010-09-11: Sunday.

2010-09-11: Saturday.

2010-09-10: Friday.

2010-09-09: Thursday.

2010-09-08: Wednesday.

2010-09-07: Tuesday.

2010-09-06: Monday.

2010-09-05: Sunday.

2010-09-04: Saturday.

2010-09-03: Friday.

2010-09-02: Thursday.

2010-09-01: Wednesday.

2010-08-31: Tuesday.

2010-08-30: Monday.

2010-08-29: Sunday.

2010-08-28: Saturday.

2010-08-27: Friday.

2010-08-26: Thursday.

2010-08-25: Wednesday.

2010-08-24: Tuesday.

2010-08-23: Monday.

2010-08-22: Sunday.

2010-08-21: Saturday.

2010-08-20: Friday.

2010-08-19: Thursday.

2010-08-18: Wednesday.

2010-08-17: Tuesday.

Why Oracle's Java Copyrights Might Matter

What Copyrights

By now so many, apparently well informed, commentators have noticed and written off the Oracle Java Copyright claims as applying to the open-source implementation, documentation etc. That of course seems weak: how likely is it that Google would have cut/pasted code or documentation into their Davlik implementation, given the intense scrutiny they knew would come eventually. Page 2, Clause 11 of the complaint gives some background:

Oracle America owns copyrights in the code, documentation, specifications, libraries, and other materials that comprise the Java platform. Oracle America's Java-related copyrights are registered with the United States Copyright Office, including those attached as Exhibit H.
And as we go on (Page 8, clause 38) we get to the real grist:

38. The Java platform contains a substantial amount of original material (including without limitation code, specifications, documentation and other materials) that is copyrightable subject matter under the Copyright Act, 17 U.S.C. § 101 et seq.

39. Without consent, authorization, approval, or license, Google knowingly, willingly, and unlawfully copied, prepared, published, and distributed Oracle America's copyrighted work, portions thereof, or derivative works and continues to do so. Google's Android infringes Oracle America's copyrights in Java and Google is not licensed to do so.

40. On information and belief, users of Android, including device manufacturers, must obtain and use copyrightable portions of the Java platform or works derived therefrom to manufacture and use functioning Android devices. Such use is not licensed. Google has thus induced, caused, and materially contributed to the infringing acts of others by encouraging, inducing, allowing and assisting others to use, copy, and distribute Oracle America's copyrightable works, and works derived therefrom.

'Code' is to my mind only an insignifiant and pointless piece of the picture here. An interesting piece to me is the specifications: is it possible that by simply implementing (and perhaps documenting) a new implementation of parts of the Java spec - you infringe Oracle's copyright ?

A bit of History

Despite all the interest (or apathy) stirred up by the standards wars of yesterday (OpenXML vs. ODF) etc. There are plenty of older, interesting pieces that have perhaps been forgotten. Looking back to before the dawn of time itself (1997), some interesting things crawl out:

Java ISO standards battle rages

Sun Microsystems achieved one thing of note - it was the first ever, and only corporate submitter to the ISO PAS process (this is rather like the quick-on-ramp 'fast track' that ECMA enjoys eg.). There is a great contemporary write-up from b-net here which seems surreal in its contemporary flavour:

Last November Sun Microsystems won the right to become a standards submitter over the fierce, and sometimes mud-slinging protests of competitors such as Microsoft, Intel and Digital Equipment Corp. Microsoft, in particular, challenged the right of one company to serve as the submitter of an international standard, claiming that this approach offered unfair market advantage. ... if the Java platform is accepted as the international norm ... it will become tied into the government procurement process.

Despite the opposition ISO accepted the first ever, and only corporate PAS submitter (Sun Microsystems) to ISO. During the process we got all these great quotes from a Microsoft standards strategist consultant Mr. Willingmyre, that could have been written about OpenXML / ODF only with some company names swapped:

Mr. Willingmyre wants to see Sun Microsystems "follow the rules of the international system. If they will not, they undermine the credibility of the system."
Or try Microsoft Program Manager (Charles Fitzgerald):
The problem with the Java process, to date, as Mr. Fitzgerald sees it, is that "Sun has been clever in using the PAS process to get the sanction of ISO (for its product), while keeping full proprietary control. Why do we care? There is a potential marketing advantage for a competitor. ISO is getting in the business of endorsing proprietary technology."... "If Sun is really the generous, altruistic charity they present themselves to be, then why are they not playing by the process?" Mr. Fitzgerald asks. "Sun has done more to clinically exploit the standards process than any company alive."

Of course in 1997, the whole right-thinking world was on Sun's side - clearly Microsoft had some embrace and extend wheeze going, which was per-se 'A bad thing'. Why should another company be able to get changes into Java that benefited their platform ? After all - in those days - Software Freedom was an idea with far less traction than it deserved: the concept of being allowed to hack about the code as you wished without getting strangled was alien. Anyhow, this struggle set an interesting precedent. As CNET of the time wrote Sun wins Java ISO approval:

Giving a single company submitter status is unusual for ISO. Normally. such status is given to trade groups or consortia. Similar status has been given to X-Open, DAVIC (Digital Audio Visual Industry Council), VESA (Video Electronics Standards Association), and IrDA (Infrared Data Association).

The real question is Why ? - why go to all that effort and fight to get something that no-other company has ever wanted or needed ? What was the purpose ? why not form a Java trade association, or use an existing submitter ? What was going on ?

Now we have it, lets not use it: abandoning PAS

My grasp of the details are sketchier here; but by May 1999 they had abandoned the PAS submission process:

As expected, Sun Microsystems Inc. will use ECMA as its route to the standardization of Java at ISO. In this way Sun hopes to be able to retain control over the future development of Java which it would have had to give up under new rules adopted by ISO's JTC1 committee and applied to the PAS process that Sun has now abandoned.

So - because they couldn't retain ownership, control, and make it an ISO standard they switched track to ECMA. Interestingly (in the same article), the year before Microsoft had shot down another ECMA standard, the Public Windows Inititaive (PWI) - preventing it from becoming an ISO standard - why ? was there some amount of loss of property ownership implied by making it a true standard ?

"The PWI was a Sun effort to get Windows APIs put into the public domain...

And, thus we see in another parallel sphere these (strange) ideas of ownership of APIs (the hot currency of the era) being protected. Thus it was odd that Sun - who fought at length to become the first ever corporate PAS submitter, never submitted a standard, and let that capability lapse; such that they lost it. The good news of May 1999 was this:

"Sun's already submitted a Java 1.2.2 specification to ECMA which will be presented to a meeting of the group's general assembly in Kyoto, Japan on June 24. ECMA is expected to vote on the spec in December. Then it goes to ISO for fast track adoption."

There are still optimistic sounding traces of this around -

This announcement ... fulfills the company's pledge to achieve ISO standardization of the Java technology.

Sun drops ISO Java Standards Effort for good

Unfortunately, the fulfillment of that pledge never actually happened. CRN has a nice write-up from Dec 1999 here

During a meeting last month with an ECMA technical committee, Sun pulled specifications for Java off the table after copyright issues surfaced but was scheduled to resubmit last week.

What !? - copyright issues ? how can you have copyright issues around an open specification ? Who would want to retain copyright to an open specification ? and why ?

The speculation bit

My suspicion is that Java is protected by fairly weak patent protection. Ultimately Java - though it is some nice mixing pot of features, bundled up with a lot of tech marketing with great deployment, is perhaps not incredibly innovative. Those who see parallels between Java and .Net and run around like headless chicken proclaiming immediate patent death around Microsoft and Mono - take note.

Why fight so hard to get Java standardised, and then withdraw it, just before it has to be submitted ? the official answer is obvious, summarised: Only Sun is brave and good enough to create the perfect Java - a standards body would just kill it, or worse let Microsoft, HP, Intel and others have some real say in its development. Of course - there is some truth here, sole control of it means Java could move quickly, comittees tend not to produce beauty etc. We have some great quotes from the time from Scott McNeally (as above)

"There are times when . . . things have to be moved at the speed of light and there are times when we need flexibility. We're not moving Java forward in a secret way, in a non-participative way." ... The company is actually losing money on Java, he said.
The idea of Java moving at the speed of light seems slightly laughable now, but perhaps a nugget of a hint as to why they really don't want an open standard is there. Personally I get a bit sick of this generic "pauper's defense": We are not making money, therefore ... anything goes here ... whether it is not contributing to the engineering or adopting malevolent legal approaches - it is sadly still popular today.

Some alternative explanations might be more convincing; with Java's weak patent protection, and general lack of novelty - a really important piece to allow control (ie. so you can't implement, and then extend this specification), and more importantly to allow monetisation of Java by Sun was, perhaps, copyright. Copyright around the API specifications and associated implementation choices (also, conveniently, critical to compatibility). Surrending Java to be a full ECMA / ISO standard - would mean that the opportunity was lost to monetise all the fairly random decisions Sun made in the Java API via copyright licensing. Thus - the submissions were pulled at the last minute. Oh, and bad luck if you travelled to a standards meeting half way around the world, at which no standard arrived. My suspicion is that this plays into the reason that today we have a copyright and patent lawsuit against Google by Oracle.

Copyright assignment and the 'community' process

Normally companies don't like to actually look that bad, so they come up with some twisted process to 'improve the optics', and thus we do (apparently) get a standards body in the Java Community Process (JCP). Clearly it is necessary to put feel-good terms in the name: 'Community' eg. Nothing could be bad with such a friendly name right ? One notable feature of the JCP (apart from its relative dysfunction) is that you need to sign a hefty assignment before you can take part (oh, and pay money to Sun if you are a company). This of course has heavy-duty copyright assignment language (cf. the toxicity of such things in general). There is also out-bound copyright licensing conditioned on passing the TCK (which is itself tightly tied up with proprietary bailer twine).

Interestingly for those that point to percieved weaknesses in the Microsoft Community Promise around .Net (incidentally big chunks of .Net are ECMA standardized, thus reducing the potential for standard / copyright licensing based aggression) - there are great clauses in the JSPA2 around patents that do the CP's necessary claims language to shame:

"For the purposes of this Section 5.B, patent claims covering the Specification shall mean any claims for which there is no technically feasible way of avoiding infringement in the course of implementing the Specification."

But you can't copyright APIs

Indeed, hopefully not. Having said that, the Java API docs that you can see eg. here have a license that is rather similar to the other terms floating out there - particularly those necessary to join the JCP, and the outbound Java licensing text. Hopefully Sun have published their APIs without a similar license at some stage in the past, but presumably lots of care and thought has been put into this out-bound licensing. Is there anyone that hasn't accepted those terms ?

Conclusion

Quite possibly I am deranged; copyrights around Java APIs, specifications, and documentation are not a real issue, they cannot be enforced, and the Sun drive to retain copyright ownership, and impose onerous out-bound licenses on their specifications was a pointless exercise, unrelated to Java's commercial exploitation. Quite possibly Oracle just wants to go on a wide fishing expedition inside Google with their copyright claims - who knows.

Ultimately though, closed-ness doesn't pay. It seems Oracle are now reaping the harvest of the lack of trust and open-ness that sadly characterised Sun's approach to most of its 'Community' engagement. That of tryingto have your cake, and eat it too. To have an ISO standard, but not surrrender ownership and control to others. To open source something but go around spreading license FUD and demanding proprietary licenses behind the scenes, and so on. Sadly this sort of attitude continues today, and not just in Oracle but many other companies. Would it have been so terrible if some of Microsoft's weirdo extensions to Java had become part of the Java standard, and been implemented / deployed everywhere ? would they even have won a vote in a TC if they were that bad ? Having said that - I have deep sympathy with the view that the political and semi-technical sphere of a standards TC is not a great way to drive product direction.

Of course - many in the Free software community approach problems based on their love of the underlying technology - de-coupled from a love of its current commercial owner. As such, we would advocate decisions that were good for the product, potentially at the expense of its current owner. So - what does this mean for people like us ? Guard your heart ! - try not to fall in love with a technology, and give yourself to developing and improving it, if a single company owns, and controls it. As a corrolary - try to avoid assigning your copyright to companies that might use it to harm you later. And finally - try to choose to support, and use good Free Software that grants wide patent and re-use rights under licenses like the GPL.

2010-08-16: Monday.

2010-08-15: Sunday.

2010-08-14: Saturday.

2010-08-13: Friday.

2010-08-12: Thursday.

2010-08-11: Wednesday.

2010-08-10: Tuesday.

2010-08-09: Monday.

2010-08-08: Sunday.

2010-08-07: Saturday.

2010-08-06: Friday.

2010-08-05: Thursday.

  • Amused to be auto-enrolled in some Oracle marketing list (presumably migrated from a Sun one) - installment #1:
    "Get your FREE Oracle Unbreakable Linux DVD that includes actual software"
    ; pleased to see awesome 'actual software' being advertised.
  • Poked at mail, tested MeeGo updates vs. OO.o. Interested to read about the demise of Google Wave; OO.o team meeting, chat with Thorsten.
  • Finally got the PK bug nailed; you -really- don't want to set an error, and continue on - it is vital to 'finish' as you set the error; otherwise a feature can start processing another transaction on the same backend in a different thread; pushed a fix.
  • Martin over in the evening, pottered about with the reprap assembling this and that;

2010-08-04: Wednesday.

  • Up early; more mail - when will it end ? presumably the consequence of sending it - is to get more back.
  • Got stuck debugging a strange PackageKit bug whereby we got multi-threaded backend usage by accident.
  • Arriving home meal in the evening: ham, eggs & pots. Read stories to babies in their beds - hopefully life returning to normality. Back to work, sent some pending mails.
  • An evening of caulking, painting and so on with the wife.

2010-08-03: Tuesday.

  • Meeting at 2:30am, E. slept amazingly better with father nearby to hush her back to sleep immediately she wakes. Up late. Poked mail.
  • Lunch, prodded OO.o on MeeGo, poked into the ospm package that seems to duplicate upower (strangely). Plodded away at mail, and MeeGo bits.
  • Packed everything up, and drove home from Bruce & Anne's. Lydia over in the evening; finally re-united with my reprap - squared the axis, got things setup nicely.

2010-08-02: Monday.

  • Prodded mail; finally found the openSUSE conference 2010 cfp mail alias to send some paper suggestions to. Prodded Anas wrt. MeeGo build-service federation. Cleared up the Clarity back-log.
  • The hot question is: did Venuzela's brand get hurt by the Vuvuzela ? Why not travel to sunny Vuvuzela for some Bolvarian crackers ?; that - and why the GNOME conspiracy file has not yet been extended to deny the (new) French conspiracy - how are people supposed to believe in it, if it has not yet been officially denied ?
  • Filed another connman bug - DNS proxying took a dislike to repo.meego.com it seems; how odd. Helped Frederic Crozat get setup with openSUSE tooling etc.
  • Had a hack at OpenOffice again, after a while away, while building an evolution bug fix; feeling productive again (for some reason). Missed a DE meeting in the evening, bother.

2010-08-01: Sunday.

  • Up earlyish, breakfast, off to Aldeburgh Church - a christening service, which was fun; reasonable sermon, fine hymns.
  • Back to pootle around; spaghetti lunch outside. Raining, spent much of the afternoon doing a jigsaw puzzle with the family: quantity time.

2010-07-31: Saturday.

  • Massive breakfast as normal, packed bags, and got to the train station; high speed train, Eurostar to London, tried to catch up with the mail backlog. Always nice to see the people staggering back down the train from the canteen - looking as if they have been robbed.
  • Tube to Liverpool St, and train to Ipswich; debugged an interesting Evolution issue on the way.
  • Finally re-united with the lovely wife & family, helped Sue & Clive get packed up & leave. Fed babes, and put them to bed, ate with Bruce & Anne, bed early.

2010-07-30: Friday.

  • Up earlyish, to get to the Banshee talk; met an old KOffice acquaintance with some curious ideas, and yet-another web/ODF renderer: it is amazing how fast the first 20% is, doing that. Missed the lightning talks talking to Charles. Bid 'bye to all and sundry.
  • Sat around filing expenses, and (on the third try) got a correct Hotel Bill. Out for dinner with the Banshee guys, and Scott, rather lovely nouveau cuisine, albeit somewhat wasted on my palette.
  • Up rather late playing a new game: Napoleon with JRB, his good wife and others. Tried to learn 'Go' from Jake, and Bradely's cleaning up in Texas hold-em.

2010-07-29: Thursday.

  • Noticed Dawn published my OSCON / MeeGo slides here kindly saving me the effort.
  • Enjoyed the clutter guys' talk - as always doing awesome things in their spare time; the SVG on Clutter impl. being particularly fun, with monkeys and games to match.
  • Out to the Collabora party in the evening - excellent: with both free food, and free drink. Cringed internally as those with no knowledge of food hygine heaped chips onto their raw chicken; but very enjoyable. Caught up with Dave Neary.
  • Saddened by the negative reaction to (what is IMHO) a great story of vendor diversity and strength around the GNOME ecosystem.

2010-07-28: Wednesday.

  • Fun, intense hall-way track attendance; great to meet up with so many great hackers. Great conference link.
  • Luis presented his vision of re-writing the whole of GNOME in JavaScript built on web technologies. Certainly, it would be nice if it worked, performed and was available right now. In the absence of that, the opportunity to invest looks rather like an opportunity to get bogged down in an unworkable mess. Is the innovators dillema that the majority of startups fail ? are fat-client apps the Train or the transatlantic liner - the jet aircraft killed only one of these (so far).
  • Off to the Canonical party in the evening, stood outside talking for the most part.

2010-07-27: Tuesday.

  • Up early; off to the Advisory Board meeting, only to discover my clock was out of sync; an hour late. Lots of discussion and old friends much of the day.
  • Out for dinner with Bradely, Lennart, Caillon, Dan, and a bunch of other interesting guys; back - for beers with Caillon. Bed late.

2010-07-26: Monday.

  • Managed to get a row of seats on the plane, and to sleep for a chunk of the time; shouldn't have watched highly unpleasant film about dragon tattoo'd girl first.
  • Got to St Pancras, who (generously) won't let you get into the free-WiFi / seating area until minutes before the train. Interested to see ibm dropping Solaris support, odd.
  • Arrived eventually; out for dinner with a host of banshee guys, back to the hotel to talk with Owen & Dan Winship good, met caillon; to see JRB, Chris & meet caillon; got talking with Lefty.

2010-07-25: Sunday.

  • Up earlyish, T Porter Square to Park Street; fine sermon on the cross from a visiting preacher. T onwards to Fenway; visited Miguel, Laura and tiny, sweet baby Lucia - a wonderful blessing and privilege to be able to see the new family while I was here; caught up with Miguel a little.
  • T back to Park St, Finagle a (circularly-sawed) Bagel with Thomas and Becky in the common, wandered the common; dancing with ducks. Rather a pleasant walk to MIT's museum - admired the various displays; particularly the variety of robotic actuators.
  • Back to Thomas' via a nice Italian restaurant for pizza, listened to music, talked, packed. Drove to the airport, and the next round of travel madness begins: an intense plane, tube, eurostar, train series to The Hague.
  • Highly amused by the Judas Phone art work. I guess there are some downsides to having lots of creative types using your products. Amused by the old phone version - although, reading the definition of smart-phone carefully on wikipedia; it seems clear that we need a new/improved market segmentation. If the Nokia Communicator of 2000 is a smart-phone, it makes me very suspicious of all but "sales in the last quarter" statisticis around phones; or am I just a paranoid.
  • Caught up with Eric, and the great OO.o hacking that Jonas is doing, hopefully he'll blog about it soon.

2010-07-24: Saturday.

  • Up lateish; dressed, Becky came over - lovely to meet her; and drove us all off to Rockport - a beautiful morning of scrambling over granite rocks, admiring a disused quarry come lake, videoing ad-hoc dancing, etc.
  • Into town to a fair, via a diving enthusiast's museum, and a story telling performance (substantially focused on raspberries it seems). Fine views & company.
  • Dinner in Salem, after missing the museum's opening times, and wandering around the house of seven (arguably eight) gables. Fine meal; back - watched "Thank you for Smoking" - really rather good.

2010-07-23: Friday.

  • Up much too early; early flight to the east coast. In awe of Alaska's pleasant seating, and free WiFi (sponsored by Bank of America) - great; now my incoherent ramblings can be dropped from a great height. Ping is at best 150ms to gnome.org, with some huge jitter: >1 second happens often, with 500ms normal; still bandwidth seems great, downloading part of a meego ISO got up to 110KB/sec - but presumably this is some anti-social proportion of the entire plane's bandwidth. Technology seems to be 3G from GoGo. With only 92 masts to cover the entire US; one wonders if a few dozen fibre-connected boats in the Atlantic could cover the main air corridors. If that happens, perhaps I really will have to give up and write web software.
  • Read some great points about bugs, hopfully improved governance will fix this sort of thing. It's interesting though how several little bits of closed-ness (internal-only pieces) can have a wider, knock-on effect.
  • Less impressed to discover a (very typical) DHCP lease / address exhaustion issue after re-booting; re-entered the previous details as static addresses: all is well.
  • Caught the T. from Logan, via an unpleasant downtown crossing (with luggage), to Kendal/MIT. Managed to locate the office in the pouring rain with Aaron's help, and to get into it with a cleaner and Michael's help. Slugged for a bit. Pleased to hear about the mono git migration - go git !
  • Thomas arrived, and Aaron too - to demonstrate a machine to hang you upside down (or something); off to an Indian restaurant to meet Jackson's fiance Diana, and her friends. Fine meal, on to the beehive for a Jazz band unconstrained by conventional views on rythm, tonality, or direction. Discovered Miguel & Laura's amazing news - a baby ! Back, to Thomas' to sleep.

2010-07-22: Thursday.

  • Up early to finish talk; breakfast with James, caught up with Jean Paoli in passing. Met up with Keith Packard, did a chalk talk on MeeGo at the booth.
  • Lunch with Keith (and a passing Rob Pike); sat around synchronising the state of the software world, rockets, 3D printers and so on. Caught up with Paul Hudson, then Dirk Hohndel.
  • Did my MeeGo conference session - reasonable attendance; no-one spontaneously fossilised through boredom; nice to see Graham again.
  • Dropped luggable machines off, and out for a Google dinner in the evening. Despite the predictions of a kernel hacker drought at OSCON, t'was good to see Peter Anvin, James & Linus. Learned a lot about PostgreSQL from Josh Berkus; and learned of interesting Puppet Labs from Luke. Got a Nexus One - lovely.

2010-07-21: Wednesday.

  • Up early; prodded dolefully at slideware; off to the conference for the keynotes; amused by O'Reilly - apparently we are all Gods (it's not just Eric Raymond?) - new: old lies ... Otherwise interesting - Stormy spoke excellently on 'Is your Data Free'; Dirk did a nice quick MeeGo overview.
  • Admired the Intel booth, met Auke for the first time, in the flesh - interesting man; and caught up with Dave Stewart; met all manner of interesting people.
  • Wandered the floor, met Corbin Simpson and learned a lot about the state of X, Gallium, KMS etc.
  • Lunch with Russ Nelson & Auke, saw Simon Phipps in passing. Back to the booth to catch up with Frank Rehgo, and others. Met Armin & Lillian doing hardware demos; saw the awesome AAVA prototype Intel / Atom phone - sexy hardware, modulo the lame-ass closed-source evilness of PowerVR. Intel needs to hire some professional exorcist to rid themselves of that. How is it possible to ship a CPU that has no instruction set documentation for it's built-in pixel-shaders ? Anyhow - a great device overall: if there was an open-source driver: perfection.
  • Caught up with Bradley, met Aaron, Karren etc. and split for dinner with them amd some fun HP guys, learned about fossology; had a few queries cleaned up. Back to work on my talk until late.

2010-07-20: Tuesday.

  • Up early, called home; breakfast with James, train to the conference; wandered the hallways meeting interesting people; admired the (curious) advertising laden toilet paper: odd. E-mail.
  • Avoided the tutorials, and sat chatting to people; out for dinner with Iain & Stormy - walked there with James meeting up with the famous Taras Glek on the way. Lots of performance optimisation, file-system, I/O discussion; got the MAX back (Portland public transport appears to be excellent).

2010-07-19: Monday.

  • Up much too early; train to LHR, flight. Poked at rep-snapper a little. Why would people prefer a singleton global variable over the 'this' pointer ? dunged out a lot of cruft.
  • Prodded at constructing MeeGo slideware; ho hum - ended up discussing literature with a lady on the plane instead. Watched Shutter Island - a simply unbearably sad ending. I hate to think what the impact of such psychological dramas is on the mentally unstable.
  • Normal visa queueing fun - except the electronic VISA wavier is far sweeter than the paper version, no form filling, and stapling pain. Arrived late; sandwich; bed.

2010-07-18: Sunday.

  • Up earlyish - awoken by sounds of much screaching, and jumping, it seems the trampoline had the desired effect. Read the instructions carefully. When, oh when, will our Asian manufacturing friends decided to use a translator, native in the target language ? Amused by the "Always consult your physician before attemping physical exercise" - surely that would place rather a strain on the National Health Service ? did someone really litigate on the basis that they had no idea that exercise might injure you ?
  • Off to NCC, ran creche. Back via Argos (to purchase a new router - sadly on a Sunday). The previous Belkin effort at least lasted for sixteen months which is somewhat less long than the three years I thought was bad for the last one. Are we all doomed to ever more flaky hardware ? Roll on the days of open-hardware, with (of course) home-made logic analysers to debug it with. I'm nearly certain that someone needs me to have a deep memory logic analyser.
  • Lunch, relaxed a little in the garden, and out to an Art exhibition in a chapel nearby, Hannah Webb exhibiting some fine pieces. Popped onto the Webbs, to catch up with Nick, Hannah and Joni. Sat in the playground in the sun for a while, and visited an ancient cluntch quarry now filled with trees.
  • Back, bathed babes, put them to bed, packed, and packed for OSCON / GUADEC.

2010-07-17: Saturday.

  • Up early, tended babes while J. slept. Set the final monster print-out going (the large x-carriage-lower) - a raft, duct taped down, etc. Adhered to the tape beautifully - which then bubbled off the surface - bother. Eventually got a fairly warped but functioning carriage: nice.
  • Cycled to the market with the both babes to get soft fruit; back, intense rounds of party preparation, silly game construction, cleaning, egg sandwich preparation etc.
  • Lots of babes arrived, interestingly the older they get (H. is seven) the more parents leave their children - without staying to swallow the food and talk (shame). Lots of fun games, J's carrying lego assault course idea a particular success. Party food, and fun.
  • Eventually packed everyone to bed; J. out for Erin's leaving dinner; set too constructing monster 10 foot diameter trampoline for the babes. Martin kindly came over to help. Much greasing of the hands, and tightening of bolts, springs etc. later - we have an huge trampoline. Bed late.

2010-07-16: Friday.

  • To work; admin. Poked at SUSE MeeGo a little with Andrew. Kicked off a new OO.o 3.2.1 build to play with. Triaged bugs variously.
  • Downloaded the Intel meego handset images, and created a chroot to play inside with Xepyhr. Tested laptop projection for OSCON - Intel graphics + SLED11-SP1: plug and play perfection.
  • Struggled trying to get a chroot with the MeeGo handset UI running inside it, for some considerable time; mcompositor appears to render blackness, and duihome does nought but a black-and white demo app - odd.
  • Set about creating lots of numbered country-names for babes to put into similarly named pots around the house for tomorrow's party.

2010-07-15: Thursday.

  • Mail; prodded at X drivers, did a 0.12.2 release of bootchart2. Packaged for MeeGo and openSUSE:Factory.
  • Onto looking at forward porting our uxlaunch fixes, batched some off to Auke. Dug at mutter non-functioning-ness on my device. It seems setting CLUTTER_VBLANK=none is the solution; now of course - I appreciate that no doubt this is to work around a driver bug; but is it really sane to continue to wait whole minutes for a vblank event to occur ? (and meanwhile to block any compositing). Could we not have a 500ms-and-no-longer approach whereby if no vblank arrived in that time we would give up on further waiting as a bad job (?).
  • Federico pointed me at this chap making beautiful goemetric shapes from a rapid prototyping machine - sadly the reprap has no support-material capability yet putting most of these shapes out of the realm of possibility (thus far). Some great stl slicing tests though.

2010-07-14: Wednesday.

  • Mail, finished a write-up, back to boot time instrumentation; further polish to the tooling, variously. Jared's staff call.
  • Printed out a replacement bottle opener; useful at conferences.

2010-07-13: Tuesday.

  • Up early, to work, prodded mail. Pleased to merge a helpful bootchart2 patch from Matthew Bauer; and dung out the bootchart2 TODO, halving its size. Call .
  • Fell for a Russian spammers bogus 'Facebook' E-mail, how refreshing - the first one that got me in ages: further proof that social media rots the brain.
  • Installed / tested some OpenSUSE packages based on MeeGo (status) Andrew 'FunkyPenguin' Waafa has been doing a fantastic job on it, chipping away at the problem; still a few left: missing session integration, and gconf issues - but looking good.
  • Another community pair doing a great job are Ricardo Cruz and Atri Bhattacharya on yast2 - both developing and helping package it. I was dead impressed to see (and immediately use) the new "Switch installed packages to the versions in this repository" feature in 11.3, and the speedy incremental search while installing MeeGo.
  • J. out baby-sitting, printed out a couple of (only moderately) warped plastic pieces including the x-carriage-lower, taping down a much larger base grid really helps.

2010-07-12: Monday.

  • Up early, dropped babes at school; read mail - set too examining boot time, fixed a singularly mindless bootchart2 collector bug of my own creation. One to one with JP.
  • Replaced sreadahead with /bin/false - noticed zero impact on boot time; um - is btrfs really just -that- good ? Clarity (after spamming me for not filling it in), finally decided to respond so I could fill in my time breakdown.
  • Out in the evening with the lovely wife; ordered an Indian take-away from 'The Lancer' to eat on the heath; had a half-hour drink at the Rutland arms, then back - another 40 minute wait, before giving up in disgust. Wandered back in the dark to another restaurant ('The Old Scotch') [also Indian], and eat at home.

2010-07-11: Sunday.

  • Up early, tended babes while J. slept and tried to make sandwiches. Set off for my 2nd nephew James' christening at Sue & Clive's house. Fine mini service, lots of family there for food and sun.
  • Discovered the Vicar (David Dewick) was an ex. Home Office manderin, and Assistant Secretary to the original Widgery enquiry into Bloody Sunday, interesting chap apparently had some original footage, and bullets in his filing cabinet.
  • Caught up with various branches of the Hawkins / Griffin family and friends. Very clear drive back, and bed early.

2010-07-10: Saturday.

  • Up lateish; pottered about. Set too printing plastic parts out, while helping Father cut the hedge back and chop it into tiny pieces (to cram it into the bin somehow). Discovered a large are of previously obscured garden at the front; neat.
  • Dropped H. N. M. and J. down to the severals to get their float organised for the Newmarket Carnival, back for more hedge hacking, lunch. Woke & fed a worried E. and cycled her off to watch the parade, then on to the amusements. Very hot.
  • Home, more hedging. Plastic printing machine packed in: no sooner do you have the extruder working, than the whole thing falls victim to some vile comms problem, with errors left and right - presumably another temperature effect on nasty press-fit serial connectors.

2010-07-09: Friday.

  • Parents arrived late last night. To work; plodded through mail, did admin: why do people like you to print out, sign, and scan things in again ?
  • Lunch at school with all three elder Meeks girls, and Grace Brighty - Myriam's induction day into the Reception class; fun. Back for some more food. Found the drill sharpener manual for Father to get to grips with.
  • Conference calls, new installation flow testing; I guess it is finally necessary to write a btrfs implementation of fsdump to see what is going on underneath.
  • Admired Father's success in de-cyphering the drill-sharpener instructions, and my newly sharpened drills. Knocked up a steel plate spring to encourage the extruder to get it's pinch right regardless of fillament width, and excentricity in the drive. Managed to print out a gear.
  • Sat in the garden with the parents until late, catching up with their American expedition.

2010-07-08: Thursday.

  • To work, got a chromium setup up and running, and started debugging a particularly 'interesting' Moonlight bug. Sent a patch off for valgrind to tolerate setuid binaries when already run as that UID/GID etc. Chromium also does: execve ("/proc/self/exe", ...); somewhere in spawning it's child sandboxes (which are setuid root interestingly). The setuid helper /usr/lib/chromium-browser/chromium-sandbox seems capable of other funky things: --adjust-oom-score <pid> <value> eg. that look interesting; presumably it has been audited to death. Firefox - come back ! all is forgiven ...
  • Eventually abandoned the clever-tooling approach, and went back to 'code reading'; could it be yet-another C++ default-constructor bug ? in the end turned out to be everyone expecting everyone else to do proper namespacing - with conflicting symbols left & right. It is just great to know that interposing is such a wonderful feature that the glibc guys find so sexy (because, being at the bottom of the stack they have only benefits and the problems: poor performance, unexpected bugs, and portability grief, are everyone else's).
  • Worked rather late, out to cell group in the evening; Martin gave me a rather fine set of files which is nice.

2010-07-07: Wednesday.

  • Woke up, packed babes off to school; back to bed - exhausted. Up later, to work ! Dug through mail, sent more out. Conference calls, and created more meeting pain for myself somehow. Read the rash of unpleasant commenters: give the new Man's vision of turning Nokia around a chance first (surely?). Dinner. Worked late, debugging a nasty video hardware problem, but didn't get to the other blocker bug in the inbox.

OpenOffice & GStreamer ...

Back to the future

The other day the, secret, internal, 'from scratch' re-write of GStreamer integration was announced by StarDivision. You can read the wonderful news on their corporate blog. There is also some amusingly mis-directed marketing effort focused on Ubuntu as well. What does this mean for Linux users ? Nothing. With this great leap forward in Linux support you are unlikely to notice any difference at all; why ? Because all Linux distributions (SUSE, RedHat, Debian, Ubuntu, Mandriva, and more than I can list) have already been shipping GStreamer support since 2006. That was mostly written by Radek Doulik from Novell, with fixes from Redhat's superstar Caolan McNamara.

The real question is: Why would StarDivision want to draw attention to their traditional feature gap, by making noise about shipping multimedia support four+ years late ? while simultaneously alienating valuable contributors and continuing to tear down its developer community (that would love to help close OO.o's feature gap) ? if that interests you - read on:

Late to the party

Winston Churchill said that some people will always do the right thing ... after they have exhausted all the alternatives.. Now of course, for years I've been fondly wearing the GStreamer T-shirt, and promoting it as the future of multimedia. Sadly my 1st minor contributions were a bit late: in 2001, but the love is there; it's a great technology and a badly needed unifying force in the fissiparous area of media stacks. Did I mention I think it rocks ? it is eclectically owned and apparently developed as a traditional open-source project (despite lots of corporate investment).

Anyhow, despite (to my mind) the obvious-ness of GStreamer as the right backend to pick, StarDivision went ahead, chose and implemented the JMF support that they now admit is horribly inadequate; here is how things panned out:

  • 2004-08: StarDivision lands Java Media Framework (JMF) support for Solaris / Linux.
  • 2004-08: Simultaneously they commited DirectX support - which is great, Windows had a different, higher performance implementation, with full native platform codec support, etc. Linux is left as a tier 2 platform.
  • 2004-10: Noticing that perhaps the situation is not altogether ideal on Linux, (and ignoring my verbal advice to use GStreamer), an effort is made to add Xine support. A nice try of course, but shame about Xine's conflicting GPL license.
  • Somewhere around here, StarDivision got slammed for picking the (still proprietary) Java implementation instead of the platform one. As I recall I stood up for them robustly; after all it was technically easier for them to use Java right ? - 'Sun are not evil'
  • 2005-02: By early 2005, it is clear that not all is well:
    "I have tried all the dev releases of the upcoming OO 2.0 under Linux. Last I have had in use is the 1.9.77 release. In none of these the native insertion of video file in any format that I have tried (raw, avi, xvid, divx, mpg mpeg4) has worked. It simply can't play any of the formats I throw at it."
    At this point we have Xine and MPlayer mentioned, still the relevance of GStreamer hasn't sunk in.
  • 2005-04: Around this time, we get some code contributed from the Helix guys, though it is never merged into mainline.
  • 2006: Radek pushes his first cut of GStreamer support, and soon we are shipping something that actually works. Rapidly all Linux distributions pick that code up from ooo-build, or by manually extracting the patches.
  • Finally you can play a .ogg inside your presentation, and it mostly works. Admittedly we hard-code a single backend implementation (GStreamer) for Linux, rather than adding a generic, 'select a backend' option.
  • four year gap of disaster for Sun OO.o users - during which we try to encourage StarDivision to take our code, either under the LGPLv3 (preferred), or with assigned copyright and a liberal license (less preferred)
  • 2010-07: StarDivision announce their re-write as if this is a miraculous advance.

The Bogus Quality argument

At this point, the people trying to market against a branch of the same code, with additional features added, start to cast aspersions on its Quality. This is about the only half-way plausible argument they can have without hurting themselves. After all - ooo-build is intrinsically more feature (and fix) full than the original it is based on.

Of course, this argument foundered pretty horribly on missing features like 'Media Playback', given that our GStreamer integration is fairly robust (no known bugs). Is overall product quality really higher with totally inadequate media playback ? Is it really that much better to have nothing than something ?

The other part of the quality argument is similarly self-serving and goes a bit like this: "Their bug fixes are of terribly low quality !", this is usually helpfully co-joined to "This is because they don't have a slow and complicated QA process !". Then, of course there is the FUD - usually trotted out by non-programmer 'community' gurus and swallowed by everyone "The code-base is impossibly complicated, only the original authors could fix it". Of course there is some level of self-stultification, among the arguments: if the original code is of such high quality, how can it be comprehensible only by its original author ? [ hint, code review, and care in coding is perhaps more valuable, long term, than black-box testing ]. Is the underlying code really -that- complex and impossible to hack on ? (usually not). Of course among the smoke of a FUD war, any meaningful metrics of whether these bug fixes are actually bad is never forthcoming; it is just assumed.

Of course, in my view we fix many more bugs than we introduce (there being no shortage of them despite the heavy-duty up-stream, black-box process), and we always have a feature edge, though it changes over time; in large part because we send a lot of our work up-stream ourselves.

Ultimately, since all code has some level of bugginess, it can be hard to discern, for the man on the street, what the best code is. Luckily the Quality argument boils this down to something trivially to understand and remember, irrespective of who wrote it:

"If StarDivision owns it - the code is of high quality, if not the same code is of low quality"

Community growth

Of course, developing duplicative code, in secret, internally, and then landing it on the world is not a great strategy for growing a developer community:

"Should I bother adding an OO.o feature, or should I hack on this cool game ?
Well - I know if I try to contribute to OO.o, it is going to be grief and pain, and my code will probably be re-written
or discarded; perhaps the problem has already been fixed in secret anyway. Lets get typing games ! ..."

Needless to say, this GStreamer duplication is not the sort of advert that we want out there, that encourages people to contribute. If code is developed in secret, and then dropped from a height on the project - there will be much reduced benefit from peer review, and external contribution all around. Moving in this direction is extremely unhelpful for the future of OpenOffice as an open and inclusive project.

More amusingly, perhaps, there is a cabal of non-developers and business partners who hang around advising StarDivision management on matters of 'strategic' importance, such as this - who of course get advanced notice of these decisions. It is an interesting strategy to empower these people, and not those writing code. It is also curious that, although the revision history of the new GStreamer support is now hidden (with a single code dump), the ten source module file names match our implementation, while differing from the windows, and xine backend pattern; probably just a co-incidence.

Who ?

I use the name 'StarDivision' above, since it has been made clear publicly that OpenOffice is run at arms length, as a nominally separate business unit. Indeed, Oracle's acquisition of it has only just fully completed. It seems a reasonable (if legacy) name. Perhaps it is a shame that some of the good practice and expertise around Open Source projects that Oracle has in-house is not effectively applied in this piece of the company. People like to give Apple all the credit for their control ambitions around language choice for their app-store, banning their competitors from the arena and so on. That seems rather unfair, Open-Office.org seems more of a crucible of software co-ercion innovation: in order to get your code included it appears StarDivision needs not only to own it, but to do so exclusively.

The Business Case

Clearly, I am a Free Software hacker, not a business man; thus of course, perhaps I've missed something hugely important here around control or somesuch, but since these actions are rationalized to StarDivision's own (humane, and clueful) developers with a pressing 'business' rational, lets look at the pros and cons of duplicating this in-house, vs. the alternative: accepting code ownership, under condition that it is also available under a liberal license:

  • Pros of Accepting and including existing code
    • Costs: zero dollars
    • Code ownership - means StarDivision can maintain existing contracts
    • Code ownership - means StarDivision can sell indemnity to others
    • No community fragmentation
    • Engineers can be focused instead advancing the state of the art
    • No impression of having spare resources to pointlessly squander
  • Pros of Re-writing the code from scratch
    • Exclusive code ownership: anyone that wants rights for this small piece of code has to come to us, there is no liberally licensed equivalent.
    • perhaps macho posture: beat the little guys with glasses up ! it keeps them in line.
    • um ...

Of course, I don't think StarDivision's management is actively malicious, they're certainly not stupid - so it is necessary to pad out the re-writing pros a little - there must be a reason: what is it ? Is it really worth fracturing the development effort, wasting resources, re-writing existing, tested, working code, and driving away contributors, simply in order to ensure that StarDivision are the only owner ? is this 'Open'-ness ? How likely is it that external contributors are going to re-write and improve a majority of the OO.o code-base in the next decade anyway (diluting the exclusive ownership) ? Why bother creating conflict and steam-rolling other contributors to this extent, purely in StarDivision's proprietary corporate interest ?

Of course, ideally we would just get the code into OO.o under the LGPLv3 (the outbound project license), it is a tragedy that such a cost is paid, simply in order for StarDivision to have the exclusive right to avoid its terms.

Please note, that this is not a competitive issue. Notice, I am not promoting Novell's version as years ahead of Sun's here. I truly believe that to get the best product for everyone we need a partnership and collaboration of developers inside and outside companies, to create a better OpenOffice for all.

Conclusion

This announcement is non-news, StarDivision re-wrote a small piece of community developed code, and plan to ship it in six months time (in OO.o 3.4). What little news content there is points to an increasingly closed, secretive, and unhelpful development process. Perhaps there are also clear signs of an unwillingness to compromise at all, and a slow dying of the belief that such a thing as an active, and helpful developer community is possible. Please remember that once we all worked together in a more productive and friendly way !

Of course, I anticipate more non-news, if management loses faith or interest in a developer community, and prefers to waste resources rather than working together with others, there are some obvious next steps: waste even more resources ! Unfortunately, as a side effect this yields the development agenda to others, and just builds more walls between those who have common cause to make the code-base better. What a tragedy.

Personally, I believe OO.o can really only thrive and grow if all the contributors work together. By work together I mean a public, transparent co-operation around well defined, fair rules; not a web of tangled back-room agreements. Absent that, I am not optimistic for the future of StarDivision, though it is perhaps positive that they are starting to take Linux integration more seriously - which could be good.

Finally, at some level, this is a sad thing; this is 2.5k lines of code re-written that didn't need to be written (against the current ooo-build patch set size of ~673k LOC). That is a loss of 0.4% of the ooo-build 'edge'. As OO.o, and it's customers finally arrive (in multimedia terms) where ooo-build users were in 2006, I hope they like the scenery: we have long since moved on, as one example: to multi-slide audio.

Update: Amusingly the announcement blog entry finishes: "Don't hesitate to give us feedback." - but strangely, the initial comments and discussion on the article have all been deleted: amazing - what is there to hide ? - the fact that this is duplication ? the bogus quality argument being deployed ?

Update #2: Comments just got re-enabled, showing the great hype on quality. As mentioned, having a fully-pluggable media backend where you can choose Xine or Mplayer or JMF or GStreamer is a terrible idea; hence hard coding GStreamer support. Though of course the calculus of maintaining features as patches imposes some limits to the re-factoring possibilities too.

2010-07-06: Tueday.

  • Prodded mail, read news; pleased with a breakthrough in E's (4/4) toilet training, strangely - unlike any other daughter, she loves to play throw / catch of a ball afterwards; could this be the bounce, bounce, bounce, throw that is such a threat to our engineering ecosystem ?
  • Call wrt. Evolution, JP's staff meeting; booked my travel and hotel for GUADEC - I guess I'm going immediately after OSCON.
  • Once again stumbled over the lose / loose spelling difference, Greek students would empathise no doubt - 'Luo' is just too handy. After successfully injecting fissiparous into an article, my next target word (from Solarion) is (the much under-used) ovovivparous - to make my inner platypus proud.
  • Finally got the the admin queue: Clarity, and some bugs,.

2010-07-05: Monday.

  • Up early, pleased to read Simon's brief exposition of Open Core. I concurr, but I think it is clear that the danger lies not so much in the core, but in the assymetry between it's licensing and an ownership right. The Apache core eg. is licensed very liberally and accepted by all, whereas the MySQL core is commercially exploitable only by a single entity.
  • Visited my doctor to discover that a viral bronchitis + sinusitis does in fact take three weeks to go away, and to chin up / keep going; thankfully things are looking up.
  • Un-surprised to see the latest twaddle from David King. I distinctly recall attempting (and failing) to dis-abuse him of the idea that biological computing was only a few years away (back in 1999, when he was Master of Downing College), something that appeared obvious based on the most trivial economic, and engineering considerations. Anyhow - New Scientist will be pleased to have the next 'rocket cars' type article for their modernist audience pre-written for them.
  • Got a nice bug report from Andrew Haley - a bog standard OO.o / KDE4 integration crasher, disguised (by a new, more helpful SEGV handler that Java uses) that says 'Java' on it - thus filed in the IcedTea tracker. "It was only then that the idea of hard-coding Jacob Berkman's mobile number into the bug-buddy crash screen occured to him".
  • Prodded at the reprap in the evening, the extruder is just a shockingly unpleasant piece to get right - tried replacing the stepper, and got the same slipped steps effect; hmm. Next stop a -real- stepper motor controller instead of the hacked up pair of over-heated DC drivers; more soldering required.

2010-07-04: Sunday.

  • Up early, pottered off to Church with everyone, discovered still wearing slippers; not a good day. Struggled to stay focused.
  • Back to ours for lunch with Peter & Dianne Curtis-Prior, Tony & Janice, and Lydia. A fine spread, good company, fine conversation.

2010-07-03: Saturday.

  • Up lateish, feeling shocking, chest infection, low lung capacity, bumbled around the house feebly like an older person for much of the day.
  • Caught up with the parents on the phone somewhere here: returned from the US in one piece, thankfully.

2010-07-02: Friday.

  • Trawled through bugs, tried to decide whether to buy an iPad. "Do you like other people deciding what you can and cannot do ?". Started queueing to buy Miguel's new iPhone app, hopefully it is for sale; of course, it requires buying an Apple product which might hurt, whereas iCoaster was a more plural product, platform-wise; though naturally I prefer the fork.
  • Feeling somewhat unwell, heat, poor chest etc. not good. Sandy over for lunch. Fixed a couple of interesting bootchart2 issues for Alex Graf (doing funky things with Studio).

2010-07-01: Thursday.

  • Up early, packed babes off to school; trains to Millbank for a 'Harmony' meeting, good to see Simon again in his new ForgeRock existence, agitating inside the BCS as well; good stuff. Met lots of interesting, and expert people.
  • Good to catch up with Dobey, Rodrigo and JamesH as well, all sprinting to somewhere. Finally my (shocking quality) penny bottle opener met it's match Carlo Piana - a cunning lawyer (using his experience of alternative angles) bent it backwards and snapped it in two. Amusingly ten or so software engineers before him had failed to identify that weak mode. Good to know the FSFE has such expertise to draw on.
  • Out late, back on the train - met a lovely great grandmother & daughter on the train.

2010-06-30: Wednesday.

  • Poked mail, Evolution patch merging and packaging fun with Michael and Peter; good to see them on IRC. Spent time prodding at testing SOCKS proxy support.
  • J. out counselling in the evening; managed to get much of the 360 X bearing plate assembled and running nicely; worked late poking at PackageKit and patches.

2010-06-29: Tuesday.

  • Up early, mail digging, nursed the gnome-shell build; seemingly building mozilla with a non-system nss is an infernal mess. Why not use pkg-config uniformly, rather than requiring these bizarre --with-system-nss or --with-nss-prefix configure arguments ?
  • Moved OSCON flight so I can get to GUADEC on time, call with Jared. It's good to know that "You can't just go around taking photos" according to the MET.

2010-06-28: Monday.

  • Mail triage, admin. Tried some more to get jhbuild to build Gnome 3.0 on SLED11-SP1 - lots of problems going beyond the libtool one. The most evil problem is a bogus dependency chain of doom: everything requires gvfs which requires gnome-disk-utility (uh?) which requires udisks (which requires lots of rather recent pieces). Suffered with the retarded setup of 'device-mapper', atasmart, build-your-own udev, latest avahi-ui etc.. Of course - I had no desire to do anything clever with my disks at all. Bad. Interestingly this mirrors some acute madness and package splitting required for MeeGo in exactly this area. Notable examples would be device-mapper's habit of trying to force root user ownership, and gnome-disk-utility's wonderful hard-coding of system paths in Makefiles, urgh: udisks-device-glue.h: /usr/share/dbus-1/interfaces/org.freedesktop.UDisks.Device.xml
  • Advisory call with Stormy & co. Martin over in the evening with spare ATX PSU, played printing pieces and catching up at some length.

2010-06-27: Sunday.

  • Up early, tended babes; while printing plastic springs. Off to setup tents - a very sunny day for church without walls on Studlands Park green.
  • Back to collect babes, and water for the masses; church service on the green. Back for barbeque with Chris & Claire + brood.
  • Much lying around in the sun, watching assorted babes splashing in the pool etc. Let E. over-sleep, leading to a tragically interrupted night of non-sleep for us.

2010-06-26: Saturday.

  • Up late. Pottered around printing pieces of reprap out and assembling them with H. for much of the day, got the y carriage assembled. J. out to a party with both babies in the morning, and N. in the afternoon. Played with H. making an assault course in the garden in the sunshine; lovely.

2010-06-25: Friday.

  • Dropped babes to school, cleaned church, picked up racking from John; to work. Prodded at a really nasty nasty in g-ir-scanner. Lunch.
  • Prodded once more at jhbuild, breaking again in libtool - which is fine at linking things, but gets highly confused by system .la files (it seems), and I refuse to do a bulk delete of my nicely package-managed .la files; eventually caved in and moved them to some safe place for future testing.
  • Chatted with David wrt. some Evolution bug fixes, and was amused and pleased to see Alan attribute this sage advice to him:
    "Policy is a poor man's substitute for common sense."
    -- David Woodhouse

2010-06-24: Thursday.

  • Prodded at mail. Rethink Wireless have been spamming me for some considerable time, but I got hooked somehow on reading their updates. Of course, I know nothing about the handset market, but it is sad to see Nokia taking a beating. It remains incredible to me that the huge opportunity presented by the N900 - was abandoned in favour of non-user-visible tech warfare. Time to market ? or are the times changing ?
  • Poked at jhbuild, time to have a real, full GNOME environment building instead of working with patches everywhere I suspect. Worked with Joey on image bugs.
  • Lunch; booked hotel for OSCON. Boggled at Sam Varghese's latest trolling - refreshingly of Network Manager; apparently manually editing a text file is how all right thinking people should setup networking; and everything else (eg. point and click to select a wifi network, DHCP as default for network address selection) is "high grade bull ... will drive people away ... voodoo world of Windows". Re-assuring that my tenouous grip on the real world (amongst the source files) is stronger than some others'. Perhaps a better article title would be: "I watched the world cup instead of thinking about what to write, so now I have to generate three pages of mindless drivel that will get lots of hits ... what could it be ?".
  • Printed out some nice plastic pieces in the evening; slicer seems to be doing its job at least - a reliable extruder is really key in getting a robust shape it seems, far more so than the internal fill spacing. Out to Cell group to distribute leaflets for church on the park on Sunday. Back early to watch DVD with Lydia & J.

2010-06-23: Wednesday.

  • More mail catchup, attempted to organise travel more effectively. Why did my extended family all manage to get born at times co-incident with a peak in the conference season.
  • Fixed a nasty PackageKit / zypp crasher or two, and fired off some patches to MeeGo. Managerie of phone meetings in the afternoon; pleased to meet caillon there.
  • Re-wrote the repsnapper slicing algorithm in the evening; tragically by removing some hideous bugs (a broken 2D point hash), I managed to make slicing far more accurate, and yet pragmatically worse. Added an orphaned point connector to get the most perfect slicer yet; sadly better slicing breaks Logick's shrinking algorithm; hmm.
  • Fell over another joy of C++ - default copy constructors and the pImpl pattern: wonderful to hide your implementation details behind a private pointer; less wonderful to have the default copy constructor duplicating that pointer, causing wonderful crashes via two destructors freeing the same pointer.

2010-06-22: Tuesday.

  • Prodded mail; finished and reviewed LXF column, dug at some bugs with Ben. Read some of Kohei's Ixion. Conference calling action variously.

2010-06-21: Monday.

  • Up early, took babes to school with some triumphent six to nine times-tables; perhaps they are finally getting them.
  • Prodded mail, triaged meego bugs, Clarity, admin, read news.
  • Thrilled to read that Intel finally did the right thing, and dropped the requirement for (C) assignment (of whatever form) to be able to contribute to clutter - making it a truely open project; nice ! I feel a sudden urge to contribute, something, anything now it belongs to us all.
  • It seems the H open published an interview based on a not completely separated pastiche of some new bits with some rather older quotes from around the web.
    • To me, the most interesting thing about OO.o that needs fixing - is the developer community. That is still predicated on the Sun guys perceiving that it might be nice to work together with others to build one, and considering careful compromises to help make that a reality.
    • To recap - the problem is that Sun (and some other corporates) simply refuse to include code under the LGPLv3 (which would be our preferred solution) unless they can avoid it's terms by owning the code: nasty.
    • My favorite awful compromise of the month (that retains the well known barrier to entry, distrust breeding ground etc. that is assignment) - but might at least make some progress would be to: (wait for it) - assign everything to Oracle ! so they can own it and do what they like with it - but - only on condition that majority non-Sun written code modules are continued to be made available to others under LGPLv3 plus a more lax license: perhaps MPL/CDDL, Apache, BSD (in order of increasing laxness). That would effectively remove the value of the exclusive ownership of code written by others (for unseemly back-room arm twisting), while at least for the forseeable future, not impacting the proprietary value of the bulk of the code-base.
    • Clearly, by far the best approach is to pick a license you can accept, with a suitable license steward, and go eclectic ownership - letting creativity flourish: the Mozilla approach. This is also -clearly- in the spirit of the (pure) Marketing around the 'Shared' nature of the 'Shared' Copyright Assignment (SCA) : if it is truly shared (it is not), then why not allow it to be available under another license ? And again, it is regrettable that they will not accept code simply under the terms of the LGPLv3; our problem is not with the license - but the assymetry between it and outright ownership of our code.
    • I still hate (C) assignment with a fear and loathing; and continuing it for OO.o drives away the developer help we need; but perhaps this compromise might help re-unite the wider OO.o community, and at least having the bigger corporate contributors working together can't hurt to start with.
  • Printed out a gear and (at great length) a new geared extruder housing, which (hopefully) will improve the reliability of the beast, as/when I can knurl the M8 studding involved.

2010-06-20: Sunday.

  • Up early, tended babes while J. slept. Dropped David into Cambridge for his conference. Home, played with the machine briefly, woke J. and off to NCC. DT preached, and the babes were good in creche.
  • Back for lunch, tidied up, lazy afternoon printing pieces of very mixed quality - seemingly the extruder is a tempremental beast and getting the right amount of 'pinch' is quite difficult - currently far too little yielding stringy and fragile output.
  • Bed early, programmed on repsnapper in bed for a while, some shapes (even simple ones like z-tensioner_1off.stl appear to have un-cut-able layers missing GCode completely - most odd. Having an SSD makes the laptop -so- quiet, and gives you confidence that your data is stored on something solid, just the tap of the keys for noise.

2010-06-19: Saturday.

  • Up later; got dressed, babes playing with the play-doh, a result of Guy's bounty. Tried to find horses in an over-crowded town, and dropped Guy at the station.
  • Home for lunch, coughing on alternate lungs. David's suspension spring broke in half - leaving him needing a train journey to get here; bother. J. out shopping in town. Prodded at the plastic printing machine a little - and sat at the table assembling it with E. helpfully adding washers here & there.
  • Popped out to check on the machine - apparently the thread jammed, purged the nozzle, and turned to see E. fallen down the step, cut her head & crying - grief. Packed babes into the car, zoomed off to A&E, remarkably speedy throughput there too; only 1:30 door to door. Nothing much wrong, glued her up, returned to J. and a rather late lunch.
  • Off to Erin & John's house; for a barbeque; good to see them, and Mike & Katy & lots of kids. Tried to stop E. doing all the normal head-banging behaviours: trampoline, jumping off steps, attempting to climb bikes that are clearly far too large for her. Picked up David from the station.
  • Home, packed babes to bed, up late talking to David and printing out small pieces to bolt onto the reprap; really good to catch up.

2010-06-18: Friday.

  • Up early, still feeling poor. Breakfast, and train/bus into Cambridge to see the lovely Collaborans. Meetings, wandered the streets of Cambridge inclemently. Conference call with Nokians later in a cafe with Guy.
  • Back by train, for a birthday (thirty third) dinner with the wifelet & Guy. A most pleasant evening, bed late.

2010-06-17: Thursday.

  • Up early, fever gone (for now); feeling groggy, got train to London to meet up with Guy & Intel. Wandered between various 'Eat' restaurants before finding Guy. Meetings, out for a fine lunch with Paul & Matthew. Good to catch up with the guys there.
  • Tubes and trains home with Guy, enjoyed the garden in the evening, and a little tea. Lydia arrived to meet with J. Bed, tired variously.

2010-06-16: Wednesday.

  • Up early, feeling pretty awful; fuzzy head, painful right lung - normally you have to smoke to feel this bad (surely) ?
  • Worked through mail sloowly. Feeling terrible. Bed before the children with a fever.

2010-06-15: Tuesday.

  • Locked out of the house; J. attempted to raise Bert, but eventually had to clamber over and get through a window; downer.
  • More mail prodding. Jon pointed out that perhaps a more horrible drop-off around C++ streams for printing things is the lack of sane l10n support due to fragmenting the strings, and not allowing re-ordering; good point.
  • Apparently avoiding E-mail during hack-week was bad; I missed the chance to vote in the Foundation election; bother, still (unlike OpenOffice.org) at least I was E-mailed to remind me to vote.
  • Poked at evolution packaging, and misc. MeeGo fixes there, submitted an update or two. Boggled at C++'s hash_map (apparently non standard, and with some unpleasant compile-time warning), but it's replacement 'unordered_map' can't be included without other warnings of not-yet-ready-ness (perhaps just a SLE11 issue).
  • Off to have the car fixed, hacked from a nearby fitness club with WiFi; JP's staff meeting. On the 'probability clusters' front, got a call from the dear wife - once again locked out - presumably the result of normally having a husband firmly rooted at home.
  • Car failed MOT due to a small windscreen crack; bother. Lydia & Janice over for the evening - pottered about with the machine - re-built the extruder securing to be ultra rigid. Printed a test part.

2010-06-14: Monday.

  • Read mail, admin pieces. Pleased to see Neelie Kroes make some (apparently) rather sensible statements about the evils of proprietary software. Now if we can only ask governments to encourage / prefer Open-(Source) or Free Software - we can not only reduce our tax burden, and government effectiveness, but have a winning strategy (unlike the 'open standards' game, at which large entrenched monopolies are only too adept at playing).
  • Knocked up some screenshots of repsnapper, with package repo for openSUSE: repsnapper. I really need to get all the avr toolchain (and the like) inherited into and available from there, along with the arduino tools and ArtOfIllusion; and an openSUSE / Studio bootable image. Repsnapper looks like this:

    Sadly missing some /dev/ttyUSB0 detection (though Rick is working on it).
  • Interesting to do some more C++ programming, and see what fltk is like (not my personal choice, but what was there). What did I learn:
    • It seems the single file, containing GUI and code, that can be compiled into .cxx & .h files by a head-less binary is quite a nice model; why ? because you still have a self-contained binary that doesn't drag XML files with it (across platforms), and it is easy: fluid -c UI.fl is pretty simple to add to a Makefile. We should have done this years ago with glade 1: it would be have been pretty trivial.
    • C++ is not a panacea; it's still easy to mess up memory allocation, cut and paste code, and produce a foul mess that is hard to unwind. A great example would be fltk's sexy void Fl_Widget::label (const char *a); - used to set the label on a widget. As a thing of beauty it stores the raw const pointer value. But - as a bonus there is extra code and lifting for a Fl_Widget::copy_label (const char *a); that does the sane thing. Don't assume other toolkits share good taste in copying conventions.
    • sprintf the C++ way is unutterably lame; at least - as I understand it (perhaps that is the problem). Full of enthusiasm for the C++ way, I wrote this sort of thing using std::stringstream oss;:
      oss << "You are " << setw(2) << years << " years " << months << " months old\n";
      which is all pretty and everything (and notably only a single line). Sadly it turns into five function calls plus frame setup, plus exception unwind tables. Contrast with the standard 'va_args' approach in fprintf - a single function call, and some frame setup. I can only imagine what this does to your code size when you have hundreds of debugging statements around the place doing cunning stuff of the form:
      dbg << "data is: " << a << ", " << b << ", " << c << "\n";
      etc. I guess you have to compile them out. A more discerning va_arg version (in C++) could still do nice, powerful object printing (perhaps) but with less of a footprint. Then again, I guess C++'s hidden pointer adjustment makes var arg functions something of a pain static_cast<> wise.
    • Mary Rogers over for dinner in the evening - lovely to spend some time with her again.

2010-06-13: Sunday.

  • Up early; tended babes for a while, while washing up the remains of yesterday's carnage. Off to NCC, Tony spoke on Jesus' arrest.
  • Back for lunch with June; managed to print a Y axis mount, albeit with some acute warping; hmm - need a heated bed, or cheap hair-dryer I guess.
  • Out to James' birthday party at the Wood's - good fun. Back, tired, put everyone to bed; dinner, tinkering, bed.

2010-06-12: Saturday.

  • Lie in, off to the market to stock up on necessaries for the party. Light lunch, barbequeing action, lots of fun-sized people arrived to play. Lovely afternoon in the garden in the sun celebrating two lovely years of Elizabeth.
  • Prodded at printing plastic in the evening; started to knock up a wooden spindle to hold the filament that might actually be turned by the extruder stepper.

2010-06-11: Friday.

  • More bootchart2 hacking, and some repsnapper pieces, fixed misc. bugs, packaged for openSUSE. In a fantastic irony, I spent fifteen minutes chasing a C++ bug whereby I had declared a bogus return type of std::string that I didn't return; it turns out gcc with no -Wall is almost as lame as python in that regard. Discovered a number of other sillies eg. people assuming the compiler will do string uniquification and they can do: if ("Pause" == "Pause") type things (with some added indirection) in C.
  • Prepped for E.'s 2nd birthday tomorrow. J. made a fantastic dragon cake.

2010-06-10: Thursday.

  • Got a certain amount of amused feedback on my python rant; even from some professional sufferers. Patryk Zawadzki kindly recommended pyflakes or pylint. Tried the former on the GUI code. It found a number of unused local variables (wonderful) and imports I didn't need, but not a missing 'return' in a method: nice. Tried the latter: apparently as part of 'sudo python setup.py install' it does a number of web downloads and runs the result (shudder); after that masterly horror - it mentions the method that doesn't return a value has Missing docstring, but nothing else. Of course it generated a ton of false positives - un-loved variable names etc. Tried to clean it up a little, caught exactly zero real bugs; sigh.
  • Booked flights for OSCON 2010.

2010-06-09: Wednesday.

  • More bootchart2 prodding, generated and dumped the nice process hierarchy, and started poking at the python to render it.
    • I have to say that a great, great loathing is growing in me for python (and all loosely typed languages - JavaScript, you know what you are !). I feel like adding comments before each method of the form:
      #  CairoContext, Process, ProcessTree, float, float, Tuple(x,y,w,h), Tuple(x,y,w,h)
      def draw_processes_recursively(ctx, proc, proc_tree, y, proc_h, rect, clip) :
      
      And of course just that simple example took me sixty seconds to unwind: dig back to each constructor to be sure.
    • Feeling good about yourself ? time to start using VBA, or it's moral equivalent: python, for a while. You could argue that the way to fix this is to impose 'self discipline' (similar to the just-a-sub-set-of-C++ argument) - and either mangled the type into all your variable names (but I am not Hungarian), -or- to try to use the same variable name everywhere for a given type (until you have two in the same method).
    • Python: it scales to two whole screen-full of code without loosing readability! Python: why write code to be read, when it's so easy to write it new ? Python: great if you can hold the whole program in your head. Now if only Google could target their Java to JavaScript compiler to be a C# to Python compiler ... we might have a readable language, with an incrdibly heavy-to-start run-time (hmm).
    • My next bug-bear was return values. Isn't it magic to have a function call that may not return a value, yet gives no warning (somehow I lost the ultimate 'return' statement in a sub-method - perhaps it still lurks, nicely indented, somewhere else in my code):
      def test:
      	def doit():
      		# some code, conditions, forget to return ...
      	a = doit()
      	if a: # is not None
      		# do something.
      
      Nice; I spent half an hour finding the missing return. As a helpful reminder, here is what a real language would say:
      doit.c:8: warning: control reaches end of non-void function
    • Eventually (by crawling) arrived at the goal of beautiful rendering, despite loosing both feet in the process.
    • Dinner, and put the babes to bed, while J. went out to counsel a new client. Prodded at the reprap. After re-working and tightening the X axis yesterday; I turned up the Y axis power (being right on the edge is not so good), for the Z axis tweaked the gear teeth, tightened the belts, applied mini (DRAM) heat sinks to various chips, and ... got my first real, complete print-out, of a coat-hook; generated by repsnapper (nice); fast too.
    • Printed out a beer bottle opener, and had an Alsterwasser to celebrate (after mangling it a little by omitting to insert a suitable one cent coin). Apparently rep-straps are sufficiently easy to build that any old idiot can do it. Drawings of ply-wood, and openSUSE packages to follow.
    • It seems that repsnapper's optimistic approach of dead reckoning without ever resetting to the end-stops works rather well, and faster too. Surely it is somewhat amazing that the machine can get tens of 0.4mm layers on top of each other reasonably precisely with those means.

2010-06-08: Tuesday.

  • Prodded at bootchart2 much of the day. Re-factored the /proc task list polling, and implemented a threaded netlink based PROC_EVENTS approach instead. That should provide two benefits: first true 'parent' (ie. who forked whom) detail - instead of the ppid fictions: which should provide a much cleaner graph, and secondly far quicker response to get command-line and argument details out of short lived processes.
  • Fixed reprap detection; it is not necessary to wait for a board reset to be sure that we are connected. Lydia over for dinner, prodded at the reprap mechanics in the evening, re-building the X axis carriage to be more rigid, and moving the extruder board to the top of the machine.

2010-06-07: Monday.

  • Hack week begins; spent much of the day clearing out mail, and admin pieces, bother.
  • Fixed up the repsnapper build, tested it on openSUSE, simplified the build process a little, added native file selector support, command line arguments for loading STL files etc. FLTK is quite interesting (and awful at the same time), poked at it variously. Some packaging love tomorrow.
  • Poked FunkyPenguin's MeeGo on openSUSE packaging pieces a little.

2010-06-06: Sunday.

  • Mini lie-in; off to NCC, ran the creche. Home for lunch, with John Madden. Babes played together happy to be re-united. Out to a party with N. Back, prepped the house for a movie and watched "Up" with Lydia, John, Martin, DT, Zoe & Patrick - which was great. Bed lateish.

2010-06-05: Saturday.

  • Up early, with a pair of small invading the bedroom, and helpfully patting me etc. no doubt questing for the missing Mother. Breakfast.
  • Read the note I should have read yesterday, and discovered another set of good things for picnics prepared in the fridge. Spent a considerable time attaching a new baby-seat to my bike, in conjunction with the trailer-bike.
  • Cycled off into town by back roads for some play-ground goodness, E. apparently much pleased with her new cycling experience. Picnic, play, ice-lolly, back home.
  • E. to bed, M. watching CBeebies videos on the BBC; and demanding 'milk warmed up', and complaining of the service. Fair sentiment, unhelpful articulation. Cleared and cleaned up frenetically for J's return, tea, packed everyone to bed.
  • J. returned, Jacket Potatoe dinner appeared to work for everyone, packaged H. & N. off to bed quickly; B. & A. left, bed exhausted.

2010-06-04: Friday.

  • Bruce & Anne arrived early to take J. H. and M. off to Rochester Castle and then the Eurostar to France (nominally to practise their French); leaving me with the babies: M. and E. Pottered around; made a packed luch.
  • Drove to Norwich, parked in the Castle Mall, walked to the Castle (via several exciting escallator rides). Enjoyed the huge, open keep for a while, though E. terrified of the glass covered well. Then onto various exhibits Boadicea, stuffed animals (as slaughtered en-masse during the colonial era), and so on.
  • Out for a picnic lunch in the sun; interestingly you are more aware of slipping discipline when you're with the babes all day. Played on a mini playground & back for more castle-ing.
  • Eventually exited via a scary prisoners tunnel to the regimental museum, and back to the car via Maplin & more escaltor rides.
  • Sleeping babes in the car at home, warmed dinner, and fed them spag. bog. bathed, and packed them to bed - rather sad not to have their Mother to kiss them to sleep.
  • Cleaned up & set too at the reprap; played with repsnapper, and off to hack at the software. Ported HEAD to Linux again (removing a number of Win32-isms), and pushed a git branch Rep-Snapper that really builds (albeit not prints yet). Bed late.

2010-06-03: Thursday.

  • Poked mail, strained at the build service, unwinding an odd dependency loop. Struggled on trying to work out how ImageMagick gets broken.
  • Discovered RepSnapper apparently the solution (at revision 208) to my reprapping software woes; for all the reasons listed by Giles.
  • Plugged away at build problems, strace -f'd two parallel osc builds to compare, finally found the answer; duh - ImageMagick + perl is not a good place to be.
  • J. & babes returned full of bounce from visiting Joy & Chris at Oak Hill, put the babes to bed; dinner, back to work a bit.

2010-06-02: Wednesday.

  • Poked at interesting mail, wrote an analysis or two. Briefly prodded a fascinating OO.o crasher on MeeGo apparently related to some compiler over-enthusiasm.
  • Interested to discover the Janice (our Pastor's wife) is an ace knitter of things, eg. a digestive tract (for teaching purposes of course); encouragingly creative.
  • Soldiered on with the repstrap - un-shorted and re-attached the stray thermistor; tried printing gears again; hmm - the in-fill seems a bit over the top; I'm suspicious of the rather over-enthusiastic extruder reverse/return cycle spewing extraneous plastic. Something a bit like a gear appeared though: teeth and all - nice.

2010-06-01: Tuesday.

  • Interested to see the C++ in gcc discussions going on; having done a little hacking on gcc as someone unfamiliar with the code-base; it took a large amount of time to get into. This was seemed un-related to the language choice, and instead to the habit of re-using generic types for everything - presumably (in part) because the garbage collector can walk them without extra effort. If changing the language helps focus people on improving readability, that's all to the best. Of course, C++ has some hideous readability problems built-in: operator overloading, hidden references void non_obvious_mutator (int &x); and so on.
  • Mail, and admin, sync call with JP. Nice to see the MeeGo blog entries from Thomas (on zones), and Travis on Telepathy/Empathy. Nice Ars Technica review too with a lot of shots (a shame WiFi didn't work for them though).
  • Lunch, quick advisory board call.
  • Having heard about the Israeli helicopter raid on the (difficult-to-board) boat, and given that my sentiments are generally with the oppressed, state-deprived Palestinians - who apparently also get regularly attacked by illegal Israeli settlers, I was suitably unsympathetic to the (apparently obvious propoganda) of the Israeli military about how they were beaten by pipe wielding crazies, and so on; and much more convinced by the apparent peace-nicks: "not going to pose any violent resistance" line. On the other hand, I hate being fooled by the radio. For how long will an armed man under attack watch his colleagues get beaten before he authorises a disproportionate response ? Perhaps that is not news. Then again looking for the blamelessly virtuous in the cycle of violence and suffering in the Middle East seems a pretty fruitless quest; sigh.
  • Just to exacerbate my strategy of offending everyone concurrently (divide and conquer) - I have some sympathy for Foxconn whose no doubt appallingly normal (for China) working conditions might be only the grit in the oyster of their problem. Could this be a Micronesian Teen suicide type epidemic.
  • Pleased and amused to see (finally) some closure on the unusual backwards I/O patterns that iogrind showed at startup, more juciy details from Taras.
  • Dinner, Lydia & Janice came over. Plugged away at the repstrap - mounted the bulk fillament somewhat lamely on the ceiling above the machine, really needs a proper spindle & bearing. Calibrated both sides of the Z axis nicely, re-made the Y and X opto end-stops using biscuit tin lid. rather than beer can: for a more durable action, tightened everything - finally got a reasonable print of the bottom few layers of a cube, though eventually (due to a raised lump in the middle) the thermistor became detached; well pleased with progress; and with a very tough square of plastic.

2010-05-31: Monday.

  • Up early, wound new heater element while J. slept and the babes gambolled. J. iced cakes variously, and then off to the NCC Monday Fun event on the studlands estate (a Bank Holiday fixture).
  • Met lots of interesting new people, lots of cakes, fine hot dogs, bouncy castle & so on. Simon did a stirling job refereeing a vast contingent of boys playing football.
  • Back - testing the new nozzle at last; discovered that I had inadvertently wedged the internal bearing - which might explain some of the lack of motor-driven extrusion. Cut out the ply a little more; fitted, heated, extruded ! nice - a beautiful stream of 0.5mm diameter plastic - wonderful. It seems the interface between the hot 3.5mm hole, and the insulating 3.5mm hole is absolutely critical to the process - something I was perhaps missing before.
  • Tried to time the amount of plastic extruded per second, and get it to stick to the table. Tried extruding onto ply-wood, then nylon chopping block: no joy - seemingly kapton-tape on ply is reasonable. Managed to print a few layers of a very awful 40mm cube before the nozzle started to drag it around the place - some accurate calibration required, clearly.

2010-05-30: Sunday.

  • Boiled eggs for breakfast, and off to Thorpness Meare for a row with Sue & Clive, and our respective broods. Amused by the initial critique of the parental rowing technique (indeed my skills are highly questionable though somewhat practised in eights). The criticism was drastically muted by the impact of personal experience as we merrily circled, caught crabs, drifted into the bank and so on under their masterly control: much fun.
  • Back for for a fine roast lunch; Bruce meanwhile having made a reprap extruder nozzle out of some steel studding, with the insulating from an old piece of phenolic resin (a pan handle by any other name). Looks like just what the doctor ordered.
  • Washed up, had coffee, and set off for home; gave the babes tea, and set too in the workshop - adjusting the fixtures (designed for a rather thinner barrel) to accomodate the new hot end. Bed early.

2010-05-29: Saturday.

  • Up early, off to the Alive conference near Woodbridge with the family. Parked the eldest two with kids workers; and had a talk on a single verse: "The kingdom of heaven is like treasure hidden in a field. When a man found it, he hid it again, and then in his joy went and sold all he had and bought that field". That the kingdom being wonderfully valuable - like treasure; that it is not always necessary to have a systematic search to find it - as a gift; the joy of discovering and living in the kingdom; and it's cost - everything we have, but no more.
  • Myriam off to her activities; E. being very patient; on to a talk: how to deal with "Difficult People" by Sara Savage - based on Integrative Complexity. Fascinatingly her early research on the moral reasoning of both fundamentalist and liberal Christians showed that, in fact, while the latter had a land-grab (in the popular imagination) on the 'broad minded-ness' meme, in fact both groups the same proportion of people ~80% were unable to ~entertain the views of the other side.
  • Collected babes, had lunch in St Johns; more babe management, and on to a talk on the general slide in society's moral framework from the Christian Legal Centre - interesting. Finally played with E. through another talk while J. went to Elaine Storkey's talk on our societal obsession with sex, almost accidentally when really intimacy is sought.
  • Drove on to Bruce & Anne's for dinner, Sue, Clive, Adam & James also staying: happily crowded. Babes didn't have a good experience of trying to get to sleep, four to a room, but eventually succumbed.

2010-05-28: Friday.

  • Prodded mail; interested by Philip's link to The Secret Powers of Time, most fascinating; whatever happens at school; I like to sit around the table with the girls, encouraging them to leave the nicest things on their plate to eat last, in order "to build up their eschatological perspective". Hopefully that enables some level of rational decision making in the future present. Should we all focus more on the humble pea ?
  • Prodded valgrind's autotools setup with Julian. Listened to the Q2 corporate financials. Nicholas (an old Romanian friend) dropped in for lunch.
  • Reviewed wmz's paper, prodded bootchart2 too, fixed up yet more initrd related oddness, and up-loaded 0.11.4.
  • A quiet day, until the evening - J. took everyone to the Fitzwilliam in Cambridge to see nights, play with ancient artifacts etc. Put tired happy babes to bed, slept early.

2010-05-27: Thursday.

  • Up early, prodded mail gingerly. Pleased to see that MeeGo 1.0 has finally been released at least for Netbooks. Novell did a lot of work on that, a big chunk of that was around Evolution Express. Wrote a separate article about that, and pottered off for lunch.
  • Had a go with the wound, aluminium beer-can extruder nozzle; interestingly - it worked rather better than the radio aeriel - although the nozzle came undone at the bottom after a bit; and still too large to get a very solid piston effect; hmm.
  • Admired Aaron's nice MeeGo netbook Media Player blog.
  • Bus to Cambridge, read The years before the Hiding Place happily. Met up with Rob & enjoyed Collabora's hospitality at the beer festival, a fine evening of discussion and fun. Great stuff; back late.

Evolution Express (for MeeGo)

Some ramblings about the creation of a new user interface for mail, calendaring etc. specifically for MeeGo; something I've been working on, amongst other things, for the last three months.

Why Express Mode ?

Initially for Moblin 2.1 we tried a more invasive re-working of the user-experience: called Anjal. That was not uniformly positive, missing many features (by design), and didn't have enough time to mature. As such, it was decided by the MeeGo team that we should try a new approach. This would take Evolution, and adapt its UI for the netbook screen-size, tweaking all the relevant defaults. We would merge the best features from Anjal, and then build from there. The result is some great MeeGo, netbook goodness, despite being done at high speed over three months.

It is important to realise that ~all netbooks have a 1024x600 screen - giving very, very few pixels - particularly vertically (most apps are tuned for at a minimum 1024x768) and as such lots of tweakage was needed to save vertical space. As Linus' Coding Style document suggests - vertical space is a non-renewable resource, and we need to conserve it: just adding scroll-bars is an ugly cheat. This quest for vspace is nastily exacerbated by the terrible touch-pads that so many net-books have, meaning we need lots of extra padding around widgets to avoid them being clicked by accident.

Who ?

The Evolution team of course ! None of this would have been possible without lots of help from Novell, RedHat, Intel, Collabora, and all of the other guys who have worked so hard over the years making it rock: thank you, it's been dead fun working with you all.

Having said that, there were some particular stars in the team here here: Chen who implemented IMAP-X (substantially improving IMAP interactivity). Federico for incisive bug fixing and squashing of the UI to fit into the available pixels. Matthew Barnes fixing defaults, moving search into the toolbar, and re-factoring and cleaning code. Srini - who wrote the original Anjal code, and advised / fixed issues, and whom with Ross Burton did the hard grind to get the evolution-data-server (e-d-s) port to DBus up-stream. Thanks too to Colin and Thiago who speedily reviewed and merged a core DBus threading fix without which our interactivity was terrible. Naturally the UI work was based on great advice and design from Nick Richards and Claire at Intel, and new icons from Hylke Bons & Jakub Steiner. Finally, I did some real Evolution hacking myself, which was fun after an eight year break, and I was dead pleased: the code base is far cleaner, more beautiful, and hack-able than it was back then; good stuff.

Where ?

In contrast to Moblin 2.1 which shipped with a very heavily patched e-d-s, Evolution etc. to make Anjal work, the code for Evolution Express is all up-stream. Matthew merged the 'express2' branch (based on gnome-2-30) into master yesterday - so all of this, and more, should ship in Gnome 3.0. The project plan (for what it is) is in the wiki here.

Simple setup and use

The first thing missing in Evolution was a simplified user experience. To this end, we split the Calendar from the Mailer + Addressbook. Of course, both are still implemented by the same process, but we tweaked the code to allow launching the Calendar without configuring Evolution first, and to avoid E-mail related interactions there. Providing separate .desktop files for each of the three also helps make them more findable in the application launcher.

Then of course, we want a simple first-time setup. Re-using the nice Mozilla generated provider database (thanks guys), we merged Srini's Anjal account setup code (which is now also available as an out-of-process capplet - with Evo updating properly on changes). This gives a great first-start experience:

first start wizard page 1 first start wizard finish page

Simplified Mailer

Firstly, Express mode is better when running under MeeGo - it will detect that we are using the netbook's window-manager, and maximise windows, and turn off the (un-necessary) Window-manager decoration, to save vspace. If you see no window decoration in a screenshot - that is because there is none.

Auditing the menus, and toolbars - it turned out there was a load of cruft that was not that useful for a typical netbook user, and possibly downright confusing. We added a semi-generic way to special case the UI XML descriptions for Express mode, and re-organised and simplified the 'search' bar into the toolbar to save vspace. We also dropped the huge, scary 'Cancel' button, since operations can be cancelled from the status bar anyway. The result looks like this:

mailer view

We also did a large, and hard-to-notice chunk of work to simplify the preferences dialog (so they actually stay on the screen), we also dropped preferences that are not relevant to the component, eg. the Calendar preferences from the mailer:

mailer preferences

The component switching functionality was discarded from the mailer, instead - we always launch the mail view - and a button to access the addressbook added to the toolbar. That view looks pretty similar to the existing Evolution view, but we had to cleanup and compress the Contact editor to get it onto the screen, that looks like this:

shrunken contact editor

Simplified Calendar

The calendar, luckily was sufficiently simple that we could remove the menu-bar altogether, (thus avoiding the horrible theme bug you can see in the close button jammed next to the menu-bar in the mailer shots). We also dropped the status bar (as in the addressbook) - since it is not that useful here. The result looks like this:

pretty new calendar view

The biggest beneficiary of removing extraneous component's settings is the calendar's property dialog - which looses its icon selector. We also removed the ability to manually select a timezone, instead always following the system timezone.

calendar prefs

The appointment editor, now so easy to trigger via the MyZone, was also extensively overhauled. For a long time this has been rather an unpleasant dialog. Now all Evolution users will get an improved tabbed look, that exposes more useful functionality in an easy-to-find way, rather than having some toolbar icon that pops a separate dialog out:

appointment editor

Panel integration

Not strictly Evolution of course, but Srini and Rob Bradford did some great work making the MyZone panel, and the clock drop-down work well with evolution-data-server to allow a pretty, integrated view of of what is going on. The time drop-down looks like this:

mailer view

Future work

There are no laurels to rest on here; work continues cleaning up the visual look (somewhat hindered by a last minute change of MeeGo theme). And implementing a list of missing feature and improvements. The wiki contains a plan. All help with that gratefully received - Evolution (these days) is a great place to start hacking, and there are lots of low hanging fruit around tweaking and improving the UI, not just for netbooks. Mail me, or check out Gnome Love to get involved.

Clearly the netbook work points to some of the UI deficiencies that we have suffered in Evolution for a while. Some of the work will appear in the stock version of Evolution, other changes I hope will inspire new, and better ways of doing PIM user interface in both products and of course evolution --express will allow you to check-out the work in GNOME 3.0.

For me, it's been a real pleasure to get involved in contributing to Evolution, and help to lead this work. Incidentally, (to whom it may concern), this very afternoon I shall be generously accepting free drinks at the aforementioned appointment from around 5pm-ish.

2010-05-26: Wednesday.

  • Prodded mail & bugs. Discovered that the file ~/.local/share/tracker/data/tracker-store.journal does indeed grow without limit (at present). That is particularly nasty if you write something like this:
    while true; do echo "foo" >> ~/foo.txt; sleep 10; done
    If tracker-miner-fs is indexing your ~ - foo.txt ends up getting appended (in it's entirety) to your journal, that is pretty exciting if we log N lines (of say 4 bytes), we expect to append O(N^2) lines to the journal - taking only ~one day to fill a 2Gb journal. It is unclear how this gets limited to 1% of your disk space (or whatever your selected limit is). If you keep the file open and log things to it (perhaps a more common use-case), life is better.
  • Filed misc accumulated bugs. Amusingly hit a rather unpleasant bug similar to the above, with an N^2 in firefox. It seems firefox likes to leak (re-use?) a gtk+ file-selector, and since I save a lot in /tmp - if I start to compile OO.o, I get a flood of tmp-file creation there, which (by the miracle of inotify and live updating) then kills my browser - desparately trying to update a live view of /tmp that is not visible via some horrible algorithm. Strangely we fixed this in the past: how did it come back ?
  • Lunch, updated my evo crash - looks like it tries to use gconf from multiple threads concurrently (not good).
  • Call with Kendy, Jared's staff, mail chewage. Dinner.
  • Started a new attempt at extruder construction, this time using a rolled-up beer can; by rolling it tightlyaround the plastic filament I hope to have a better diameter to get a good piston effect. Made a nozzle by hammering a (pre-broken) 1mm dril into the end, and strategic bending; wound and wired up the heater element and thermistor - testing tomorrrow.

2010-05-25: Tuesday.

  • Valgrinded evolution for some time this morning; pleased with the combined performance of valgrind, and the W500. Also pleased that the Evo mailer seems very valgrind clean, though filed a few calendar bugs.
  • Prodded some oddness in a different build service behavior at some length. Dead pleased to see the awesome SUSE build service being used for extreme goodess with Fridrich's Evolution on Windows tinkering.
  • Prodded openSUSE 11.3 boot charts with Stephen / vuntz - it seems compiz' session management is partly to blame.
  • Lydia & Janice over in the evening; played plastic extrusion - further frustration (it doesn't extrude). Discovered the #reprap channel on freenode - neat; further discovered that Larry Ewing has been doing interesting things in this area too - encouraging.

2010-05-24: Monday.

  • To work, admin, dealt with the weekend workers. Set too at an LXF column, spent several hours researching the current state of Linux network management; go Network Manager ! late call.
  • Discovered I had broken bootchart2 - it seems we have to dung ourselves out of the initrd by move mounting ourselves. Had a brainwave: move the polling for a writable /dev into bootchart2 itself, and move mount / chroot ourselves when it is; it might even work.
  • J. having the PCC AGM this evening, lots of fine cakes lurking around the place. Avoided this, in favour of wiring up, and finishing the new extruder. Sadly - no better than the old one, plastic can only be extruded by applying a vast force to the barrel, bother. Probably the (4mm) diameter hole is too large. Found a nice FAQ, and considered matters.

2010-05-23: Sunday.

  • Dealt with babes while J. slept. Off to NCC, Tony spoke mostly about his recent trip abroad visiting some missionaries.
  • Back for lunch, Mum & Dad appear to have finished the chair re-covering, leaving us with functioning, well padded, comfortable chairs at the table: wonderful.
  • M&D + H. went to Kings College' Evensong. Poked at the new electronics. Retained the old stepper drivers, and got the axes working nicely. Back to battling the extruder, got the stepper working nicely in the end.
  • Ended up re-building the extruder barrel - at some length, this time with a brass nozzel - fairly concerned that there is not enough of a thermal mass (with the aerial based extruder to get a good, uniform, stable temperature: ie. it heats much too quickly, and (presumably) not uniformly.

2010-05-22: Saturday.

  • Up earlyish, off to ParcelForce to pay my customs fee, and collect new electronics. Home. Side-tracked by the more critical chair re-covering task being kindly prosecuted with vigour by Mum & Dad
  • Spent a good while removing tacks from ancient chair bottoms, with assistance from several sets of girls, eager to learn about leverage (the genuine sort) while sitting on daddy's knee in the sun. Got some new ply-wood seats formed to the contours, glued and screwed down too.
  • Off to Nowton Park nr. Bury; for a walk in the sun and picnic tea with everyone. Managed to rush some of the children's energy off in the gardens and playground.
  • Back; tired. Popped around to Peace & Solomon's to pick up my old electronics stashed at their place. Extracted a handy ATX PSU for driving the (sexy) new MakerBot electronics.

2010-05-21: Friday.

  • Prodded mail, sync call with Kendy, hacked at some verbiage. Tried to use skype; it really replicates the mobile telephony experience faithfully: "sorry, can you speak up ?", "You're breaking up", "Lets try using a land-line"; sigh.
  • Wondered what all the fuss is about Google recording tiny snippets of information that other people are broadcasting un-encrypted to everyone. If you shout something private in a crowded room, can you really expect to erase that from each listener's memory ?
  • Parents arrived, pottered around with them in the evening, played with prototype reprap - while doing so the TechZone extruder board lots it's smoke [ correctly wired etc. not being stepped either ] - bother. Luckily the MakerBot version should arrive tomorrow.

2010-05-20: Thursday.

  • Prodded mail, listened to a talk by Scott Berkun (of Confessions of a Public Speaker prepping for giving a good OSCON talk. An unusual, albeit obvious, approach - trying to make your speakers' talks better beforehand. Rather a good talk too.
  • Stumbled upon rather a sexy turing machine. Prodded at bugs.
  • We released SLED11-SP1, which is rather sexy; and with a substantially refreshed GNOME stack, keeping it relevant and fixing ever more bugs. It's working really well for my hacking workstation (at least).
  • Tried to get excited about 'Draw Muhammed' day; of course, taking a stand for free speech sounds like a good thing; but then I don't like gratuitously offending people, as a matter of course; also - I can't draw for toffee - so this will have to do. Muhammed: O:-#. I can see why a minority of Muslims might find that offensive, if so, apologies; I like Muslims as well as Atheists, and other-eists. Yet the right to free expression is a bedrock of a liberal democracy, and is too precious to lose to a new tyranny of self-censorship.
  • Poked at PackageKit some more; apparently dbus message timeouts are (as well as being extraordinarily unhelpful) not so good for slower machines.
  • Transferred the OO.o code-base across to the new machine, should really do some speed trials there.

2010-05-19: Wednesday.

  • Browsed mail, and events variously. Amazed, and disappointed to see Microsoft attacking one of the totemic 'Cloud' vendors (in the hype-jargon of today). Threats supposedly started in 2009 (shortly after the launch of Azure). Is it possible that winning Salesforce to Azure was a cherished pipe-dream ? Interestingly they appear to use (or have used) Linux on Dell. In that context, perhaps it is somewhat positive, that this is not (on the face of it) a TomTom style attack on Linux per-se.
  • Prodded at file-system layout a little, how can a hard-disk cloning system subtly change only some of the layout ? odd. Prodded a new & interesting bootchart2 bug.
  • Lunch; cut my micro-controller code down to the very bone for testing the stepping extruder; apparently connecting the other stepper controllers to the main-board 'causes' the extruder controller to glitch and die, urk. At times like this, one needs a friendly local hardware company with spare storage scope around to decipher the entrails after the event; hmm.
  • Back to Evo issues, creating a meeting without mail being setup is rather a problem it seems. Well pleased by Petr's hat-trick. Amused by Fridrich's suggestion to normalise all time keeping to a uniform 'milliseconds-since-creation-of-universe', hmm.
  • Meeting with Intel; Dinner. Lydia & Janice over in the evening, chatted with them, and poked with the RepRap electronics, learned several useful things, most of which probably should be obvious.
    • If you accidentally touch the crystal (or whatever it is) when trying to see if the micro-controller is overheating you will glitch/stop the clock. This has the unfortunate side effect of making everything seem flakier than it really is.
    • A cheap 12V laptop power-supply is under-powered to drive four NEMA 17 stepper motors, unless you adjust the stepper controller pots carefully to the minimum level necessary to drive them. Doing that hugely reduces the (inferred) voltage spikes killing the extruder controller cpu.
    • Grounding everything vigorously is good; adding a meaty ground line direct from the USB connector housing to the PSU ground improves live measurably.
    • The reprap controller firmware has a toggle button marked 'Extrude', don't be fooled - what it really appears to mean is "extrude for a bit, then stop" (at least, I hope so).

2010-05-18: Tuesday.

  • Prodded mail, fixed a couple of bootchart2 sillies kindly reported by MajQ and eikesauer; did a 0.11.2 release. Got mail from people amused by a flood of acceptances of long-dead appointments - sigh.
  • Amused by P. Van-hoof's charm offensive - with a helpful transcript of the hammed up polemic.
    • The advocacy of the quest for scientific truth is great, who cannot sign up for an enthusiastic war on ignorance ? The amusing irony of the mumbo-jumbo packed spiel, specialising 'dumb', and blaming all the world's troubles (even environmental destruction) on believers is amazing.
    • I know no-one who believes without question, or has faith without facts. My experience of meeting those who advocate killing those of a different belief is (sadly) limited to a few Muslims; eg. the head of the ISOC at Cambridge during my time would kill even his own son, or so he said. That I suspect is a sentiment shared by only a small proportion of Muslims, many of whom are peace-loving.
    • Then we have the extraordinarily tendentious "Only Morons can destroy life and claim a higher purpose" - (this is not a definition of 'Moron' by the way, 'Morons' are believers). Is that really so ? The existence of mercenaries would suggest that life destruction can be justified, in the non-religious, by such banalities as personal enrichment. Just War - in essence elevates the duty to protect a neighbour in need, over the duty to preserve the life of an aggressor; while Augustine may have had a lot to say about the limits on war (that it must be 'just') - it is unclear that all Atheists have substantial ethical disagreement over its necessity in extremis. Then of course today's post-Christian society destroys life of both the un-born and elderly at a staggering rate; the higher purpose there: personal convenience. The assertion is manifestly and self-servingly false after only a minute of thought.
    • As for following in the footsteps of some really smart people, it looks like Kneller's Isaac Newton features in the graphics. Interestingly "Newton wrote more on religion than he did on natural science." ... "Thus, the clarity and simplicity of science was seen as a way to combat the emotional and metaphysical superlatives of both superstitious enthusiasm and the threat of atheism,...".
    • Albert "I am not an Atheist" Einstein, provides some great name recognition to support whatever view you like. His understanding of God was not one I share, and at least slightly congruent with the Atheist as viewing faith as a childish suspicion. Nevertheless, he says: "In view of such harmony in the cosmos which I, with my limited human mind, am able to recognize, there are yet people who say there is no God. But what really makes me angry is that they quote me for the support of such views." - go Astronomers ! aggravate the dead man.
    • Also, in case it is not obvious, while being a convinced Christian (or 'Moron' in the parlance) - I am not a "base, merciless, killer" (lol) - nor do I want to destroy the planet. Quite the opposite, I have rather an affection for P.V.Hoof, and I like debating with him in person. It is much, much better to talk about things than to censor and hide them, I tend to be an advocate for free expression. Furthermore, in my not-humble-enough opinion there are some points of view that speak far, far more about their holder, than perhaps they intended: "Shakespeare can't write for toffee", "The Bible is rubbish (though I never read it)" etc.
    • Finally, in my view the antagonism from which this comes, is an almost total rejection of the liberal arts, in favour of the apparent certainty of hard science. I used to share a distain for the waffling classes, until I saw the UK's Chief Science Advisor to the Government, make a complete fool of himself with an arrogantly un-substantiable, dismissive attitude, in a lecture from a Philosopher (from the History and Philosophy of Science Dep't). For those of a more inquiring frame - I wish I had more time to read eg. Trigg.
      Science needs a metaphysical justification. We have to have some warrant for thinking that its apparent successes are real and not illusory. We may be lucky to live in an island of apparent order in a fundamentally disordered universe. If we do not believe this, why not?
      A useful question ? more so to those astronomers that believe that 80%+ of the universe is invisible: utterly transparent, nonbaryonic etc. Quite probably it is so, but acknowledging a philosophical basis of belief there is helpful.
    • Parenthetically, I appreciate that some more thoughtful and humble Atheists find this sort of thing -as- embarassing, as I find some creationist christians. That is, no doubt, all for the best - stimulating thought.
  • Installed the latest technicolor MeeGo image, looking good. Poked at Evolution translations a little, apparently translating things breaks the help build (bother). Added a minor feature or two to bootchart2 for Lennart. Bug-fixed, and enabled command-line dumping;

    Looks busy and cluttered (good thing its off by default), yet perhaps useful: "which modprobe is taking all that time ?". Presumably by turning off the elision of tiny scripts, we could get a better view of what really happens (crazy-sed-spawning-wise) at boot.
  • Merged some translations for Evolution manually, still havn't got the hang of msggrep - how do I lookup the single (exact) string 'Calendar' in an Evolution .po file ? add some code mangling to remove mnemonics from a string to get at a translated version of "Password:"; fun. Pondered also the plague of 'no' files that scp likes to poo across my file-system: who thought I wanted it to do that ?

2010-05-17: Monday.

  • Up early, babes to church; home. Played with new laptop, experienced the umpteen-step Windows XP setup - presumably still shipping, and having to support XP is a maintenance disaster in a box for Microsoft.
  • Seems the new thinkpad (W500) comes with WiMax support - which is great. Encouraged to see the diverse set of people sending patches to systemd on the list; nice. Reviewed misc bugs / patches while downloading SLED11-SP1 install media for new machine, went through the 'Receiving' process; Clarity.
  • Spent some considerable time dunging out all the ancient meeting requests that I never accepted, but just showed up in my calendar. An unfortunate side-effect of Groupwise is that if you don't use IMAP you have to accept or reject appointments in order to de-clutter your inbox. Now I have to spend time testing the non-IMAP SOAP protocol, which (sadly) means tons of obsolete appointment spam - apologies if that was you.
  • Up late prodding at this extruder controller; seemingly intermittent horrific lock-up, triggered by (who knows what). Seemingly the processor looses its way, and goes into some hard loop and/or even looses it's program - trying to debug dodgy hardware without a logic analyser is somewhat frustratingly pointless. Consulted wife for advice, ordered some new hardware from MakerBot - hopefully they test their electronics before shipping it.

2010-05-16: Sunday.

  • Up early; packed everyone in the car, and drove to NorthChurch Baptist for a service, met up with Claire and old friend of J's. Managed babes in the creche.
  • On to the White Heart at Nettlebed for the fiftieth birthday party of J's cousin. Lots of interesting people, and a fine bash. Back late.
  • More struggling with reprap electronics; extrusion appears to stop a little while after being started - why ? hopefully more of a software problem; various bits of diagnostic micro-controller hackery; bed.

2010-05-15: Saturday.

  • Unpacked new laptop; just arrived - oddly a 16x9 screen - will that equate to more side-by-side emacs buffer goodness ?
  • Plodded away at the RepRap electronics - made new connections for the step/direction pins; eventually gave up and hacked up some new ultra simple firmware for the extruder controller - just exercising the stepper.
  • Played with M. in the road, trying to get her internal steering feedback loop tuned. Chatted to Russel a bit.
  • Babes watched Shrek, tried to explain the relevance of Taylor Mali's speak with conviction poem.
  • Packed them into the bath, then bed. Ran my stepper test program only to discover that the TechZone electronics are essentially not working and apparently un-tested. Soldered an LED up, but iron too big. Popped down to Chris Brighty's to have several other pins on the A3949 DC motor drivers soldered: the moral ? don't put vias through solder pads. Now drives it the extruder stepper motor.

2010-05-14: Friday.

  • Trains variously to Intel's London office. Lunch, plugged away at evolution bugs. Chased one particularly fun one down through gtk+ client-side-window changes, and into cair, neat.
  • Pies for lunch; back, hacked & talked; really good team here. Out for dinner, missed several trains, caught the last one (just).

2010-05-13: Thursday.

  • More bootchart-ing distraction; I guess I need to understand the netlink interface a tad better to write a clean, mixed taskstat and proc_events user.
  • Jill + daughter over for lunch; installed the Groupwise cross-platform client to accept all my calendar recurrences once each instead of individually; hmm.
  • Cell group in the evening.

2010-05-12: Wednesday.

  • Evolution hacking, got distracted by bootchart2.
  • Merged the ptrace code - some considerable debugging. Started to get it to work. The idea is simple - when you are boot-charting in an 'initrd' - you have the issue that there is no-where obvious to write the data you collect: clearly it needs to be logged somewhere where the run-time system can get it, but where is that ? /dev is a good choice - particularly if you happen to be lucky enough to have a mount --move to move that into the new system, but that is not everyone. The solution is simple: use ptrace (a-la gdb) to hook the data out of, (and kill) an already running process. That combined with some duplicate daemon avoidance re-using the same code substantially cleans things up: a much simpler shell-script wrapper, with the hope of killing the wrapper altogether: nice.
  • Came to the conclusion my extruder / stepper problem may be a ground issue between the two micro-controller boards. Lydia over in the evening; up late talking to her variously.

2010-05-11: Tuesday.

  • Plugged away at mail; printed expense claims etc. Back to bug triage, and fixing.
  • Nice to see Simon Phipp's new company ForgeRock announced. Interesting to see their contributor agreement:
    It leaves every contributor as the copyright holder of their own code, either licensed to the community under the same license as the rest of the project (CDDL in most cases) or shared with ForgeRock so we can license it out under CDDL while we hold it in trust for the community.
    That looks rather positive, albeit somewhat confusing. If the concept of licensing under the CDDL is unpleasant (why I have no idea), it appears you can pick Apache2 as the code license for your chunk instead. I'll be interested to see how it pans out, cf. the FAQ.
  • On another front, that of Trademark policies the malign effects over over-rigid control bite; personally I'd love to be an IceWeazel user and know I can fearlessly patch my browser if I need to, naturally with some fair creditation for all the great work the Mozilla project do.
  • Lunch, prodded at my extruder; with the I2C bus re-connected, getting a little extruder movement, but not nearly enough - and not regular; annoyingly odd - plenty of smoke and yellowing ABS too; rather a nasty odor really.
  • More bug fixing, chat with Vuntz. Managed to find time away from the cliff-face to hack on bootchart2 a bit. Packaged it for MeeGo, and prodded at the improved task logging (capturing all the arguments), proc-events following (to avoid loosing who-forked-whom data), and so on.

2010-05-10: Monday.

  • Nice to see the nascent web-site for systemd, subscribed to the mailing-list.
  • Dug at the weekend mail, why does it seem like there is always more mail on Mondays ? do other people work at the weekend, or have I been freed from the concept of spending multiple hours reading and actioning E-mail each day over the weekend, only to get shackled to it again.
  • Nokia's escalating Software Patent war against Apple (much as I loathe the latter) really doesn't build confidence in their business; shame.
  • Plugged away at Evo Express. J. at PCC prayer meeting in the evening poked at the reprap electronics. Managed to get the temperature readings back to the mother ship - but at the cost of the I2C bus that (it seems) drives the extruder's stepper; bother. Spent happy minutes pushing molten and re-solifidied ABS down a tube manually with pliars - getting a lovely filament out, and lots of vapour.

2010-05-09: Sunday.

  • Up early; lie-in for J. off to NCC; Janice spoke on exuberant worship. Took N. to Cassidy's party out in a village. Home to catch up with Katie & co. over for lunch.
  • Pottered about with the babes a bit. Solomon arrived to collect keys to try in his padlock, and angle-grinder in case that failed; paint and other bits too.
  • Lots of people around in the evening, to watch To End all Wars - rather good, nice to have Bert too.

2010-05-08: Saturday.

  • Mini lie-in, breakfast, lots of jigsaw puzzling action, then watched the Muppets Treasure Island with the babes & James & Kate; bacon sandwiches for lunch, and dropped them back into Cambridge.
  • Home, prodded at the reprap for a while, got the extruder wired up, and after prodding at my SCL and SDA pins, learned how simple the I2C bus is really; neat.
  • Tea; while prodding away at the electronics, realised I was getting smoke from the extruder, manually turned the stepper and got my first working 1mm diameter extruded plastic. Apparently this is what happens when the thermistor is not wired up to get temperature feedback working properly (or something). Bed early.

2010-05-07: Friday.

  • Up early, took the babes to school; snarfed some fine ply-wood left over from the creche re-building from a skip; to work. Prodded bugs.
  • Mailed the IET, a tad annoyed by their hype around electronic voting - which as far as I can see is a nightmare. I love the FSF's item in the GPLv3 FAQ: "We believe that computers cannot be trusted for voting. Voting should be done on paper." - Amen.
  • Sue, Clive & Adam dropped in in passing for a quick lunch.
  • Finished PK / zypper bits, submitted new package, and back to Evo Express, pushed new, updated packages.
  • Interested to see Wayne Grudem in the (virtual) flesh, rather than just reading his theological works; though how likely people are to pay lots of money for such content on DVD is unclear to me in a world with so much free material out there.
  • James and Kate over late afternoon; lovely dinner with the family and stayed up late enjoying their company.

2010-05-06: Thursday.

  • Up early, prodded mail; merged and tested PackageKit fixes, nailed a nasty around prompting in the core. Claire came around for lunch, out of action with a painful shoulder.
  • Cycled M. around to the polling booth, explaining the process. Voted for the Conservative party: no I don't think justifying Government waste simply to keep people employed is an acceptable policy position, nor do I understand the Labour hysteria and fearmongering, and I loathe the cult of over-regulation; the Liberal's policies seem somewhat unfortunate, and/or simply a vote for a hung parliament with Labour still in place; end of story.
  • Great to see Collabora join the GNOME foundation.
  • Cell group in the evening at the Hummerson's.

2010-05-05: Wednesday.

  • More mail, bug and PackageKit fun. Took N. to Addenbrooks for a routine check-up, all well. On to ParcelForce to pay tax on a reel of plastic: amazing.
  • Much more PackageKit work.
  • Home, apparently the knurled extruder works really impressively well - great grip, got a first cut of the heater underway. After a couple of nights of terrible tooth-fueled baby crying every half an hour, got a good night's sleep.

2010-05-04: Tuesday.

  • Discovered my plastic and thermistors are held up by customs fees at ParcelForce; hmm. Plugged away all day at PackageKit, and it's zypp backend - lots of bugs and issues fixed, some polishing too, starting to look rather better. Worked late.

2010-05-03: Monday.

  • A bank holiday - lie in; more reprap prodding, got all the axis' wired up, and working; re-made the original aluminium gears with nylon chopping block & MDF - the best gear yet; nice. Everything working rather nicely.
  • Played in the road a little with the babes, teaching them to ride their bikes; slugged variously.

2010-05-02: Sunday.

  • Up early, fed and baby-sat babes, while cleaning many weeks of accumulated muck out of the workshop; off to NCC; Simon Matthews speaking.
  • Off to Pete, Shelly & Isaac's afterwards for a fine dinner and afternoon of fellowship. Great to see them in their home before Pete heads off back to vetinary academia.
  • Put babes to bed on return, poked at the electronics, got Z and Y working, with opto-end-stops fitted correctly, and bits of bent beer-can fitted to suit.

2010-05-01: Saturday.

  • Up lateish, feeling awful & groggy, nasty cold coming on. Off to Linton Zoo for a picnic lunch to celebrate Patricks' birthday (yesterday) with DT, Zoe, their friends, and of course some animals.
  • Unfortunately, despite our best efforts the children far preferred playing on the climbing frames, sliding down slides poles etc. to seeing the animals. A very fine lion sat within five feet of us, and was very obliging at looking, growling etc. lovely.
  • Back - prodded at reprap in the afternoon / evening - got all of the stepper motors in-place, with belts fitted, and some of the electronics wired up for the Z and Y axis.

2010-04-30: Friday.

  • Prodded mail, back into the bowels of PackageKit, seemingly zypper::sat::WhatProvides returns packages in a random order, and we're assuming the system installed ones always come first - silly; but explains some apparent non-determinism. Wow - a bug that requires some real algorithmic thought.
  • Pleased to see the Java / gtk+ file-selector patch get into jdk7 - now I just need to find an evening to back-port & test it; neato.
  • Great to see Lennart's Rethinking PID 1 really excited by the prospect of getting a new PID 1 - a really sexy new design; As / when PackageKit is nailed, I must check it out. Also a good contributor policy: "We value your contributions and hence do not require copyright assignment ".
  • Into Cambridge for dinner with Christian, really interesting to catch up with him, back on the last train, bed late.

2010-04-29: Thursday.

  • Up early; pleased to see the interesting technologies that Palm created picked up by a great company like HP - hopefully that means lots more Linux phone goodness.
  • More digging at bugs, and libzypp / PackageKit. Clarity. Merged some evolution bug fixes, started reading PackageKit, with some kind help from Richard Hughes.
  • Down for lunch to find M's friend Grace; Lydia popped past to show us her fine new pottery, and Sandy dropped in; fun.
  • Back to PackageKit. Dear lazyweb - is it only me that sees impossible things (not) happening with dbus-monitor --system ? I expect to see all IPC on the system bus as text on the console, but I appear to miss messages - particularly PackageKit ones, in an unfortunate way.
  • Out to cell group.

2010-04-28: Wednesday.

  • To work; mail chew - ever more E-mail, I must be sending too much (or something). Spent much of the morning talking with Kay Sievers - interesting fellow.
  • Bug review; lots of bugs. Lunch. Taking a handy business-card I reviewed the fluff-quotient of my keyboards near-to-hand. Of course, testing disturbs the results - but presumably by measuring the inner-diameter of the ball of grey fluff you can extract by sliding the business car across you can detect how long the keyboard has been in active use - or does use disperse dust somewhat ? hmm.
  • Dug at zypper issues. Dinner, call with Kendy & co. Janice and Lydia around to meet with J. - pottered around finishing the mechanical construction of my printer; seemingly the steppers now move all the axis - but will they have enough torque to do so for real ? switched to the electronics and software packaging piece. Good to have a netbook to hand for control.

2010-04-27: Tuesday.

  • Off to visit the Dentist - apparently perfect teeth (apart from all the existing damage), J. (who has far more perfect teeth) scheduled for remediation. M. terrified of even sitting in the chair - why ?
  • Prodded the ODF converter hysteria / hype - why anyone would want to install most of OpenOffice, compiled as a plugin - when they could easily install all of OpenOffice (for free), and get perfect high-fidelity ODF file exchange, with exactly the same quality MS interoperability I have no idea. More interesting, are the conspiracy theories, which are presumably fueled by considerable opacity around such deals. This The Standards Blog - has this to say:
    Back then, Sun was walking an interesting line: under a court settlement it was not free to openly criticize Microsoft about OOXML, but behind the scenes it was doing a lot to support ODF.
    I assume this is some more-hypothetical-than-real out-of-court settlement; either way I find it hard to believe that Sun would formally constrain their public position on a standard; moreover they had (AFAIR) a reasonably enlightened view on blogging your personal views, at least in some areas of the company. Novell similarly may have a position you disagree with on OOXML - but that view is not for sale.
  • Call with Gary & Joey; sync with Aaron, chat with Srini. One-to-one with Jared, core-team meeting. Sent my LXF column off.
  • Harrowing discovery of a number of purloined items squirreled away in a daughter's cupboard; upsetting indeed - it is an horrible thing to spend one's time devising a suitably memorable punishment.
  • Tried out some stepper-motor gears made of panel pins, in holes drilled through some spare kitchen chopping board made of nylon. Seems like a near perfect material for the job; 'drifts' onto the spindle wonderfully; pleasingly rigid; good stuff.

2010-04-26: Monday.

  • Dropped the kids to school, dug at bugzilla and E-mail. Good to see Nat's Everyone dials in blog - good sense written well.
  • Really interested to see The IP implications of low-cost 3D printing published. I was unaware of the existing, relative sanity of the law in the UK in this area: still perhaps that is to be expected, cf. non-patentability of Software / Business Process. Hopefully the US is similar, without some "make your own cookie-cutter at your peril !" patent policy on general objects.
  • Great to see that Federico tracked down and fixed the gconf-dbus bug with missing notifications that was hurting Evolution on MeeGo, nice work; fixed a nasty in the GConf patch around lists; much better. Got a bus-load of excellent bootchart2 fixes from Kel Modderman - great stuff.
  • Lunch. Prodded at LXF column vaguely. My machine hangs when running make update-po in Evolution - nice, the thermal management / software CPU throttling problems of yester-year return (it seems); with a nearby desk fan - life is better. Surely the problem is not sufficiently difficult that we really need to take 10 CPU minutes to crunch it ? or is it ? OpenOffice's help translation takes a similar time.
  • Claire came over after dinner, great to catch up with her, and some of her interesting medical engineering problems.

2010-04-25: Sunday.

  • Up early, dealt with babes, helped E. and N. to climb up and down a ladder in the workshop (hours of fun), while trying to perforate some alumininum plate suitably for a gear.
  • To Church, tried to reconcile E. to the fact that it was not completely necessary to have a Father to cling to at all times while in the creche - somewhat un-successfully. Hey ho.
  • Back for a soupy lunch; and off to Dee's baptism, lovely to have another lovely elderly lady baptised into the fellowship. Fed everyone lemon-cake, and set off back home.
  • Played in the garden, with Mary Rogers and the babes; Tea, put the babes to bed.
  • Watched Avatar (2D) "Out-of-focus film of the year!" with a fair host of the church crew; sadly disappointed in my desire to actually see much of the scenery / vistas. It's horrible to imagine all the CPU rendering that is then just thrown away with some ridiculous blur effect. Further amused by the tree-hugging pantheist / animist theology. Perhaps one of the supreme ironies of the ending of this persuit of authenticity or 'living in tune with nature' - is the the real world reality of the final scene. Here actor Sam Worthington gets strongly deprecated by the digital machine: there is no real need to have a specific human actor for the hero anymore.

2010-04-24: Saturday.

  • Up late-ish; off to try to buy potatoes, and given their absence in the market, returned - to discover a JW doing his door-knocking best. Invited in, glass of water, and had a most interesting conversation. Is the Bible gobbledygook ? (a somewhat concerningly low view of scripture) - perhaps that is why it is vital to have pamphlets packed with banal, lead questions, based on tiny de-contextualised fragment of scripture ? The Trinity may be obviously wrong because it is illogical, but if you've never heard of the Omnipotence Paradox perhaps your adversion to philosophy needs tuning ? Then the shamefully spurious endoresments of the unpleasant sectarian bias in their translation; anyhow - nice chap.
  • Back to making some gears - with the accurate drawings, managed to knock up the two main drive pulleys, with suitable pulley-rims (as a bonus feature) - from panel pins driven through ply-wood disks. Affixed, and looking really good - the stepper motors present a more difficult fixing problem though.
  • Hannah came over to paint us, good to see her; and popped over to Solomon & Peace's to get a new contract signed. Back for dinner, popped the babes to bed, early night.

2010-04-23: Friday.

  • Poked mail, set too at Evolution bug fixing. Slogged away at packaging, and digging at the alarm pieces. Found yet another victim of not initializing dbus threading : why. does dbus not even try to warn you in this case ?
  • Grazed on bugs variously, chat with Rob McQ. worked out which repositories to push stuff to; etc. Bruce & Anne came over for lunch.
  • J. out with friends in the evening, so contemplated gears at some considerable length. Sadly the postal service (UPS in this case) appears incapable of getting small bits of plastic from the US to the UK in under a month. Re-discovered some Acrylic rod lying around in the shed, which the timing belt wrapped around perfectly. Discovered some panel pins made quite good gear teeth. After some hours found out that the belt teeth only match up when over-wrapped helically - bother. Switched tack, and got an accurate to-size print-out of the gearing underway.

2010-04-22: Thursday.

  • Worked on a great Samsung bug - they have a really excellent quality control process. As part of that they power off the machine aggressively, at random points, seemingly under load. Using ext3 with writeback ordering we ended up with an exciting ~/gconfd/saved_state file - packed full of random disk blocks: "I wondered where that inkscape SVG went to" eg. neato.
  • Dalibor pointed out that JNA is the best answer for clean C# like native invocation in Java; must look into it.
  • Committed misc. gconfd / ORBit2 fixes for IOR handling. Conference call with Michael, Luke & Stefan. Cell group in the evening.

2010-04-21: Wednesday.

  • Read mail; why is it that two bugs that have malingered for nearly a decade in libbonobo* get filed & fixed now: odd. Call from a friend: Chris Brighty - encouragingly about getting his software working on some HP / Linux system - hopefully SUSE; helped out.
  • Fixed a disappearing E-table titles nasty with Evo; it seems there is a captive gtk+ label used in there to get a style gc, to render with: retro.
  • More packaging fun. John Hummerson around for dinner.
  • Poked at the reprap software, all written in Java it seems (except for various C tools like gcc being used behind the scenes).
    • Dug into trying to fix the (unutterably awful) file dialogs as used in the reprap (and arduino) software. Turns out they are using some Java thing (nurgh), looked at making them using gtk+ directly instead.
    • Read about JNI wow ! what an horrendous failure compared to the trivial [DllExport()] annotations in C#, I can't face using that; there must be a better way.
    • Poked at ArtOfIllusion, which at least seems to integrate with the gtk+ file-selector - apparently using a deprecated widget; or does it ? pmap shows gtk+ loaded, what loads it ? Seemingly it uses 'buoy' for some pieces, but apparently that just wraps Swing's JFileChooser. Perhaps Swing can do the native selector right (for some old value of 'right').
    • Tried to use javap - oh dear; took me ten goes, three straces, four --help and two man page reads to get it to disassemble a simple class file.
    • Tried openJDK 1.6.2 to see if it fixed it; apparently this bug is still open; though there is at least some code somewhere which look like the long term solution.

2010-04-20: Tuesday.

  • Eighth wedding anniversary - whoot; Christian is stuck in the US, so I can go out with the lady tonight - nice.
  • Prodded the Novell Pulse preview; web everything. Tried to grok some new OpenGL tutorial - unfortunately scuppered either by a lack of OpenGL 2.0, or a localised lack of understanding. Pleased to discover that ssh provides a dumb SOCKS proxy.
  • Fixed a number of Evo Express bugs, horriby burned finger no longer painful to type with - improving productivity. Fine lunch - with home-made meringue nests & strawberries.
  • Watched the Patent Absurdity video - very much to be recommended. How can Bilski's mate be called 'RAND' - marvelous.
  • More digging out of the mail queue, and call with Guy. Mary Rogers arrived to baby-sit. Out into town with the wifelet - met Pete & Jackie by chance on the way, popped in for a pint with them; Pizza and back - eight years and climbing.

2010-04-19: Monday.

  • All this talk of the terrifying dangers of volcanic ash make me wonder how long it will be before some crazy person weaponizes this. If all it takes is trailing some glassy aerosol across the sky to destroy your adversaries high-tech, but air-cooled jet engines - what price air supremacy ? Of course the equivalent from the last centuary would probably be stocking up on the 'wrong kind of leaves' to put on opponent's railway lines.
  • Checked in a new Evo express snapshot with tons of bug fixes; triaged bugs, tried to update the (non-responding) wiki.
  • Worked late, while J. had a Pregnancy CC meeting. Call with Federico. Prodded my nichrome wire, managed to get a 6 Ohm length - but it's rather long to wrap around a radio arial.

2010-04-18: Sunday.

  • Up early, fed and clothed (still exhausted from Friday) babes. NCC, Tony speaking on Jesus the Good Shepherd.
  • Back for lunch with Sandy, talked to her, tried to arbitrate between innumerable children's squabbles. Played with stepper motor drivers and got the opto-endstop identified and setup correctly. Children fascinated by the flashing LEDs, and pressing buttons on the computer to move the motor - seemingly endless fun.
  • Trying various ways of making the required gearing for the stepper motors; was convinced that adding some bolts to a mudguard washer might do it. A victim of an extremely blunt drill, and a truly amazing blistering burn from touching the washer afterwards - mental note: friction, it makes things hot.
  • Dinner. Listened to Gordon sermon, bed early.

2010-04-17: Saturday.

  • Mini lie-in; up & off to collect cable delivery I missed yestreday from the DHL centre. Back home, made up some cables, got everything connected up. Struggled with a mess of un-packaged Java software, urk.
  • Got strange errors left and right:
    avrdude: stk500_getsync(): not in sync: resp=0xff
    avrdude: stk500_disable(): protocol error, expect=0x14, resp=0xf5
    Eventually discovered that means that (dumbly) I had forgotten that in the absence of any better silk-screen indication a square solder-pad indicates pin-1, and my USB->TTL connector had the wrong polarity; bingo - a programmed device.
  • Out in the evening for dinner with Laura & Creighton, most relaxing and pleasant.

2010-04-16: Friday.

  • Up early, packed people and picnic, drove to Wicksteed for a fun day of roller-coastering, sliding, driving dodgems and various other forms of buffeting the body. Much fun had by all fun-sized people.
  • Fish and chips for exhausted babes in the car on the way back. Packed everyone to bed, and played with the reprap electronics, made up a few cables, having made a crimping tool from some bits of old tin. Got some of the avr toolchain pieces installed from the build-service.

2010-04-15: Thursday.

  • Worked variously; misc. Evo fixes, a day of endless meetings, customer and otherwise.
  • Cell group social in the evening, good to see everyone. Alba stuck in the US by ash hysteria it seems. Pleased to see Miriam's work in Afghanistan in the local paper.

2010-04-14: Wednesday.

  • After a depressing experience with the US Post Office yesterday: amazingly they hand out tracking numbers which cannot be used to track packages (at all): what staggering genius ! Their web-page doesn't mention this though, and just points the finger at the (blameless) vendor, claiming that they havn't given them the pkg yet. Anyhow - today my RepRap electronics arrived, paid some exhorbitant customs fee, requires some assembly tonight.
  • It seems Taras had some great success with the PGO code in gcc, which is encouraging - cool as the icegrind work is. And glad to hear he is having the time and inclination to encourage the world of kernel / linker readahead to improve - clearly the patched openSUSE glibc which really helps there masked that somewhat for me.
  • Lunch. Meeting wrt. evo express. Pleased to see Simon on top-form as normal, discussing the UK election and IBM.
  • Amused by David Cameron's advocacy, though I will most likely vote Conservative, I was amused by the somewhat messianic An invitation to join the government of Britain. The overlap between political and religious themes is a fascinating one O'Shaughnessy interested me in at Cambridge. I should really buy and read The idea of political marketing - but for my ongoing failure to get enough time away from the Economist to finish Dante.

2010-04-13: Tuesday.

  • To work, chewed on mail; merged misc. patches and tagged a bootchart2-0.1.0. Dug out and filed a few batches of expenses.
  • An afternoon of conference calls, staff meetings and the like. Prodded at some MBR assembler in the background, it seems I omitted to setup %ds:%si correctly before chain-loading, bother.

2010-04-12: Monday.

  • I have always been comforted about the general state of my clothing by the old chestnut about Ambulance drivers knowing an Aristocratic victim instantly by the parlous state of their underwear. Imagine my shock in reading about the sad death of Eugène_Terre (a filthy racist) that he wore perforated green underwear (clearly a key issue) - prompting a re-think of my sartorial strategy.
  • Whatever you think about IBM's right to sue anyone, at any time, for anything, it may be rather a shame (or a good thing if they drop the platform ?) for Debian. Last I heard, the absence of reasonably priced and accessible s390 hardware made it necessary to use Hercules to test and develop Debian packages: or at least to fix build breakages there. I also, somewhat boggle at Pamela's sudden enthusiasm for software patent threats: as long as they are against 'bad' (ie. with some tenuous? Microsoft connection) guys. Personally I have sympathy -even- for Microsoft when they are hit once again by some patent troll for an exhorbitant sum, and have to make some ridiculous change to remove some stunningly obvious feature - and wonder why they keep propping up this broken system. When an open-source (though I agree the QPL is really pushing the limits) project is under threat surely our sympathies lie somewhere obvious ?
  • Triaged E-mail. Clarity. Lunch. Finally began to grasp my way to more of a comprehending revulsion of the horrible inadequacies of git rebase when mixed with git merge. Hopefully Federico, who most probably can clearly articulate the problem will do so somewhere so it might get improved.
  • Call with JP, sent status report. Dinner, put babes to bed and read stories. Tested, and submitted new Evo. package - why is it that you always find lots more interesting problems just before a deadline ?

2010-04-11: Sunday.

  • Up early, tended babes while J. slept. Off to NCC, J. waylaid for the service; John H. preached on John 14. E. managed to cope in creche without excessive separation anxiety which was encouraging.
  • Back for a light ('Special Sunday' - ie. with crisps & juice) lunch while J. took N. to a party. Put E. to bed, and played in the garden with them.
  • J. back; cut angle-iron to length for a shelving bracket for the larder, and had an initially frustrating time with the MIG welder from Bruce. Eventually discovered the groove in the wire feed roller was offset from the wire liner causing kinks and jamming inside the feed, and that the roll was selectively rusty at the top (lubricating?) the rollers. New wire, and adjusted roller, and the arc-eye potential was all go. Eventually managed to get it calibrated reasonably enough to produce a good weld: at the cost of lots of angle-grinding. Which makes me wonder - could Extreme Angle-Ironing be the next big thing ? welding during free-fall or somesuch.
  • John, Martin, Zoe & Patrick over in the evening for a movie: watched the Spiderwick Chronicles, and discussed marriage; bed late.

2010-04-10: Saturday.

  • Up lateish, lots of little girls playing happily everywhere. Managed to persuade a very tired H. ("I don't know if I was reading in the night; was it the night ?") to accept not travelling with J. in the car.
  • Drove to Ruth & Anthony's - lovely sunny morning, admired the house & garden, put together some deck-chairs. Played football with small boys, bounced on the trampoline with small girls; lunch in the garden; fun.
  • Drove home together; bathed the children & got them to bed.

2010-04-09: Friday.

  • Prodded work. Unwound some evil build dependency loops in MeeGo packages to get things building from a clean start. Considered what cool hack-fests we could be sponsoring.
  • On the "dangers of allowing proprietary licenses to your code" front, I was amazed to hear rumour of Apple's latest innovation in this area; if true they make great recruiting sergants for the FSF's anti-DRM crusade it seems. Yet another wake-up call, that proprietary software licensing can be worse than you might believe possible.
  • Prodded the express autoconfig stuff. Fiona and Kate came to stay the night, stayed up late catching up with Fiona, good stuff.

2010-04-08: Thursday.

  • Children on holidays, fewer night-time interrupts now back at home, avoided the early morning baby-prepping panic. Read mail.
  • Interested to see Taras' icegrind work for optimising cold-start; clever chap. OO.o (despite it's speedups) could use even more love there (to remove the preload hack).
  • Prodded Evolution, poked sysadmins to host an auto-detection database, chased misc MeeGo bugs. Call with JP. Discussed nuisance "become a fan-of-ers" (bringing a whole new meaning to 'fan-boy') with Aaron. I wonder why that "keep me logged in" button in face-book doesn't function whatsoever for my once-per-week usage.

2010-04-07: Wednesday.

  • Interested in the TIOBE language comparison numbers. As with all such things, numbers subject to interpretation; possibly there are half as few searches for "C++ programming" since it is so syntactically trivial (or perhaps not). I hadn't realised that C was still in the running though - it may require twice as many LOC, but it's ~twice as popular programmer wise ?. Is there a deep masochistic bent in programmers ? Interesting too to see the Apple, and Google languages showing the strongest growth (alongside C) at the expense of Java, Visual Basic (richly deserved) and JavaScript shrinking where C# is growing.
  • Slide-ware production. Amused by a NHB's experience of an iPad: "She did, however, like the idea of a small, lightweight, versatile machine to take on business trips. After taking the iPad for a test drive, LW is thinking of buying a netbook." I'm still sold on the "Swiss Army Kitchen Utensil" view of the iPad popularised by the great Design Outside the Box talk (17 mins in).
  • Quick sync with Chen. Spent some time playing with gitk, meld and so on, branched Evo. It's a real shame there seems to be no easy way to tag a number of change-sets into a queue to cherry pick in sequence later.
  • Poked at OO.o's nsplugin with Rene briefly, nice Debian bug report about absolute symlinks, and the grot necessary to find and bootstrap the environment from the browser there. Tried to persuade IS&T support that randomly disabling IMAP on their mail servers is mind-numbingly bad for business; making it rather difficult to get at the much needed openVPN credentials too.
  • Quick dinner and drove home; worked late.

2010-04-06: Tuesday.

  • More lacrimose night-time experiences. Shuffled mail, poked bugs, Clarity, status report.
  • Prodded the Ordnance Survey data license and it seems really good; CC-by like license - great. Now if only the Labour Government were not trying to screw us all over by disconnecting people left and right we might have a joined up technology policy.
  • Lunch, JP's staff, recovery partition detection poking. Calls with Federico, Kohei & Kendy.

2010-04-05: Monday.

  • Up early, tended babes. A morning of making ply-wood seat replacements for our chairs at home with Bruce. Much circular sawing etc.
  • Lunch; out to see The Princess and the Frog - nasty dark movie unsuitable for children, in my view at least further confirming (for me at least) Disney's complete loss of direction.
  • Dinner; watched Cambridge whip Oxford on University Challenge, bed early.

2010-04-04: Sunday.

  • Off to NCC, guest service, Tony spoke. Back for lunch, packed and off to Bruce & Anne's.
  • Pottered around in the workshop with Bruce making a suitably knurled extruder driver on his lathe; lovely. Dinner.
  • Night filled with E. waking up and crying every half hour or so - probably chiming clock related.

2010-04-03: Saturday.

  • Sowed grass seed in the front garden while Ilona & Robert played with the babes, rolled it in - presumably a feast for the birds; though none seemed to take much interest.
  • Lunch; got everyone onto bikes, scooters, tricycles etc. and set off for the race-course; managed to get a good way, and persuaded M. to turn around too. Fine day, good fun.
  • Up late enjoying R. & I's company.

2010-04-02: Friday.

  • Holiday - long lie-in. Baby sat the infected hordes while J. went to the walk-of-witness. Ordered some ABS plastic and thermistors from MakerBot, pondered the general non-arrival of other required pieces; hey ho.
  • Stella, Joy and her babes over for a fine lunch. Enjoyed catching up with them, Easter egg hunts etc. Robert & Ilona arrived rather late.

2010-04-01: Thursday.

  • Elisabeth sick in the night, to match Miriam recently. N. contracted Chicken Pox, far worse than the other three poor dear.
  • Rejoiced at the Government's arm-twisting of Ordnance Survey to release free mapping data for the UK. Tried to download it, discovered that in-fact even the 'license' for the data requires a username / password - with no explanation how to get that. Tried the main web-site: which seems remarkably coy about the new data being made public; what lamers ! Presumably there is an apoplectic Sir Humphery somewhere grinding his teeth.
  • Evo status update call; poked MeeGo detection code again. Prodded at MeeGo package building pieces. Boggled at Google Chrome's "integrated plugin" model - Oxymorons like: "compassion with a hard edge" are great I guess. Quite right that plugins are a downright disaster for large scale deployment though.

2010-03-31: Wednesday.

  • Mail; poked disconsolately at the build-service; base system bootstrapping and build-loops are really uninteresting and slow. Lunch. Committed an Evolution tweak.
  • Jared's staff, train to Cambridge, bus to Collabora's office fortuitously meeting Daniel on the way. Caught up with Rob. Out for a fine dinner in the evening & train home.

2010-03-30: Tuesday.

  • To work. Double take on Intel's just announced their re-re-re-write of bootchart, sadly not re-using the bootchart2 work. Intel have some exceedingly sharp hackers - it would be nice if they slowed down just a little, in order to work well (and more effectively) with others. In this case, we end up with a new toy tool, in parallel to the existing (more capable) cardboard-cut-out boot-charting tools, instead of a single, better, more polished & bullet-proof tool everyone can standardise on.
  • Clarity prodding, more mail reading, tried to chase up a new laptop; a five weeks seems like long enough to purchase and deliver one ? what with all this global emphasis on 'Emaciated' supply-chains and 'Just Too Late' manufacturing.
  • Poked at a gnome-breakpad memory corruption bug; just a bit concerning. Manager cadence call. Prodded at the build service with Rudi's kind assistance.

2010-03-29: Monday.

  • Packed the babes off to school with J. & Mother. Flushed the mail queue, pushed evo changes, poked at packaging, chat with Chen. Prodded at adding status updates to the wiki.
  • Did some Intelligent Workload Management training, and quiz. prodded at an imap-x crasher with Chen.
  • Eventually got my packages submitted that I was trying to get done this morning to have some time off with the parents at 6:05pm, urgh.
  • Up in the night with a repeatedly sick Miriam - working her way steadily through the laundry cupboard; and feather duvets: cleaning and drying them should be fun.

2010-03-28: Sunday.

  • Up early, lost an hour ! dealt with the babes. People awoke slowly, packed Meeks + Mansergh into the car, and set off for Church. Tony spoke well, missed the shared supper & home.
  • Roasted blow-out with the parents, played in the garden a little & re-located a plastic play-house to it's new, very rough concrete base. Bid a sad 'bye to David.
  • Applied book reading & slugging much of the afternoon and evening - cough travelling down to the chest and voice returning.

2010-03-27: Saturday.

  • Up earlyish. Pottered around cleaning up the house, J. off to dig the front lawn. David arrived, good to see him, toured the recently re-assembled house. Fine lunch.
  • Much of the afternoon digging the garden - to re-seed the lawn, with much back-breaking help from David; while trying to stop the children getting squashed as they learned to cycle in the road - lovely afternoon.
  • Dinner, chatted for a bit, and played with the rep-strap prototype in the workshop for a while, finally coming up with a pinch-wheel solution after some collective thought.
  • Parents arrived, un-loaded and got them installed.

2010-03-26: Friday.

  • Up early, dropped the kids at school, train to London, tube to Aldgate. Met up with the Intel lads at their office. Enjoyed the company, hospitality, discussion. Lunch.
  • UI call with Matthew Barnes, Paul and Claire. Out with Tariq and the lads for dinner, much Indian food and fun. Trains home variously, with misc. hacking. Bed late.

2010-03-25: Thursday.

  • To work lateish, prodded mail. Did some file-system analysis wrt. boot-time; wow the situation is really not good. Accepted OSCON slot, sadly missing the SUSE Labs conference in the process.

2010-03-24: Wednesday.

  • Tested & committed misc. Evo bits, send Rob patch for libsocialweb to match. Call with Paul & co. to sync. development. Recalled I forgot to blog the sexy SUSE / Moblin video from earlier in the year - soon with added MeeGo.
  • Plodded a bit; stayed up rather late for a MeeGo IRC meeting - now I remember why I don't like IRC meetings. Got sucked into youtube, and trying to reproduce a QDBus problem instead.

2010-03-23: Tuesday.

  • Got side-tracked by Facebook. I keep seeing things these days about the important business uses of social networking: sounds like a skivers charter to me. Anyhow, impressed to see an old friend and fellow String Quartet member: Jeremy Dawson doing some amusingly crazy things with Extreme Cello on eg. Ben Nevis. Humbling things, like that, make me realise I probably put too much into my work.
  • Back to mail and fixing Evolution's UI conditionals. More poking (indirectly) at the ext3 file-system layout algorithm. Prodded the release team for a couple of Evo fixes for 2.30.
  • Feeling really grotty, almost completely lost my voice - perhaps an improvement overall.

2010-03-22: Monday.

  • Took the remaining non-poxed babe: Miriam to school, admired the foundations of the new building work. Back, prodded mail, Clarity, misc. beginning of week admin. Scanned and E-mailed the gas safety certificate to the building controller.
  • Poked at Evolution packaging. Lunch. Discussed -Bsymbolic linking with Ryan, it seems he had done some rather careful research for the galias code, and been mislead by someone - but hadn't realised that the linker is clever enough to re-write the assembler to avoid un-necessary indirections for internally bound symbols, and as-such the galias heavy lifting is not needed; good - objdump -D is ultimately your friend.
  • Dinner, J. had counselling supervision meeting; I prodded erratic builds, intltool bits - hacking around needing changes there, and caught up with Federico & Matthew.

2010-03-21: Sunday.

  • Up early, J. lie-in, stayed at home to deal with the babes variously. Cooked the Sunday dinner, babes' Bible study with H. & M. (as requested), cleaned up.
  • Lunch; enjoyed the sunshine in the garden; mended leaking guttering, played with babes, disassembled an old electric shower to extract some nichrome wire to make my heater element for the reprap; hopefully it has a nice high resisitivity, a 7kW element yields only a 1m wire it seems.
  • Interesting talk from Ravi Zacharias, 'Who are you God', bed.

2010-03-20: Saturday.

  • Awoke at midday: phoned for the wife and babes to return from Laura's. Lunch.
  • Struck by a spurt of initiative and energy, set off to buy grass seed, and the correct size angle grinder cutting disk. Home, and off to Daniel & Michelle's to collect our garden roller: good fun making a ramp for that, and getting the cast steel behemoth up into the car, and out of it safely again.
  • Played with the angle grinder: whittling steel fence posts, amazed by how corrosion resistent they appear. still shiny some weeks after the last action. Played games with the babes in the evening, story reading etc. early bed.

2010-03-19: Friday.

  • Avoided mail by re-building evolution master. Poked at a mono uri parsing crasher, odd. Prodded other bugs; system recovery's impact on boot performance etc.
  • Horrified by another d-bus threading issue until I noticed it was one more instance of not initializing the library with threading enabled; why do we even need to do that ? with a demand-launched I/O thread we can have it on all the time with ~no performance impact (like ORBit2).
  • Plugged away at obscure mono problems on Atom; nurgh. Looked after poxy babes while J. took the others swimming. Dinner at desk, worked late - stayed up for a MeeGo meeting that (on arrival) turned out to have moved; nice. Worked on and on.
  • Eventually, after a day of pouring over the code with Paolo, Miguel, Rodrigo and Aaron, and however much hair lost: Miguel located the cause of the apparent deep mono brokenness: nothing to do with mono, just some genius 'optimisation' in memcmp so it returns incorrect values in some corner cases. Implemented and checked in a trivial memcmp replacement, and went to bed.

2010-03-18: Thursday.

  • Fasinating progress of the pox across the two babies, we're hoping the other two get it too, to avoid later-in-life problems; but no signs.
  • Amused / saddened by some encouragement from H. (age 7) - "I'm so pleased that you havn't left Mummy yet". Having spotted no signs of impending disaster myself, I imagine this is the over-flow from her peers' repeat horrific experiences of Fatherhood. Tried to re-assure her that no leaving is planned, (beyond sadly hard-to-avoid business travel).
  • Sync with Arjan; J. back late from counselling, off to cell group, later.

2010-03-17: Wednesday.

  • To battle, mail perusal; prodded Evolution, and some banshee pieces. Lunch. Chased and fixed broken rpmlint patch ignoring my rpmlintrc. More misc. mono piece packaging.
  • Helped by misc. friendly GNOME hackers as to why my git pull --rebase origin master was not working, or at least why the git diff master..origin/master after that was showing me rubbish. Apparently my local origin/master was not really fetched. git fetch made everything consistent; good stuff.
  • Dinner, two of four babies getting Chicken Pox; lots of 'Poxy' jokes; smitten by 'ePoxy' (a not very good 'virtual' software version of the same). Bathed, applied camomile lotion, read stories, bed. Lydia popped over to talk with J. Back to work.
  • Chatted with a cool Mozilla hacker (Taras Glek) working on (cold) startup time performance optimisation, discovered -freorder-blocks-and-partition and compared notes on lots of different esoteric possible speedups. Chattered happily with the system-tap guys and Federico, prodded Evo some more, bed late.

2010-03-16: Tuesday.

  • Up early; prodded mail, wrote to my MP about the scandal that is the Digital Rights Bill - it would be great to loose my connection to the internet, and livelihood to someone abusing an open wireless connection to download some copyrighted material - seems proportional. Hopefully it will run out of parliamentary time.
  • Clarity. Discovered my zypper / C++ bug is in fact a prelink bug with UNIQUE variables.

2010-03-15: Monday.

  • Somewhere in the night it turned into Monday; more flight. Hacked up a fun way to get bootchart2 to do it's logging. Instead of using files that we have to get access to - we can instead abandon the process to it's own isolated world of chrooted madness in some initrd bubble; and then use some ptrace cunning to suck out all the data later - (I guess like gdb but automated). Got a nice prototype working quite well, good.
  • Train, tube, train, wait - picked up by wife & babes, much joy, returned to the family. Dinner, put the babes to bed. Calls with Federico, Aaron, JP, Jared in the evening, sleep.

2010-03-14: Sunday.

  • Up too late to go to Church - bother; jet-lag just worn off as I need it. Off to the airport, listened to a sermon or too on-line. Flight, wait, more flight.

2010-03-13: Saturday.

  • Up lateish; breakfast, . Pushed misc. Evo pieces. Spent an hour merging, and re-merging branches with git - with tens of highly dumb, irritating conflicts, all of my own creation. Apparently git merge is not what you want to do, particularly several times. Seemingly git pull --rebased - which is marked as dangerous and bad in the man page is what you want. This brings back the darkest days of trying to track and update a large, long running cvs branch: but worse. Incompetant git use: no doubt.
  • How can it be, that a git pull --rebase would want to apply the same changeset twice ? apparently nonsensical but after skipping a number of such sillies, the diff to the original merge tag evaporated: near victory. Annoyingly Matthew's identical merge went with, apparently no problems, amazing. Dinner, bed.

2010-03-12: Friday.

  • Up early, excellent bacon and eggs for breakfast; switched hotel & wandered into town for more discussion & a bit of hacking. Experienced a somewhat amazing bug in g++ with private template class constructors used in static initializers.
  • Pleased to see Colin merge my dbus fix.

2010-03-11: Thursday.

  • Up early, good to see JP & Greg. Discovered a bus-load of MeeGo E-mail in my SPAM / Quarentine folder which I ~never look in: that would explain the eerie quietness of the mailing list. How is it that I suddenly, simultaneously started getting tons of spam coming through, and missing critical things.
  • Wrestled with Pay-Pal, which seems intent on demanding my Bank details, and completely unwilling to accept money from my credit card to pay for things. How can it be so extraordinarily unpleasant to send someone money ? who in their right mind would want to attach a bus-sized extra security attach surface to a bank account with any money in it ? and who wants to open a bank account with no money in it just to please some (apparently) dumb payment software ? Spent a frustrating time fruitlessly reading documentation.
  • Pleased to see a nice bootchart2 patch from Frederic for Mandriva integration, neat; need to do some MeeGo integration too.

2010-03-10: Wednesday.

  • Up early, great talks and discussions with Guy & Aaron, up very late. Interested to see Simon's leaving blog entry, Simon has to be one of the friendliest, persuasive(ist) and most personable people you could hope for to be a front for your community strategy: particularly if it is one that really makes sense.

2010-03-09: Tuesday.

  • Up earlyish, quick breakfast bid 'bye to wonderful wife and kids; endless series of trains, planes, etc.
  • Watched District 9 and loved it, and Up in the Air - which was much sadder. Dug deeper into how dbus manages it's bindings and affairs for Colin.
  • Chewed mail, fixed a bug or two, bed horribly late.

2010-03-08: Monday.

  • Slept a little better; prodded mail, chat with Noel, Thorsten & Kendy. Prodded at admin, Clarity status reports, flight checkin etc. Forced to change all internal passwords, reminding me of the cartoon of the stumped theif with 39 friends outside the magic cave: I had to change the password, and now I can't remember what it is. Lunch.
  • Tried to chase my cups bug some more, only to discover that now (for whatever reason) it decided to work; bother. Prodded at Xapian and notmuch briefly.
  • Packed for Portland in the evening, and bed early.

2010-03-07: Sunday.

  • Off to church, did the crech with Dave - interesting man; strangely although Linus is not convinced that Demons exist, my friend working (for many years) with the criminally insane is of the other opinion; though the precise locus of such behaviour is perhaps arguable, and postulating odd things in every corner is inadvisable.
  • Home for lunch; pottered around in the garden - sunny for once, had Helen over for tea, played with plastic printing mechanics while the babes watched a DVD.

2010-03-06: Saturday.

  • Up earlyish, packed the car, and set off to see Suzannah, Clive, Adm & exciting new nephew James. Lots of driving, cooed at the baby, lunch of sorts.
  • Left early to avoid over-loading the exausted new parents. Out for a walk up the hill to the Coombe Hill War memorial on the hill above Chequers. M. decided she was going home 1/2 way through, and wandered off. Eventually after (apparently) loosing her parents over the horizon, repented of her folly with much wailing; only to be caught by her Father.
  • Back home; J. immediately called out for an emergency leaving me to feed the children over-cooked bacon bagels. Had a friend over to stay the night.

2010-03-05: Friday.

  • Up early, prodded mail etc. Poked at dbus & threading some more, mulled my fix - it seems to fix things, but investigated it more, and with more luck; perhaps it's as easy as changing a single digit, neat.
  • Chatted with Carl about notmuch, looks like some interesting things happening there, perhaps we could re-use some in Evolution someday.
  • Fired off my dbus analysis; prodded Evo. some more. Pottered around in the evening fixing this and that around the house.

2010-03-04: Thursday.

  • Up at a saner time; packed babes off to school; prodded mail. Reviewed a nice paper from Saad Aloteibi and Wei Ming Khoo, some great work they're up to on OO.o & valgrind.
  • Lunch with Lydia, prodded at dbus threading evilness; side-tracked by a call with Kendy, and chat with JP. Stumbled across some more odd code in the groupwise calendar backend, and fixed it.

2010-03-03: Wednesday.

  • Up extremely early, and to work - cleaned up the Evolution express mode state propagation to a very small change, and made it work for EPlugins (via discovering intltool was chopping off my foot by discarding comments).
  • Interested to see more speculation at least backed by a concrete offer this time (Elliot's explanation). Also interested to read Jeremy's RIP article for Sun How Sun's need to control the code cost them the company - Amen.
  • Call with Paul, Matthew, Ross, Chen etc. to discuss MeeGo pieces.

2010-03-02: Tuesday.

  • Another early morning, packed the babes off to school; got sucked into the Economist, Bruce & Anne arrived on the way past to see James - Sue & Clive's new baby - tinkered in the workshop with Bruce a bit; to work late.
  • Prodded Evolution master's address-space leakage, (via an un-joined thread I suspect). Interested to see Ross' sister planning to cycling from London to Melbourne; fun.
  • JP's staff call, and a very late lunch. Got LXF column written and sent, sent off minutes.

2010-03-01: Monday.

  • Up early; prodded mail; got my Camel patch merged, booked holiday, filed Clarity, etc. One to one with JP. Chat with vuntz, hacked away at Evolution.
  • Out for a drink in the evening with Chris, Max (the local CofE vicar) rolled up too after a bit; a fine evening; bed late.

2010-02-28: Sunday.

  • Up early, off to Church. J. ran creche. Tony spoke, really encouragingly well on Jesus as the Bread of Life.
  • Back to ours for lunch with Christine & Hannah; good to get to know them a little. Watched 'cars' in the afternoon with the babes.
  • Bed early, Gordon sermon & sleep.

2010-02-27: Saturday.

  • Up earlyish; house & self, cleaning & tidying. Dropped all the babes off at Laura's (brave lady). Carolyn Bramhall arrived, and some friends & our Pastor Tony & wife Janice to do some training on Dissociative Identity Disorder (DID). Regardless of the controversy surrounding the issue, a refreshingly simple & hard to argue-with approach of love, affirmation of God's love, and honesty.
  • Lunch; more interesting insight. Collected the babes, apparently un-phased by their experience (even E.). Chatted to Carolyn much of the evening, fine lady; she has written an interesting account of her life, abuse and recovery. Very enthusiastic too about Freedom in Christ ministries.

2010-02-26: Friday.

  • Prodded mail, pleased to see Ryan take the GVariant fix, suggested an even better fix. Prodded away at the EDBus binding, got it compiling, and even working (apparently); nice.
  • Lunch. Back to e-d-s, and evolution - tested various bits, fixed a number of unrelated but interesting bugs; improved the groupwise calendar backend locking, and read the camel folder summary code - interesting. Worked late.

2010-02-25: Thursday.

  • Up early, scanned mail; poked packaging bits and an interesting calc performance issue. Back to Evolution, submitted a couple of OSCON abstracts. Prodded vuntz idly (apparently working hard at fixing UI issues).
  • Prodded at Evolution some more, discovered I had configured IMAP-X but was not using it; hence suspicious stability - actually turned it on properly, and got more fun churning debug, but it still worked: surely new code is supposed to break ? Ran my calendar and addressbook daemons under valgrind, which as a side-effect exposes any latency problems rather nicely.
  • Wrestled GVariant (of a version that works) into GDBus, having discovered that glib's GVariant is still a partial merge-in-progress version. Dinner.
  • Back for some late-night hackery; seemingly part of my threading problems was a bug in GVariant, and the other part was not initializing dbus threading; fixed that. Renamed everything to EDBus (etc.) for re-use in Evolution 2.29.

2010-02-24: Wednesday.

  • Up early, set too build Evolution, call with some friendly Intel'ers. Discovered an intriguing xcb re-enterancy problem (apparently) deadlocking my X server when stracing a busy process during a synchronous call; XQueryPointer interrupted by a signal, followed by an XSync; blocks the compositing window-manager quite nicely.
  • Clarity. Hacked away at Evolution a bit - added a generic way to simplify the UI with conditionals inside XML comments in the UI description files; pushed to 'express'.

2010-02-23: Tuesday.

  • Up early, feeling iller: no time like the present to work though; prodded mail quickly. Chat with Nirav, then with Chen. Dug at a competitive analysis, and work plan.
  • Calls with all and sundry. Please to see Andrew 'hero' Haley finally identify the fun in Java causing OO.o to crash with deep stack frames / recursion. Also interesting that (apparently) JITted java methods deliberately touch their maximum expected stack extent as step #1 to catch stack overflow; fun.
  • Call with Kendy & Jared. Prodded at my reprap in the evening, got the captive nut-fest working really nicely; discovered that there is a rotation axis I need further constrained hmm.

2010-02-22: Monday.

  • Up; chatted with Seif a man of our time; generated a motto for RDF-ers: "I like to consider my wife as a tuple!". Inserted crazy ideas into their intray funnel.
  • Zypper is really a pleasure to use sudo zypper up evolution* gtkhtml* resolving at great speed, and just working is a fine thing. Fed up with waiting long periods for mozilla to respond (the awesome bar chewing I/O bandwidth? or just 10x tab browsing, with flash plugins or whatever nonsense). Downloaded chrome for x86_64, which goes against the grain, and was pleased with the multi-tabbed responsiveness.
  • An interesting, albeit incredibly lengthy conference call in the evening. Aaron persuaded me to create a twitter account; the problem is - even after reading my own page, I still don't know what I'm doing.

2010-02-21: Sunday.

  • Up earlyish, dealt with the babes - feeling pretty under the weather: some combination of the sendentry life, and standing outside in a cold workshop I suppose. Off to NCC; did the creche.
  • Back for Lunch with a local lady from up the road; fine meal, wine etc. Out in the afternoon with M. for a peer-party with bouncy-castle etc.

2010-02-20: Saturday.

  • Lie in; dropped J. down at the market, and collected potatoes. Back home, babes got sucked into iPlayer; and I prodded my mechanical tinkering. Lunch. H. assisted cutting ply-wood; fun.
  • Hannah & Joni arrived to do some more painting; the picture having been transfered to a canvas meanwhile. Joni assembled my Y axis bearings, and got that all bolted together between bits of ply; apparently novisible / feel-able movement on the axis, and seemingly parallel bars too (presumably cumulative error are easy to see in plastic form).
  • Nick arrived later, for dinner, then the Bancrofts too - great to see them, whiled away a happy evening talking of this & that.

2010-02-19: Friday.

  • Half-term allows later waking, a quick breakfast and getting to work on time - enjoyed the last day. Prepped, and had a chat with Kendy & co.
  • Laura, Claire and innumerable children over for lunch - Olivier's seventh birthday. Prodded blktrace on SP1, either I broke my kernel, or there is some serious badness / ABI change somewhere; how can BLKTRACESETUP on /dev/sda yield ENOTTY ? most odd.
  • Poked at slideware, chat with Tambet.

2010-02-18: Thursday.

  • Prodded at the CUPS deadlock provoked by trying to print a set of mendel assembly drawings: fun. It seems ghostscript and some other process (magically renamed to the queue name) are both doing blocking writes at each other (with full socket buffers): clever. CUPS never ceases to amaze me.
  • Pulled all the latest SP1 test packages, to test the latest fixes. Read about yet more linux kernel tracing / event logging schemes. Amused to see that mmiotrace was created just for Nouveau.
  • Read up on lttng, and some of the code - looks like something rather sexy (except, that is) that apparently I need to load some module, and then link a library - all to extract some simple, low-frequency string data from 'open' syscalls; seems like a non-starter.
  • Out for cell-group in the evening - a social dinner, fine food, some Wii playing action etc. good fun, bed late.

2010-02-17: Wednesday.

  • Prodded mail, tried to plod towards some way of organising the openSUSE / Moblin packages such that we can get integrated into Factory nicely.
  • Clinton arrived to look at the state of the building work; and RS delivered a lot of components, all but one of which were the right thing; good.
  • Poked at packages, chat with Vincent, JP . Got a SPAM - about homes missing disaster kits, with an offer of one for $1, and actually clicked the link (interesting) - is this a new battle on the psychology front ? leverage the hysteria around the war-on-terror to improve your spam-list; or I'm just feeling dozy and ill.
  • Prodded at the machine some more in the evening; getting the y-axis complete is easy enough. It is really unclear to me why the z-axis is packed with complicated pieces and bearings: is the studding (if constrained at the top as well as the bottom) really insufficient (when combined with another two semi-captive nuts) to steady the x-axis by itself ? (picture).

2010-02-16: Tuesday.

  • Up lateish, packed everything and set off for Suzannah's. Had a lovely lunch with her & Adam; played this & that - JP's staff meeting in mid vacation.
  • Drove home, absent mindedly, discovering that I'd forgotten to put a nappy on the (otherwise dressed) baby, and left toothbrushes and coats at my parents: bother.
  • Plugged away at creating a Repstrap fairly convinced that the triangular frames can be replaced by a couple of sheets of MDF, which I have lying around. Set too cutting bits to size, back to work tomorrow.

2010-02-15: Monday.

  • J. lie in, and off to see the (subset of the) Quaker Tapestry exhibition that my parents have been helping organise in Brighton meeting. Fine needlework, and inspiring material [sic].
  • On to Maplin's to buy a replacement diode for the TV; popped into Louise Bomber's Walk A Mile In My Shoes exhibition of artwork by children on their experience of trauma and loss; interesting if depressing.
  • Back for lunch; foolishly poked mail; I see MeeGo was announced earlier than I had expected. The governance is curious - devolved / dictatorship by the (incredibly over-worked) Imad & Valtteri Imad is the director of Intel's Open Source Technology Center, and Valtteri is the director of the Technology Strategy of Maemo devices. It remains to be seen what the result will be.
  • Prodded at the reprap project, contemplated the bootstrapping process; without one, it is hard to make one. Popped down to the Nut & Bolt shop, discovered their rather high prices, but bought some studding and bolts to support them. Home to do much of the rest on-line.

2010-02-14: Sunday.

  • Lie-in; off to St Lukes, ended up with Miriam drawing pictures. Back for a fine roast lunch cooked by Father.
  • Slugged in the afternoon; and sat up talking, reading and listening to a history of the world in an hundred objects as a pod-cast later.

2010-02-13: Saturday.

  • Up earlyish, packed everyone into the car with supplies; and set off to Brighton to stay with M&D. Lunch, out in the afternoon for a walk on the sea-front; returned for tea & cake suitably chilled.
  • Showed the latest craze off to Father, and disassembled their (rather nice) Thompson television (an ETC210) that (amazingly) seems to come with a rather complete schematic circuit diagram for it's discrete components. Prodded gingerly at the high-voltage interior.

2010-02-12: Friday.

  • Re-read Lennart's Out Of Memory (OOM) handling bloglet / link. I must say, I completely agree - but, I think it is still worthwhile adding failed-malloc handling to glib for two reasons: firstly, it is not hard to do for some methods, and adds no real performance impact; and secondly - code duplication is worse than bogus and irrelevant OOM handling, and not being able to handled failed mallocs is frequently heard as an excuse to re-write working code ( thus, incidentally also bringing OOM closer by having yet-another linked-list, hash-table, etc. etc. implementation in hot memory ).
  • Hacked at bootchart2 a little, hugely improved the interactive rendering speed by taking account of the visible area, rather than relying on cairo to crop everything.
  • Phone interview, admin. Prodded at a new recovery enabled mbr for a different vendor,

2010-02-11: Thursday.

  • Up early, poked news - appalled to visit slashdot, follow a link to the (apparently totally clueless) International Business Times, whose comment section allows users to insert random javascript: nice. Got re-directed to an apparently benign move-your-window-about-so-you-can't-close-it javascript thing. Tried unsuccessfully to debug it - unfortunately it was downloading what I can only describe as incredibly nauseating images, that it flooded the screen with; nearly retched. How can one tell firefox to black-list ibtimes.com found no way in the preferences, shame: the moral is clear; don't link to clueless news outlets - like slashdot ? shudder, still re-hinging the mind. Pleased to report that after mailing Tim, it was rapidly replaced with a reputable journal, restoring my faith in slashdot.
  • Prodded impress projecting bug in SP1 betas, in the meantime setup your display before launching OO.o, or tweak the settings. Some surreal mail about vendors installing their webcams upside down in netbooks flipped across my inbox: we really have a requirement for huge device specific tables to flip the image correctly ? doh.
  • Cedric pointed out that the LWN article How to destroy your community is now free for all to enjoy. In my view a fairly fool-proof set of steps. The 'poisonous people' thing is worth understanding, a technical term: these are not "people I disagree with" - but, more precisely those who endlessly talk, and never do, those who love hindering and coercing others into burdensome process etc. As one who in the past flirted with stupid process initiatives - eg. the 'GEP' nonsense (really a failed attempt to get passive-aggressives to communicate) I have hope it is possible for people to de-poison themselves. For those standing in the rubble of a destroyed, or (somehow non-growing) community, it's mandatory reading.
  • Dutifully filed FOSDEM expenses in a timely fashion. Chat with Thorsten, then Kendy, then Alan, Kendy, Ralf, Guy, and eventually finished - took refuge from the sound of my own voice.
  • Out to cell group in the evening, fun.

2010-02-10: Wednesday.

  • Up early, to work - amazingly Spencer the plumber arrived to do some power-flush and boiler fixing. Plugged away at merging kiwi patches, and misc. paper-pushing administration. Misc. phone call, meetings etc.
  • Interested by The Product Space and of course a great place to get a PDF to hammer cairo for you via evince, acroread does incremental rendering here which saves it from even worse ignominy.
  • Out in the evening for a romantic night out with my wife.

2010-02-09: Tuesday.

  • Up early, prodded mail; pushed my bootchart2 slides:

    Pinged by someone wrt. my comment in the slides on Canonical's drive for (C) assignment, of course other companies practise this - and I believe it is sub-optimal there too.
  • The openSUSE Survey is open, considered feedback much appreciated. Sad to see Oracle lay-off Willie Walker - accessibility hero, and pianist.
  • Played with the Microsoft Office Live beta, web apps inside Firefox on Linux. Curious indeed: while the spreadsheet zoom-in/out actually worked in the browser - beating Google Doc's feebler attempt here; trying to get a small =SQRT(STDEV($A$1:A1, 3)) type block fill-out; seemingly I wedged the server: "This workspace is too busy. Please try again later" - presumably logged in the backend somewhere. One of the nice things about web services (I suppose) is being able to watch your users, and see what problems they hit, which bits they can't make work and so on - to improve the product with.
  • Prodded the public Moblin tree, and fixed some annoying build issues vs. 11.2.

2010-02-08: Monday.

  • A day of non-stop meeting / sync. call goodness; with JP, Jared, Guy, Kendy, Thorsten, and a stream of others. Mildly amused by "Time flies like an Arrow. Fruit Flies like Bananas".

2010-02-07: Sunday.

  • Up too early; to the conference. Enjoyed the Tor talk, although the ethics of standing nearby a lot of people doing a very diverse set of things (in order to help hide them) are unclear to me.
  • Amused by Tanenbaum's talk on reliable software, if not completely convinced. It is highly unclear to me that re-starting apparently AWOL individual components will lead to a more reliable system overall, on the other hand - isolation of low-quality third party drivers seems obviously good.
  • Travelled home via some horrendous interrupted rail journey / bus special. Longer to get from London to Newmarket than from Brussels to London.

2010-02-06: Saturday.

  • Up somewhat late for breakfast - met some Cambridge guys working on accessible speech synthesis devices. Bus to the conference. Set too manning the booth - Moblin demos, worked on a few build bugs with FunkyPenguin.
  • Worked on my talk somewhat; despite a deluge of interesting things and people passing by. Gave it; slides to follow. Wandered the floor, demoing things to people.
  • Out for dinner with some SUSE guys in the evening; and off to the Porte Noir for the GNOME party.

2010-02-05: Friday.

  • Up early, plugged away at mail for a bit; packed, lunch, and set off for Brussels. Hackery on slides for tomorrow. Arrived, out to the beer event - caught up with a simply staggering number of cool & interesting people, bed inordinately late.

2010-02-04: Thursday.

  • Up early, more mail prodding, paniced about slides for FOSDEM, and various other un-resolved issues. A day of admin, and conference calls - up very late.

2010-02-03: Wednesday.

2010-02-02: Tuesday.

  • To work, poked more bootcharts, fixed a couple of bugs in bootchart2, and submitted it to Base:System. Implemented horizontal scale zoom in the viewer - to see yet more detail. Dug into a kernel boot time regression, and poked Greg about it.
  • Meeting heaven - preload all-hands, customer calls, chat with Guy, JP, etc. what fun.
  • Banged away at my desk in the evening, accepting some slightly damp, pre-planed timber in exchange for speed. Amused by the EvoStick water-proof glue, apparently it "dries clear" - where 'clear' seems to have the value 'white'; odd. Assembled the angle-grinder, and had a go at the steel for the front guard - remembered that you get a lot of fun sparks from such an occupation - and that the floor is covered with fine sawdust, hmm. You really get a good feeling for the speed of a 10k RPM hard-disk, with a angle-grinder of the same speed, somehow failed to set light to myself, loose a limb, or burn the house down.

2010-02-01: Monday.

  • Walked babes to school. Interested to see the IM 25nm NAND flash, double the capacity in the same footprint. At 167mm^2 (a square 13x13) - 8Gb == 64Gbit; to convert that to the world of hard-disk geometries (all in bits per inch^2 [nice]) is ~1/4 of an inch squared, giving an areal density equivalent of 240Gbit/inch squared (highly contrived without leads, packaging, and/or hard-disk spindles, read heads etc. but interesting). So that gives us - numbers courtesy of man-in-the-pub (wikipedia)
    MediaDensity Gbits/inch^2
    CD0.9
    DVD2.2
    Blue-ray7.5
    IM 25nm flash240
    holographic250
    best holographic250
    hard disk400
    Of course, ideally storage densities would be measured in mm^3 (the world is going metric - inch by inch) - and of course, for eg. a backup medium, ultimate density of leaking capacitors is not the key consideration; but interesting nonetheless. I'm looking forward to the next generation of flash-ssds - but, if we could get the (rather good idea) of hybrid disk + some flash in a single box to market fruition things could get better rather more quickly. Incidentally - one reason doubling capacity in the same footprint makes a difference is the fixed cost: ~$1 per chip for etching, sawing, packaging etc.
  • Tried to book an hotel at FOSDEM on Alasdair's recommendation, I suppose I should at this point insert some graphic suggesting I'm going to FOSDEM: it's going to rock. By some miracle of scheduling, I also seem to have a talk on boot performance Saturday @ 16:15. The abstract for which should read:
    A quick expose on boot time profiling tools, show-casing the slightly-less-lame: "bootchart2" - a new and improved boot time profiling tool, and other ways to speed things up. Which of the seven+ 'readahead' tools do you want, and why ? With a summary of recent fixes and wins in the area, and how to get involved with improving Linux boot performance
    If you have content I am likely to miss: a new uber-funky boot, ultra-fast boot subsystem (or something) I'd love to hear about it for then.
  • I don't think I ever realised that Andy Wingo's past before GStreamer was so interestingly Nucular - a fascinating set of insights. I must say that, I'm more optimistic that you can blag money out of the military, and use it to generate something socially useful - the internet might be a case in point.
  • Poked LXF, odd. Clarity; one-to-one with JP, sync with Aaron. Worked late on git based code auditing tool. Printed out some lovely pictures of the children for their God-parents.

2010-01-31: Sunday.

  • Up early, dealt with babes while J. slept. Off to NCC, managed to avoid creche somehow - and so hear Tony's sermon on the woman at the well; good stuff.
  • Home for lunch, supervised three babes watching Ice-Age2, while J. cycled off with a practising H. to Effie's for cakes. Set too in the work-shop, having abandoned hope of a biscuit cutter - used nails instead - with much glue. Assisted by first E. and then N. helpfully passing nails, and avoiding ricochets from their removed ends. Worked away at it until late and got much of a workbench constructed.

2010-01-30: Saturday.

  • Inordinately long lie-in until 11:15 - grief. The washing machine has packed in. Ignored the wife's advice that it wasn't turning at all, and set too cleaning out the shocking gunge that likes to build up in the pump / sump. After re-assembling, discovered that - in fact, the motor was not turning; removed the brushes - really pleased with the Hotpoint machine, they seem to care about the hapless service engineer - by smoothing, and folding the pressed steel so there are not sharp edges to practise self-laceration on everywhere. Easy to access, nicely enclosed brushes too - neat. Spares shop shut by the time all this was done: bother
  • Fooled around with H. above her bedroom, affixing hardboard against the roof angle, to hold the insulation in place, reduce air-flow, and (with luck) further warm her room. Much interest from small people in crawling around inside. Appalled by the generally feminine and dainty hammering actions of all and sundry. Adjourned after dinner for some hammering practise outside with the eldest three - eventually got the idea that you really want to hit the thing impressed upon them - with some good results.
  • Put everyone to bed, and out to the Newmarket Pregnancy Crisis Center fund-raising Quiz - had a great time, Laura & Creighton and Claire, too - fine puddings, good company, and interesting questions. Helped pack up, and back to bed late.

2010-01-29: Friday.

  • Up at six, for mens prayer breafast at Church; to work early. Mail prodding, dug at a strange gnome settings daemon issue around multi-monitor bits for Federico. Signed the iPad DRM petition - great to seem them raising the profile of that there.
  • Switched from ureadahead back to my hacked up sreadahead - it seems (despite being rather dumber) to be faster; why I have no idea, prolly some mis-interaction with my kernel.
  • Amused by Avatar (The making of the bootleg), some great advertising.
  • Prodded hal - still taking too long to start in my book; it seems to enjoy parsing the 600k, 18k line /usr/share/pci.ids file, for me it does it 23 times on startup - seems we need a 23 entry persistent cache for another 2x speed win.
  • Limbo'd in H's roof-space, trying to get bits of insulation, hardboard, and chip-board, and myself through an extremely small door, into a very small hole. It all brings back the reason why you pay builders in the first place to do [sic] the job for you.

2010-01-28: Thursday.

  • To work, read mail, and analysis. I didn't pick up the fact that Sun's public-cloud plans (which always seemed a little crazy) are over with Oracle in charge. I guess that is why OO.o is orphaned out of Dave Douglas' "Cloud Computing and Developer Platforms" group - fair enough; OO.o has never been a developer platform (not one that either external (or apparently internal) developers wanted to build on), and it's 'Cloud' credentials always seemed flaky to me. Far better to focus on the value to customers there it seems to me.
  • It seems with Zonker's departure; that there is an exciting opening opening up as a community manager for OpenSUSE.
  • Watched some of the strategy videos at Oracle wrt. Java and OO.o. Apparently no auto-cue for Michael Bemmer; odd. Lots of emphasis on JavaFX in the Java spiel - which last I checked is still deeply mired in non-openness. OO.o - nothing new, beyond a very fuzzy screenshot of a 'web office' suite in the browser (sigh). It is amazing to me - that the most important predictor of success and adoption for these technologies is not presented: are we going to see genuine open-ness ? will Sun be fixed where it has screwed up ? I suppose only time will tell.

2010-01-27: Wednesday.

  • Up early, to work, read mail for a bit before remembering I have to work all night, and taking the morning off instead. Off to Ridgeons to try to find a biscuit jointing router cutter - a suitable slot on the shelf - but nothing in it; bother. Bought some angled iron (sold as 'fence posts') to practise the welding with; overcame the 2 and 3 inch screw famine of late; etc.
  • Home. Discovered the carpenters had only inserted insulation in visible places, carefully leaving several (now inaccessible) places un-insulated - pondered what to do before covering it all with hardboard.
  • Lunch, back to work - Jared's staff, chat with Zonker.
  • Called into the Sun / Oracle call - enjoyed the boppy music, and video sales pitches. Lots of interest in there. The OO.o slide (in Edward's) talk had this content - with apologies for the lack of prettiness:

    OpenOffice Strategy

    OpenStandards Based Office Productivty Suite

    • Managed as an independent Global Business Unit
      • Retaining Sun development and support teams
    • Continue to develop, promote and support OpenOffice
      • Including the OpenOffice.org community edition
    • Deliver Oracle Cloud Office
      • Web based productivity suite - integrates desktop, web and mobile user interaction
    • Focus on enterprise customers
      • eg. Integrations with BI and Content Management
    • Enhance the customer support experience
      • Leverage the Oracle Customer Services infrastucture
  • And now the analysis: what does it mean ? and of course, this is only somewhat educated guess-work.
    • On the positive side - OpenOffice is at least reporting into Edward Screven - who it seems has real-life experience of managing some sane and helpful engagements with open-source projects. Encouragingly, he also appears to have a strong technical background - all to the best.
    • "Oracle Cloud Office" - oh dear. First unpacking the name - this doesn't sound like an open-source project. Since it seems unlikely that this independent BU will grow staff-wise - this probably confirms or extends the re-deployment of Sun developers away from OO.o onto this pipe-dream [sic]. The technology is what bites here:
      • If this is the same JavaFX idea as before, then the licensing and community issues still need solving.
      • If this is some CSS + JavaScript monster a WYSWYG editor is near impossible - beside the same problem of re-writing (as for JavaFX), but into a lamer language. I'm not convinced that HTML5 provides enough to do this adequately either.
      • This project is presumably the rational for the reduced commit rate from Sun developers, as documented before.
      • Why 'Cloud' ? what a name: loaded with meaninglessness and ambiguity. Clearly adding rich co-editing / collaboration features to OO.o makes lots of sense; squeezing it for a phone form-factor like-wise (though the phone factors seem to be bulging their muscles these days to help) - but some whole-sale re-writing binge ? or is the 'Cloud' meaningless ?
    • BI and CMS integration sounds great, and of course complimentary for Oracle, but is potentially prone to removing developers fighting the tide of bugs, and interoperability problems.
    • Managed as an independent BU - sounds interesting; presumably that makes P&L: margin and profitability extremely transparent - I'm not optimistic that that will be good long term for that group. It may also spawn new attempts to shake-down partners and OO.o developers for cash with negative results.
    • Finally, on the positive side - I was asked to be optimistic about Oracle's stewardship. It is really too early to say how this will all pan out; my guesses are my own - and - most likely highly inaccurate.
  • Other random thoughts on the Oracle presentation.
    • OpenSolaris - the Open seems to have disappeared, I couldn't find it in the list of OSS projects. Solaris (to me) always made more sense as a proprietary operating system, perhaps it will go that way - certainly the repeated emphasis seemed to be on Solaris for high end Unix, with Linux for the rest. I suspect this would tend to mean (in practise) sad things for the great desktop hackers at Sun - except that SunRay was featured severally.
    • Nauseation - questions to Larry should not begin 'you are my hero', or 'why don't you run for president'.
    • "Lifetime support" - that's quite a commitment - to promise to support all your software, forever. Clearly, the cost has to get ratched up fairly aggressively if you don't use a reasonably recent service pack, or patch set; interesting marketing though.

2010-01-26: Tuesday.

  • Prodded mail, worked through bugs, wrote a small C# test app to emit XTest keystrokes - interestingly, we ship a Mono's C# compiler where there is no gcc (or headers etc.) installed on our systems, making using C# to drive trivial C interface tests the simplest option.
  • Had a poke at an OO.o memory corruption issue; fun. Clarity. JP's staff meeting, one-to-one's with JP and Jared. Plugged away at boot time polish.

2010-01-25: Monday.

  • Up early, walked babes to school, chewed mail, call with Alex. Zoe over for lunch, and to try and get some rest from Patrick. Solomon popped around to get some equipment.
  • Spent ages chasing a vicious mutter crasher - a race condition, with no apparent rhyme or reason, hard to reproduce too. After adding a spin instead of exit (on a volatile variable) to meta_bug, and getting a different problem instead, and trapping SIGSEGV, SIGBUS, SIGFPU handlers likewise, with nothing, then adding an atexit handler likewise, it started to pique my interest, got it after interposing my own abort method - and discovered I had just screwed up my meta_bug version, bother. Fixed the issue - it seems that combining gdk_error_push/pop with meta_error_push/pop is fundamentally unsafe: don't do it. Eventually found it was a known issue fixed in 2.2.
  • Plugged away at various other bits; very sad to see Joe leave the company - what a loss.

2010-01-24: Sunday.

  • Up early, dealt with babes while J. slept. NCC - Thea spoke. Back for a quick lunch, set too outside at desk making, with some success. Bert over for a cup of tea, burned lots of off-cuts helpfully on the fire.
  • More desk making, via a rather walloped thumb; in the absence of a biscuit jointing router cutter, considering other ways of jointing all the 26x6 inch boards into a single board; perhaps milling the grooves in a jig; hmm.
  • Gordon sermon in the evening on Isaiah 7 God with us - very good.

2010-01-23: Saturday.

  • Longish lie in, awoke to find Hannah Webb painting the family downstairs; good stuff. J. out to counsel a lady, listened to a selection of different music with the babes.
  • Lunch, and out swimming in Bury St Edmonds - admiring the babies pool complete with Pirate Ship and lots of water features to play in. Rescued N. from drowning: seemingly getting your legs stuck in the water ring, while trying to stand up is a recipie for pushing your head under the water. E. had a wonderful time jumping in from the side, and clapping herself. Much fun.
  • Back with lots of tired babies. Much playing of computer games, and experimenting with Moblin on the wife and littlies. Put the (carefully pre-exhausted) children to bed extremely early.
  • Laura arrived, and set off to see "Avatar 3D" - which seemed a reasonably interesting film: despite the obvious down-side of putting money in the pornographer Murdoch's pocket: if only he would divest himself of the obscene. In terms of 3D technology, rather irritated by focus issues: perhaps too close to the screen, but frequently wanted to look at things that were out of focus: such as the depth below when looking down from a high tree branch, or a floating thingit closer to one. Is that intrinsic to the 3D projection ? an economy on rendering ? or is it simply my eyes; occasionally annoying whatever.

2010-01-22: Friday.

  • Chat with Fong. Bought some new USB keys - hopefully newer ones have faster bulk write speeds for images, though by buying the very cheapest, almost certainly not, at £1/Gb flash seems remarkably inexpensive.
  • Lunch with Mike Geach, prodded FATE. Discovered Markus had made kiwi like my USB SSD as installation media - beautiful: much faster installs, thanks to SanDisk.

2010-01-21: Thursday.

  • Gave up trying to get through to a tax adviser: I guess it is not the best time of year for it, filed anyway.
  • Plugged away at cumulative CPU time rendering in my bootchart2. Somewhat unconvinced by the result - still, at least it tries to give the kernel's view of how many ns were spent on each piece, and a graph. I suppose deviations from a straight bottom-left-to-top-right line are a sign of a mis-use of CPU; and there are still some bugs. Still, a pretty picture as of today:
  • Finally got to actually optimising the code instead of writing analytics - leaving a few malingering bugs in the rendering code, as always. OO.o team meeting, and Beta customer call.
  • Out to cell group at the Parkers' fun; back late.

2010-01-20: Wednesday.

  • More of the day spent poking at bootcharty bits. It turns out to be surprisingly unpleasant to debug and improve initrd stuff, eventually got it all straightened out, released and packaged. Latest code at github. I'd love someone to try integrating it into Fedora / any other distros, sample package here 'bootchart2'.
  • Went to a technical call to sate my curiosity around SPICE; played with the white-board instead; shame.
  • Chat with Aaron, played with his sexy new osc plugins for maintaining links left and right. Dinner, J. out to baby-sit Laura's babes.
  • Struggled with self-assessment, it seems that there is a set of nasties around losses on stocks, taxed as income, but sold (at a loss) as a bog-standard asset. How to offset one years loss against anothers gain ?
  • Pleased to see my OpenSolaris bug (#64) fixed, after a couple of years. Perhaps I should have another play.

2010-01-19: Tuesday.

  • Up early; packed babes off to school, skimmed mail. Prodded fate features a little. Surely the EU are rather overdue for officially approving the Oracle / Sun merger - hopefully Russia and China will get there in the end too.
  • Spent much of the day re-booting, testing boot-chart things, while massaging SUSE / moblin artwork building, to clean that up and drop the alpha channel.

2010-01-18: Monday.

  • Walked the babes to school; poked mail, wrote status report, filled out Clarity. Stumbled across some annoying race with our bugzilla product entry: switch 'Classification' too fast, and there is some wonderful race filling 'Product' - the solution to sub-standard programmers: make them program everything asynchronously in Javascript: so easy to understand.
  • Prodded away at loose ends. Lunch, call with Guy & JP. Filed a couple of evo. crashers. Read a brilliant LWN article by Josh Berkus How to destroy your community - simply fantastic:
    ... he also picked up some valuable experience during his stint at "The Laboratory for the Destruction of Communities," otherwise known as Sun Microsystems.

2010-01-17: Sunday.

  • Up early, dealt with the babes; read Harry Patch's auto-biography - "The Last Fighting Tommy"; some insanely poignant pieces - such as the Tommy's name for Ypres for which they were dying: Wipers.
  • Off to NCC, ran creche, made crowns with stickers on and chatted with Cheryl and Lisa. Home, quiet lunch. DVD in the afternoon, while I turned some chunks of timber in the side-way into a substantial work-bench - the frame of it at least.
  • Sermon in the evening from Park-Street, really good to hear one after a gap.

2010-01-16: Saturday.

  • Lie in. Off to the shops to get a replacement camera - bought a nice (pink) Samsung machine, home. Prepped the house at speed for the influx of relatives, set fire to the fire, helped clean up etc.
  • The co-incident birthday influx got underway, most of J's side of the family arrived: Bruce & Anne, Sue, Clive & Adam, Georgina, Adrian, Stephanie & Isabelle, Tim & Julie, and Louise. Carved up the lovely meal J. had made, and served everyone. Enjoyed the company, birthday cakes for all & sundry, admired Tim's new car.
  • Good to see Georgina's new company Marketing Matters with pretty web-site to match.
  • DVD for the babes in the afternoon; set too at more tax paper-work, if only one could bill one's time preparing this stuff to the Government - the process might become rapidly simpler: but wait, presumably that is why paid accountants are even more tax-efficient than you might think. Bed late.

2010-01-15: Friday.

  • Up later, breakfast, chat with Tomas about moblin & various window manager hints; good stuff.
  • Prodded at my boot-chart; it seems that there may be up to three lots of the 500ms second wait in my boot-chart, previously hidden by the lame-ness of the old-style bootchart rendering. Fixed a couple of bootchart2 bugs.
  • Wrote up meeting notes on the train, poked at various bits of code. Read some nice Cg code doing IDCTs in pixel shaders - nice, I wonder if (perhaps with suitable annotation of methods & data structures to identify promising targes) we could persuade the Mono JIT to generate code to run on the GPU.
  • Amused to read the FT this morning; China's foreign ministry's spokes-woman Jiang Yu said: "China's internet is open." - a whole new meaning of 'open'ness - or is it ? open-ness with a hard edge ? ...
  • Interesting and accessible talk Not your Father's Von Neumann Machine - from the JavaOne conference. NB. the slides update below the video. Sadly, he doesn't mention callgrind's sexy cache simulation, though he should. Also, the horrendous irony of pointing out that "Memory is the new disk" at a Java conference; Java is a case-in-point of hobbling by excessive pointer chasing (cf. .Net's value-class 'struct' concept). Some interesting thoughts though, one of my pet peeves is eg. that most 'sax2' parsers do their parsing incrementally, rather than parsing a big chunk ( nicely warming the branch predictor for the parsing code-paths, the hash tables for interning etc.) and queueing the result to emit; they often parse a single element, then emit that: not a good idea. Volunteers to fix the OO.o 'FastParser' to do this more intelligently (and/or preferably use a different thread to parse, vs. emit the callbacks) appreciated.
  • Slogged away at Tax / accounting fun in the evening. Out to visit Solomon & Peace.

2010-01-14: Thursday.

  • Up at 6am, off to commute to London - wow, I'm glad I don't have to do this daily; met Nick at the station. Read cached news, and bemoaned the state of Evo's "off-line IMAP" which could be better expressed as: "no-attachments off-line". Will file another bug on re-connection.
  • Boggled at Man Shot Dead in ASDA car-park - NB. shootings are relatively rare and news-worthy in the UK: clearly the solution to reduce them further is to arm everyone, including kids to the teeth with a pistol and H-bomb (remember - it is not H-bombs that kill people, it is people that kill people) - but I digress. What is notable is the apparent police indifference: "A man has been shot in broad daylight in a very public place ... those responsible have obviously no regard for public safety.". Shocking indeed to disregard public safety during assasinations. The Health and Safety executive should be immediately informed. "Fortunately no other person has been injured and we believe that the victim was the intended target." - how positive and fortunate ! as long as they shot the right guy, who was a baddy anyway - all is well; smells odd to me.
  • Arrived, met up with all the usual suspects - great team. Good to see Dirk again, and meet Dave Stewart. Tried to debug my udev oddness from yesterday - found the slow / waiting culprit - in sysfs. It's pleasing to hear that Kay has properly fixed my udev / blockdev device issue.
  • Kindly invited to join the Intel guys group dinner - much fine food, company & fun. Up late chatting to Paul, bed.

2010-01-13: Wednesday.

  • Up early, dug out and opened a huge slew of tedious looking correspondance, concealing at least a few more bits for tax purposes that have remained un-opened for many moons.
  • Mail pokeage, gave feedback on misc. bugs. Filed travel re-imbursement forms for LF (finally). Booked an hotel for visiting the Intel / London lot tomorrow.
  • Interleaved meetings, baby sitting, story reading, and so on.

2010-01-12: Tuesday.

  • Prodded mail; corporate call, prodded an OOXML issue under Wine. An afternoon of fun filled, back-to-back conference calls until rather late.
  • Slogged away at tax in the evening, sorted, stapled, and typed in phone bills and bank statements at great length; stumbled upon a memory corruptor in calc spreadsheet saving.

2010-01-11: Monday.

  • Up early, Naomi's fifth birthday - much un-wrapping of small gifts, practise, breakfast, took H. and N. to school. Interested to read of Danish children bitterly complaining that they don't have OO.o installed at home; surely that is an easy thing to fix. Students that put more time into layout than content, are perhaps like presenters that spend more hours configuring their transitions, than rehearsing their points.
  • Pleased to read the Ars-technica report on Moblin from CES, and glad that our hard work polishing the Samsung N127 impressed.
  • Call with Radek around some funky OO.o hacking pieces. Mary Rogers around for lunch, most encouraging, as always.
  • Wrote status reports, prodded Clarity - nice to have nearly the full set of up-to-date projets to account things against now.
  • Prodded quickly at gslice.c to see how easy it is to add the ability to copy with malloc / memalign failure: looks trivial, and requires ~nothing new on any fast-paths.
  • Realised I had a two hour call over Naomi's birthday dinner; only a few minutes in advance, bother. Played with FunkyPenguin's new Studio / Moblin image - looking good, just collecting silly missing packages here and there: X video drivers, NetworkManager etc.
  • Up late, unwinding my tax situation; why is it that I always loose at least one bank statement ? Tried to buy a keyboard for Robert, went to 'ebuyer' - a set of uber-lamers it seems. Not only is it necessary to create an "account" instead of having a one-off transaction, (the demand for which would normally stop me shoping with a vendor) - but also, they have that old chestnut of re-checking the "[X] PLEASE SPAM ME" box, having complained about some (bogus?) validation error on account creation. After all that, of course it refused to deliver to my brother's address: nice one.

2010-01-10: Sunday.

  • Mini lie-in; how is it - that the more you sleep, the more tired you get. Off to NCC, Tony speaking, Ron & Iris were there, visiting from France. Had them around for lunch.
  • Lovely to catch up again. Amazed by the (apparent) fairly savage restrictions on free-speech that appear to exist in France, with (apparently) two year jail sentances for (un-licensed-by-the-Mayor) street evangelism, or even busking. Of course, if the Mayor is a communist, that is a difficult one to fix: censorship is apparently just normal. Naturally, hard to believe in such an abominable illiberality without concrete statutes to point to - but concerning that this is the impression of reasonable, Baptist Christians on the street of a small rural French town, and that it siginificantly influences their practise.
  • Naomi's birthday party, lots of babes arrived and had a fine time playing various jumping-about, hunting, posting and dancing games. A fine party tea. Bid 'bye to all and sundry, packed babes off to bed and relaxed a little.

2010-01-09: Saturday.

  • Lie in, packed the car with snow removal equipment, emergency clothing & food - and set off to see Joy & Chris Evans at Oak Hill College.
  • Arrived, lovely to see them, tea, playing in the snow - with rather a useful small slope in front of them for sliding down on various unlikely pieces of plastic. Back inside for tea.
  • Out for a tour of the college, via an industriously produced igloo and admired the industry of the place. It makes one yearn for the quiet academic life of learning, contemplation, (but not exams).
  • Back with Chris for toasted tea-cakes and crumpets; then set off home with the babes being read 'The Hobit' before falling to sleeping in the back.
  • Frantic party preparation for tomorrow.

2010-01-08: Friday.

  • Plugged away at boot times, and trying to unwind something of a proliferation of different packages and wins, and get them all back up-stream / into Factory / SP1. Installed lots of missing devel package pieces onto my SP1 system.
  • Interested by RMS' latest post defending copyright assignment which he calls 'selling exceptions'. His ethical case seems to rest on a supposed conceptual equivalence between X11 licensing and proprietary licensing. Of course, while I have to agree in the abstract - and perhaps some proprietary licenses are reasonable: published, transparent, under F-RAND terms etc. I have yet to see one of these in the wild. Surely the realities of proprietary licensing are massively removed from this. The existence of confidential licenses, with dictated terms, and the commensurate strangulation of the very open-ness that makes Free software (as a social experience) work can never be a good thing.

2010-01-07: Thursday.

  • Woke the wife up in the night thinking she was a set of shelves - objectification gone mad. Distressingly E. didn't wake at all, with only one false start in the morning before the light came on, so can't be blamed; hey ho.
  • To work early, to interact with Taiwan - hit an interesting problem around re-writing MBR's during full system recovery. Dug through the kernel a little to confirm my suspicions. The ultimate moral is: don't trust blockdev --rereadpt /dev/sda - to have re-built the device nodes by the time it is finished; you badly need a udevadm settle there - otherwise, your script can rush on - just as udev is deleting and re-creating the devices. That's easy to see with a beautiful graphical loop after the blockdev:
    #!bin/bash
    
    diskDevice=/dev/sdb
    blockadm --rereadpt $diskDevice
    
    iter=0
    while [ $iter -lt 40 ]; do
    	if [ -e "$diskDevice" ]; then
    		echo -n "*"
    	else
    		echo -n "."
    	fi
    	iter=`expr $iter + 1`
    done
    which yields something like this pretty bitmap, and of course you can't run it on a mounted disk:
    **..........................*****************************
    first you see it, then you don't, then it comes back again; hopefully very obvious.
  • Swept snow off the path - very satisfying before it starts to melt - like a dusty powder. Lunch. Filed expense backlog. Call with Kendy.
  • Cell group in the evening, encouraging to see everyone again after Christmas.

2010-01-06: Wednesday.

  • Set too, packaging libnih (sigh, I really mean to get around to doing the few glib changes necessary to make that redundant, at least for some subset of method calls).
  • Frustrated by Guy / Aaron's selection of cool music, all cropped to the first few seconds - just enough to get a taste and want more.
  • Packaged ureadahead, discovered nih's -v default option after more searching, which makes sense, except for the yet-another logging framework.
  • Caught an evo crasher; I've often wondered how to get debugging symbols into gdb when it has already crashed; apparently the answer is to install the debuginfo package and do nosharedlibrary followed by sharedlibrary [opt regexp] - lovely.
  • Pottered around cleaning up the side-way in the evening; seemingly a lot of condensation on the inside of the polycarbonate roof: nasty - not helped by the snow on the other side no doubt.

2010-01-05: Tuesday.

  • To work. Read boot-charts and suggested things; read mail, prodded mailing lists. Played with an early version of SLED11 SP1 - looking rather good already.

2010-01-04: Monday.

  • Back to work ! started chewing mail; there are great benefits to much of the world being on FTO at the same time in terms of a reduced backlog (except of spam); nice.
  • Played an electric heater onto my server to warm it; after 10 minutes it decided to turn on again: horay - almost certainly thermally related.
  • Downloaded, and built various latest-and-greatest images, tried to burn them variously over my wifi connection - which is rather slow it seems, bother. Located missing, required kernel patch, bad.

2010-01-03: Sunday.

  • Off to NCC, ran creche. Home for lunch.
  • Dropped J. M. and E. at a party for babes; took H. & N. to Laura & Creighton's to play; chatted to Claire & Simon - and lugged bits of furniture around: a new wardrobe for H. etc. Dropped that at home with Creighton's help.
  • Back for more of a chat; picked up J. packed the babes off to bed. Cancelled video evening - everyone trying to rest-up for Monday back at work. Chatted to Sam for much of the evening, fun.
  • E. back in bed, with repeated stress on the light coming on first before getting up, put her back into bed etc. Tried to persuade M. recently to abandon hope of being allowed to sleep in her dressing gown, and that (despite appearances) Daddy doesn't in fact sleep in his dressing gown - just puts it on each time he has to appear to maintain order at night.

2010-01-02: Saturday.

  • Up early, dealt with the babes while J. slept. Off to the market to stock up on fruit & veg. Back home via an ill-advised trip to the playground (in the snow), E. bleating about her freezing hands (which she insists on removing from the snug peram's sleeping-bag.
  • Back; set to disassembling the packed-in Jig-saw. Discovered that 'Erbauer' is in fact a pseudo-germanic name for Screw-Fix's ultra-cheap tool range - built for hobbiests and obsolesence. Unfortunately, the machine is defunct. Extremely pleased by the ease of disassembly with electric screwdriver (wonder christmas present from the Hawkins): marvelous. Eventually got the switch apart, and discovered it was some charring and bending on the contacts - re-assembled admiring the simple mechanism smeared in black grease. Overall a lovely device let down by a shoddy switch - shame.
  • Quick lunch; Nick & Joni popped over to collect the long lost fleece. Packed innumerable (but never quite enough) tools into the car, and set off to Solomon & Peace's house. Removed their rotting pine block-board work-surface around the sink. Spent ages cutting and working the teak, returning home for more tools periodically. Bruce had done a wonderful job of making angle-iron brackets for everything, making the task rather easy. Re-sealed everything with mould-resistant silicon sealer; with luck it might survive.
  • Back, read stories to babes, bed very early to write back-blog-entries.

2010-01-01: Friday.

  • Up late, put up towel rail, and got some bits together and onto the roof of the extension. Replaced existing, duff extractor fan outlet, with a suitably self-sealing version. It defeats me why they let you insulate your house with 6+ inches of insulation - then drive a 6inch hole in the wall, with no real obsctructions to the outside.
  • Despaired of the builders coming to clean the roof, so set too myself. Removed an inordinate ammount of guano-fuelled moss-growth, deposited from the roof above during re-roofing - littered with nails, bricks, and other goodies.
  • Lunch, Lydia arrived for it - good to catch up with her. Knocked up a bespoke pot-measuring device (come duck) for her on a whim, simple with a little pine tounge & groove boarding, a router, planer and some space to work.
  • Back to the roof cleaning for some hours - trying to scrape moss out of each crack it has subsequently infested. Continued until it was dark, noticed moss freezing to the roof post removal - concerning - as I finished.
  • Plugged at the filing, and finances in the evening with J. bed late.

My content in this blog and associated images / data under images/ and data/ directories are (usually) created by me and (unless obviously labelled otherwise) are licensed under the public domain, and/or if that doesn't float your boat a CC0 license. I encourage linking back (of course) to help people decide for themselves, in context, in the battle for ideas, and I love fixes / improvements / corrections by private mail.

In case it's not painfully obvious: the reflections reflected here are my own; mine, all mine ! and don't reflect the views of SUSE, Novell, The Document Foundation, Spaghetti Hurlers (International), or anyone else. It's also important to realise that I'm not in on the Swedish Conspiracy. Occasionally people ask for formal photos for conferences or fun.

Michael Meeks (michael.meeks@novell.com)

Made with PyBlosxom