ring.ruleAll() – reference ring not found

Relevant examples are of great help when teaching. I was criticised by students this year for overusing “foo” and “bar” as variable names in my C couse. More imagination is needed, apparently.

Here’s a prime example which I shall recommend to Mr Whyley that he use in his Object Technology course: Rings as objects. And the initial comment to which that one refers..

Courtesy of TR.

Now gracing the bedroom wall at meatspace Gimboland…

'Frau Am Meer' by Karin Volker

A tale of detrimental adaptation to local conditions

Bash logic at work yesterday, after our return to Swansea: Something was needed from the attic room, up two flights of stairs.

Bash: “I can’t go upstairs!”

Me: “Why not?”

Bash: “I’ve been living in a bungalow for a week.”

We interrupt this broadcast…

Just one more quick post before the Christmas shutdown – honest! Look, I’m ready to go, it’s Bash who’s in the shower. OK? OK… So anyway, this is cool: four hours of satellite broadcast intended for mainland China was replaced with a program concerning the outlawed Falun Gong movement. So there we have it, kids: you’ve seen how it’s done in the movies, now get out there and broadcast. ;-)

A Merry IICF to you all!

The ultimate Christmas gift for your local cultist: Cthulu slippers [found].

And with that, I’ll say Merry Christmas to my loyal readership. We’re off to Cornwall for a week tomorrow, to find out how Mum deals with a Vegetarian Couple’s First Christmas – should be fun. I’ll be on the end of a telephone line, so probably not much Gimboland. Back around New Year. Namaste one and all…

Barbara: ignore this post until January!!!

Incredibly hard but cool game (Pixelfield).

How to win friends and influence people

Summary of the book How to Win Friends and Influence People.

I was talking about biscuits, Bash…

This is a great idea but that shelf should be bigger if you ask me [null]. Cue Bash to look at me sternly and say “three is enough for anyone”. Yes, well. Quite.

Now we’re here, maybe it’s time to move on…

It’s a long long time since I read Slashdot with anything approaching regularity, so I rely on TR to tell me when anything interesting comes along.

This is interesting: Comment Spams Straining Servers Running Movable Type. Typical. Well, nothing here yet. I shall monitor the situation.

When I was in the early stages of migration, I googled for movable.type.sucks which led me to this at kuro5hin, mainly an amusing and venom-fuelled rant (which somehow reminds me of this classic gem) but has some interesting points to make along the way. On the other hand, the “written by designers not computer scientists” argument doesn’t completely hold water when you look at a lot of the crap that’s produced by people who should know better.

Unfortunately, the fix recommended by SixApart, namely “enable dynamic generation”, is no good for me because it seems badly broken. In particular, some plugins I rely on a bit don’t work dynamically – maybe I can work out why but not right now.

Or maybe I should migrate to WordPress. This guy thinks so.

Kinsey vs the anti-sexuals

Interesting review of a movie about Alfred Kinsey at Alternet [via pursed lips].

It’s depressing to see him vilified by the kind of people who think the world needs an organisation called “Restoring Social Virtue and Purity”, and in light of recent (and ongoing) opposition to the theory of evolution in America’s Stupidity Belt, I found this quote from the article unwittingly on-the-mark:

It was the apparent impartiality of his data that so shook America’s settled notions of sexuality, as deeply as Darwin’s theory of natural selection did the literalist biblical notions of creation.

Ultimately, I’m just baffled: Why does America have such a love affair with violence, and such a hatred of sex? And with the rise of evangelical politics in the most powerful nation on Earth (for now), how much worse can it get?

Isn’t it wonderful when…

… you get your heart’s desire, and nobody gets hurt.

Welcome to Boobtown

Bash has just told me that (so they say), Mumbles gets its name from the two rocky outcrops at the headland, pictured ici, via the French word mamelles, meaning breasts. See the resemblance?

I’m so happy.

Big chunks of water at minus 70

The Guardian has a story about an iceberg, B15A, which was first mentioned hereabouts in Gimboland’s 20th post ever, February 2001. Nice to know it’s still going – shame about the penguins, though…

Lots more groovy antarctic images here. It’s somewhere I’d love to see, though God knows if I ever will…

IICF, Kitty!

Merry Christmas from Hello Cthulu [bash]

I have only one thing to say to you all, and that is…


So, there you have it, the whole of Eastern and Western culture summed up in the handshake which reaches out horizontally to greet another, and Namaste which reaches in vertically to acknowledge that, in truth, that there is no other.

Raise your glass to the Prince of Stories

Apparently, March 2002 was Gimboland’s top month, with a bumber crop of 89 posts – wow, I must have been really focussed on my job… Back then I was more indiscriminate about collecting things “for later” which of course I never went back to. For example, this post regarding Screen Dream, a webring for online dream journals.

Now, back in my early internet days, one of the sites which got me hooked was “Brian’s Dream Log” which was here but isn’t any more, alas. It was groovy – well written, funny, interesting, a peek into someone’s mind and (I guess) my first experience of the now ubiquitous phenomenon of self-exposure on the internet. I’ve also always quite fancied the idea of increasing one’s capacity for lucid dreaming, and keeping a dream log is apparently one of the techniques which can help there.

Thus, dream logs, they’re interesting. And, sometimes, funny. Since there are only 13 blogs in Screen Dream right now, I’ve added a link to my sidebar, and might well be visiting (and linking to) some of these a bit more often. I may even join in. You have been warned.

(Note to self: stop starting posts/paragraphs/sentences with “So, “… This post had two before I proofed/edited it.)


The Soma of history – very interesting.

Toaster dmesg

Toaster dmesg, via TR.

Europe vs the USA

Europe vs the USA [via GalleryPy via dailypython].

This is also quite nice.


Gimboland gets a facelift

I’ve migrated Gimboland to Movable Type.

This has been way overdue for a long time. Since 2001 I’ve maintained this blog using home-grown code called Neomorph (written in Python, naturally), and I just haven’t had time to add any new features to it. Hence, no comments on Gimboland while the rest of the internet gets fully chatted up. Something had to be done, but what? And when?

The last straw came when I discovered mt.el, an emacs module for making and editing MT entries using everyone’s favourite text editor/chainsaw combo (no pansy-assed through-the-web blog editing for me, no sirree!). Finally, a few weeks before Gimboland’s fourth birthday, it was time to Take The Plunge.

So here we have it: the all new Gimboland, with comments, categories, a new look, and much more CSS than before. Please let me know what you think – now that comments are finally here, I’m eager to read them and find out who actually reads this damn thing. Oh yes, and Bash tells me the thing she likes least about the new design is the new font (Georgia) – although apparently it’s OK on the Mac, so maybe I should just ignore her. Is she right, or is she to be ignored?

