Monday, September 07, 2009

setting up an Ubuntu chroot for development testing using schroot and debootstrap

If you have, for instance, an Ubuntu machine running Jaunty and you want to test a bug that only occurs under Karmic, you can use a chroot jail. This is cheaper and faster than setting up a whole vm, assuming you're not interested in kernel-level differences and you can tolerate a bit less isolation.

1- sudo apt-get install debootstrap schroot

2- Use debootstrap to make a minimal install of karmic into a directory:

sudo mkdir /home/chroot

sudo debootstrap karmic /home/chroot/karmic http://mirror.internode.on.net/pub/ubuntu/ubuntu/

Supply the name of your nearest Ubuntu mirror as the last parameter.

3- Put something like this at the end of /etc/schroot/schroot.conf:


[karmic]
description=Ubuntu 9.10 Karmic Koala
users=mbp
root-users=mbp
location=/home/chroot/karmic
type=directory
run-setup-scripts=true
run-exec-scripts=true


4- Voila:

schroot -c karmic

should give you a shell, running as yourself, in the karmic environment. schroot with these settings automatically arranges for your home directory to be shared, so you can get at the same source code from both places. (See /etc/schroot/mount-defaults.)

You won't, by default, have sudo access in that chroot, so you can either edit /home/chroot/karmic/etc/sudoers to allow it, or you can run commands like this from outside of the jail:

schroot -c karmic -u root apt-get install zlib1g-dev

To avoid confusion I like to show the OS version in my zsh prompt, with a line like this in my ~/.zshrc:


RPS1='%B%~ ('"`lsb_release -cs`"')%b'

Thursday, July 23, 2009

Launchpad community patches

Publishing Launchpad's code = great.

Substantial community patches sent and reviewed within the first week = awesome.

Way to go wgrant!

The fact that the first one was for a bug that affects me is particularly nice.

Tuesday, July 21, 2009

Impressions of the HTC Magic Android phone

I got an Android-based HTC Magic phone from Vodafone Australia. It's very good, and a great achievement that this is all possible with free software.

It's a very nice platform for Linux-based users: it appears as a USB storage device, so you can copy photos, music and videos to and from the phone without needing any special software - in fact, it doesn't even come with any proprietary Windows software, as most other phones do. Assuming you're happy to already use GMail and other apps, it will transparently sync across the network, and this should be reasonably cheap if you have a wifi network.

The UI is all you'd want: fast and responsive (notably more so than some recent Nokia phones), attractive and innovative in for example the way notifications are displayed. There's a distinct feeling of what apps should be and act like.

The on-screen keyboard is quite usable, because it has quite smart suggestion and correction. I think it's roughly as easy as a hardware phone keyboard. (Though I've owned a Blackberry, and they may be better.)

I have seen some application crashes, but only rarely. The whole phone has not yet crashed on me, and I've seen no sign that it degrades with use.

The voice quality is very good. I have hit some situations where the quietest phone volume is too loud to hold to my ear, or the loudest available music volume is quieter than the phone volume. (Possibly because the track was recorded at low volume, but it would still be nice if it could scale it up.)

The camera is not great, but what do you expect from something smaller than a pea. The photos are reasonably crisp. (That one was tweaked a bit in gimp.)

There are a few useful UI shortcuts, not mentioned in the manual: pressing and holding Home brings up a quick-switcher of the most recent six applications, and pressing and holding Menu brings up the on-screen keyboard, even if there's no text field visible. You can use this in the Contacts app to do an incremental search through the contact lists.

Monday, May 18, 2009

soap-opera bugs

