April: finally done with Winter term

Posted by Patrick Lam on Monday, May 8, 2023

Table Of Contents

Only one week of lectures for April, and yet still lots of teaching-related work (exams, computing grades/admin). MP came for two weeks, and I went to Western Newfoundland for Easter. I gave presentations about refereeing judo, climbing access, and of course for work (teaching and a FAUW committee report): talking about everything! Just at the end of April I started thinking about my West Coast talk. My student Moh completed his MASc requirements.

ECE 453 is now wrapped up and seems to have gone well. There really was a lot of end-of-course admin. ECE 459 isn’t quite done yet but I don’t have a lot of obligations there.

The Dean of Engineering, Mary Wells, is working to build community and to provide other services. The Faculty hired a professional photographer to come in and take headshots. Somehow this picture was better than the one last time. I asked the guy about taking portraits and he was like “yeah, it’s a whole different thing, take a course.”


Let’s hope I didn’t catch it in Brampton and don’t catch it on the West Coast Tour. I do notice that people seem to catch it a lot when travelling. Probably a combination of lack of sleep, disruptions to routine, and more socializing (including restaurants).

No wave right now?


Hot Takes on Machine Learning for Program Analysis
Patrick Lam, University of Waterloo

Unless you have been living under a rock, you have noticed the general
popularity of AI/Machine Learning over the last few years.  These
techniques have also made their way to program analysis research.
Even though I see my research as focussing on classical static
analysis techniques, it turns out that I've applied Machine Learning
techniques in my own work as early as 2008. This year, my students and
I have done work on Rust bug classification; code representations for
method name/return type prediction in WebAssembly; and formally
verifying Copilot-generated code. I'll survey less-recent and
more-recent applications of machine learning in program analysis,
present overviews of my work, and tell you all about my opinions about
what machine learning is good for in the domain of static analysis.

Bio: Patrick Lam is going on a West Coast (North America) tour this
May and visiting friends and colleagues, both in the research
community and otherwise. He is an Associate Professor at the
University of Waterloo and is interested in software engineering
applications of static analysis techniques. He is also planning to
get out into the North American mountains before a visit to the
Victoria University of Wellington (New Zealand) on his upcoming
sabbatical. Ask him about New Zealand!
Keynote talk at PNW PLSE. [slides]

Worked on 23 days, with nominally 20 work days in April. The only research I really did was thinking about my talk at the very end of the month. May will be all research, though. There is going to be the talk, the EMSE revisions, talking to Amazon, and figuring out what Mohammad is going to do.

Grad students

Research students were also having a tough time with end of term. But I talked to my students on 6 days. The MASc seminar meant a lot of preparation beforehand. I also had an end-of-classes get-together at the beginning of the month and a lunch celebrating Moh’s MASc at the end of the month.


All I’ve got is that abstract above. I wonder if I can make it into an Onward! Essay. We’ll see how people respond to the talk.


As I wrote above, there was a lot of ECE 453 work, between setting the final exam, answering questions, and assigning final marks. I also set two questions for ECE 459, which was quite manageable. Good thing that we have multiple instructors there.

There was one Walk as a Service with a CS student who mailed me out of the blue this month.


I read two MASc theses, attended the SE faculty retreat, chaired a PhD comprehensive exam for a Systems Design student, participated in two job candidate visits, attended the Engineering Faculty Commencement lunch, and was the last man standing on the FAUW Nominations and Elections Committee.

I wrote notes to incoming undergraduate Software Engineering students. I’ve done this for a while, but this year, three students wrote back to me, which is unusual. Go figure.

I continued with SIGPLAN-M mentoring, which is rewarding (and also helps me, too, in getting invited as a keynote speaker at PNW PLSE, and in having the Amazon Research Awards pointed out to me.)


I was in town for the weekend of April 1. Then I went to Western Newfoundland for Easter weekend; Ottawa for half the weekend after that (referee clinic); Montreal the weekend after that; and Brampton in the last weekend of April. Since teaching had ended, I was also in Montreal for a couple of weekdays, though I had to go back to Waterloo to give the ECE 453 exam.

Day trip to Toronto by bicycle/GO/TTC for a 2pm appointment worked really well. Much better than driving.