My next big task will be to update the image gallery to use something similarly marvellous. All suggestions welcomed – at the moment gallery seems to be the main contender.

Making the change has been a fun process. Here’s a small random list of interesting things I’ve found or done along the way:

My archives all had nasty old “Blogger style” filenames (such as 2002_10_01_gimboland_archive.html), whereas MT uses a format like 2002/10/index.html which is, frankly, nicer. I was worried about this change – what about the millions of people who’ve linked to stories in the archive? Obviously I owe it to my public not to break things, so how to solve this? Well, a little reading (here and here, specifically) later, I now have lots of RedirectPermanent directives in my .htaccess file linking the old to the new – problem solved. Aaaah, Apache.

With Neomorph, all my Gimboland posts lived in a big (824Kb at last count) plain text file. In MT, they live in a database, of course. Gladly, MT has the ability to import from plain text. Naturally the MT import format isn’t the same as the Neomorph format, so almost my first task was to write a (python) script to convert one to the other. It being python, this was easy. For posterity, I’ve added it to the Neomorph tarball.

Useful MT plugins: Amputator, ArchiveDateHeader, BlogCopyright, SafeHref, W3CValidator (very nice – only prints badge at bottom of page if page really is valid; wish there was one for CSS as well).

While I was at it, I changed the Gimboland search box (in the sidebar) to use Google instead of the old Atomz thing I’ve had there for years. Surging forward into the twentyfirst century, eh? Dave would probably tell me I’m migrating to Google just as Google’s beginning to get crap, but I’m not ready for such heresy yet, so it’s fingers in ears all the way.

I’d just like to say…

I’ve been really getting into using pushd and popd lately (que?). Yay stacks.

The exception which proves the rule

So says Bash, while listening to the very happy “Fast Lane Jive” on the African Footprint soundtrack:

“It’s impossible to listen to a penny whistle and not feel happy.”

<Short pause>

“Unless it’s a sad song, of course.”

The School of Deceipt

Heh… Bash just read me the following from Alvin Journeyman by Orson Scott Card:

“Verily learned to live with constant deception, hiding what he was and what he saw and what he felt and what he did from everyone around him. It was only natural that he should be drawn to the study of law.”

Swansea University gets rootkitted

Swansea University’s front page appears to have been rootkitted at some point over the last 48 hours [via davea]:

Swansea Uni Rootkit Thumbnail

w00t. I wonder if this has anything to do with recent hacks on the uni servers, or if it’s an unrelated incident…

(Ten hours later, Sunday evening, and the server is still 0wnz3d. I guess the concept of 24-hour cover doesn’t extend into academia. Hopefully the kiddies aren’t using the box for anything nasty, like spamming…)

Hone your tools

As I chopped firewood in the back yard a few minutes ago, I remembered a proverb I’d spotted on the glorious interweb some time during the last fortnight:

If you have a week in which to chop down a tree, spend six days sharpening your axe.

I thought I’d try to find some way to relate this to programming, but frankly it seems so obvious as to not be worth the bother. :-)

Ecks Em Hell

Reading this article about how Python is not Java, I laughed out loud (sorry, I LOL’d), at this misquote from Jamie Zawinksi:

Some people, when confronted with a problem, think “I know, I’ll use XML…” Now they have two problems.

Nice. Keep it simple, stupid.

But read the following comment about how, OK, in Java, XML is a Good Thing. But for my money, that’s more a comment on Java’s relative brokenness than XML’s utility which, as the man says, is basically good for one thing: portability of data. And hey, the Unix folks knew that all data should be represented as text to make it portable back in the sixties… :-)

And this says it all about Python:

To do this, become more demanding of Python. Pretend that Python is a magic wand that will miraculously do whatever you want without you needing to lifting a finger. Ask, “how does Python already solve my problem?” and “What Python language feature most resembles my problem?” You will be absolutely astonished at how often it happens that thing you need is already there in some form. In fact, this phenomenon is so common, even among experienced Python programmers, that the Python community has a name for it. We call it “Guido’s time machine”, because sometimes it seems as though that’s the only way he could’ve known what we needed, before we knew it ourselves.

War on drugs equals better coke

So it seems that America’s war on drugs is leading to better, and more, cocaine, and discouraging Columbian farmers from growing non-drugs crops. How so, you ask? The emergence (or, possibly, genetic engineering) of a herbicide-resistant strain of cocoa means that the crop sprayers are doing the farmers’ weeding for them, and wiping out farmers who grow bananas, yucca, maize, well, basically anything else.

Of course, there is another intruguing possible explanation… Perhaps the Roundup-resistant cocoa was introduced to the system by the US. Perhaps the plan is to get all the farmers growing that strain and no other (which seems, from the story, to be happening). Perhaps this strain has been engineered not only to be Roundup resistant, but also to be particularly susceptible (perhaps the only plant susceptible?) to some other herbicide. Perhaps, when everyone in Columbia is growing the new cocoa strain and all the old ones have effectively become extinct, the authorities will switch herbicides and wipe out the entire crop in one fell swoop…

Now that would be impressive. I don’t believe it for one second, but it would be impressive.

Strong typing

Gimbo! Read this article about strong typing. (TR says it almost makes him want to learn ML, so it must be good).

Ooh, it’s all about the fact that Milner-Hindley type inference is w00ty. Excellent: Swansea’s finest at work…

20 years since Bhopal, still no justice

Next Friday is the 20th anniversary of the Union Carbide disaster in Bhopal, and there is a global day of action scheduled. If you don’t know what I’m talking about here, read this, then sign the petition.

Colour me yellowy orange

As I read this article [simon] on the opportunity the Lib Dems have of becoming “second party” in the UK, I increasingly felt like wow, maybe it’s finally time to join up. Then I read this:

They [the lib dems] are instinctively permissive, even if their brains tell them to be watchful about what they permit.

which, basically, is me. I don’t always listen to the brain, though.

Fudge pickers

So yesterday we visited the Llys Nini RSPCA shelter and introduced ourselves to a few cats to see if any would like to adopt us. I won’t bore you with the details of all the cute ickle fwuffykins we saw, but honourable mention must be made of Cornelius, the doppelganger of Buster, my first cat and The Best Cat Ever – but he probably needs to be homed with his buddy Josephine, and anyway he’d have a lot to live up to, looking like that.

