Older blog entries for snim2 (starting at number 8)

9 Dec 2004 (updated 9 Dec 2004 at 17:19 UTC) »
UML
Steve Cook has a particularly interesting blog post on UML and semantics. Steve points out that UML has no objective semantics, but that each team should decide on a shared semantics for their own diagrams. That semantics is usually written in prose.

All very sensible, but it makes me wonder (again) what using UML really buys you. I guess if you could write a formal semantics for the diagramming elements you planned to use, it might be possible to generate more sensible code from the diagrams. Steve points out, though, that such a formal semantics clashes with the way people think. And that, I reckon, is the whole problem with UML. In the past (and the present, for some of us) we all used to write whatever gibberish we liked, not necessarily consistently, and it meant whatever we wanted it to mean. Now we have a universal syntax (though no universal semantics), life's a bit different, and diagrams are no longer thoughts written out loud. Now our diagrams have to serve several purposes: to help us clarify design thoughts, to communicate designs to others, to generate stubs, and loads of other stuff. Can one syntax or tool really do all this? I suspect not, and I think Steve's point is the reason why: people don't think unconsciously like they do maths consciously; and that's always been a problem for Computer Science.

Weird Python bug?
I've been writing some nice Python code for work and come across the single weirdest bug I've ever seen or heard about -- maybe I'm just naive! All my Python files are scripts, just so I can run each file to do it's unit testing. I usually say #!/bin/env python at the top of each file, but #!/usr/bin/python replicates the bug just as well.

The bug is this: for one of my files (and only one) if I type at the command line $ python filename everything works fine, but if I type $ ./filename I get this error message: : No such file or directory and nothing else.

I've tried commenting out the entire file, renaming the file, running cat -v to see if there are odd non-printing characters (there aren't) and now I've run out of ideas :-(

Weird Python bug update
Since posting this a bunch of extremely nice people have emailed me to say that this bug is caused by 'doze-like new line characters at the end of the #! directive. D'OH! Thanks to everyone who wrote to me...
Life...
Er, life's all right atm although nothing wildly exciting's happened. Maybe that's a good thing ;) This Christmas John and I are going to be visiting friends, which should be excellent. It's amazing how long it's been since we saw anyone outside Coventry. Eek!

Well, for a number of reasons, today has been a Good Day(tm) at work, although I'm going to miss kirby a lot while he's working in Hong Kong. Lucky £"$£"!

Today in Britain people are celebrating Guy Fawkes Night. Guy Fawkes tried to overthrow Parliment by blowing it up in what is now known as the Gunpowder Plot. All around the country people light bonfires and burn efigies of Guy Fawkes (who was burned at the stake as punishment for treason).

Apart from the obvious parallels between the politics of the last 30 years and various other world events, it still strikes me that it's a bit odd to celebrate some guy being burned to death. There's also a bit of friction about Guy Fawkes being Catholic and even in very recent times there's been a bit of agro in various parts of Britain over the whole denominational thing, which isn't nice at all.

So, I dunno what point I'm trying to get to here. I usually go out and watch the fireworks, but somehow this year staying in seems to make more sense. Or maybe I'm just a boring old git.

Wow. I really should post more.

OOPSLA'04
My Colleague Steve Lakin and I spent last week at OOPSLA'04, which was pretty amazing, as was seeing Vancouver. Alan Kay's Turing Lecture was great, although I can't see myself using Squeak too much. I did have a play with it though and it's pretty neat. My boss' mate Steve Cook was there with a whole posse of M$ people, mostly advocating this model-driven architecture & development thing. Some very interesting thoughts on that and Steve's panel discussion was good fun. At the end of it all, I still find it hard to believe that people really write UML before they write code stubs. Somehow pen and paper seems so much more comfortable than a kb and mouse, or maybe I'm just a recalitrant luddite (who can't spell).
Other stuff
Other stuff in the group is going well and since term started it seems like the Uni is ten times louder than it was a couple of months ago. I guess that's a good thing :) More importantly, the two chickens at home seem pretty happy and continue to lay nice eggs. If you don't keep chickens already, consider getting an Eglu !
Life, etc.
Long time no diary. I've been off work moving house, painting, ripping up carpets and generally not hacking. Back now, so hopefully there'll be a bit more progress on COFFEE and other things.
Novel writing software
I've been thinking of spending my spare time in November participating in nanowrimo. There's lots of advertising for newnovelist at the moment, which looks interesting but only seems to run on 'doze. Surprisingly (perhaps) there don't seem to be any Libre software versions of newnovelist, or anything really like it. At least I can't find anything. If anyone can put me right here, I'll be very pleased :-)

I'm really in awe of people like salmoni who can juggle work, writing, other hobbies, a social life, and a seemingly endless list of interesting commitments. What's the secret?

