Monday 23 February 2004

Today the first pain of RSS-as-anything-at-all bit me, with someone on Planet Twisted embedding very wide text in <pre> tags, causing (for most viewers, not for me) the main column to expand to the right to accomodate the rogue <pre>.

I got a nice mail suggesting that the cross browser fix for this is to convert:

 <pre> blah  blahblah blah</pre> 

to:

 <div style="font-family:monospace;"> blah&nbsp;&nbsp;blahblah<br> blah</div> 

(There’s not meant to be a line-wrap in that second example, but I’m being kind to the Planet Twisted readers &mdash oh, rendering HTML in HTML is hard!)

But let’s face it, fixing other people’s HTML for them is nightmarish. Start with <pre> tags, end up with… well, writing a complete HTML parser/sanitiser for Planet. So I’m being a wimp and not doing it. I hope.

Life; FOSS things

Life

Relatively severe wrist/shoulder pain had to bite eventually &mdash I should have expected it now that I’m working in an environment I don’t control. Yes, my immediate supervisor is sympathetic, yes, my employer has Occupational Health and Safety people, yes they’ll probably take action, however the downside of working for an organisation large enough to have organised OHS is that the request needs to travel up three levels and down again.

In the meantime, I need to keep typing because that’s my job.

FOSS things

Even the mildest bug blackmail is driving me insane at the moment: all bug reporters should visualise a wild-eyed harpie with stiff fingers when entering “please document now, you are destroying my life [note: author’s completely exaggerated paraphrase]” bugs.

Friday 6 February 2004

I’ve been playing with Planet (one day our galactic masters will populate that page and take advantage of the links they receive), which meant learning a bit of arch to create my own working copy which I can check revisions into. (I believe this is called a branch if I understand arch’s nesting correctly: archives contain categories which contain branches which contain versions which contain revisions. Revisions correspond to individual checkins, archives to a CVS repository and categories, roughly, to a project.)

So now my Planet variant pings the weblog update sites if the data has changed &mdash although I think the way it detects changes is against the spirit of the feed parser. Doing this has proved an excuse to spend an hour or so coming to grips with arch finally, which I wasn’t motivated to do for its own sake.

I think arch would be a great tool for people like myself who want to get people to double-check changes before checking them into the project’s main branch, and for people like spiv, who has thrown away a lot of changes to Twisted because he’d made a lot of distinct changes in his tree and was a bit anxious about trying to merge them with recent changes in the main tree before isolating each change and checking it in. Distributed repositories are an excellent solution to this: you can check changes into your own repository without effecting the “main” one, and then pick them out, merge and commit to the main one.

Bonding

The planetary systems continue to expand &mdash I now run two: LinuxChix Live and Planet Twisted. jdub is going to give a talk at SLUG soon about the community building aspects of planets: suffice to say it’s a better way of getting to know people than project mailing lists, although Planet Twisted will be an interesting experiment given that the developers also have a tight IRC community &mdash the planet may not have much to add to the interactions between developers, especially since the bulk of the developers use LiveJournal. LinuxChix is enormous by comparison and running the aggregator has given me a chance to glance at the writing of people who I would normally only vaguely recognise by name.

I think they’re a good resource for community outsiders too. I’m not involved in GNOME at all, but I still like scanning Planet GNOME. The advogato recentlog is by far and away the most successful part of the experiment and people enjoy reading it despite the fact that most entries are by people they don’t know who are coding things they don’t use. It’s probably a better way of discovering interesting people or projects than some of the more formal methods of tracking relationships: advogato’s trust metric, or LiveJournal friends pages, for example. It connects you to people with something in common with you but who aren’t part of your community. Further, aggregators expose you to a small amount of their writing &mdash much better than a dessicated list of interests and a line listing the steps by which you can trace their relationship to you via mutual friends.

linux.conf.au presentation days 2 and 3

See also my l.c.a. photos, other l.c.a. photos and other l.c.a. blogs.

This is the belated final l.c.a. entry. I wrote it several days back and since I no longer have my own computer, it took several days to resize, reorient and caption all the photos.

linux.conf.au Presentation Day 2 continued

After lunch I went to jdub‘s GNOME strategy talk, which was good. I would have liked to have seen more screenshots, but that’s just a personal thing — I want to see more of what I can expect from GNOME 2.x — but he actually wasn’t given a screenshot style talk. It wasn’t a talk about “things in the GNOME desktop”, it was a talk about upcoming release strategy.

I skipped Andrew Tridgell‘s junkcode talk in favour of behoffski’s grep talk. The grep talk was really badly attended, and we could hear faint joy from tridge’s talk next door. It also lacked oodles of finite state machines, which was a shame.

linux.conf.au Conference Dinner