In the end we’ve put our name down next to Fudge, a dainty white & black shorthair with a gammy leg (though she could still do yoga, I was pleased to see). There is a slight medical question which needs to be settled before they can release her, which might delay things a few weeks alas, but for now we’re hoping she’s the one. If she’s not, Chester was pretty cool (and a lot bigger, which my lap prefers). We’ll see. In the mean time, we can visit Fudge any time we like to get to know her better – and that’s exactly what we’re doing in a minute. Then I’m off to work… :)

Oh yes, and I saw What’s Eating Gilbert Grape? for the first time last night. Magic.

A computer trailer is no place for a kitty

w00t! The landlords, in their infinite wisdom, have given permission for us to get a cat, so expect photos of cute ickle kitty doing fluffy/destructive/insane things from now on… And if you can’t wait for that, these should keep you warm.

Gfump gfump

www.phamnews.co.ukPlumbing, Heating and Air Movement News, which, being a schoolboy at heart, made me think of farting. Fnar.

Gentle terrorism by photography

Gentle terrorism by photography: David Shrigley’s work is marvellous [will].

Favourites, if you can’t be bothered to browse: Beach Dwellers (which reminds me of “Them”, a picture by my old friend David Dickinson), One Day A Big Wind Will Come (gloriously hopeful), Imagine The Green Is Red (sinister), Sunday Adventure Club (let’s go, kids!), Landmine (must try this), and finally pumpkin (just plain old troubling).

Fuck The South

“Let the Spanish keep it, it’s a shithole,” we said, but you had to have your fucking orange juice. Absolutely fantastic. Pure distilled vitriol in its tastiest form. Thanks, Barbara…

Python interface stuff

I’m currently working on a laaaaarge and very complicated database system – a real beast. I think it’s about time I wrote some nice GUIs to help me wrestle with this beast… You know, drag myself off the command line and into the 1980s and all that. Naturally, I’m working in python, and since I’ve inherited some Tkinter based code, and it looks reasonable, I think I’ll try that out.

These things must be multi-threaded, because there are some very long-running operations taking place. Remembering I’d seen some good stuff online on this very task, I fired up the googlesaw, and found the following: A short example of Tkinter and threads by the venerable Fredrik Lundh, the classic (in that I’ve met it before, back in my Frontier days) Threads, Tkinter and asynchronous I/O from the ActiveState Cookbook (OK, I’m not exactly doing async I/O, but you could consider long-running database ops from that point of view), and finally (for now) a complete Python Tkinter sample application for a long operation, which pays attention to progress bars and the like.

Writing the words “ActiveState Cookbook” reminds me that I’ve got “The Python Cookbook” in dead tree form on my bookshelf. Maybe I should look at that too… Yep, there are a few Tkinter bits and bobs in there (and some database stuff I should probably check out). Groovy.

Bonus level, this looks cool: A Sinus Plasma, using Pygame. That takes me back to my Amiga days, when I used to watch these crazy colourful “demos” with swirly sine waves, the precursors of all the nifty visualisation plugins for winamp, itunes, etc. I always wondered how it was done – apparently it’s bloody simple. :)

Moaning about work again

Yesterday (a Sunday): at work from 2pm until midnight. Today, 10am until right now (00:50 the next morning).

I’m not spending this quality time doing research or catching up on my marking, so it must be time to exam team stuff? That’s right, kiddies. Joy… Or, to put it another way, sob.

However, my gift of a wife is hauling her purty self out of bed to come and pick me up. Don’t feel too bad: she wasn’t asleep, she was surfing the net and occasionally chatting with me. So that’s nice.

Who is Tamsin Grieg?

Tamsin Grieg in the Guardian, wittering about celebrity and the absurdity of fame and all that and everyfink. Worth reading if you’re a fan, I guess.

Python goodie snippets

A couple of snippets from the Daily Python-URL digest: closures in Python, and object orientation isn’t everything.


I am slain. :(

Thanks for the bad news, Rich…

We must all now listen to crazy breakbeat music followed closely by Gambian jazz and old 78s, in remembrance.

Sitting on a stockpile of queer smut

Check his flower pot. Check his flower pot for gay porn. Classic.

Operating Systems in Python

More project ideas for next year: further to this post about writing an operating system kernel in Haskell, it looks like some crazy dudes are doing similar things using Python. Ladies and gentlemen, we present: Cleese, and the delightfully-named Unununium [python-list].

Apparently Cleese started with the idea to “make the Python intepreter a micro-kernel and boot directly to the Python prompt.”, but it doesn’t look like there’s been any movement there over a year, and hasn’t released any files.

Unununium looks interesting, and very much under development. The introduction states that components and a unified filesystem namespace (a la Plan 9) are key goals.

OK, maybe all this is too flakey and out-there for a decent project, but nonetheless, nice to know it’s happening.

Alien Loves Predator

Alien Loves Predator [ntk]: Kevin Bacon, Swipe It.

Valid use of the blink tag

Courtesy of TR, there is one valid use for the <blink> tag

March against racism, Saturday 9th October

Images (from my phone) from last Saturday’s march against racism here in Swansea:

Marching down St Helen's Road (1) (640 x 480, 29.18 kb) Marching down St Helen's Road (2) (640 x 480, 39.74 kb) Marching down St Helen's Road (3) (480 x 640, 30.96 kb) Cheerful Cheerleader (640 x 480, 28.05 kb) Gathering at Castle Square (640 x 480, 45.20 kb) Observers (640 x 480, 33.28 kb) Swansea says no (640 x 480, 42.57 kb) Rally at Castle Square (640 x 480, 41.16 kb) Swansea Unite (640 x 480, 38.61 kb) PEAC!!! (640 x 480, 25.88 kb)

As ever, Will has got much better pictures, both technically and aesthetically.

I thought the march was a little disappointing – there seemed to be many people when we were strung out along St Helen’s Road, but when we all gathered in Castle Square at the end, it didn’t seem so large. One of my colleagues, Markus Mickelbrink, went further and said the whole thing was a waste of time, because it was a load of rhetoric about “racism isn’t acceptable, Swansea is a good place for refugees, etc.” without any thought about why, then, things like this were happening – clearly some people in Swansea (and the UK in general) are virulently racist, and do blame refugees, asylum seekers, and anyone who looks/acts different for all the ills of the world – and what do we do about that? He had a point, although I disagree with him when he says doing nothing would have been better…

Generating Python module dependency graphs

Generating Python module dependency graphs in three easy steps. Yay.

10,000 factorial in lisp

And now, in lisp, courtesy of the delightfully-named Sam Vevang:

(define (fact a b) ; where a is 1 and b is 10000
  (define (iter a result)
    (if (&gt; a b)
        (iter (+ a 1) (* result a))))
  (iter a 1))

Sam tells me that when he runs this on the STK scheme interpreter, it gives the same result I got.

Man, I really need a commenting system, don’t I? :-(

Welcome to tenthousandfactorial.com

Gimboland continues to turn into www.tenthousandfactorial.com… Peter William Lount, editor of www.smalltalk.org shows us how to do it in Smalltalk. Apparently Smalltalk’s been able to do this since about 1980. When I did my first degree, the boys doing straight Computing (I was doing Computing & Pure Maths, not gay Computing, by the way) met Smalltalk as their first O-O language, but alas I never had any serious exposure. The main impression I was left with was of every Smalltalk program being somehow an image of an entire virtual machine, which seemed odd and limiting but was probably neither (this was ten years ago, btw). *Shrug*

Moving on a few years, it had to happen, Daniel Berger wrote and told me how to do it in Ruby. He say:

Hi, I thought this might interest you. Here’s a “factorial” method in Ruby:

class Integer
    def factorial
        (1..self).inject { |f, n| f * n }

… and, with that in place, we can now do this:

10.factorial -&gt; 3628800
10000.factorial -&gt; really big number

Or, you could just do that as a standalone method, rather than defining it within the Integer class like so:

(1..10).inject{ |sum,n| sum * n } -&gt; 3628800

Yes, Ruby handles bignums “out of the box”. :) Regards, Dan

Fair enough, though to my mind this is at least as esoteric as the Pythonic reduce-based method mentioned previously. Again, provided you know the semantics of insert, I guess it makes perfect sense. For my money the Haskell version is still the nicest, just because it’s closest to how a mathematician would naturally go about defining factorial. Smalltalk comes close – it looks the part, but there’s still some odd syntax there, IMHO.

This is great. What started out as a glib comment which at the back of my mind I thought was probably wrong but hey, no-one ever reads Gimboland so what the heck, has turned into a nice little thread… :-)