Elliot wrote something interesting about dealing with contentious bugs: in this case, whether the new Canonical service UbuntuOne is a unfair and/or confusing use of the "Ubuntu" name. (The particular issue is being thrashed extensively so I'd rather talk about the meta-issue of bug trackers.)

Ubuntu and other free software projects are going to get some things that look like bugs but that are much emotionally hotter than regular bugs: typically though not always here the disagreement is higher up the stack towards a question of architecture, goals or politics than just how to fix the bug. Ubuntu Bug 1 is a similar case, though here the problems arise more from enthusiasm than disagreement. (In the case of bug 1 you can see that Launchpad currently allows for more failures than just many comments: two screens full of BugTasks asking for it to be fixed in random places.)

These things show patterns of: excessive numbers of comments, tug-of-war over the bug status, people piling on to show their support for the issue rather than to add new information, ... As Elliot says:

It's frustrating that as one of the project leaders I don't seem to be given the respect or right to close a bug on my own project. For example, I respect Bradley very much and am not remarking at all on the content of his comment (he certainly speaks from an informed perspective and it would be foolish to ignore his input), I don't think he should override my decision to close the bug. [...]

I understand that it's healthy and good for people to offer comments and criticism on the stated roadmap of the project, or disagree about whether we should take action on any bug, design decision, etc. [...]

But, I want to use the bug tracker to track ongoing/pending work in the Ubuntu One project, not as the place where debates happen over whether Canonical is doing the right thing. If people want to write commentary on big picture strategy, it would be much more appropriate in a blog, not in bug reports.

What can be done?

I think ultimately this is a social problem and technical solutions are limited. For example we could technically lock this bug, but that might just redirect people into opening new dupes.

Perhaps Elliot is doing the best that's possible in saying that he's willing to have the conversation, he just doesn't want to have it right here.

There is a bug (heh) 73122: need strategy for stopping pandemonium in individual bug reports saying perhaps there should be a way to lock down bugs. Perhaps this is good, but it has to be done in a way that redirects the user energy somewhere else, rather than trying to bring it to a dead stop. When Wikipedia locks a page, they suggest discussing the lock on the talk page or similar.

higher velocity in losing your luggage

I'm in Terrassa, Spain, for the Canonical allhands meeting before UDS Karmic.

I brought my motorcycle helmet with me as special-handling checked luggage, for a ride around here next weekend. I think it missed the connection in London, but it showed up today apparently unharmed so all is well.

But as it happens I read a great Malcolm Gladwell essay which mentions this topic in passing — a real example of how we can take stupid inefficient processes for granted when they've existed for a long time:
Ranadiv√© [founder of TIBCO] views this move from batch to real time as a sort of holy mission. The shift, to his mind, is one of kind, not just of degree. “We’ve been working with some airlines,” he said. “You know, when you get on a plane and your bag doesn’t, they actually know right away that it’s not there. But no one tells you, and a big part of that is that they don’t have all their information in one place. There are passenger systems that know where the passenger is. There are aircraft and maintenance systems that track where the plane is and what kind of shape it’s in. Then, there are baggage systems and ticketing systems—and they’re all separate. So you land, you wait at the baggage terminal, and it doesn’t show up.” Everything bad that happens in that scenario, Ranadiv√© maintains, happens because of the lag between the event (the luggage doesn’t make it onto the plane) and the response (the airline tells you that your luggage didn’t make the plane). The lag is why you’re angry. The lag is why you had to wait, fruitlessly, at baggage claim. The lag is why you vow never to fly that airline again. Put all the databases together, and there’s no lag. “What we can do is send you a text message the moment we know your bag didn’t make it,” Ranadiv√© said, “telling you we’ll ship it to your house.”

It would be nice if the steward could come up during the flight, tell me my bag hadn't made it, and then ask for my hotel details to deliver it. It would have saved most of an hour waiting at the airport. (And if you count all the passengers waiting in line with their travel companions, several person-days just for that one flight...)

Canonical somehands in Barcelona

I'm at the beautiful La Mola hotel outside of Barcelona for the Canonical SomeHands management meeting. After this we're having AllHands for the rest of this week, then UDS Karmic and the associated Bazaar sprint. (Not that far outside, only about 40km, but apparently far enough that almost everyone's taxi from the airport has got thoroughly lost.)

The place looks a lot like the campus of a software company: modern glass and concrete buildings in rolling grassy hills, and it's great to be here with these people.

So far, so good: a "view from 330,000 feet" from Mark, an interesting examination of why people join Canonical and then stop blogging from Elliot, and a promising but as-yet inconclusive discussion about cross-team collaboration in a distributed company.

Tuesday, May 05, 2009

Ross Gittins on the Carbon Pollution Reduction Scheme conundrum

Ross Gittins explains why the draft Carbon Pollution Reduction Scheme legislation seems stuck: Labor doesn't have the votes in the Senate without either the Greens (who won't compromise), or the Liberals (who don't know what they want) or the Nationals ("agrarian populism").

Rudd's initial proposal was purpose-built to be irresistible to the Coalition. It adopted the lowest possible go-it-alone emissions reduction target - 5 per cent - and a pathetically low 15 per cent reduction in the event of an international agreement in Copenhagen in December.

It accommodated the demands of business lobby groups to an extent Rudd's own expert, Professor Ross Garnaut, found repugnant. ... Rudd offered the Coalition a scheme little different to the one it took to the last election (both schemes having been designed by the same bureaucrats). What was Malcolm Turnbull's reaction? Nothing doing. He rejected it, contriving to claim it was simultaneously too weak and too tough.


Clive Hamilton in Crikey believes that Labor could force it through the Senate if they had the balls. I don't know. Maybe there is some brinksmanship here in the hope the Greens will at the last minute see high but realistic targets as a lesser evil, or that the power struggle in the Liberals will resolve.

The climate-skeptical position of the Nationals, though apparently firmly set, is bizarre to me, because their rural consistency may suffer more than anyone else from climate change. The few farmers I know personally are firmly convinced, because they have to adapt to changing temperatures and rainfall by destocking land or growing new crops.

Sunday, April 19, 2009

The Economic Consequences of the Peace

I read John Maynard Keynes's The Economic Consequences of the Peace on my flight to London. It was written in about 1920 and constitutes Keynes's criticism of the economic aspects of the Treaty of Versailles, which imposed demands for reparations from Germany so irrationally high that they would likely ruin not only Germany but all Europe.

I had learned of this issue of reparations in high school history, but had imagined the instability was caused by German resentment of the payments. In fact, the amounts were set so high that even after seizing much of Germany's shipping, railroads, and private citizen's assets there was still no prospect they could ever be paid off.

The book is very readable - clear, well argued on both moral and intellectual grounds, lively. It's quite tragic to contemplate how much suffering in the 20s, 30s, and 40s might have been avoided had his message been heard at the time. His essential point was that if Europe was to recover it must do so collectively, by imposing only moderate reparations and promoting trade and economic growth. He is scathing towards almost all the political leaders of the time.

On the other hand, von Mises wrote 'it is said that [the book] inaugurated the anti-French and pro-German tendencies of Great Britain's "appeasement" policy which virtually encouraged the rise of Nazism, permitted Hitler to defy the essential clauses of the Treaty of Versailles and finally resulted in the outbreak of the Second World War'. I don't know if this is fair, but I intend to read more. It does seem that Keynes forsaw that a treaty making physically impossible demands must fail one way or another.

On any day you can turn on the TV and see a Nazi documentary — in some places they seem to run continuously — but rarely much thoughtful explanation of how that situation arose.

What an extraordinary episode in the economic progress of man that age was which came to an end in August, 1914! The greater part of the population, it is true, worked hard and lived at a low standard of comfort, yet were, to all appearances, reasonably contented with this lot. But escape was possible, for any man of capacity or character at all exceeding the average, into the middle and upper classes, for whom life offered, at a low cost and with the least trouble, conveniences, comforts, and amenities beyond the compass of the richest and most powerful monarchs of other ages. The inhabitant of London could order by telephone, sipping his morning tea in bed, the various products of the whole earth, in such quantity as he might see fit, and reasonably expect their early delivery upon his doorstep; he could at the same moment and by the same means adventure his wealth in the natural resources and new enterprises of any quarter of the world, and share, without exertion or even trouble, in their prospective fruits and advantages; or be could decide to couple the security of his fortunes with the good faith of the townspeople of any substantial municipality in any continent that fancy or information might recommend. He could secure forthwith, if he wished it, cheap and comfortable means of transit to any country or climate without passport or other formality, could despatch his servant to the neighboring office of a bank for such supply of the precious metals as might seem convenient, and could then proceed abroad to foreign quarters, without knowledge of their religion, language, or customs, bearing coined wealth upon his person, and would consider himself greatly aggrieved and much surprised at the least interference. But, most important of all, he regarded this state of affairs as normal, certain, and permanent, except in the direction of further improvement, and any deviation from it as aberrant, scandalous, and avoidable. The projects and politics of militarism and imperialism, of racial and cultural rivalries, of monopolies, restrictions, and exclusion, which were to play the serpent to this paradise, were little more than the amusements of his daily newspaper, and appeared to exercise almost no influence at all on the ordinary course of social and economic life, the internationalization of which was nearly complete in practice.
....

Thus this remarkable system [before the War] depended for its growth on a double bluff or deception. On the one hand the laboring classes accepted from ignorance or powerlessness, or were compelled, persuaded, or cajoled by custom, convention, authority, and the well-established order of Society into accepting, a situation in which they could call their own very little of the cake that they and Nature and the capitalists were co-operating to produce. And on the other hand the capitalist classes were allowed to call the best part of the cake theirs and were theoretically free to consume it, on the tacit underlying condition that they consumed very little of it in practice. The duty of "saving" became nine-tenths of virtue and the growth of the cake the object of true religion. There grew round the non-consumption of the cake all those instincts of puritanism which in other ages has withdrawn itself from the world and has neglected the arts of production as well as those of enjoyment. And so the cake increased; but to what end was not clearly contemplated. Individuals would be exhorted not so much to abstain as to defer, and to cultivate the pleasures of security and anticipation. Saving was for old age or for your children; but this was only in theory,--the virtue of the cake was that it was never to be consumed, neither by you nor by your children after you.

Thursday, February 26, 2009

Project team blogs

I'm thinking about setting up a Bazaar group blog, separate from blog.sourcefrog.net. As of Friday the 27th, a site is up, in the sense that you can read it, but not yet announced (beyond this article). It's still a bit of an experiment.

Within one person's personal syndicated chronological publishing (ie "blogging", broadly), there are different strains. The tension towards those different strains may be one reason why people have tended to go quiet, or to feel a sudden agoraphobia at how widely their person thoughts are read or personal photos reproduced.

It's more subtle than a binary private/public switch, and a simple password or even openid is not enough. It's more than technical.

At the moment there's a proliferation of different web-based tools in use: twitter, identi.ca, facebook, flickr, personally-run blogs, dopplr, planets. It's not just that they're just technically imperfect that's causing the fragmentation (though repeatedly getting semi-spammed invites is tedious), but also that they provide genuinely different forums. There are some things that are not secret but personal and more appropriately shared with people you know; some that are personal opinions but that you're happy to share with anyone; some that are about projects like Bazaar that are personal but that are also bigger than just me.

A project team blog seems too to becoming one of the channels that people expect to have.

People tend to raise the question of whether this will just dilute the same amount of writing across multiple channels. It might, and there does seem to be a critical level of activity for a blog beyond which it's not alive. On the other hand, now that there's more syndication that level may be lower: infrequent posts will still pop up. But I also suspect that creating a place where a particular type of content feels really at home will create positive feedback.

For instance, Gary van der Merwe just made a nice improvement to the revision selector control in qbzr, using the layout originally invented by Scott for bzr-gtk. I like this, and I'd like to express that approbation in public but I don't want my sourcefrog blog mostly occupied by neat bzr features because I have other things to say.

Sunday, February 15, 2009

recent readings

Hal Abelson and Jerry Sussman with Julie Sussman, Structure and Interpretation of Computer Programs chapter 4, with Mary and friends. Like The Little Schemer, deeper than it seems.

Alan Greenspan, The Age of Turbulence: Adventures in a New World. Not exactly deathless prose, but a pretty interesting perspective on some aspects of recent history. He's certainly been around a lot of it.

Arbinger, Leadership and Self Deception. Corny style, but an interesting point that people put them selves to a lot of emotional and actual trouble to avoid the cognitive dissonance of not living up to their conscience.

Armstrong, Programming Erlang. It's good; it deserves a longer post. I'm kicking myself that I didn't twig to what was good about Erlang when Luke raved about it probably ten years ago.

Jose Saramago, Blindness. It seems interesting but slow, and I stopped about half way. I'll try again later.

Mark Z. Danielewski, House of Leaves. Gripping, reawakened a particular type of book-appetite. Requires a fair amount of extended concentration - not the sort of book that you can pick up and read just a couple of pages.

Edleson, Value Averaging. A good research paper padded out to an only OK book, by adding several extended walkthroughs of different situations. Maybe I'm just grumpy because Kinokuniya sold it shrink-wrapped, I half suspect so that you couldn't see discover this before purchasing.

David Lebedoff, The Same Man: George Orwell and Evelyn Waugh in Love and War. A lovely dual biography starting from the conceit that Orwell and Waugh while very different were also much the same. It's inspired me to read much more from both of them this year, starting with Down and Out in Paris and London which was itself excellent.

Chris Okasaki, Purely Functional Data Structures. Just started, looking good.

J.R.R. Tolkein, The Lord of the Rings. Re-reading it for the fourth time or so, and seeing some new parts on each visit.

Tim Keller, The Reason for God. Not bad, and less ranty than The God Delusion, but in the first half showing an unworthy predilection for straw men. We get "Stalin and Hitler were atheists!" on page 5 (!!) but it's mostly uphill from there.

On a Sony PRS-505, using only free content and (non-embedded) software:

Adam Smith, An Enquiry into the Nature and Causes of the Wealth of Nations - very readable and interesting; the only caveat being that there are sometimes a few pages of text when (to the modern reader) a table or graph would be better.

Anthony Trollope, The Warden. Easy to read and enjoyable; I'll definitely read more of his work.

Mark Twain, Christian Science. Picked pretty much at random from PG as one I hadn't read or heard of. Not particularly noteworthy or recommended, except that reading a minor work gives a broader perspective of the author.

I tempted pitti into buying one of these and then packaging the Calibre software for maintaining the e-Book reader. It makes an excellent interface for reading free content such as Gutenberg texts that would otherwise have to be printed out.

To be continued...