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.

linux.conf.au Miniconfs Day 1

I’m going to write about the linux.conf.au conference here, mainly summarising talks. Next time, go yourselves!

linux.conf.au Miniconfs Day 1

I left Sydney with spiv at 7:00am this morning after having to throw out a pair of nail clippers and a pair of scissors I’ve been carrying around for at least a year (being one of those people who always has everything in their handbag finally came back to bite me). Was delivered in Adelaide at 8:30am local time, 9:00 Sydney time. I’ve only once been further away from home (New Zealand 1998), and feel very very strange because of course, there’s absolutely no culture shock at all. Adelaide reminds me of Christchurch, but warmer and with Australian accents. Borders even sells the Sydney Morning Herald.

The conference proper starts on Wednesday, today was the first day of the miniconfs. I attended the first two talks in the Audio miniconf program.

Mark Greenaway repeated his SLUG talk on audio, which I missed the first time. Apparently the set of demos that didn’t work this time didn’t intersect at all with the set of demos that didn’t work last time. He briefly showed off jack, ardour, sweep, hydrogen, qcontrol, freqtweak and alsamodularsynth. Mark is a good speaker — I was his housemate for one and a half years and completely missed seeing him do any speaking in that time.

Peter Chubb talked about typesetting musical notation (and checking your typesetting via MIDI) using LilyPond, which I cannot convince myself to stop thinking of as “lilypad”.

The immense level of organisation required for this conference only really hit me when I reached the registration desk . Every attendee has their name tag in a little plastic wallet hung from their neck with cords labelled “linux.conf.au 2004”. The wallet contains a mini-progamme, a second nametag to go in the conference bag’s name placeholder, tickets to the dinner for those who ordered them, and a voucher for icecreams. Several days of solid work probably went into that alone.

All has run smoothly so far except for the wired network for attendees (wireless was a-go-go) which didn’t come up until this afternoon. But it was up in time for spiv to start on his Python miniconf talk.

spiv and I have elected to share a double room in a pub rather than stay in the college — it’s a nice room, but we’re yet to see how noisy it will be.

Life; Contributions

Life

After eighteen years in various schooling systems, 2004 will be the first year since I was 4 that I am not going to be a student.

I’m taking a job as a research assistant — thus breaking from the tertiary education system not at all — from mid-January until August. It will be my longest full-time work stint ever. Then I’ll break it for a few months to go around the world, and then who knows?

Contributions

When I was learning BASIC (I was 8), I ran right into a wall when it came to thinking of stuff to program. I taught myself conditionals, loops and the basics of arrays out of a helpful little book that came with the computer, but when it came to making the leap into my own projects I was always stuck for ideas.

Obviously, not being 8 and also not being completely technically isolated has improved things somewhat, but there are still only two types of programming projects I really do: web projects and projects associated with a job or school project. Presumably the scale of the latter will only continue increasing, but I get the impression that I’m not likely to be a big contributor to Free Software in the “cool and exciting new stuff” category, at least, not in the immediate future.

In the last few weeks I’ve become the documentation editor for the Twisted project. So far this has meant very little, but apparently it means effectively that when it comes to documentation, it’s my vision.

This is a little disconcerting, since I don’t know the codebase outside the Twisted Web system at all, and I know only pieces of that. It is resulting in me producing documentation at the rate of about a paragraph every few hours, in which pace there needs to be a fair improvement before I will produce respectable amounts of documentation and of edited documentation. It is, however, a task (unlike software ideas and software design) where I have reasonable confidence that I can ascend the learning curve fairly quickly.

I wish I’d…

[cross-posted from a mailing list, with some editing]

Having finished honours, I’m reflecting again on the extent to which I did or did not waste the last five years of my life.

I spent those five years doing a B Science (Hons) and B Arts. Here’s what I got out of it: a maths major; a comp sci major; a philosophy major; a linguistics major; a semiotics major; 1 year of chemistry; 1 year of modern history and computing (not “computer science” because I switched universities) honours.

The semiotics major was a complete farce, it’s a so called “cross-listed major”, and I had to take one English subject and three linguistics subjects to get it. I did it purely so I could graduate with five majors.

My subject choices were OK considering what I knew about my interests when I left high school. I knew that I was a relatively talented maths student, a good essay writer, and that most courses were relatively interesting and easy to do well in. The first and last pieces of knowledge took a beating at university, but I’m still a good writer, at least compared to computing students in general.

However, with the benefit of hindsight, there’s a bunch of (completely incompatible) changes to my program I wish I’d considered.

Doing normal level subjects rather than advanced level for third year maths. I wasn’t prepared to work hard enough to do well in the advanced subjects (and even if I did work hard I may not have had the ability — those courses are really there to groom the honours candidates). I probably would have both done better in the normal level subjects and enjoyed them more. That one I should have realised after second year.

Exchange the philosophy major for a history major. This one requires hindsight, because I didn’t really get into history until fourth year when I took two semesters of history. But with the benefit of hindsight, I would have really really loved doing three years of history, whereas I ended up being a bit blah about philosophy. History is more concrete and also more human.

