Sunday, August 17, 2008

Papers

I'm currently writing the background chapter of my thesis, and this involves a lot of re-reading of papers. Several times now I've thought "if only I had read this two years ago! This would have been so helpful, I could have avoid so many mistakes!" Of course, I had read the papers two years ago, and I thought at the time that I understood them (in the same way that I think I understand them (better) now). So, maybe, I should have put a lot more effort into properly understanding these papers when I first read them? Well, yes, I probably should, it would have saved me a lot of pain and effort. But, I can't help thinking that maybe I had to do all the work and suffer all the mistakes before I really could understand them. I like to think so, because then I don't feel so bad about wasting months on bad ideas that I could have avoided by spending a few days more on a paper.

p.s. I would particularly like to single out the two variations on the variant parametric types paper by Atsushi Igarashi and Mirko Viroli. It seems to be the paper that keeps on giving; I've read it at least five times now, each time in some detail, and yet everytime I seem to get more out of it!

Tuesday, August 05, 2008

Egypt

Currently I am in Egypt, to be precise I am in Dahab in the south Sinai. My mission is to write my thesis. I figured that it is a lot cheaper than London and there are a lot less distractions. So far I am doing quite well, I have written more than I think I would in London even though I have been busy moving into an apartment and settling in etc. Now I am ready to accelerate to never before seen levels of productivity! This is kind of dependent on the air con in my apartment getting fixed because otherwise it is too hot too sleep and far too hot to think, but, insha'allah, it should be fixed today.

My other reason for being here is that it is the freediving capital of the world. There is lovely warm, clear, and, most importantly, deep water 3 minutes from my apartment, loads of people to freedive with (most of whom are very good) and some great people to take some coaching from. I am pretty much on my pb from last year (41m) and it feels easy. I am taking it slowly, doing lots of dives to about 40m, and have some technique to learn, but I hope to be hitting 50m and more soon. So these are my goals for the summer - one complete thesis and 50m+. My schedule is pretty much work in the mornings, noon, and evenings and freedive in the afternoon. No late nights, no alcohol, no noxious London pollution; by the end of September I should either feel more healthy and alive than I have done in years, or a complete physical and mental wreck, we'll see...

Update, well I seem to be edging toward the physical wreck end of the spectrum, had a bit of boo-boo freediving and was spitting a little blood afterwards. Apparently not too much to worry about, but need a few days rest and to take it easy for a week. That will teach me for being so optimistic! On the bright side it means I have even more time to write my thesis, so I am plowing ahead with the background chapter!

Saturday, August 02, 2008

PostDoc in NZ

Slightly belated news, but I wanted to blog the other things before I forgot them all. From 2009 I will be working for James Noble in New Zealand. We wrote a grant proposal (with more than a little help from Sophia - thanks!) to study existential types for ownership types and other mechanisms for making ownership types more flexible. Our proposal was accepted (yay!) and so I'll be starting work in NZ just as soon as I finish my thesis and get married. This is obviously very exciting and I'm really looking forward to moving to NZ and to working with James. We already seem to have too many ideas for two years and I still have a bunch of things to do with wildcards, so hopefully I won't be stuck for something to do.

Friday, August 01, 2008

A visit to an Najah University, Nablus.

After leaving Cyprus I went to Israel, to visit a couple of friends and to do a few days sightseeing in the West Bank. After a couple of days in Jerusalem and Bethlehem, I headed north to visit a friend; he lives on a Kibbutz in a little corner of Israel squeezed between Lebanon and the Golan Heights. It was very beautiful there and as he had to work during the days I got some work done too - thesis writing and some proofs, occasionally interrupted to cool off by swimming in the beautiful, and freezing cold, river Dan.

After a few days of this it was back to Jerusalem and straight on to Nablus, where, on the bus I met some very nice Palestinian guys, one of whom put me up for the night in Nablus. All of his house mates were students at the university, so I was taken along to a few lectures the next morning.

An Najah university is the largest Palestinian university and has 16,500 students in 3 campuses around Nablus. The campus I visited was very modern and the buildings were much nicer than, for example, Imperial College. Furthermore, as it is quite high on a mountain overlooking Nablus, it has probably the best views of any university I've ever visited. The facilities do not seem too bad either, plenty of computers, etc. Nicest of all it seems very relaxed, other than the slightly over-keen security at the gates, there is none of the background tension that permeates most Palestinian towns. Also, if you have travelled in Palestine, you may wonder where all the young women are, the answer seems to be that they are all at university, there seemed to be (and apparently this is the case) far more female than male students, especially in engineering and science, apparently - which makes a bit of a change from Imperial!

