“Nothing interesting has happened in the last 20 years”, apparently

I delivered my first lecture, for CS-228 Operating Systems, 5 years ago yesterday. Today, TR delivered his first lecture — for, er, CS-228 Operating Systems. I’m sure he’ll do it very well, and certainly better than I, as he is both more informed and opinionated on that topic than I am. Well, on all topics, really… ;-) Welcome to the club, TR!

Best when chunky and delivered by foxes

Hooray for bacon! [ffffound]

Shadow glassware

Wine glass tumbler

DY 4 US PREZ FTW!

LMAO @ the Guiliani visualisation on Defective Yeti’s analysis of the current state of the US presidential contest. I must say, I’m glad to see him out.

Data files should contain data

Data files should contain data — on the dangers of using Excel, among other things. True words – a lot of my exam mark processing headaches are due to data files with madly formatted content (not, I must admit, produced by Excel).

Irrefutable proof

The moon landings really are fake!!!11 [smallcool]

(Spoken to the father, obviously)

“My goodness, she looks just like you.”

10.ambient.450.jpg

Foxy troopers

All of a sudden, stormtroopers are sexy. Evidence…

Foxy stormtrooper 1 Foxy stormtrooper 2 Foxy stormtrooper 3

(This last from this fantastic page of Darth Vader helmets — check out the Statue of Liberty one…)

And while we’re on Star Wars imagery, I’d like to remind you to stay on target.

On the relative positions of C and Haskell on the Mohs scale

C isn’t hard; programming in C is hard. On the other hand: Haskell is hard, but programming in Haskell is easy.

Seen on this thread.

In good company

Fire And Motion — Joel on Software.

Once you get into flow it’s not too hard to keep going. Many of my days go like this: (1) get into work (2) check email, read the web, etc. (3) decide that I might as well have lunch before getting to work (4) get back from lunch (5) check email, read the web, etc. (6) finally decide that I’ve got to get started (7) check email, read the web, etc. (8) decide again that I really have to get started (9) launch the damn editor and (10) write code nonstop until I don’t realize that it’s already 7:30 pm.

Glad it’s not just me, then.

More infinite list tomfoolery in Haskell

More infinite list tomfoolery in Haskell — the one for pi’s particularly “WTF?”.

The Great Escape

Today I wanted to search a large number of text files for a particular sequence of characters. Naturally the tool to use for such a job is grep, as any phule kno.

Unfortunately, the text I wanted to search for was \' — that’s a backslash followed by a single quote. This is mildly problematic because each of these characters has special meanings either for grep or the shell or both.

Long story short, this is what I need to type:

grep \\\\\' *

That’s five backslashes followed by a quote. :-)

WTF? Well: grep uses \\ (two backslashes) to match a single slash, but so does the shell (zsh in this case) so if I entergrep \\' *, the shell would interpret the \\ as meaning “one backslash please” and pass just that one to grep. Unfortunately grep would interpret the backslash as escaping the following character, rather than a literal backslash. Thus, in order to actually give grep the two backslashes it needs in order to match one, I have to type four. Then we also need \' to match the quote character, because a quote on its own is interpreted by the shell as, well, a quote (ie starting a string) — so this final backslash is eaten by the shell in order to pass that quote to grep directly. grep doesn’t treat the quote specially of itself, so finally we have what we want. Sweet.

You have got to love the command line.

Cold beauty

Thin worship — harsh but beautiful (decreasingly so to the right, I think). I wondered why the photographer used the Haskellish term foldr1, but the answer is prosaic and on the front page. Yowzer.

So: humans may be capable of cold startling beauty but so too the sea.

Both via [ffffound], spamming my RSS with notable pixels.

Random beauty/design samizdat

I have know idea where/how she came across this, but Bash sent me a link to some really beautiful images (including the cover of a Lisp book). There’s even some Richard Scarry in there, ftw.

Practical Common Lisp

Practical Common Lisp — free book online [reddit]. One to read along with SICP some time in the next 12 months.

Traffic flow simulation applet

Traffic flow simulation applet — traffic as in “cars and trucks” not “data” [reddit]. German, so the top speed limit is 140kph. :-)

“Just a Bit crazy”

Just a Bit crazy — short bonkers flash music thing. Awesome!