Dog and cat statues. Motorcycles.

Western Newfoundland, April 6-9

I’ve wanted to ski at Marble Mountain for a long time. Easter weekend was coming up, with no lectures from Thursday through Sunday. I noticed that Marble tried to stay open until at least Easter, and that Aeroplan redemptions to YDF were reasonable.

Marble Mountain has 225 acres and 1759’ of vertical to Tremblant’s 630 acres and 2116’ of vertical, but Marble also has, I dunno, less than one-tenth as many skiers. Maybe it’s not so viable as a business, but it was great to be there.

View of the Humber River; skiing in the trees.

Western Newfoundland also contains Gros Morne National Park, though e.g. Western Brook Pond is really hard to access off-season, and the Tablelands are under snow. Still, I’d be able to do some hiking.

Tablelands ร—2; Discovery Centre (closed); Bonne Bay.

And, some birds.

Ring-billed gulls, greater scaup, Iceland gull, gull in flight.

Ottawa/Bromont/Brossard, April 16

Didn’t see Ottawa itself: left Waterloo later in the day after a packed social calendar. They put us up in a Hilton Garden Inn near the airport, which was nice, and convenient to the clinic location.

Proceeded to Bromont for a few days. Was nice to see MP’s mom and stepdad. And there is a small bouldering gym 15 minutes’ walk away (along the highway, on a rainy day; we drove). Didn’t really do anything else in Bromont except for work.

Problems in the corner

Then I took the train on a quick-turn round-trip to Waterloo to give my exam. That worked pretty well. I left on Wednesday and took the train to Montreal. Gave the exam on Thursday and crashed at Derek’s sister’s place so that I could take the 8am train on Friday morning. That train was a bit late, but fine. I took the bus to Brossard and walked to MP’s dad’s place, which isn’t really that far. The walk isn’t that interesting.

Racing the GO bus; exams in PAC; houses by the train tracks.

We drove to a couple of walks (Montreal’s great, but it would be nice if we could get to the walks otherwise). I rented a Sony 100-400 GM lens from Gosselin because mine was broken. $40 for the weekend is hard to beat.

Saturday was nice and had good photography conditions; we got pictures of chickadees and white-chested nuthatches. Then it started raining and Sunday was super muddy. The light was terrible, too. It was cloudy and bright, and the birds were in the trees. But we saw a Great Horned Owl.

Brown thrasher; eastern garter snake; midland painted turtles; northern flicker; white breasted nuthatch; grackle; northern flicker; tree swallow; downy woodpecker; mama great horned owl.

I scheduled my return to Waterloo on Monday when MP had her flight back to New Zealand, and took the train from Dorval. Actually I had fumbled and bought TRTO-MTRL instead of MTRL-TRTO. But they let me fix it for the fare difference, fortunately. I got back to Waterloo in time to get to the climbing gym, and had a good session.

Brampton, April 28-30

I had a lot of travel fiascoes on Friday! I had the wrong easyGO card to get to Kitchener Station. Then there was a mix-up with the car reservation. After some analysis paralysis, I had finally decided to rent the car on Friday at Pearson and return it on Monday, so that I could fly out immediately. But I’d initially made a booking with Enterprise out from Waterloo and back to YKF. That would have been suboptimal and more expensive. I modified my reservation. Then the Waterloo location asked me if I needed the car. I said, no, I was getting it from YYZ. I even called YYZ to check and told Waterloo that I didn’t need the car. But then they cancelled the reservation and when I showed up at YYZ they didn’t see it. I called again and got YYZ to honour the rate (well, plus $8, because they didn’t apply the Enterprise Plus discount). Enterprise did not take walk-ups at YYZ but said that Alamo and National, which are sort of the same company, did. I was concerned about it being expensive.

That was travel fiasco #1. Travel fiasco #2 was that the traffic on Friday in Brampton was terrible; the drive to the Save Max Sports Centre was 45 minutes instead of 20. I stopped to get some jerk poutine and decided that I would check in at the airbnb after the clinic. We got out late and then I got to the airbnb and the host had actually fallen asleep and didn’t answer the doorbell, the cellphone, or the airbnb messages. I did a bit of work and then managed to convince the other airbnb guest that I was not, as she had initially feared, a “bad person”. The host refunded me.