CovLUG
Well, I did make it to a LUG meeting, so no one needs to punch me after all. It was pretty good fun, and nice to see that other people are keen on seeing Libre software make an impact locally. Bernard is planning an event to showcase Free software to local business people. Sound like fun, and we all had a few ideas for making it a success. I'd be keen to hear if anyone here has some tips.
Work and stuff
Work is feeling a bit more frantic now I'm close to moving house and going on holiday. Not much progress with COFFEE. A goodly amount of time today was spent fighting with some embedded systems design software. After so long working purely with software, it absolutely boggles me that hardware is so insanely complicated.
COFFEE
Well, not a hugely productive day. COFFEE is plodding forward. Big news is we can now test the app in its entirety: it's nice to see all the disparate parts coming together, with no nasty integration problems :)

PhD
PhD work is starting to pick up. I found a really nice emacs mode for XML DTD's, called tdtd. It kinda reminds me that I really ought to learn how to use some of emacs' more advanced features. I can't help feeling that emacs is the sort of app that you could use for a lifetime and still not fully exploit.

I'm seriously thinking of implementing my next bit of PhD work in Python, rather than SML. ocaml would be the best of all possible worlds, although I don't think I have time to get to grips with it, right now. So, the plan is to implement the current stuff in Python and maybe rewrite some of it in ocaml. There's a small amount of DB munging and other stuff that might remain written in Python, but the nice thing about ocaml is that it's a lot more bullet-proof.

Life, etc.
Well, the major event of the day (well, yesterday now) is that it looks like we'll be moving house at the end of next week. It's going to be a huge upheaval and the new house needs a bit of work. Unfortunately, I'm really busy at work, so in some ways it couldn't come at a worse time. I'll be able to take some time off, but I'll still have to drop in to see students and stuff like that. Argh! Stress...
COFFEE
Well, not much to report, generally. One problem kirby and I have had with COFFEE is within reach of a neat solution, all thanks to Python's neat string formatting operations. Thanks to John for pointing these out (and making the other sort of coffee).
CovLUG
Coventry, amazingly, has a LUG. I've been meaning to go to a meeting for months, but never seem to make it. I'm determined to be at the next meet on Tuesday. Someone punch me, or something, if I don't make it.
Life, etc.
The next few weeks are looking quite daunting, ATM. I might be moving house soon, but we've no idea when. Apart from work on COFFEE, and various other jobs at work, I need to make some serious progress on my PhD. The first job will be to tidy up some XML DTDs. I've been looking around for some nice tools to assist in writing DTDs, but never found anything much nicer than emacs with pgsl-mode (which doesn't seem to do syntax-highlighting for XML or XML DTDs). If anyone has any suggestions, I'd love to hear them.

Right now, I'm not sure if everything's going to work out. Not least because my sleep cycle has been completley up-turned by the 'flu I had the other week. Grr!

Stuff...
Not much to report...I'm almost over the 'flu I had last week. COFFEE is coming on nicely and I'm hoping to press on a bit faster, now I feel vaguely human again.

SCO vs. Everyone Else
This whole thing is so hugely depressing. I wasn't going to write about it, but then I was totally boggled by ESR's open letter to Darl McBride. IMO some of ESR's writing can be very emotive, to the point of being quite irrational. This latest open letter seems to be a new archetype. I can't believe that this missive will do much good, and I'm not sure I feel comfortable that ESR claims to speak for me.

M$ in Uni's
No surprise that I'd be interested in the recent MSNBC article on using M$ products in education. The argument presented in the copy is a bit misleading, I think. The author says that the problem with using M$ products is that it breeds a generation of graduates who will create or perpetuate an M$ monopoly. That's true enough, but it's also true if Uni's only using Linux, or anything else. Heterogeneity is a Good Thing(tm), but I still feel that the real issue here is spending gigantic amounts of public money on M$ licenses, when it might well be cheaper to shell out for customer support services for Libre Software. Of course, those Uni's that get huge donations from M$ won't care, but but the point is that this is an issue that pervades the public services: education is just the tip of the iceburg.

As for the issue of research autonomy, I think I agree with Rob Pike.

Despite all that, it's the last paragraph that is the most spine-chilling:

At a question-and-answer session between the academics and Gates, one professor asked the Microsoft founder about his views about the study of information technology, a part of computer science that emphasizes on how documents, spreadsheets and other data should be handled. What kinds of technologies should students majoring in this subject be taught?

Gates replied quickly and with a smile: ``Microsoft Office.''

Certs
Thanks to everyone who's certified me!

*yawn* 2am hacking...I'm beginning to feel like an undergrad again :-)

COFFEE is coming on nicely, and Python is much, much more pleasant than I thought it would be. The lack of static typing hasn't bitten me yet and the one-module-per-file thing makes me feel a lot less guilty about writing code that doesn't feel very OO-ish. Not that OO isn't nice, but sometimes a parser should just be a cigar. Er, parser.

Gripe-of-the-day: Galeon (lovely as it is) is annoying me. When you open a new tab, as soon as it has loaded it grabs the keyboard focus. I've been bitten by this so many times today. Grrr to Galeon. I've only switched from Mozilla because I wanted something with a smaller memory footprint, but the HCI issue is slowly changing my mind. No doubt kirby will tell me to switch to konquerer or opera :-) Maybe it's fixed in an upgrade, or I should pull my finger out and write a bug report. Guess I'm just being a bit lazy.

Current-musical-obsession Polyphonic Spree.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!