Core JavaScript 1.5 Guide

For my future reference: Mozilla Developer Centre Core JavaScript 1.5 GuideTR tells me this is the most sensible way to learn Javascript.

He particularly recommends the page on Class-Based vs. Prototype-Based Languages. JavaScript has a lot in common with Self, apparently.

Gimboland sidebar now shows Bash’s photos

I’ve modified the sidebar so it displays the last 5 photos from Bash’s flickr photostream rather than mine. I haven’t uploaded any photos to flickr for forever, and Bash’s are just better anyway. Tis an honour.

Randy Pausch: Really Achieving Your Childhood Dreams

I think this is probably the most valuable and worthwhile thing I’ve ever posted on Gimboland. Totally worth making it to the end.

Randy Pausch: Really Achieving Your Childhood Dreams.

Carnegie Mellon Professor Randy Pausch, who is dying from pancreatic cancer, gave his last lecture at the university Sept. 18, 2007, before a packed McConomy Auditorium. In his moving talk, “Really Achieving Your Childhood Dreams,” Pausch talked about his lessons learned and gave advice to students on how to achieve their own career and personal goals.

Notes: Tony Sale on WW2 codebreaking and Colossus rebuild

Earlier this evening I went to a great lecture by Tony Sale, on “Code Breaking in World War 2″.

He discussed Enigma, and how it was broken, then the Lorenz cipher/machine, and how that was broken, and then the Colossus, leading to the Colossus rebuild project. He should know about this stuff: he started the project.

I took some notes if anyone is interested [PDF, 76Kb] (naturally, these are rough notes, may contain errors, are my own, etc.). You might also want to check out codesandciphers.org.uk which includes a virtual Colossus.

“Approximate location of your property”

Heathrow daily traffic routes circa heck knows when: easterly ops, westerly ops.

Monads and the meaning of imperative language – also, some musing

Monads and the meaning of imperative language — the delicious alpheccar does a lovely job of introducing denotational semantics without saying enough to scare you off, and shows how exceptions (or even assert) in imperative languages are, at bottom, the Maybe monad. This point generalises (apparently – I know enough to believe it could be true, but not enough to assert that it isn’t untrue) to “any formal description of control flow in an imperative language will be monadic in nature.” Gorgeous.

The stuff about defining domains (and that being the hard part) is resonating with me just now; I’ve spent the day nailing down definitions of sets describing a particular aspect of my pet specification language, CspCASL, and it’s not trivial. And this is the easy part: not proper “domains”, just sets without much internal structure. Markus does that, for the model semantics. Anyway, yay language design.

Formally describing languages is hard. That’s why it doesn’t happen much yet, which is one reason our current languages situation is so messy. My hand-waving prediction: it’s hard but not intractable, and we’re getting better and better at it; in time it’ll be a sufficiently managable problem, with sufficiently good tool support, that languages which aren’t formally described will stagnate in comparison to the new languages then appearing. Naturally, from where I’m standing I see the increasing convergance of computer languages (sounds like a dumbing-down term but I’m really just trying to cover both programming and specification) with full-blown mathematical logic in all its various and colourful forms. Mathematics is the language for describing things formally; a computer program is by necessity a formal description of something, therefore this convergance seems like it will be a good thing – again, from where I’m standing. Whether or not it appears that way because where I’m standing is a good place to get a view of what’s going on, or just because that’s all you can see from here, remains to be seen. ;-)

Parsing Expression Grammars in Ruby with Treetop

A couple of years ago I read and greatly enjoyed Bryan Ford’s 2004 paper “Parsing Expression Grammars: A Recognition-Based Syntactic Foundation” [PDF, 134Kb] (wow, it’s still on my desk, in fact); while to my disappointment it proved inapplicable to my research (I’m constrained in the parsing and language description technologies I can use by what I have to integrate with), it was clearly Cool Stuff.

Yeah, so, apparently some Ruby hacker read that paper too [reddit].

See your filesystem space-eaters with filelight

KDE-heads may already know about this, but since I live in stripped-down land, it took LifeHacker to tell me about filelight. Lush tool.

Visualizing regular expressions with reAnimator

