Tuesday 22 June 2004

Now that I’m hosting this in the same place as my main log, it wants to become my main log’s brother. It wants me to tell it all about whatever spiritual hiccups have smeared my professional programming today. It wants to be my tech confessional. But I’m refraining. Perhaps it might get lucky and be used as a non programming tech log one day.

Currently, I’m struggling with Backwards design issues, specifically storage issues. This stuff, while not quite as dull as rule based information extraction or user input validation, is still pretty dull, and every time I think about it I think about downloading Zope 3 and using that and then I come to my senses and realise that I’d have to rewrite the whole thing.

It’s a backend problem. puzzling.org has always been pretty much a simple tree in structure so the filesystem makes sense as a storage mechanism. Except when it doesn’t, in precisely those cases when puzzling.org stops looking like a tree. For example, consider the logs. their tree structure is: root, year, month, day. However, I want the leaves of the tree (the entries) to be a doubly linked list, ie to have previous and next links.

I can search the tree in this case (if I’m looking or the entry before the 1st of January, I crawl up to the root and down into the previous year to find the 31st of December), but if I decide not to, I need to calculate some data and store it somewhere. Where? Well, I only have made 566 diary entries over the past three years, I could just about store the list in memory. But if I don’t, I need to figure out where to put it.

The case for a links blog (which doesn’t exist yet) is harder. If it is to look like my del.icio.us page, each url needs to be associated with a title, a description and a list of categories. But the sane web tree configuration is root, category, url, (as opposed to root, url, category) which means being able to make the "what urls are in this category?" query easily. When urls are in multiple categories, how do you represent that in the filesystem with a < O(n) complexity query time (n being the total number of urls)? Symlinks?

Well, it’s a trick question as far as I can see. The filesystem’s fairly strict tree structure and limited query mechanisms mean that it isn’t a good backend for this. Which means databases of course. Which means researching databases and choosing between them and learning to use my choice and dependencies (because Nevow isn’t a major dependency, no!) and ew. Hmph. I like the filesystem.

Wednesday 16 June 2004

So Dave Winer has pulled all (most?) of the free weblogs.com content. Authors can, at some point, take advantage of a one time offer to get a copy of their content. Nice Dave, good boy. In the mean time, criticism is supposedly muted because people’s content is being ‘held hostage’ for at least the rest of the month. (I don’t actually know about that, all I’ve read is the criticism. I haven’t bothered with the nicey-nice stuff.) [Update in the interests of completeness: there is now a transition plan to 90-day free hosting on buzzword.com. Content has been restored.]

A couple of things concern me about this. One is this persistent notion that’s probably been around since the beginning of time and will probably be around until the end that having the right to do something is a justification for doing that thing. (Hint: "but I’m allowed to do that" is a non-defence against criticisms of your failures of courtesy, generosity or general personability. The whole point of that stuff is that it requires you to do more for others than the bare minimum that you’re compelled to do.)

The other is this notion that if you’re getting something for free, you deserve what you get when it all turns sour. As others have noticed, this is the same stuff that was levelled at people who were shocked about Movable Type’s new licencing schemes. Mark Pilgrim re-wrote that debate in his terms in his Freedom 0 essay. What the people who wanted something for free did wrong wasn’t trying to get something for free ("something free", if you don’t like people playing fast-and-loose with the multiple senses of "free"), it was not getting a guarantee of that freedom. Hopefully Shelley Powers can do something similar with her thoughts on The Value of Free:

There’s nothing wrong with not doing the free thing. However, there’s also nothing wrong with the people who accepted the free thing, freely given… Each person who accepted these free things also gave something back in return: whether it was bodies when webloggers were few, or grateful acknowledgement when webloggers were many. Though those who have benefited from these free services in the past should be grateful, they don’t deserve to be called "cheap" or cut loose without warning. Free does not equate to no value.

Shelley Powers

The point of money is to abstract over some notion of value in a way that allows values to be compared. It’s efficient to be able to compare price tags. But the consistent confusion of money and the value it represents in some cases is concerning for all kinds of reasons. Limiting concern to Free Software alone, it would mean that there is no quality without money; that there are no ethical obligations without money; and that nothing of value is exchanged without money.

