Figure 1: "Fish Market!"

I happened to be one of the co-authors of "A Meta-Scheduler for the Par-Monad: Composable Scheduling for the Heterogeneous Cloud" (pdf), which was selected for ICFP 2012, The 17th ACM SIGPLAN International Conference on Functional Programming. "Happened" because it was without too much effort from my part – and this was not because of a lack of desire, but because I was taking classes and was TA for another class and I was having a hard time with managing my physical and mental well-being. Although I must admit that it was excellent learning to see how a real serious conference paper is written from close quarters.

The school gave a bunch of money from what they reserve for new graduate students for conference travel, the ACM SIGPLAN PAC gave another bunch of money – turned out that this was enough money for me to actually get to Copenhagen and pay for hotel and attend the conference in September 2012.

(Yes, September 2012! This is not exactly tweeting from the venue. To be honest, I do not feel particularly guilty about not keeping up with The Schedule. Which is: It Will Happen When It Happens.)

I don't know about other fields, but among programming languages people, especially among the functional variety of the said people, ICFP has a reputation for being one of the more fun conferences to attend. ICFP also co-hosts several affiliated events: Scheme Workshop, CUFP Conference, Haskell Symposium, ML Workshop, Erlang Workshop, Haskell Implementors' Workshop, and the like. Naturally ICFP brings together a great bunch of people from industry and academia. Indeed, ICFP is fun.

Once at Copenhagen, I unfortunately altered between falling sick with a fever that kept receded and coming back, and meeting homework assignment deadlines for the classes I was taking. I missed a couple of keynote addresses that I wanted to attend, but I was happy with what I could catch: notably, Peter Sewell's Tales from the jungle; Philip Wadler's Propositions as Sessions (pdf); Geoffrey Mainland's Explicitly Heterogeneous Metaprogramming with MetaHaskell (pdf); Lars Bergstrom's Nested Data-Parallelism on the GPU (pdf); Neil Mitchell's Shake before building - Replacing Make with Haskell (pdf); etc.

Apart from attending talks, and going to conference dinner, and spending the remaining evenings working from a café, but mainly falling sick, I managed to take a couple of long walks in the city: once upon arrival, because my hotel room was not ready for check-in; and the next time, after recovering from a whole night and day of fever.

My impression is that Copenhagen is a very nice city indeed, and the Danish are a friendly folk. Bicycles and bicycle tracks everywhere; sometimes little kids on little bikes would roll along, closely followed by their parents.

Among my regrets are not getting to spend more time with the conference people and not getting to see more of the city. On a bike.


One of the European students I spoke with told me abut his graduate school research, and asked about mine. I told him that I am interested in "systems" and "parallelism in programming languages" and "GPGPU stuff" and such things but this semester I am mainly taking classes and keeping up with TA duties. He wondered: "What kind of PhD is that?"

Exactly. What kind of PhD is that?

(Not the kind of PhD I could do a good job in, it eventually turned out. But that is another whole story, perhaps for another time.)


One of those nights I could not figure out the way when I was looking for a particular restaurant. I asked one of the several women who were waiting in a street corner for directions. She didn't know where this place was, but proceeded to grab my arm anyway: "Don't you want a night of fun?"

I told her I have someone back home. She asked me how does it matter, now that I am away from home. I told her that it does indeed matter, that I was a poor student, released myself, and walked away.


All these pictures are shot with an Olympus XA film camera. Pictures 1-11 were taken using some very expired Agfa Vista 100 film; the rest, on Kodak Ektar 100. You can tell the difference.


Figure 2: 1


Figure 3: 2


Figure 4: 3


Figure 5: 4


Figure 6: 5


Figure 7: 6


Figure 8: 7


Figure 9: 8


Figure 10: 9


Figure 11: 10


Figure 12: 11


Figure 13: 12


Figure 14: 13


Figure 15: 14


Figure 16: 15


Figure 17: 16


Figure 18: 17


Figure 19: 18


Figure 20: 19

(Posted on 1 April 2014.)