Any other takers?

Domain Specific Languages

For my later digestion, a raw dump of a number of bookmarks on Domain Specific Languages and Haskell: one, two, three, four (which has many more links). Thank you.

More on factorial in Python

More stuff over at tiddly-pom on the whole 10,000 factorial thing. Julian does a good job of pointing at me and laughing (rightly so, rightly so), and there are a couple of imperative approaches to the problem suggested, including one using generators – yay.

Of course, something I forgot to point out about Stephen’s reduce based solution is that it’s a functional approach, and so has more in common with what’s happening in the Haskell version than these imperative versions. Anyway.

Don’t let it get your cursor!

Cute as.

Fast Easy Database Access with Python

Fast, Easy Database Access with Python. Idioms and tips for making SQL interaction that little bit less painful, that little bit more pythonic…

hOp – a micro-kernel based on the Glasgow Haskell Compiler

Wow… Potential third year project supervision material for next year: hOp, a microkernel based on the Glasgow Haskell Compiler, in which “experimenting with writing drivers in Haskell should be reasonably easy“. Funky as. [lambda]

Python still amazingly cool also

Oh, how quickly we forget. Or to put it another way, how stupid I am. Or to put it another way, what a fickle language whore I am.

Further to my recent joy regarding Haskell, Stephen Judd appeared from nowhere and reminded me that of course, Python also handles arbitrary-length integers “out of the box”. How the hell did I forget that?

In fact, he went one better and gave me a single line of Python for calculating 10,000 factorial, viz:

reduce(lambda x,y:x*y, range(1,10001))

Admittedly this is harder to grok than the Haskell version:

bigFac :: Integer -> Integer
bigFac n
  | n == 0 = 1
  | n >  0 = n * bigFac(n-1)

(at least, without knowing the semantics of reduce) – but it does also seem to run a bit quicker on my box.

Hurrah for Python!

Of course, this all just reminds me that I’m spending too much time lately thinking about theoretical computer science, and not enough time getting my hands dirty programming… :-/

Update 2007-01-26: Of course, the python version is not easier to grok than this alternative Haskell version:

product [1..10000]

Now that’s beautiful, as is the definition of product.

RISKS roundup

Stupid Security [risks] — chronicling the stupidity that passes for “stronger security” post-September 11.

Also: Internet attacks jump significantly this year.

… in the first six months of 2004 there were at least 1,237 newly discovered software vulnerabilities and almost 5,000 new Windows viruses and worms capable of compromising computer security. … Even more troubling was the sharp rise in the number of “bot,” or robot, networks, which comprise a large number of infected PCs that can then be used to distribute viruses, worms, spyware and spam to other computers. The survey notes that in the first half of 2004, the number of monitored botnets rose from fewer than 2,000 to more than 30,000. The botnets, which range in size from 2,000 to 400,000 “zombie” machines, are often “rented out” to commercial spammers who use them to distribute junk e-mail while concealing their identities.

What if America was Iraq?

Thought-provoking reading, by a Professor of History, which might give you some idea of what life is like in Iraq right now: What would America look like if it were in Iraq’s current situation? [null]

The population of the US is over 11 times that of Iraq, so a lot of statistics would have to be multiplied by that number. …

There are estimated to be some 25,000 guerrillas in Iraq engaged in concerted acts of violence. What if there were private armies totalling 275,000 men, armed with machine guns, assault rifles (legal again!), rocket-propelled grenades, and mortar launchers, hiding out in dangerous urban areas of cities all over the country? What if they completely controlled Seattle, Portland, San Francisco, Salt Lake City, Las Vegas, Denver and Omaha, such that local police and Federal troops could not go into those cities?

What if, during the past year, the Secretary of State (Aqilah Hashemi), the President (Izzedine Salim), and the Attorney General (Muhammad Baqir al-Hakim) had all been assassinated?

What if no one had electricity for much more than 10 hours a day, and often less? What if it went off at unpredictable times, causing factories to grind to a halt and air conditioning to fail in the middle of the summer in Houston and Miami? What if the Alaska pipeline were bombed and disabled at least monthly? What if unemployment hovered around 40%?


No answers, just a lot of rhetorical questions which, if you’ve got any imagination at all, paint a very depressing picture…

Why Haskell is cool (again)

Why Haskell is cool (again). Over a year ago I was mucking around Haskell but didn’t get deeply into it. Today I picked it up again, and while playing around with tutorials did something which, in my geeky way, I find cool.

With four lines of code, and with no more knowledge than a beginner has, I was able to calculate 10000 factorial. (For my non-mathsy readers, that is, 10000 times 9999 times 9998 times 9997 … times 3 times 2 times 1).

This is a Very Big Number (it’s here if you don’t believe me), and until today I haven’t come across a programming language which can even represent/work with anything this large “out of the box”. I’m sure there are other languages which can – I just haven’t met them. It’s interesting.

