Jump Bike invasion in Montreal and why Uber sucks

As Uber’s Jump electric bike offering arrives in Montreal, a very common sight starts appearing: Orange Jump bikes parked everywhere: in parks, on sidewalks, tied to private property or public structures, sometimes blocking the way for pedestrians. Uber’s permit stipulates that bikes have to be parked in designated spots only; a “designated spot” is a […]

Cross-timezone date calculations using the “date”command

Working remotely for a timezone-distributed company poses an interesting challenge: that of having to figure out dates and times for people in different timezones. This involves not only the relatively trivial “what time is it now in A_FARAWAY_PLACE”, but “what time, in FARAWAY_PLACE_X, will it be in FARAWAY_PLACE_Z” and other fun things. There are a […]

Remote display of a KVM virtual machine

In this case I’m hosting the VM on a fast server and trying to access the display on another system (a laptop). One way to do it is by simply SSHing with X forwarding and running KVM like so: qemu-system-x86_64 -boot d -cdrom ubuntu-18.04.2-live-server-amd64.iso -m 8192 -enable-kvm This by default uses a terminal window, but […]

KVM bridged to the LAN with DHCP

The goal here is to instantiate VMs with a br0 interface grabbing an IP from the LAN DHCP, so in turn the VM can instantiate LXD containers whose IP is also exposed to the LAN. That way everything is visible on the same network segment and this makes some experimentation easier. Host configuration Some info […]

Buying a house in Montreal – Fulfilling the conditions of the offer

Our offer to purchase contained two main conditions: an inspection within 7 days of the acceptance, and obtaining an approved mortgage loan within 15 days of the acceptance. Since we’re going for a renovation and extending the mortgage to cover that cost, it’s usual to add another condition to allow for a contractor to visit […]

Bisecting Python unit test errors to find test interdependencies

  Many of our test runs use parallelization to run faster. Sometimes we see test failures which we can’t reproduce locally, because locally we usually run sequentially; and even then, the test ordering seems to be somewhat unpredictable so it’s hard to reproduce the exact test ordering seen in our test runner. Most of the […]