I didn’t really anticipate the speed with which tables would be taken, I also didn’t feel any need to figure out in advance who I’d be sharing a table with. This was a mistake. For the record: tables were taken swiftly. spiv and I were lucky to grab a table with Bradley, later to be joined by James, thom, Gus, Stewart and Drew. We were right up the front, close enough to see Rusty’s flame show (featuring the “so have you ever kissed a girl?” reply to davem, which doesn’t seem to be archived anywere on the web. [Edit: That was before Rusty uploaded the text of the flames]).

The staff seemed to me to be on anti-madness patrol, keeping our water glasses filled up all the time, and not leaving bottles on tables. Most people found the dinner really un-crazy, but I’m assured that somewhere up the back there were a few people who had to be carried out.

Rusty conducted a couple of auctions: first the l.c.a. signed T-Shirt. Bidders were goaded by several tables throwing in extra money if the bidding reached a certain amount. Several project incentives were offered too: Linus offered an Australian animal for the next kernel release, jdub offered (I think) a choice of name for the GNOME 2.6 desktop release. The Debian project is yet to release, so last year’s purchaser still has that one.

The second auction was for the opportunity to sink Linus. The ozlabs guys put together $1500, but the community started assembling notes, and made it to $2700. This made things a bit difficult: Rusty described it as “some kind of raffle.” mrd was chosen to sink Linus by popular acclaimation.

jdub assembled a group of people to go and grab gelato. It was quite nice gelato, and the walk gave me a chance to meet mbp, which was excellent (although he thinks we’ve met before).

I was back in my room around 1 — it was pretty cold out there, and I wasn’t really interested in making the trek to north Adelaide that night.

linux.conf.au Presentation Day 3

spiv and I were up in time to check out and to make it to hp‘s keynote. I really liked this keynote, I thought it was one of the best talks of the conference. hp ran through the reasons to aim for a Linux desktop, challenges to the Linux desktop and strength’s of the Linux desktop. In his view, Open Source is the single strongest unchallengable, unduplicatable advantage.

I went to Janis Johnson’s regressions talk before lunch, which I quite liked, although I think again it would have been better if it had pushed through the introductory stuff faster, and had some case studies. This was, to me, the biggest disappointment in most of the talks I attended: perhaps I’m idealising tridge’s 2001 “hacking the TiVo” keynote in 2001.

The dunking followed at lunch. It was fun for a while — most people ended up having to run up and push the button to dunk their target: mrd must have been lucky (or a good shot) to sink Linus on his first ball, which was good considering that with an extra donation that shot was costing over $5000. thom got the opportunity to sink rasmus and I think managed to do it without pressing the target with a hand. The most amusing effort was that of tridge and jallison, who struggled to sit on the dunking seat together, tridge nearly slipping in a number of times. A few non-speakers were offered up for their sins: gman and daniels. After a while, the dunking got less exciting unless you had a debt of honour involving the person on the seat, and people drifted away. There were meant to be water pistol fights as well, but it was a cold day and I don’t think it seemed appealing.

After lunch, tridge’s talk was repeated in the best of series. It was indeed a good talk, but the audience was pretty flat compared to the last one. thom kept nodding off. The talk seems to be partly evangelical (keep your junk code, put it on the web) but would have worked just as well without an actual message. tridge’s talks are generally “look! look! hacking is fun!” talks anyway. See them if you feel a bit jaded and need a good kick.

The energy was definitely leeching away after the dunking, and everyone was very sleepy by the time of mrd’s conference close and the handover to the Canberra team.

Most people stuck around until Sunday I think, but spiv and I went off to gelato with keithp and people he’d managed to drag along for icecream before we headed to the airport. The plane to Sydney was a bit of a SLUG-express but I was getting far too sleepy to talk to anyone by then.

Home

Home

Got home to discover that one of my power supply or my motherboard are seriously failing. I have one last l.c.a. entry all written and waiting for my photos before I send it in.

In the meantime…

I restarted my old buglinks.org project. It’s intended now to be a blog-ish set of links to bug hunting teams, bug hunting tips and bug hunting resources — and possibly also bug fixing stuff. I’m hoping to find material soon that is more specific than the general “how to report a bug” tips soon.

linux.conf.au Presentation Day 1 continued; linux.conf.au Presentation Day 2

linux.conf.au Presentation Day 1 continued

I forgot to re-write the bit about maddog‘s talk yesterday after Mozilla crashed with all diary entries aboard. maddog’s talk was the first keynote. It wasn’t all that applicable to me personally — I don’t write software, either proprietary or free, for end users, and nor have I ever been employed as a software engineer in a large company. maddog’s intended audience seemed to be people who struggled to find their place as a techie in a welter of managers, employers, shareholders, customers and users. He had a cute ploy towards the end: pointing out to people that most free software applications are secretly written for obsessed auto-didactic fourteen year olds with their own Linux distribution and are in fact used by maddog’s parents, who like to get their computer support at their church, in their retirement village, or from their children.