Fortunately, history is something that is fairly easy to continue learning about without academia’s help (I preferred academia only because USyd‘s modern European history people were so passionate and informed about their research — if you have a chance take their courses).

Dropping the Science degree (possibly exchanging it for Liberal Studies which is the 4 year version of BSc/BA). This one requires hindsight. From what I knew about myself after high school, I was a science kiddie. As it turns out, my interest in science is mainly a layperson’s interest, with the exception of computing.

I’d have to drop the maths major to do this, but that would be OK. I didn’t get much out of university maths (in fact, I feel rather fraudulent about getting the major). I’d probably also drop the semiotics major, but that would be OK it would mean that I’d never have had to take courses in systemic functional grammar (here’s a tip: don’t go there).

Completely change specialities and become a historian. This would have meant doing a BLibStud or BA with a history major.

Even in hindsight this isn’t such a great idea: I would either have to give it up after the BA or after a PhD — there’s very very few jobs for historians. It might still be worth it even given that, but I don’t think I’m going to find out.

To do this, I should have done a European language too.

Completely change specialities and become a human biologist/psychologist (probably a neuropsychologist). This one I actually did consider after first year, very very briefly. The thought of needing to redo first year put me off it. I wish I’d thought about it a bit harder.

When I consider all this, it means that the only subjects I’m totally happy about choosing are computing and linguistics (sucked at chemistry and maths, semiotics was a wank, philosophy was a bit dull, got into history too late). That’s not to say I’m really happy about the computing either, I found almost all the subjects either hard work or dull, and all basically passionless. The reason I’m still glad I did it is that it let me do the honours year I’ve just finished. That honours year was also hard work and at times dull, but I think it’s the best decision I’ve made during my entire degree.

Saturday 15 November 2003

Just passing by…

This year I:

This year I failed to:

  • contribute either code or documentation to any Free Software project;
  • finish my HOWTO; or
  • hold regular meetings for either of the user groups I notionally run.

Very poor form, three out of ten.

Linux and viruses

The comforting "noone will ever bother writing Linux viruses" folklore is still floating around the net, but judging from how much viruses have annoyed me in the last couple of months, one of the premises is now false.

There are two reasons explaining why Linux will never have a major virus problem usually given. The first is the heterogeneity of Linux programs, meaning that its hard to write a virus that Linux users can catch, the second the inability of an unprivileged user to successfully execute commands that do serious damage to their hardware or operating system, meaning that once caught, the virus can’t do anything serious anyway.

The former may hold in a grand World Domination scenario, although I suspect the demands of corporate user support would force a convergence on several, or perhaps one, standard corporate Linux desktop. At present however, it’s certainly the case that Linux run a wide variety of the most common applications exploited by virus writers — mail readers, browsers, office applications, and the result is that there aren’t many widely catchable Linux viruses around. It may also be the case that these systems trust user input less than the current MS Windows equivalents, but time may tell otherwise.

The latter, however, seems to be completely irrelevant in the modern virus-ridden world. As far as I can tell, at the moment most successful viruses do not carry particularly harmful payloads, or, if they do, the effect of the payload is incidental to the havoc that the virus creates. The real problem the viruses cause are overloading common resources (mail servers, usually) to the point where they become more or less useless. And since at present, the standard privileges of a Linux user account normally allows it to send and receive data over the Internet, if there was a widely catchable virus for Linux, normal users would have more than enough privileges to propagate the virus, and bring down mail servers and hubs without the virus needing to go near the root account.

Moreover, Linux user accounts also have all the privileges they need to contribute to the problem by generating secondary traffic via mail bounces whether they caught the virus in question or not. In fact, most virus bounces are generated by slightly out of data server software that is not yet aware that any up-to-the-minute virus forges its origin, but as a general principle, you no longer need to be infected to be part of the problem, you just need to trust mail headers a little too much.

So the old adages no longer apply so well. The Linux desktop remains relatively free of catchable viruses, but Linux systems are as vulnerable as any other to the immense abuse of common resources and standard protocols by modern virus writers. In other words, if I receive 500 viruses in a day, it’s not the threat of being infected that’s particularly annoying, it’s the receipt of the damn viruses.

Writing a good online diary

Assuming that you have good reasons for keeping an online diary, there are a few things you can do to improve your chances of making your diary readable. I’ll begin by stating the general principles, and then by reviewing a few breakable rules of thumb that, in my experience, are good indicators of an interesting diary.

The general principle of good writing is to determine your audience, and write for them. An online diarist will normally encounter some tension here — the diarists are often writing partly for themselves or their future selves, and the desire to record events that were important to them may conflict with the desire to record events in an interesting way. You will need to decide to what extent you are intending to resolve this tension in the audience’s favour.

It is the case, if I am part of your audience, that your choice of material is generally meaningless to me, and the use to which you put your material is everything, which is why most of these tips tend towards the stylistic.

Tell a story

