So I’ve been back from Calgary for nearly a week now, but I haven’t had time to write. The last week, and the conference, were pretty intense.
On Wednesday, August 26 I got up bright and early. I had already packed, so instead I could work on integrating ConcJUnit support into DrJava. I really did work until the last minute: Even at IAH Terminal A I was still making changes. I just figured the demo of ConcJUnit wasn’t very exciting from a visual perspective, so using it inside DrJava might make it a bit better. I think this was the right idea.
My flight had a short layover in Salt Lake City, Utah. The mountains seemed great from the air. Maybe some day I can spend some more time there. It did look rather dry there though; in fact, even the airport was lacking water fountains, and I couldn’t refill my water bottle for the flight to Calgary. I got to Calgary around 10 PM (11 PM CDT). I had just used carry-on luggage (although the airplanes were so small that I couldn’t in fact carry it with me), so getting my stuff didn’t take long.
The immigration examination was pretty thorough: The officer asked me what I was doing in Calgary (“I’ll speak at a conference.”), what conference it was (“PPPJ at the University of Calgary.”), and what kind of a conference it was (“It’s a computer science conference.”). She then asked what my status in the US was (“I’m an F1 international student.”) and “what I was taking”. I didn’t understand that question. I guess she was asking what classes I was taking. I finally responded with “I’m a computer scientist.” Customs, on the other hand, was very easy. I took a taxi to the hotel and then had some late-night McDonald’s. I hate getting fast food, but I didn’t want to search for restaurants that were still open at 11 PM.
On both Thursday and Friday I got up at 6:30, used the coffee maker in my room and got dressed, then headed down for the complimentary breakfast, which was pretty good. On Friday, though, it was swamped with Austrian tourists. I pretended not to understand them. Then, around 8:45, I headed to the conference venue. I got back around 9 PM on both days and then continued to work at home.
The conference was pretty small — it seemed like nearly everyone that was there was also presenting. The highlights for me were definitely Michael Ernst‘s tutorial on pluggable type-checking, Borys Bradel‘s presentation on trace-based parallelization of recursive Java programs, and the work by Danilo Ansaloni et al, particularly MAJOR.
Danilo’s MAJOR presentation was just before mine, and it was really an impressive demonstration of aspect-oriented programming for instrumenting programs. He shocked me by saying, as an aside, that in their aspect-oriented version of ReCrash they can also detect uncaught exceptions in all threads. They do this by applying an advice at a join point at the end of the Thread.run()
method.
This seems a lot cooler than how I’m doing it, and I have to admit that I was stunned and that my presentation suffered. My approach, ConcJUnit, however, is simpler and uses standard Java, so it does have its merits.
The conference was enjoyable. I met some very smart, interesting and genuinely nice people. In addition to Borys, Danilo and Michael, I want to mention Ben Stephenson, the General Chair of the conference; Ondrej Lhotak, the keynote speaker; and Dave Hughes, chair of the CS department at Brock University and user of DrJava.
I did feel pretty tired afterward, though, and except for dinner downtown on Friday night, I didn’t have any time to go sightseeing. Consequently, the only pictures I took are from inside my nice hotel room and of a rather gigantic rabbit on the campus of the University of Calgary:
On Saturday morning, I got up at 4:30 and had coffee, then shared a taxi to the airport with David Hughes. The flight back via Minneapolis, Minn. was uneventful, and again I got a decent amount of work done. There was no free wireless network at either of the airports (at least none that I could get to work), so in Minneapolis I used tethering on my Palm Treo to submit my changes to Perforce and Subversion.
I thank my advisor and co-author Corky Cartwright for letting me attend this conference; the School of Engineering for partially supporting me; and the conference organizers and reviewers for their hard work.
Now I’m back, and I’ve spent the last few days improving the ConcJUnit integration in DrJava. As of yesterday, it is now possible to select a JUnit or ConcJUnit jar file and use it instead of the built-in JUnit. If ConcJUnit is used, the Java runtime library can also be processed at the touch of a button.