It took about seven seconds to work it out. Nifty.

Operation Hammertime

Stop! Hammertime!


Good thing roundup

Good Things Lately:

I wish I was innumerate rather than illerate, so I had a chance of explaining to you why Jasper Fforde‘s The Eyre Affair is the most refreshing and amusing book I’ve read in a long long time. Set on a slightly alternate Earth in which literature occupies the place popular music does on our Earth, in which England and Russia have been fighting the Crimean War for 130 years, and in which our heroine (the delightful Thursday Next) strives to catch the second most wanted man alive, save her aunt from inside a Wordworth poem, fix the end of Jane Eyre (by journeying into the original manuscript), and remember to look after her pet dodo (an early model). It’s fantastic – if you’re a fan of Pratchett, Tom Holt, Robert Rankin, or hey, why not throw Douglas Adams in here too, I promise you’ll love it. It’s chock full of the kinds of suprising and fantastic twisted ideas that Pratchett used to have, back when he had new ideas. Much fun.

Seriously. Check out the author’s website to get a feel for what I’m on about. Look: toast!,

Also amazing: Solaris. No, not the operating system, no, not the George Clooney film, and no, not even the original film of which that was “merely” a (rather good apparently) remake. I’m talking about the book. It’s mind-blowing. A great example of sci-fi being used merely as a palette with which to paint Crazy Ideas.

And finally, Tim Booth‘s new album, Bone. I’m a big big James fan (Bash introduced me to them in our early days, and <hippy>some of their songs just seem to speak directly to my innermost heart</hippy>, which is kinda nice) so the album was eagerly anticipated, but I must say I really wasn’t sure about it for the first few listens… Musically very interesting (layers, suprises, development, yay), lyrically it sounded OK, but vocally it seemed perhaps a little, I dunno, just weak in comparison with his James work.

Sometimes when you buy a new album you love it immediately, and then it wears off and gets a bit dull after a while (Black Cherry by Goldfrapp springs to mind – I still like it, but I hardly listen to it now). Sometimes you dislike it immediately, and it grows into something you’ll love forever (Morning Light by Locust). Sometimes you dislike it immediately and it turns out you were right (Keep It Unreal by Mr Scruff).

Glad to say, I think Bone fits into the Morning Light category. Or as Dave Wyatt would say, “it’s a grower”. Unfortunately, I’m still illiterate and thus unable to properly articulate why I love it. Attempts: the music’s deep, layered, complex, and progressive, yet has a loose, underproduced feel to it; the lyrics are indeed classic Booth – why are we here, why is love hard, everything’s connected, abandon all hope, don’t abandon all hope, etc; the vocals have grown on me – they are different, and perhaps “thinner” than with James, but this new style fits the music just fine. Plus it’s good cycling music.

Tracks to download if you wanna get a feel: “Monkey God”, “Down To The Sea”, “Be Careful What You Say”.

Interviews: one, two. Sorry for the distraction, Bash…

Don’t make me come down there and sing at ya…

Might as well hop on the meme train, as it’s a goodie… Show Tunes For Freedom! – fantastic. [null]

No sex please, we’re the Welsh Assembly

No sex please, we’re the Welsh Assembly.

An e-commerce website shortlisted for the Welsh leg of the 2004 national e-commerce awards, sponsored by DTI and InterForum, didn’t make it to the final round because its content proved too racy for the Welsh Assembly Government’s internet acceptable use policy.


Erlang Tutorial

Erlang Tutorial (PDF) [lambda].

Eddie! Eddie!

The EDDIE Tool:

a system monitoring, security and performance analysis agent developed entirely in Python.

Looks nice: you can add extra rules which can arbitrary python expressions (and thus arbitrarily complex), and it does all the usual stuff you’d expect, such as SNMP. The author also suggests Pythonistas might find it interesting as…

an example of a threaded, multi-platform software package, providing easy access to system statistics and using Python’s power to offer a dynamic and programmable rules engine.

Well, I wouldn’t know about that sir.

One for all the Princess Bride fans

Defective Yeti does it again. Oh Matthew, how I wish I could write like you…

Eye eye, Cap’n!

Agent Fluffy has gone slightly beserk [via Dave A].

Peekaboo Pole Dancing

Peekaboo Pole Dancing [Jo]:

the world’s first fantasy pole dancing game designed for use in the home!

It even comes with a pole.

The peekabo dance Pole is not compatible with Peter Andre, Mr Blobby Or Bob the Builder. Peekaboo Dance Money is not valid currency in the Ukraine.



a Python object database, offering an easy way to maintain a consistent persistent collection of Python object instances used by one or more processes

Neat, and if it’s lighter-weight than ZODB, potentially useful to me…


pyparsing — an object-oriented approach to text processing in Python.

Ping Wales launches

Ping Wales – Welsh IT News Online. Launched yesterday after much blood, sweat, and tears by a number of people close to me, most notably the wife… Anyway, God bless Ping Wales, and all who sail in her.

Where Python meets Haskell

Alex Martelli explaining how Python’s list comprehensions and (new and groovy) generator expressions relate to Haskell, and why Python doesn’t (in generally) do lazy evaluation. As someone with a foot in both camps, but no deep understanding (alas – yet) of what’s actually happening, this is pretty interesting stuff…

We have a winner

Oh, I love my wife. While all the rest of you were ignoring my pained cries for help on the virtual dekstop front, she was coming up with the goods. Ladies and gentlemen, we present VirtuaWin, which is wonderful because:

  • I can set the number of desktops to anything up to 9. Not dynamically, but that’s OK.
  • I can configure hotkeys for various features and in particular I now have my beloved Alt-1, Alt-2, etc. – joy. Also a hotkey for making a window sticky/unsticky.
  • I can install a third party extension module to display the (configurable) desktop name when I switch, which means…
  • I can turn off the system tray icon, so that most of the time the app has no graphical presence whatsoever.
  • It handles Excel correctly.
  • It’s free, and it’s GPL.

Those are the reasons why it rocks my world. It has many other options though, so if the above doesn’t sound good to you, lose not heart. For instance, if you like to flip between desktops by putting the mouse to the side of the screen (I don’t), you can tell it to do that. Similarly dragging windows between desktops. Etc. And generally it just “feels” very robust and well engineered. I’m very impressed.

Oh, it’s lovely. Happy Andy.

Virtual desktop woes

