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!
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 — 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).
All of a sudden, stormtroopers are sexy. Evidence…
(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.
C isn’t hard; programming in C is hard. On the other hand: Haskell is hard, but programming in Haskell is easy.
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 — the one for pi’s particularly “WTF?”.
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.
So: humans may be capable of cold startling beauty but so too the sea.
Both via [ffffound], spamming my RSS with notable pixels.
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.
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.
I think this is probably the most valuable and worthwhile thing I’ve ever posted on Gimboland. Totally worth making it to the end.
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.
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.
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. ;-)
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.
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.
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.
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.
Why Haskell is Good for Embedded Domain Specific Languages — nice summary, I’d say.
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.
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.
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.
Aside: again with the pagination!
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.
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. ;-)
David Byrne’s Survival Strategies for Emerging Artists, including audio snippets of him in conversation (somewhere very tasty sounding) with Brian Eno (and others).
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!)
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!