Mostly the place reminded me of any other university, lectures seemed pretty much like lectures anywhere else. There were a few differences: students talk a lot more in lectures than you'd get in England, the classes were a bit smaller, some lectures were in Arabic (although its amazing how much of an Arabic statistics lecture you can understand!), and there are probably more martyrs posters than you'd find in an English university.

I sat in on an English lecture and listened to a very nervous girl speak about colours. And was then press ganged into talking in English and probably confused everyone a great deal. Most students seemed more interested in chatting about why I was there and which football team I supported than anything about English, but I guess it is all practice.

After a late breakfast I knocked on the door of the head of Information Technology to try and find out a little about computer science in Nablus. He was a very nice guy and we were joined by a couple of professors who were also very nice, one of whom had done his PhD in program verification, so we had a little chat about my work and on PLT. They had the kind of problems you'd expect, not enough staff, not enough money, not being able to travel. Even though many of the lecturers have PhDs, they don't have time to do any research. In fact they seem to have lot of clever people (in contrast to say Addis Ababa, where all the lecturers with PhDs left to work in the states), but not enough time and money. They teach pretty much what you'd expect of a computing course, Java and C++ and databases, hardware, etc. Less maths and theory than at Imperial and more general options - the first year is a bit liberal arts like and they continue to do English and other options throughout.

Anyway, what was nicest was to meet so many friendly people, it was amazing how many people wanted to chat or say hello or were interested in this that or the other. Overall it was a great experience and I wish I'd had longer there; the staff wanted me to give a seminar on my research and it would have been nice to meet more of the staff and maybe sit in on some CS lectures.

After all this fun it was time to go back to Jerusalem, which entailed lots of waiting and queuing at checkpoints and very young and nervous (but always polite) Israeli soldiers pointing guns in my direction and general tension. I won't go into it here, but suffice it to say that the Palestinians really suffer for the security measures.

ECOOP day 3

First paper of the day was "Programming with Live Distributed Objects". I used to be quite into distributed programmer, so I was interested to hear this talk. I have some interesting looking notes which I will put here verbatim:
everything is a live, distributed object
eg naming
composition is fundamental
compatible end points is the most important relation, basis for subtyping
constraints on endpoints
parameterised types, XML
Unfortunately, I can no longer remember what any of it means (it has been almost 3 weeks since the talk), perhaps I will edit this once I read the paper and remember how it all works, but I wouldn't hold your breath.

Ray (Hu) from Imperial gave his talk on "Session-Based Distributed Programming in Java". They have implemented session types for Java and it all seems to work very nicely. Session types are cool and their use of them in Java seems to work very well, and they got good benchmarks. It is nice to see static typing used to verify something like distributed protocols, it just seems to make really good sense!

I'm afraid I missed "ReCrash: Making Software Failures Reproducible by Preserving Object States", which I wanted to see, so another paper to push onto the stack.

Next up in this session was "An Extensible State Machine Pattern for Interactive Applications". I started off understanding a lot and thinking the problem was quite easy. It reminded me more than slightly of work we did on StateJ (although they didn't mention us :-( ). They have a problem with interactive, stateful applications that is similar to the expression problem. Their solution seems to involve refactoring in some factory methods. I would have thrown some virtual classes at it and given my usual sales pitch about how nice and elegantly it would all work, but each to their own. Then they started talking about interrupting events and delimited continuations and I'm afraid I got a little lost, but I was motivated to read the paper and understand it.

Probably the most useful idea at the conference, "Practical Object-Oriented Back-in-Time Debugging" did just that, they have a back in time debugger for Java that works with realistically sized programs. If I did any programming I would want their tool! In terms of implementation the key idea is that they keep all of the _relevant_ history, and let the garbage collector get rid of the rest. Seems like a neat idea now that someone has done it!

The last talk of the conference was "How do Java Programs Use Inheritance? An Empirical Study of Inheritance in Java Software". A study of inheritance in Java programs. Surprisingly they use it a lot, not everyone just hacks things together without thinking of these things. I suspect that in a few years this will be the most widely cited paper presented, whenever we need an excuse to do some more research on anything vaguely related to inheritance, BAM! Motivation!

And that was that for ECOOP '08. I had a great time and look forward to next year, although Sophia is PC and so it might be difficult to write a paper for it, not to mention an inconvenient wedding just before the deadline.

I left Cyprus the next day, although obviously it did not go smoothly. After getting a ride to Larnaca airport (thanks to the Swedish contingent!) I had a marathon wait, followed by more waiting as my flight was delayed, followed by more waiting for an interview with security in Israel because they didn't like some of the stamps in my passport (I was kind of prepared for this). By the time I cleared the airport my hotel was closed so I spent what was left of the night sleeping on the roof of a full hostel in the wrong city; the sun was coming up as I finally tried to get to sleep...