Are there any decent virtual desktop programs for Windows XP? I need the following: a) it must be discreet – preferably no graphical presence, although if it puts something in the taskbar/notification area which I can hide, that’s OK; b) it must have hotkeys for switching between desktops, and preferably they will be configurable (I want to use Alt-1, Alt-2, etc. as in Ion on Linux); c) when I switch away from a desktop and then back again, it should restore everything as it was when I left it; d) it’d be great if you could dynamically create and dispose of desktops, as in Ion, but I expect that’s asking too much and I’ll have to be happy with a fixed number (say, 4).

Now, I don’t think that’s too much to ask. Unfortunately, it seems almost impossible to find anything to satisfy just a), let alone anything else.

I used Microsoft’s very own Virtual Desktop Manager “Power Toy” for a while (can configure it to show only one small icon in taskbar – acceptable), but it fails badly on c) – open Excel, switch to a different desktop, switch back and viola – Excel’s toolbars and menus have disappeared, never to return. Googling for this issue led to a couple of mentions, but no solutions.

So I tried Jeremy Stanley’s VDM, which satisfies a) perfectly (-h on the command line hides it completely), and more critically avoids the Excel problem provided you also specify -a on the command line. Unfortunately you can’t reconfigure the hotkeys (it’s Ctrl-Alt-n instead of Alt-n, boo hiss), and worse, it doesn’t always restore windows to the right depth order, so you often end up with the wrong window on top. Alt-tab boredom. More boo hiss.

Someone must have solved this problem properly?

ASCII banner generator

Something I want to bookmark: ASCII banner generator.

A what?

A belated pumpkin.

It’s ten to two, and that’s what Dave is.

Candygram for Gimbo!

Candygram, “a Python implementation of Erlang concurrency primitives”. Ooooooh.

With Candygram, developers can send and receive messages between threads using semantics nearly identical to those in the Erlang language.

Interessant. Very informative FAQ.

Let’s hear it for Firefox

I finally ditched Opera in favour of Mozilla Firefox and (about two weeks later) I can definitely say it’s absolutely fantastic. Earlier Mozilla versions have always seemed too slow and clunky for me, but Firefox is definitely up to speed, looks good, and works well.

I’m particularly impressed by the extensions mechanism… I’d heard that Mozilla was not so much a browser as a platform upon which programs (e.g. browsers) can be written, and that seems to be borne out here. From what’s available, it seems that it’s fairly straightforward to write extensions which range from fairly trivial UI tweaks (e.g. close tab with double-click) to complex apps in their own right (e.g. the Sage RSS aggregator, or the Mozilla Calendar extension). This wide range (and the fact that these things seem – mostly – to work), speaks to me of good design.


Seems to be a bug in the Linux version (or at least mine), where the fabulous add search engines feature, allowing me to have a single box in my address bar which can do google, wikipedia, imdb, etc., etc. searches, doesn’t work. I can go through the motions to add searches, but nothing happens. Works in Windows. Bah. Like the question of whether the Pope is a Catholic, I’m looking into it. (Update: fix here, namely change permissions of /usr/X11R6/lib/firefox/lib/mozilla-1.6/searchplugins/ .)

The window giving me a view of which extensions I’ve all ready installed is horrendously slow. No idea why, but this seems to be one part of Firefox which has inherited the speed problems I used to see everywhere on Mozilla. It just takes forever to scroll, basically.

Not many annoyances.

Some groovy tips: a whole thread of tips here, which included a pointer to a load more tips on texturizer.net, including one of my wishlist items: remove the close button from the tab bar (since it’s redundant). Change the width of the Search Bar – yay!

So yeah, Firefox. It’s good.

PS: Oh, except that I really miss Opera’s wand feature (for automatically filling in userids, passwords, etc.). Nothing I’ve seen so far in Firebird comes close.

Languages for pi-calculus

Ignore this post unless you’re me and it turns out that yes, I have ended up looking into this (which I might or might not)…

Via this discussion at lambda, some stuff about programming languages supporting the pi-calculus, in particular a PDF paper on PiLib: A Hosted Language for Pi-Calculus Style Concurrency, and Pict, “the canonical example of a Pi-Calculus language”.

I say Piraha, you say Piraha, Piraha, Piraha, …

Linguistic determinism gets a boost [lambda]. And here’s the sound-bite everyone’s gonna be biting:

Hunter-gatherers from the Piraha tribe, whose language only contains words for the numbers one and two, were unable to reliably tell the difference between four objects placed in a row and five in the same configuration, revealed the study.

SCons – python-based Make on steroids


an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache

… written in Python.

The Catcher In The Why God Why?

I just finished reading The Catcher In The Rye. Jesus, what a waste of time. What a depressing, annoying, tiring waste of time. I swear to God, that book has dragged me down – I’ve been in a terrible mood for days and I’m sure it’s that jerk Sallinger’s fault. Man, I hate that guy.

Handling .tar.bz2 tarballs in python

I’m sure this will come in handy at some point in the future: how to handle .tar.bz2 tarballs in python. I’d probably have just used popen2() and called tar and bzip2 directly otherwise…

Gimboland tidying

I’ve been tidying up. I’ve ditched a lot of the cruft from the sidebars that was no longer really desired, and in so doing consolidated them to one – the dual sidebar look was starting to feel confining. :-)

I’ve also done lots of behind-the-scenes work and – finally, finally, after months and months and months of frustrated desire – fixed the images section. Hurrah. Next thing is to go through and delete old images I don’t want any more (probably quite a few), and upload lots of new ones, so expect more images on the front page from now on too.

Related to that, I really want to integrate the wedding images into the rest of Gimboland, but to do so satisfactorily will require implementing tracks in my own image management code. Shouldn’t be too bad, ho ho ho. Plus I think it’s time I brought the trek images into the fold too, and started decommisioning andys-trek.co.uk (in fact, the images are still broken over there – sigh).

Some pesky student had pointed out that many pages here were no longer compliant HTML, in defiance of the logos in the sidebar – so I’ve fixed that too…

What else to do? Well, I’d still like to generally revamp the overall style of the pages, and comments would still be nice. Anyone know of a nice open source commenting system I can plug in without having to jump through too many hoops?

PSF seeking grant proposals.

Note to self: The Python Software Foundation is seeking grant proposals. Ooooooh. Being paid to do cutting edge research work in python – the Gimbo academic dream! Pesky MPhil will have to be dealt with first, however, methinks…


There is no easier way to deal with your sock angst – what a fantastic idea! [act]

Captain Corelli’s World O’ Greece

So here I am reading Captain Corelli’s Mandolin (as I mentioned) when all of a sudden I turn on the TV and it’s all Greece this, Greece that, Greece Greece Greece for some unknown reason – who knew?

iPod vs cassette

iPod vs Cassette – a comparative study [bash].

It’s nothing, really. Just chop it off all ready – I have nine more.

