Patrick Lam

Thoughts and travels of Patrick Lam

January: Back to School, and Hump Ridge

7 Feb 2021

Back to school! Classes started on January 11 and that’s been keeping me busy this month. More about that below.

Book review: Overload by Kelly and Moen

14 Jan 2021

I was wandering through a Wellington City Library branch and picked up Overload: How Good Jobs Went Bad and What We Can Do about It by Erin L. Kelly and Phyllis Moen, a book published March 2020. I don’t usually read management books but I am interested in how people work in 2021; work-life balance was cited in Minister Navdeep Bains’s recent resignation, for instance (of course it always is for politicians), and discussed in a Globe and Mail Opinion.

Graduate Seminar Presentation & Discussion Tips

14 Jan 2021

Updated January 3, 2022 for Winter 2022 offering of SASE.

In which I share my opinions about what makes for a good paper presentation for a graduate seminar course, say ECE 750-T5.

Logistics

We’ll aim for talks of about 30 minutes. During the discussion period (Wednesdays), the presenter will kick off the discussion by summarizing their evaluation, and we’ll talk about the strengths and weaknesses of each paper and how it can inspire your future work (whether academic or industrial).

2020 Retrospective part 1: travel

6 Jan 2021

I was writing a 2020 retrospective but it was getting too long so I split it up. Here’s a retrospective on the travel that I’ve been privileged to be able to do. Other parts of the retrospective to come.

I should say up front that I strongly dis-recommend travel anywhere there is a pandemic. The safest thing to do is to limit contact with other people. Travel is not that. Definitely don’t go to St. Barthélemy, whether you are or are not the finance minister of Ontario. (I don’t think anyone reading this can afford that anyway. Let me know if I’m wrong!)

December: Christmas in NZ, 2.5 trips, a Great month

1 Jan 2021

There’s a lot more concluding to do in the year in review post that I’ll do next. Let’s focus on December. I’m very fortunate to have been able to see more of the South Island this month, including basically all of the highlights of Fiordland now. (Looking at the Dusky Track which is definitely not type 1 fun.) Also around Dunedin, which doesn’t have high mountains, but does have a few rocks to climb, coastal scenery, and birds.

SE Student Support

12 Dec 2020

I gave a presentation about the Software Engineering undergraduate program at Waterloo.

I got a question which I took offline about student support at Waterloo. I think it’s worthwhile to post this here. I am adding some comments from Derek Rayside, current SE Director. Response follows.

Thanks for your question about study skills and student support etc. That could be a whole other talk!

As came up in the talk, we’re privileged at Waterloo SE to be able to be highly selective with respect to admissions. But, as I mentioned, we still have students, especially in first year, who learn things about themselves that maybe they hadn’t anticipated learning. (“Oh actually I’m much more interested in Psychology than Software Engineering!”) As well as previously-undiscovered mental health issues.

November: 1.5 trips

3 Dec 2020

Making the most of my time in New Zealand, and visiting a new-to-me region, as well as re-visiting Fiordland and hiking some mountains. Left town twice this month: once for Auckland plus the ‘Far North’/Bay of Islands, and once for Fiordland, but that trip was half in December.

October: Wellington only

2 Nov 2020

For the first time since lockdown, we didn’t get out of town all month. On Friday I am going to Auckland and then the Bay of Islands for the week. It feels like I did a lot of work in October but I’m not quite sure what I have to show for it. Certainly a talk. Thought about ongoing projects and working towards a new project (or at least a funding opportunity). Did travel planning for Auckland.

Onward! Essay: Putting the Semantics into Semantic Versioning

1 Nov 2020

From personal experience, I can attest that maintaining compiler infrastructure that builds on top of LLVM is hard over the long term. You try to compile something from a year ago with newest LLVM and find that it no longer works. The upstream LLVM developers make breaking API changes and it is the responsibility of downstream clients to fix their code accordingly.

I can only imagine the joys of keeping up with the JavaScript frontend and npm ecosystems, having mostly avoided that fun. A few months ago, I did get hit with a breaking Hugo update.

In this essay, we make a broader argument: there are opportunities in analyzing changes to software components and either certifying compatibility or detecting breaking changes. Furthermore, many programming languages techniques (formal verification through testing and of course programming language design) can contribute to the important problem of reasoning about upgrades. We survey the role of contracts and discuss how to best determine the exposed API surface of a component.

Living without a phone

31 Oct 2020

I dropped my phone last Thursday and got it back from the shop yesterday (Wednesday). Some reflections on not having a phone for a week (in the city).