reAnimator — a very cool tool for visualizing regular expressions. Given an RE, renders the corresponding NFA and DFA and animates acceptance (or not) of an input string. Try out the “a|ab|abc|abcd” example with input “a” for a neato example. A flash app, written using python.

“True Christians should only read English” and other gems

Kinda like a fundy bash.org: 100 greatest quotes from fundamentalist Christian chat rooms — well worth a look if you want to experience the feeling of not knowing whether to laugh or cry [pixi].

Gravity: Doesn’t exist. If items of mass had any impact of others, then mountains should have people orbiting them.

You are banned. You are not a Christian for Christians don’t accuse brothers and sisters in Christ of being non-Christian.

Make sure your answer uses Scripture, not logic.

Deoxyribonucleic Acid, for example… sounds impressive, right? But have you ever seen what happens if you put something in acid? It dissolves! If we had all this acid in our cells, we’d all dissolve! So much for the Theory of Evolution, Check MATE!

Caveat: this post mocks idiots, not Christians; in no sense do I assert that either set is a subset of the other.

“If you fear change, leave it in here.”

Paul Saffo: “Embracing Uncertainty – the secret to effective forecasting”.

Declutter your desk

Desk decluttering: furniture hardware hacks.

lshw – neato

lshw — very nice.

(Example HTML output: my laptop today.)

Why Haskell is Good for Embedded Domain Specific Languages

Why Haskell is Good for Embedded Domain Specific Languages — nice summary, I’d say.

SAGE: open source mathematics software with python scripting

It’s possible (with fingers etc. crossed) that by the end of the year my job will have altered somewhat and I’ll be spending some of my time, amongst other things, doing the kinds of things one generally uses Mathematica and Matlab for. This would be a departure, but no doubt an interesting one.

And what should come steaming over the horizon into my view at this moment? Ah look, it’s SAGE, “Open Source Mathematics Software” in exactly that flavour, with scripting in Python. Maybe it’s half-baked rubbish, maybe it’s slick and up to the job; maybe I’ll never know. Maybe, just maybe, I’ll be checking it out by the end of the year. For now: noted.

A Subversion Pre-Commit Hook in Python

A Subversion Pre-Commit Hook (in Python) [smallcool]. That’s bound to come in handy some time… :-)

The multi-touch-shiny train is gathering steam – all aboard!

At the intersection of hack and wow: Low-Cost Multi-touch Whiteboard using the Wiimote — ooh, that’s just lovely [paulmiller].

And in other multi-touch news, it appears Nokia may have something very shiny indeed up their sleeve, namely taking the “touch” out of “multi-touch” with 3D gesture tracking based on ultrasonic transducers [reddit].

Three or more transducers arrayed around a perimeter of the mobile device create a 10-20 cm working volume of space above the display, where user finger locations and their movements in real time can be detected using triangulation techniques. These movements can then be interpreted as various three dimensional gestures.

Shu Ha Ri

Shu Ha Ri. [here.reddit]

At the end of Shu, what she sees is nothing but the rules — everything looks like the rules. At the end of Ha, what she sees is nothing like the rules. At the end of Ri, she doesn’t see but work with her mind.

The first images of the Earth from space

The first photos of the Earth from space, taken from a captured German V2 rocket in 1946. Cor. [longnow]

Aside: again with the pagination!

Bash’s BoxingDay Bimble

Bash and I spent Christmas in Callington, at my parents’ house. It was, for both of us I think, a much needed (though in the end too short) break away from the accumulated pressures of Swansea – even though I was working on my thesis I certainly came back refreshed.

On Boxing Day, while I slaved away on chapter two’s lovingly delivered description of the Common Algebraic Specification Language, Bash went for a mooch around Callington with her camera. The results show Callington in the most interesting light I’ve seen… All crumbling walls, flaking paintwork, strange corners. Classic Bash, in fact. :-)

I won’t pick out several, because it’s worth looking at the whole set — as much as I love filling my blog with little square snippets of her work. Instead, just one, my favourite, well worth viewing at a high resolution and/or using as wallpaper. Its subtle beauty reminds me of this classic piece by my beloved Brandon Bird.

the painted branch

The urge to play

I recently discovered Kongregate, thanks to the twin magics of Psychopixi and Facebook. It’s a handy-dandy ubersite of online (mainly (exclusively?)) flash games, just the ticket for tickling that urge to game that comes over me now and then, especially when reading Penny Arcade from start to finish as I did for the second time in December. ;-)