The tournament was relatively large for Ontario (500 competitors), but they did not have match numbers and the competitors took longer than they should have to show up. We started late, at 11, and finished at 8:00. Could have been an hour earlier.

Pursuit Climbing the week before; Real Authentic Jamaican Restaurant & Bar; referee clinic in Brampton.

It is super important to me to build a community of Ontario referees, so I planned a dinner at Turtle Jack’s after the tournament. Took 2 hours, which would be fine, except that I had decided to drive to Waterloo and back on Saturday night. Anyway, building community is more important than having time to pack and sleep, and I think that was good. We got about 15 people out to dinner.

Travel planning

I kept on procrastinating my planning for the Brampton weekend. Finally got around to it 2 days before. No airplane, how hard can it be. It was fine except for fiascoes, which might not have been prevented by planning earlier.

I did some planning for the West Coast trip. Let’s see how well it goes.

Movement statistics

Better than March. Still, it’s hard to get enough walking in Ontario, or in the suburbs. I hate suburbs.

  • ๐Ÿšถ Walking: 71km on 20 days (including 16km on snowshoes)
  • ๐Ÿšฒ Biking: 203km on 15 days
  • ๐Ÿš— Driving: 2163km on 17 days (Montreal, Brampton, around Western Nfld)
  • โ›ท Skiing: 58km (plus 50km chairlift)
  • ๐ŸšŒ Bus: 134km on 5 days
  • ๐Ÿš‡ Mรฉtro: 18km
  • ๐Ÿš† LRT: 5km
  • โœˆ Plane: 3,633km (YYZ-YDF, YDF-YUL-YYZ)
  • ๐Ÿš† Train: 1,974km (GO Kitchener-Toronto 5ร—; MTRL-TRTO, TRTO-MTRL, DRVL-TRTO)


Um, I processed lots of April photos, so avoided some negative progress, plus some Japan photos.

The view from Sapporo Teine; #teinenow; the bus back to Sapporo; Hokkaido Shinkansen coming.

Japan, February 2023. Still have a couple of big days to process from Japan, but here’s what I did, mostly from the Hokkaido part:

Sequential art at NRT; Akebonobashi at night; tancho.

Abel Tasman Coastal Track, September/October 2021:

Landing in Nelson; ferns; Fisherman's Island; oystercatcher on the beach.

You can see select pictures from the below albums above.

Western Newfoundland, April 2023:

MP visits Montreal, April 2023:

The List

I processed one day from 2021 last month.

  • [January] Zealandia, January 4/14/18/Wellington Butterfly (23), Zealandia (April, June, September, November), Wellington Sunset (November), lens tests (November)

  • [September] Paparoa Track & the Glaciers (7)

  • [September/October] Abel Tasman Coast Track (3)

Even more pictures from 2022:

  • [January] Walking around KW
  • [February] Reading week trip to Montreal
  • [April] Northland (6)
  • [May] trips 1 and 2 to Montreal
  • [July] Vancouver (2)
  • [August] Brisbane airport walk
  • [August] Colonial Knob
  • [September] Napier (2)
  • [September] Motueka (2)
  • [October] Queen Charlotte Track (6)
  • [November] New Plymouth (4 days with more than a few pictures)
  • [November] Radome/Red Rocks
  • [November] Remutaka overnight (2)
  • [December] Kereru (03/12), Zealandia (05/12)
  • [December] Auckland
  • [December] New Lens Day
  • [December] Wanaka Grebes (6)
  • [December] Gillepsie Circuit (4)
  • [December] Mueller Hut (2)
  • [December] Glacier iceberg kayaking
  • [December] Omarama

Did some 2023 pictures but took a few more:

  • [January] AMC
  • [February] Japan (7)
  • [April] Western Newfoundland (2)
  • [April] MP visits Canada (3)

April posts

Miscellaneous: home repair