A funny thing happened to me on Tuesday night. Wait. Painful. I mean painful.

My weapon of choice for the evening was a nice wooden breadboard with a sharp triangular edge (i.e. a trapezioid cross-section), which I managed to drop vertically onto my right foot from the worktop (about three feet?) at about 9:30, causing much gnashing and wailing of teeth.

Only when I took my sock off did I realise that it wasn’t just bloody painful, it was also just bloody bloody. Yuck indeed: split nail, split skin, lots of the red stuff, etc. Basically the sharp edge of the breadboard had thundered into my big toe right at the base of the nail, where it could do the maximum damage.

I don’t immediately fall into a swoon at the sight of my own blood, but it was a bit distressing and, as I said, bloody painful, so I sat on the floor and concentrated on Keeping My Shit Together. Fortunately there was a nice young lady on hand to ply me with ice and sugared water, and then drive me to casualty, where we had a nice wait for three and a half hours before the very amiable doctor Laura called my name. She and the nurse generally agreed with my diagnosis of “ooh, that looks nasty”, but displayed their greater medical expertise by not merely looking on, nodding, and chewing their lips thoughtfully, but also suggesting that a) I should get it x-rayed in case it was broken, and b) they should pierce the nail with a needle to let the blood out from underneath.

a) was sensible but annoying because the particular hospital we’d gone do doesn’t have radiology, so this would mean a trip to the one on the other side of town tomorrow, and more waiting around. On the other hand, at least that wouldn’t be late-night waiting around, so hey, small mercies.

b) was exciting and worrying – sounded painful. Off they went in search of the apparently elusive needle necessary for this trick, and when they came back I was suprised to see an implement that looked to my untrained medical eye less like a needle and more like an electric toothbrush. By that I mean it was a hand-held white plastic device of that approximate size and shape – though I should make it clear that there was, at least, a (very small) sharp piece of metal on the end, rather than the less worrying but admittedly less effective (for this purpose) head of bristles one might otherwise expect from my previous sentence.

In the end, it was nothing. Clearly the needle – spring loaded, triggered, and instant in its action – was the result of years of careful observation and design, so suited was it to the task of rapidly piercing the toenail and leaving the piercee feeling pleasantly suprised that the whole experience wasn’t nearly as bad as expected. By way of comparison, I’d say it was marginally less noticeable than that pin-prick they do on your thumb when you go to give blood, so they can test you’re not in fact a gene-stealing alien come to take over the planet. Thus, designers of medical implements, we salute you.

Once it was cleaned up it didn’t look half bad – a bit messy but much more back to normal. Unfortunately I didn’t have the presence of mind to photograph it between cleaning and dressing, so you’ll have to take my word for it. However, in case anyone’s interested (hi Mum!), here are the photos I took before the whole procedure, while waiting, in glorious Zoom-O-Vision:

Both feet forward

Right foot

Right foot - close up

Right foot - Extreme Close Up!

Good thing: during the time spent waiting I managed to scream through a large chunk of Captain Corelli’s Mandolin, which I’d just recently started. I’d put this book off for ages, dismissing it as “the book of the film, which I hadn’t seen though was supposed to be quite good, but I don’t know, it looked a bit schmultzy from the trailer”. I was surprised to learn recently that People Who Know thought different and maybe I should read it after all. And it’s fab – nearly finished now. :-)

Bash used the time well too, ever working, ever working:

Ever on the job

To conclude, I went to the other hospital yesterday and ploughed some more through the book, before learning that no the toe wasn’t broken, and I should just be nice to it, basically. They dressed it again, and now I am muchos swaddled in white linen a la:

Very big toe due to enormous bandages

What an exciting life I lead, eh?

Jesus M. Christ

Now that’s comedy [act]. I stopped reading Penny Arcade ages ago — too many references to computer games I didn’t and never would know about. But that’s class. Oh, go on then… Just one more.

Bluetooth security flaws

Your Bluetooth phone is a security risk [risks]

Then, German researcher Herfurt developed a program called Bluebug that could turn certain mobile phones into a bug to transmit conversations in the vicinity of the device to an attacker’s phone.

Yay technology.

Diary update

Um, yeah, so I guess I’ve been chilling out, making a bit of music, enjoying the sun, doing a bit of work, and generally trying to make the most of not feeling like my life was an avalanche about to crest over me as I desperately hurled myself downhill… It’s been nice.

But where, my fan has been writing to me in his drove to ask, are the URLs about “unknown links between Cartesian geometry with imaginary numbers, recursion in Ruby and Banco Di Gaia?”. Well, I dunno, they’ll be back soon. In the meantime, a short precis.

The students have (mostly) gone home and the Computer Science department is a ghost town – lecturers are on holiday, at conferences, or (like me), ahem, working from home. It’s nice – a time to forget about teaching for a while, and get some research done, burying myself in books and papers. Soon enough it’ll be time to think about other people’s education again (resit exams in about three weeks, for instance), so I’ve been making the most of it. Plus the weather’s been really excellent…

My parents came and visited for a few days, which was most pleasant, and the first time they’d seen our house in Mumbles. We had a relaxed time, walking and driving around, eating and drinking, talking and reading, and basically Not Doing Much. They also brought us a television – since we moved here in March this has been a TV-free zone, which has been excellent. However, there were times when we missed it (Bash for the news, me for occasional brainless Sunday mornings) so when the parental units offered us their old one we gratefully brushed the gift horse’s teeth and took it home, there to feed it hay.

Bash and I have been exploring Mumbles a bit more lately, finding some excellent paths, walks, etc. – knowledge which we put to good use on Saturday when a possee (nay, pouch) of eight of us headed up to Mumbles Hill, there to lie in the sun, throw apples around, contemplate navels, and in Jo’s case, commune with nature by destroying then apologising to it. The weather was perfect and the view incredible – you could make out the cliffs on the north coast of Devon to the south, and to the east you could see Wales and England getting closer and closer to each other as the Bristol Channel narrowed to the horizon. It was Wow. Of course, all of this is utterly meaningless to anyone who wasn’t there I guess, so I’ll stop now.

We saw “I, Robot” yesterday. It was quite good, apart from Will Smith, who played his usual arrogant-misbehavin’, sytlish-dressin’, rule-bendin’, fast-machine-ridin’, wise-crackin’ gung-ho screen self. Very annoyin’. The robot/robot fight scenes were good though, and reminded me of “Robot Baby Rampage”, a fictional computer game envisioned by some of my buddies once upon a time.

Random update ends.

Tasty Nuggets from the Programming Front

Several tasty nuggests from Lambda the Ultimate, which I’m enjoying immensely:

First and foremost, not only is there a shell named after my wife, there’s now also a programming language which happens to look rather zarjaz, and might actually persuade me to give Mono/CLI/CLR a look [lambda].

Next, here’s a paper on crash-only software [lambda].

It is impractical to build a system that is guaranteed to never crash, even in the case of carrier class phone switches or high end mainframe systems. Since crashes are unavoidable, software must be at least as well prepared for a crash as it is for a clean shutdown. But then — in the spirit of Occam’s Razor — if software is crash-safe, why support additional, non-crash mechanisms for shutting down?

Finally, an interview with Knuth (from 1996, think I’ve read it all ready) [lambda].

Richard Feynman and The Connection Machine

Richard Feynman and The Connection Machine [lambda]. I’ve been casually meaning to read a biography of Feynman for a while – he sounds like one hell of a guy. Cool picture, too.


iCalShare – just over a thousand iCalendar format calendars for you to download into iCal, Sunbird, whatever… It needs more categorisation in my opionion, and, well, quite why anyone (even my brother) would want to know all of the dates of the latest Yes tour is beyond me, but there you go.


One of the things we study in the Operating Systems course I teach is the Morris Internet Worm. It’s a nice story, but perhaps a little old, and although I’ve spoken about more current exploits, worms, etc., I think I need to include some newer material actually in the notes. The Witty Worm I mentioned yesterday is one candidate, and oh my, here’s another [RISKS]. Hell, in any given month there are probaby a few good candidates…

In the same issue: a reminder of the uselessness of Security Through Obscurity, and it’s bigger, better-armed brother, Security Through Legislation; also, why Caller ID is broken under Voice Over IP.

RISKS is just the best – I can’t believe I’ve been unsubscribed for so long (over a year). It’s scary to read about the scale and repetition of all these problems, then slightly reassuring to realise that intelligent people are paying attention, then deeply troubling to realise that mostly, the people in charge and the people at the sharp end simply aren’t listening or don’t understand.

Exciting things in the world of web programming

This (which I was looking for last night – see below) plus this equals potentially interesting times ahead.

Executive summary of speclation contained therein: Programmers are leaving the Microsoft platform (and not adopting .net in the required droves), because web applications are a much more hospitable world for third party developers; the problem with web applications is that they don’t have the marvy user interface capabilities of conventional desktop applications; now along come Apple with some HTML extensions enabling javascript (i.e. easy) and safe operating-system-friendly ways for web applications to draw directly to the screen in beautiful and flexible manners and we suddenly have a mechanism for funky-ass interfaces delivered over the web. Possibly. If it happens. Oh yes, and Apple have teamed up with Opera and Mozilla over this, so it’s us (the aforementioned) vs them (Microsoft and Internet Explorer), only this time we’ll be creaming their asses. Possibly. Yay!

Robot Baby Rampage

A miscellaneous collection of cool stuff I either came across while looking for something I saw a while ago and now want to tell you about but can’t find, or came across a while ago, for some reason didn’t blog then, and have just come across again… (It does parse, honest – keep trying.)

Bruce Schneier’s analysis of the recent Witty Worm is a scary insight into the kind of crap we can expect to kill our networks from now on [gamma]. Something for this year’s Operating Systems course (chapter 9, “Security”).

Witty was wildly successful. Twelve thousand machines was the entire vulnerable and exposed population, and Witty infected them all — worldwide — in 45 minutes.

Zulu Family Sues Disney Over “Lion” Song [act]. Bash has a copy of the original recording, “Mbube” (Zulu for “The Lion”) on this compilation, and very cool it is too. Recorded in 1939, I think he certainly gets first dibs. I suppose it’s out of copyright now (?), although aren’t Disney guilty of ridiculous feats of copyright extension in their efforts to protect their revenue streams? Which is nicely ironic. So they’re suing for 1.5 million dollars, about 9 million rand, which is probably enough to buy a large chunk of Durban. ;-)

One for an algorithms course: Sorting Algorithms demonstration applet, which is very cool indeed at getting across why quicksort is so much better than bubblesort, for instance [gamma]. :-)

MD5 hashes are getting cracked [via act, although apparently also via slashdot so I guess I'm the last to know].

At the moment we can crack md5 hashes in this character range: a-z;0-9 [8] which means we can break almost all hashes (99.56%) which are created from lowercase plaintext with letters and/or digits up to length of 8 characters.


“Asterix collection” latin quotes translated to English [act]. I will keep it close next time I read these marvellous books…

As you can tell, I’ve been reading Advanced Combo Tricks a bit lately. It’s good, if pig-ugly. OTOH Gimboland is long overdue for a style update so who am I to talk?

Our lungs are dumb. Special air,please.

When I find the time to learn Ruby, I will do it at why’s (poignant) guide to Ruby, for the simple joy of learning a new language via the medium of cartoon foxes. And I will buy the t-shirt [null].

Random quote from sidebar illustrating general bizzar-o-ness of guide:

You could make it seem like I did tons of drugs. Like I was insane to work with. Like I kept firing people and locking them in the scooter room and making them wear outfits made of bread. Yeah, like I could actually be baking people into the outfits.

Logical Methods in Computer Science

Logical Methods in Computer Science, a new open-access, online, refereed journal, freely available on the web. And whose name do we see on the editorial board but Swansea’s very own type theory guru (and my personal exam team nemesis) Anton Setzer. Nice.

Dashboard vs. Konfabulator

Via tr, one for the OS X people, and anyone interesting in the hissyfits that computer people sometimes throw: an interesting article comparing and contrasting Dashboard with Konfabulator, and arguing that the broo-ha-ha about Dashboard being a Konfabulator rip off is unfounded.

Thus, Dashboard is clearly an extension of Mac OS X system-level technologies: Web Kit for layout and scripting; Exposé for the Dashboard window layer; and Cocoa for advanced functionality. Dashboard is the result of advanced Mac OS X technology in action.

Konfabulator, on the other hand, was designed from the start with platform portability in mind. (A port to Windows was announced back in December.)

And this next paragraph…

Konfabulator is not a lightweight or small-footprint environment – every Konfabulator widget runs as a separate process, with its own runtime environment in memory. Most Konfabulator widgets use more memory than typical full-blown Mac OS X applications. Not just Konfabulator as a whole – but each widget. Install it, fire up Process Viewer, and see for yourself. (Ironically, the Konfabulator “CPU Portal” widget seems to leak memory.)

… is particularly interesting, and probably explains why Bash’s super-doovy Powerbook has been running less than optimally lately. Throw your Konfabulator into the road darling, it hasn’t got a chance!

more retro »