In particular, I can’t heap enough praise on 3D Logic and 3D Logic 2 for infuriating puzzliness. In fact, I’m still stuck on level 30 of the latter.

David Byrne in conversation with Yorke and Eno

David Byrne’s Survival Strategies for Emerging Artists, including audio snippets of him in conversation (somewhere very tasty sounding) with Brian Eno (and others).

Unt:

David Byrne and Thom Yorke on the Real Value of Music. Gosh, don’t “Radiohead’s Oxford offices” look rather tasty, too…?

(Aside: grrrr at having to click a stupid “full page” icon to get the full versions of those stories rather than one page at a time. The web is not paper!)

The sound of the quietness

Sigh… Surely not another “gosh, haven’t I been quiet lately” post? Well, yes. These always give me the same feeling as phoning my parents when I should have phoned them a week ago, replying to messages that have got buried at the top of my inbox (ha! buried at the top!), and seeing Rich at Christmas for the first time in Jesus was it over a year? Actually no, that didn’t feel guilty and crap, just good to see him again. Anyway…

It’s partially because of Facebook, and a recent tendency to post stuff there instead of here. Of course, the sensible thing to do is post it here and then post a link to that on Facebook. So that’s what I’m going to do from now on.

Of late, I’d say it’s increasingly been because I’ve started fairly enthusiastically using lovely ickle super microbloggy Twitter, with its lovely 140 character limit that gets me burning on my SMS-honed character-saving neurons, oh such joy. Actually it’s really great, especially the text message integration… I realise I could probably post to this (WordPress) blog by SMS if I was willing to jump through enough hoops, sacrifice a goat, set my penis on fire, etc. but frankly life’s too short and fire hurts. With Twitter someone else has taken care of making it work, and all of a sardine I can “blog” from anywhere. (Yeah, I know you can with Facebook too but I dunno, I’m still somewhat and actually increasingly ambivalent about the closedness of that particular community.) Getting tweety updates of what everyone else is up to is super fun too. It’s quite random, in fact: at some point, and for no reason I have been able to discern other than that I am cool and handsome, a Danish girl called Nina started following my tweets. Naturally I reciprocated, leading to the somewhat surreal experience, around New Year’s, of every now and then over the course of her 4-day bender, getting little snippets of the Edingburgh hogmanay experience (I infer that her bloke, “the imported alien” hails from thereabouts, also by his reported sporting of a kilt in Copenhagen on Christmas Day). All very odd, but also strangely encouraging for the future of the humanity.

So, yeah; Twitter: it’s jolly good. What I need to do now is find a satisfactory way of integrating it here (work in progress). Probably I’ll just arrange for every tweet to appear as a blog post, though that might annoy anyone who follows me both on Twitter and via the Gimboland RSS. The vain fools.

My other big occupation of late has been my thesis. I have about another month or so to complete it (ie completely). The word count limit for an MPhil at Swansea is 60,000 – this doesn’t look like it’s going to be a problem as mine is currently around 23,000, but it’s hard to tell with LaTeX, particular given the large amount of mathematical notation in chapter 11. Probably it’s even less… Picking another dimension to measure, it’s 93 pages long; I expect it’ll be about 120 to 130 by the time I finish, so you can see there’s still a chunk to do. Still, I’ve been working on this project for two and a half years now, and researching in the area for four, so I must say it’s a real pleasure to finally see some chapters which feel complete and well written, and to have the feeling that I might actually know and have done something. It’s also of course warm and fuzzies that the end is in sight, certainly with a telescope and possibly with binoculars. Every now and then I get a hint of the feeling of a future in which I have a Masters degree (hopefully not being too presumptuous), all smug and validated. I could do with a bit of that…

Finally, I’d just like to mention that I started using Google Reader for my RSS needs today, having got annoyed with trying to run and synchronise two slightly different versions of Liferea on my laptop and work box. Screw it, life is (again) too short. Con: it doesn’t seem to do HTTP authentication, which makes Basecamp feeds out of scope. Pro: what happens when you hit “?” and how pretty that looks. Main pro: declaring “newsfreed bankruptcy” and starting again. Ah, the fresh winds of change!