In the afternoon of the conference, I went to Patryk Zadarnowski‘s TeX talk, which was a basic illustration of the programming language features of TeX. The most complex piece of code used as an example was about seven lines or so of TeX: the definition of a linked list. It would be lovely to have complete “syntax highlighting” TeX macros for programming languages than Haskell and I might put playing around with TeX somewhere on my long list of things I should maybe learn how to do (it includes, for example, programming in Lisp, and learning to sail).

After Patryk’s talk, I saw Sean Burford talk about Reverse Engineering Linux x86 Binaries. I had been expecting something fairly difficult — I go to talks like that to find out how much I don’t know, and so, since I’ve heard of most of the tools he worked through (strace, gdb…) I didn’t get what I expected from the talk.

The talks concluded with the Works In Progress talks. The WIP talks were 3 minute sessions open to anyone who’d managed to prepare a poster for them, and were given over the course of an hour. Although forbidding props was probably necessary given the time allocated, it was sort of disappointing, because the majority of talks could really have done with an accompanying screenshot or mockup.

Finally, the Linux Australia AGM was held. I’ve never been to a meeting that formal in my life, and it was of necessity somewhat dreary. It ran for nearly three hours — I’m pleased that the amendments to the Constitution allowing online AGMs were passed.

spiv and I wanted a quietish night in preparation for the conference dinner (I drink heavily really rarely, but I’m also crap at dealing with sleep deprivation, so I still need to save up energy for an event like that). We had pizza at thaytan‘s and Jaime‘s hotel with daniels, one of his friends, bdale and keithp, before heading off (really briefly) to a bar/cafe with some Linux Australia folks and (I think) the odd kernel hacker after running into jdub.

I’ve been able to mention eating with various free software ‘celebrities’ (and mainly not talking much with them) primarily because of my SLUG friends. Even though I appreciate that the (Western, English-speaking) free software communities are smallish, it seems flatter than I expected. This is probably illusionary — if I didn’t know anyone in the Australian free software community, I wouldn’t meet any of the international hackers either, and my conference social experience would be much more like it was in 2001 (nearly zero, except that I went on the pub crawl the final night).

linux.conf.au Presentation Day 2

Noone else seems to have thought a quiet Thursday night was worth the sacrifice — lots of cranky sleepy people this morning. There were still lots of people at bdale‘s keynote talk. This keynote had some similar themes to maddog’s as regards the ‘typical’ user of free software end user projects, but was talking about larger deployments: LinEx and Guada LinEx. Community based free software deployments sound really exciting — it would be a cool thing to work on.

I went to jamesh‘s talk as well. I didn’t find this talk particularly exciting, but I think that was just a mismatch between my interests and the subject of the talk. If I’m at this conference next year, I’ll probably attend mainly advocacy talks or talks about really insane or theoretically involved subjects — I don’t do much finite state machine programming or lexical analysis, but then I don’t come to this particular conference to find out much about things I already do. It’s the insane stuff I’d never even contemplate that is interesting.

linux.conf.au Tutorial Day continued; linux.conf.au Presentation Day 1

linux.conf.au Tutorial Day continued

I tagged along to lunch with jdub, hp, jamesh, spiv and James. James’s crazy WINE hacking ideas aren’t proving easy to sell to anyone, he’s not sure whether to continue or not.

I didn’t go to any afternoon tutorials. I went over to Glenelg, which turns out to be a poor use of time if you aren’t prepared to either shop or swim. I would prefer to swim than shop, but I hadn’t brought any swimming gear with me. The landscape is spoilt by an ugly mountain of concrete which partially contains some water slides. I’d like to go on them, but everyone has looked at me like I’m crazy.

I then went out to dinner with many of the same people I’d been at the pub with the previous night. This time they’d chosen a pub convienently close to the college accomodation and some blocks from the pub that we are staying in. robertc claimed not to be a full time Arch advocate, but failed miserably. Once again the conference ate some potential pub go-ers, the professional networking session spitting out conrad, ozone and Silvia as spiv and I headed home.

linux.conf.au Presentation Day 1

I attended Jeremy Malcolm‘s Could SCO v IBM Happen to You? talk.

Malcolm is a good speaker, and the talk was well organised and presented. My main problem with it was that a lot of the material would be relatively familiar to your average armchair Free Software lawyer. I’m by no means anything more than a straggler in this field but the distinction between what copyrights protect and what patents protect is fairly clear to me. Hence, the most interesting parts of the talk were those that covered material I wasn’t very familiar with.

Most of the discussion of doing both free software work and proprietary work that I’ve seen has been focussed on observing the terms of contracts between an employer and employee, as well as understanding the intellectual property assignment that is part of work for hire. I’ve never seen trade secrets law discussed specifically before. Malcolm didn’t talk about trade secrets law in depth, but that was one heads-up from the talk.