Preparing our place for tenants, I fixed a bunch of hardware, and MP fixed the paint and some holes in the wall.

  • Door trim: there was a leak in the roof, which finally got repaired; I had cut out some trim to look at it. I fixed that with the help of a saw that Spiro lent me.
  • Kitchen faucet: the old one was annoying me in that it didn’t turn and was otherwise wonky. We got a new one, which is a lot like the old one, and I installed it.
  • Chairs: took me longer than I’d like to admit to screw chair parts together.
  • Vacuum cleaner: installed on the wall.
  • Weatherstripping for front door: replaced (needed to exchange it; fortunately, Home Hardware is an easy bike ride away, even if the Uptown Ontario Seed Company location isn’t open as much as I might like.


  • built Lego Kakapo
  • reconditioned Dyson vacuum
  • reprinted CO2 meter case
  • contact lenses
  • shoehorn, again (in metal, from Wal-Mart)
  • faucet
  • wood to fix trim around back door
  • weatherstripping for front door
  • #0 screwdriver (to fix dining room chairs)
  • two pairs of pants
  • got 3 pairs of pants & gaiters fixed (thanks Gus!)
  • Petzl Nomics
  • Suitcase from Thrift on Kent (quaxed to bring home)
Lego Kakapo; new co2.click case.


I did one Walk as a Service. This one was less muddy than the last one. Also, checked out birds at the Technoparc near Trudeau airport (super muddy) and at the Reserve Faunique Ile St Bernard, with a rental Sony 100-400 GM lens. It’s twice as expensive as my Sigma 100-400 and maybe 20% better?


I went to judo practice once. Either I was out of town or I had other service committments (committee meetings, gym-to-crag presentations).

The climbing situation was much better. I managed to get out 6ร—, including once in Bromont at Backbone and once in Stratford at Pursuit.


There was a lot of refereeing-related volunteering this month. Not that much actual refereeing (I got on the mat for 4 tachi-waza matches and a couple of groundwork matches at the Tora tournament), but evaluating and serving as a mat chief. Also co-presented a clinic in Ottawa and helped in Brampton. Put together a refereeing exam and evaluated the candidates.

Did a bunch of work for the OAC, including giving a gym-to-crag talk in Stratford to 6 engaged listeners; placing an order for stickers to replace our old logo on Conservation Halton properties; and fixing the ecommerce (enabling the CAPTCHA).


Western Newfoundland:

  • Sorrento: excellent seafood crepe in Corner Brook
  • Louis Gee’s: pizza and donairs, pretty packed on a Thursday night
  • Knotty Pine: very average poutine at the ski lodge at Marble Mountain
  • Da Marcus: decent fish and chips on Good Friday
  • Harbour Grounds: good chicken salad croissant and chowder for lunch; very sweet hot chocolate It was Easter, so I couldn’t go to some of the places I’d found, and other places were full.


  • Martini’s in Kitchener: yeah, it is good
  • Bauer Kitchen: same; it was a heatwave and the terrasse was booked solid
  • Pho Dau Bo (King St, Kitchener): haven’t been here since 2019; I liked it but MP didn’t find her pho was flavourful enough
  • CE food experience: the normal croissant was fine, the chocolate croissant had chocolate cream and was a bit rich
  • Kabob Shack: I’d read a glowing review in, well, mathNEWS. Biryani was good, but I wouldn’t give it a glowing review.
  • Bamba Restaurant, Ottawa: sushi after the clinic and before driving to Montreal
  • Real Authentic Jamaican Restaurant & Bar, Mississauga: great jerk in the jerk poutine; poutine itself was average.
  • Turtle Jack, Brampton: it’s OK I guess; service was kind of confused
  • Mesa in Hamilton (flautas): legit Mexican food in Canada
  • St-Hubert: yes, they execute well at scale.
Gyro donair from Louis Gee's in Corner Brook; seafood crepe from Sorrento; Mexican food from Mesa in Hamilton; salmon at Martini's; less flavourful pasta than I would have preferred on the train; biryani from Kabob Shack; jerk poutine.


I made good progress on Before the Dawn but did not finish it before leaving town. The protagonist is having his mid-life crisis and goes to be a priest at a shrine in the mountains for 4 years. Supposedly he goes crazy towards the end of the book, but he’s not quite crazy yet.


Teaching seems like it should have been mostly done but it really wasn’t. Now it is, for quite a while. Yay! Onwards.