Wednesday 28 October 2009

Lightspeed Pascal

Claudio and I were talking the other day about "coding in the old days". I mentioned my happy memories of developing the IC Hope interpreter using Lightspeed Pascal on a Mac.

It was a very nice experience - a nice IDE with very fancy (for the time) debugging support, including what one would call edit-and-continue nowadays. I found
this review in the MacTech archives. Looking at the screenshots left me with a nice warm feeling :-) I like the concluding statement:

I personally think these products will
revolutionize how software is done on the Mac.


Clearly true, but not just for the Mac!

House porn

Finally, I've found a house in a part of London I like. Looks like I'll be saving for a bit longer!

Tuesday 27 October 2009

Lily from the ashes

A long time ago now, I worked on an EPSRC grant that I co-authored with Andy Pitts. I was first an RA, but then I got a lectureship at Warwick, so I became a co-PI and we had the amazing good fortune of finding Claudio Russo, who took over as the RA. (Claudio and I are now colleagues at MSRC.)

The grant was on a linear lambda calculus (actually more like a linear PCF) that we dubbed Lily. We did quite a lot of work on Lily, but for one reason and another we never really published much - just a single workshop paper. (There's an A4 ring binder on the shelf above my head full of unpublished calculations of one sort or another.) Interestingly, this paper has had some impact and a number of people, including Alex Simpson and Lars Birkedal, have done some cool work following on from it.


Claudio actually implemented Lily - but we never released the code. In fact, I don't think we even documented the fact that we had implemented it!

Anyhow, I'm happy to report that Lily has risen from the ashes! Claudio and I have translated the code from Moscow ML to F#, and late yesterday afternoon, the familiar Lily REPL had returned:



Watch this space. Hopefully in a couple of months, I'll be able to explain why we're playing with Lily again. Either way - even if our experiments fail - I promise to release the bits!

Non-dynamic update

One of my research interests is dynamic software updating: the ability to update code whilst it is still running. (Finally, an end to those "please shut down this application whilst update is applied" messages!) Clearly desirable, but it's hard to support (although IMHO our UpgradeJ proposal is wonderfully elegant :-))

Anyhow, we have a nice Panasonic LCD TV at home - it won lots of awards at the time. On September 30, the freeview service in the UK (digital TV over the air) was upgraded. Actually what happened was that some of the channels were moved around in preparation for Freeview HD. Unfortunately, after retuning my TV, we could no longer receive a couple of channels. Even worse, one of these was CBeebies - the BBC's digital channel for some children. You can imagine how happy the girls were.

After much digging around on the interweb, I found a number of grumpy Panasonic TV owners. It turned out that the retune had revealed a bug in the TV's software. So we needed an update. Unfortunately, to get this update you needed to email customer services, who would put you on a waiting list. Eventually a PCMCIA card arrived in the post:

You then plug the card into a recessed port at the back of the telly.



Oops - quite a lot of dust there :-) Then you switch on the TV and get a wonderfully 80s-like screen:


At the end you wonder at the new-found Cbeebies channel, before putting the card into another jiffy bag and sending it back to Panasonic so they can post it to the next person on the list.


Another phrase used for DSU is "hot swapping". I guess this process could be called "cold swapping".

Saturday 24 October 2009

Fake Jo Tunmer

Yesterday, I was just leaving the drop-off area at Stansted when I took a call from my friend Luke. Unfortunately his wife was ill and he invited me to take her ticket for a concert that evening at the Corn Exchange. In fact, he didn't even know what the concert was! (It turned out to be Newton Faulkner.)

It was only when Luke knocked at the door, that I realized that this was a group outing that Jo had organized. So I had to be Jo for the evening: vivacious, curvaceous, aristic, and everyone's favourite girl from Essex! Quite a job for a skinny, computer geek from Berkshire! However, I like a challenge.

It was a fun concert: Newton is amazingly (depressingly) talented - playing virtuoso guitar, singing, playing foot keyboard and triggering samples, all at the same time. It was very impressive, and given that he's by himself, he really got the whole crowd going.

We ended the evening with Vicky's favourite: a jug of Long Island Iced Tea at the Maypole. A nice evening.

Thursday 22 October 2009

Windows 7

I've now completed the upgrading of my machines to Windows 7 and have been using it for a couple of weeks. Overall, I am very impressed. Both my desktop and laptop seem faster, start-up times are much shorter, and the graphics seem slicker. I like the "make this window half the screen" feature on my laptop, but it doesn't work so well on my multiple-screen desktop machine. I'm getting used to the new style taskbar - I started not liking it, but after a week or so I warmed to it; so it's probably just one of those things you learn. (I'm still puzzled by why the notification area icons are all white though!)

But I think the Windows team have done a great job. Go 7!

Wednesday 14 October 2009

F# 1.9.6.16

I just upgraded my desktop to Windows 7. It's really very nice - my machine is much more responsive now. I think this OS will make people happy (compared to the last one!).

As part of the upgrade, my instance of F# got upgraded to 1.9.6.16. I then went to recompile some code and it failed. It turns out that if you use FsLex/FsYacc in your project (a wonderful feature IMO) then there's a slight glitch in this version of F#. You need to do two things to get it to work again:


  1. Copy c:\Program Files\FSharp-1.9.6.16\bin\gac\FSharp.PowerPack.Build.Tasks.dll to C:\Program Files\MSBuild\FSharp\1.0\FSharp.PowerPack.Build.Tasks.dll
  2. Close and restart Visual Studio [this last step is vital]

If you do this, then Lex and Yacc will work from VS as before. Hurrah! I'm now a happy F# developer again!

Monday 5 October 2009

Bat for lashes

I went with my friend Luke to see Bat for Lashes at the Corn Exchange last night. It was a fantastic concert - Natasha is not only a brilliant vocalist, but she has real stage presence. A very different gig from when I was last at the Corn Exchange, but she really moved the audience. She's very well supported by an incredibly tight band, including Sarah Jones, from NYPC, who's the best drummer IN THE WORLD as far as I'm concerned. Charlotte Hatherley was playing a particularly nice guitar which I couldn't quite identify - lots of dry ice! - will have to surf to find that out.

The gig could have only been improved with kids on BMXs on stage for What's a Girl To Do?!