His discussion of controlling intellectual property issues in your own projects was fairly brief but suggested that you needed to make it clear to individual developers that they were responsible for making sure that they were not contributing doubtful intellectual property (although in practice getting them to accept liability would not be feasible as it would scare of all or most contributors).

His final interesting point was that you should seriously consider using a licence that doesn’t totally ignore the possibility that patent-infringing code may appear in your product, or that claims of infringement might be made, and recommended the Mozilla Public Licence specifically because of the patent clauses.

One of the problems of talks given by a member of a community that is viewed warily by hackers at this sort of conference is that they come to be viewed as an avatar for that community. There were a few questions from the audience that suggested they were viewing Malcolm as a stand-in for the legal community and the courts system, but even these questions were asked in a fair good spirit.

Tuesday 13 January 2004

See also other l.c.a. blogs.

linux.conf.au Miniconfs Day 1 continued

I didn’t go to any further talks in the afternoon of Day 1. spiv and I had lunch with horms, Silvia and ozone. Once the wired networking came up in the afternoon we headed down to check half a day’s worth of accumulated mail, and then I caught up with some work via a convienient copy of StarOffice.

The Audio miniconf was meant to conclude with a jam session at a pub on the other side of Adelaide’s CBD. Adelaide’s CBD is nicely laid out in a grid, but it just isn’t that simple: the east-west streets change names halfway along.

The jam was missing some cabling for a long time, and while we waited the kitchen stopped serving food because they’d had too many orders. jdub found that ordering every variety of Kettle Chips in the store wasn’t a good substitute for the excellent porterhouse steak spiv had had, so spiv, jdub, James, mikal, gman, thom and at least one other person and I headed off for Chinese, taking in a nice tour of the resturants in the south of Adelaide’s CBD on the way.

linux.conf.au Miniconfs Day 2

spiv only did the programme for his miniconf the other day, but nevertheless I was convinced it started at 10, he was convinced it started at 9:30 and it was actually scheduled to start at 9. We arrived late to find that malcolm had stepped in to give his talk an hour earlier than scheduled.

spiv’s own talk began with us spending a solid fifteen minutes trying to get my Libretto laptop to talk to the projector. This was the beginning of lots of projector hassles — every subsequent speaker, including Malcolm the second time around, had trouble with the projector. spiv ended up giving his Twisted talk on Erik‘s iMac, using MagicPoint tunneled over SSH from the Libretto.

Chris Foote gave a CherryPy talk, and we had a two hour lunch in the hope of intersecting with a Python/GNOME talk by jamesh over at the GNOME miniconf, but that didn’t happen.

Numbers were lower after lunch (possibly because that was about the third change to the program) which was a shame because Malcolm gave a talk on the ancient art of Python judo — that is, inspiring the audience to a bunch of guesses about which of a bunch of algorithmically equivalent methods of doing a particular list/dictionary constructions were fastest. It turns out, for example, that in Python 2.2,

 d = {} for i in xrange(len(X)): d[X[i]] = Y[i] 

is a faster way than:

 d = dict(zip(X, Y)) 

to turn two lists into a dictionary hashing the values of one list, X, to the values of the other, Y.

spiv had a faster solution than any of the given ones:

 d = {} map(d.__setitem__, X, Y) 

The miniconf concluded with lathiat‘s IPv6 talk, which was essentially an overview of the socket API with some discussion of the (small) changes needed to ensure basic IPv6 functionality.

In the evening, a bunch of people mysteriously vanished to the super secret speaker’s dinner, so spiv, James, Erik, robertc. thom, jaq, myself and several others congregated in the beer garden of the pub spiv and I are staying in. This was fantastic, as when I got tired at 11, I just walked up a flight of stairs and went to bed.

linux.conf.au Tutorial Day

spiv and I made it to the welcome in plenty of time to find out about all sorts of things. Matt won the national Regional Delegate Prize, which turned out to be the TShirt Sun had bid a lot for at last year’s conference dinner, with lots of kernel hacker signatures on it. The dunking of the speakers and assorted celebrities was heavily advertised — the right to dunk Linus is going to auction.

I went to the first half of Keith Packard‘s cairo tutorial this morning. It was excellent — Keith turned out to be an excellent speaker. I didn’t resolve the resemblence to Paul Livingstone’s “Flacco” character until morning tea — I’m still not sure whether it goes deeper than a physical resemblence. spiv said not, but I thought there were some vocal mannerisms in common. That aside, the cairo introduction is the type of thing I came to l.c.a. to see: exciting introductions to stuff I know almost nothing about.

I didn’t go to the second half of the tutorial, although the algorithmic pieces might have been interesting, electing to write this before the backlog of “things to write about” grew too long. Firebird nicely crashed halfway through, so I’m only going to continue this when I can save it to a text file and upload it at the end of the entry.