My personal instincts about this favour social changes that move from a rights based discussion ("I’m allowed to do this, I’m not compelled to do that") to a courtesy and generosity based discussion. What were the nice things Dave Winer could have done if he couldn’t provide free hosting anymore? What’s an ethical way to write software? What’s an appropriately thankful way to use it? I know, oh, I know that people have been talking in these terms for thousands of years too. I still wish they’d do it more often.

Sunday 13 June 2004

This thing has been around for a day and already people have asked me about comments. I don’t get asked about comments for the other log very much. I turned them on on Livejournal (this is cross-posted) with some trepidation and it’s worked out surprisingly well.

There are two main reasons I’ve avoided comments or web editing in Backwards. The first is that I’m not a big user of web editing: I’ve had too many crashes that cost me work, accidental cuts I can’t undelete, and old cached copies of the page in the form (thank you Zope 2, or was that Squid?). Plus it’s always someone else’s UI and they’ve always set something to be too small. The other reason is that input validation is currently competing with rule based information extraction (just don’t even ask) for my "least exciting programming chore" award. The beauty of writing the entire site myself is that I don’t have to check for malicious mark up, logins, cookies and other horrible things. I have all the power, no one else has any. Easiest authentication problem ever.

But it all comes down to the fact that I instinctively dislike the idea of comments on puzzling.org because it’s all mine, precious. Maybe I’ve spent too much time in the wrong comments threads, but I just don’t see the appeal of spending however many millions of hours I’ve spent this year in order to give people a forum to attack me and a guaranteed audience for their troll-fest. I want to put a click between me and my critics. Given the Livejournal experiment, this is a bit silly: people use my comments to say things like "let’s go crazy Spanish style" rather than "I will eat your young, ignorant evil-doer." Even so. Precious. One day someone’s spam robot would leave a comment and I’d feel personally violated.

There’s a pot and kettle problem though, because I prefer it when other people leave comments on (or in the case of my fellows who write their own CMS, write a comments system and then leave it on). There’s a certain social niche comments fill. Writing an entry to say "happy birthday" or "wasn’t it a nice day?" in response to other people’s entries is a noise problem more than a social activity. Sending an email works a bit better, but people are protective of their inboxes. Plus you miss out on interaction between commenters.

Wow, it really is possible to talk yourself into things isn’t it? Good thing I didn’t try and balance out the pros and cons of writing input validation, or I’d be spending today adding a comment facility to this thing. As it is I need to add some features for Andrew so that I can acquire my first user.

Saturday 12 June 2004

The extended absence of advogato.org has finally goaded me into doing what I’ve considered doing for ages on and off: moving my tech log to a server I control. I’m sure I’m far from alone too, especially since advogato.org posters showed up frequently on the Planets. I may work out some way of cross-posting, but I’m not sure anyone read the advogato version of this. It appears on various aggregators, hopefully they will all point at the new version soon.

Who would have thought that puzzling.org would be at all close to advogato.org in reliability?

Moving my tech log, or at least the bits of it that I had archived on my desktop, helped me iron out a bunch of kinks in Backwards too. It’s coming along nicely and maybe I’ll even do a tarball release and suggest it to the unwary on #twisted.web in a few months. Still, I had to change a large amount of code just to get it to let me use two logs with one install, so perhaps it isn’t quite that sound yet.

Incidentally, a side-effect of this is that entries I make on eyes will no longer appear on LinuxChix Live. You can subscribe to it directly if you’re interested though.

Python papers at the Australian Open Source Developers’ Conference

Heads up: A call for Python related papers for the first Australian OSDC (Open Source Developers’ Conference) went to the python-au list this afternoon.

The OSDC is between the 1st and 3rd December 2004 in Melbourne. It sounds like there will be a whole 12 hours between that and ALTA‘s summer school and workshop… in Sydney! Pfft, there’s just about time to drive between them with that kind of timing.

I’m tempted to work up a paper for OSDC, because I sure won’t have one for ALTW. It’s a pity my Python expertise is a proper subset of spiv‘s. And I’ve been doing web development again anyway, and it lacks awesomeness. Perhaps I need to develop newer and cooler Python expertise in a hurry.

Trip planning update; Travel advice

Trip planning update

Thanks to everyone who responded to the last one. It seems on the face of it that I know about a million people in DC (OK, about five), and no one anywhere else in the northern hemisphere. Or perhaps I was at fault for not saying that we are interested in adding to that itinerary, especially in North America and Asia.