Of the beginning, middle and end structure, online diarists struggle most with the ending, often because they don’t know it yet. The most successful stories are often trivial anecdotes. However, there may be an ongoing story that you don’t want to record only in hindsight. In this case, you will want to return to it periodically.

It is very very hard to make a story out of emotions you are still experiencing, unless you’re a brutally honest and particularly insightful person, so if you want to write a powerful emotional entry, you may be better off writing an entry that looks back a year or more.

Write long entries

A long diary entry gives you the chance to tell a story, rather than writing an instant message to your readership, and most good online diaries contain at least the odd long entry scattered in their archives.

Very few online diarists seem to be poets, and so generally very few short entries will not become the highlights of your diary.

Drama is the biggest online diary cliche

If your entry is an allusion to misery that only your three best friends in the world can comprehend, your entry will be boring. The high points of an online diary are very seldom the most dramatic entries, save in the case of diaries that resemble an emotional car crash. For the rest, you will need to hone your ability to make the prosaic interesting, because it is actually much easier to do that than to make secretive drama interesting.

Make your entries complete within themselves

Again, if your entry is full of allusions to events you cannot describe in full, and people you cannot say anything about, and feelings that you are unwilling to share, your entry will be boring. If you need to censor something that is crucial to understanding a story, you may as well censor the entire story. In other cases, tell the story in such a way that it is a complete anecdote, even if it is not totally uncensored. If your reader can tell that you’ve left part of the story out, your entry is not as good as it could be.

A subtle style will serve you well

A diary with a unique voice is often an interesting read. One of the easiest ways to achieve this is to let your spoken style influence your written style. It should be relatively sparing, but a touch of spoken mannerisms in a diary makes it more readable.

Why keep an online diary?

I think there are several bad reasons to keep an online diary, including using it as a poor substitute for a paper diary, using it to experiment with hyperlinking writing, or using it as a forum for your opinions. Each of these needs is better served by alternative forms. On the other hand, online diaries are maligned as being necessarily uninteresting due to their trivial nature. Trivial and uninteresting do not always go hand in hand, as diarists and letter writers have appreciated for hundreds of years.

The online diary is a format held in peculiar contempt, for several reasons. Most of those reasons are due to the usual meaning of ‘diary’ — that is, a more-or-less secret record of one’s life, written, presumably, for your satisfaction alone, and deriving much of its power from the fact that it has no readers, freeing the author both from the stylistic constraints of writing for an audience, and from the judgements of that audience.

The online diary format naturally loses much of that power. The disadvantages of the online diary format compared to the paper diary format include less honesty (or less sweeping honesty anyway), and much less privacy. It also leaves the author wide open to charges of narcissism, since they are writing about themself for an audience of other people.

So, let’s free the online diary from those constraints. You do not keep an online diary for the same reasons you keep a paper diary. The disadvantages include a lack of complete honesty and privacy. If you want to write with complete honesty and privacy you should keep a paper diary or correspond in private with trusted friends who will destroy your missives rather than hand them to anyone else.

I also suggest that you do not keep an online diary in order to experiment with stylised writing, because you’re likely to attract the wrong audience. Audiences seeking experimental writing styles don’t expect to find it in online diaries, and audiences reading online diaries don’t expect highly stylised writing, or content that deviates radically from the normally online diary content (that is, a person’s record of their life).

Most of the good stylised writing I’ve seen on the Web has been noticably free from the constraints of chronology. Online diaries are tied to a date based format, and people who are interested in telling stories or linking ideas together would be better off with a more integrated site, all of which is an ongoing work. I consider gruntle, raze, and the Jargon File to be excellent examples of the power that loosely organised, heavily hyperlinked sites offer to writers interested in experimenting with style and content that doesn’t fit in a chronological format. If you want to tell stories, I highly recommend this form over the online diary format.

If you’re interested in writing opinion pieces, rather than snippets of your daily life, I suggest you consider blogging, rather than keeping an online diary. Blogging and online diaries are both presently primarily chronological formats, and there is a gray area between them, since people use the same tools for both. The primary distinction between the stereotypical blog and the stereotypical online diary is the amount of linking in the former. Blogs link to websites, link to each other, comment on each other, discuss each other, discuss links, and discuss ideas. If you’re interested in taking part in intellectual crossfire, the blogging tools and communities will be much more satisfying than the online diary format.

Where experimental sites link internally, and blogs link externally, online diaries are largely hyperlink-free. The form requires authors to relate chosen aspects of their life on a loosely chronological basis. They attract readers who like to follow simple story lines, who like to feel involved in the lives of others. As often as not, the readership is made up of people who know the author and people who would like to.

So, what are good reasons to keep an online diary? If you need pre-digital examples of online diary-like writing, consider letter writing one hundred years or more ago. Letters of this time were often gossipy, personal, entertaining, bitchy and informative. In retrospect, some of the writing in informal letters is not only historically interesting, but very very good. So, if you think that one hundred years ago you would have liked to sit in your drawing room and write to your sister in the next town about your housekeeping, giving interest to the mundanities of your life, then online diary writing is probably a format you would enjoy.