If you want to try and sell me a stop that wasn’t already on the list… I want to hear from you!

Travel advice

The Universal Packing List is one of those insanely detailed things that inspires a certain mixture of awe and trepidation. Labours of love are great, but it’s amazing what people labour on!

Trip planning

Trip planning

I’ve been planning a world trip for ages, but never to the point before where I’ve actually assembled cash. It was originally planned for the end of 2001, when spiv finished university and I finished my comp sci and maths degree &mdash clearly that never happened.

However, this time I have funds earmarked. and spiv has funds set aside through the Nature of Spiv, which involves always earning twice what your needs demand, or alternatively desiring to spend only half of what you earn. And there’s some odds in favour of spiv being actually able to work on the road and therefore able to come, although we may well be misjudging.

Here’s the rough schedule, open to change by up to a month in either direction at this stage, and subject to the deletion of entire continents at will:

  • mid September-early October: North America. Definite stops: Pan Alto (Stanford), New York. Likely stops: DC.
  • early October – November: Europe. Definite stops: London. Likely stops: Spain, Czech Republic, Latvia.
  • late November (in the unlikely event we can afford this): Asia. No idea what we’d do here. Well, lots of ideas, no commitments. Japan is the most likely of about a million choices.

Assuming funds are available, and I’m sure I am being laughable optimistic, adding two or three more stops on each continent would be really great. I’m toying with driving across the USA, but I think it’s just the challenge of reversing all my reflexes, and isn’t as good an idea as it sounds.

Where my loyal readers come in

Here is your once in a lifetime* opportunity to influence our itinerary! If you what to put your oar in concerning any of the following, please do:

  • travel tips (no, seriously, I love that kind of thing, unload your advice onto me);
  • must see countries/towns/secessionist villas that somehow have been left off my detailed plans above;
  • cheap places to stay, with convenient access to natural beauty, art museums, sites of interest to a nascent WWII nut, Twisted hackers, LinuxChix chapters, bloggers I want to fangirl or weirdly cheap pre-winter snowboarding sites with lots of beginners runs; or
  • people we know of who have floorspace available in any continent mentioned above and are willing to have us stay. (I hope this goes without saying: noone should feel obliged.)

Our itinerary, at least until Asia, is going to be influenced equally by the properties ‘cheap’, ‘good’, and ‘proximity to people we want to meet’, travelling salesman problems and “pick any two of three” taunts notwithstanding.

Please note that a hypatia lifetime, patent pending, is a duration of not less than about three years. I’ve got enough upheavals planned for the next three years without suddenly jetting around the world again. Moving is conceivably a different matter.

Backwards vATTIC

Backwards vATTIC

Backwards is the backend system for puzzling.org that I’ve sunk somewhere between 60-100 hours of my life into. Of all the coding projects I’ve ever done, it contains the single largest set of ideas in one body of code. It’s also single-handedly tripled my knowledge of Twisted style asynchronous programming.

Unfortunately, all that was the means to an end, and the end is that, for the foreseeable future, I’m left with 2000 lines of unusable code and a website which I’ll be continuing to maintain entirely by hand. I’m not a very means-to-an-end type person either: my projects are fuelled by delayed gratification. These days I’m losing at the reward end of all my projects.

I’m not at all tempermentally suited to this kind of thing. Mind you, the intersection of the sets of things I’m good at and things the set of things I’m tempermentally suited for remains at cardinality one ({reading}). Intersect that with the things someone will pay me to do, and we’re back to the empty set.

Well, so much for Backwards. I suppose I’ll dig it out in six months or so, re-write it to use whatever the Nevow design pattern is at the time, and use it as a platform to document my search for an alternative career or ongoing love-hate relationship with programming, or something. In the meantime, no new purty stylesheets for you!

live.linuxchix.org and planet.twistedmatrix.com; Graduation

live.linuxchix.org and planet.twistedmatrix.com

For the readers of my two aggregators, apologies about the downtime (or rather, misconfiguration) this morning that resulted in these sites (and others) vanishing for a time. It’s just as well we aren’t paying for 99.9% uptime, because I think our host would have lost it overnight by replacing our virtual machine with a cPanel!

Graduation

Graduated (again) this morning. It was a hot day for academic dress 🙁