A letter from Elections Canada

We are writing to request information to update the International Register of Electors. This request is a result of a July 20, 2015, ruling by the Ontario Court of Appeal, which took effect immediately.

… To receive a special ballot at the upcoming election, you must provide:

– The month and year you plan to return to Canada to reside

The implementation of this ruling demonstrates the imperfect nature of restrictions on expat voting—not only does the law have an arbitrary 5-year bar on voting from abroad, but for all expatriates Elections Canada is demanding a crystal clear declaration of the date they will return to Canada.

I think it’s worth noting that the underlying text of the statute only requires that an eligible elector “intends to return to Canada to resume residence in the future.” Canada Elections Act, S.C. 2000, c. 9, § 222(1)(c).

The agency could likely have fulfilled the statutory requirement by requiring only a simple checkbox that I do, in fact, intend to return to Canada “at some time in the future.” But that’s not what they did.

Click for the full PDFClick here for the full PDF, including the reverse side.

See also my previous two posts on this subject: Let me vote, dammit and A little more about expat voting in Canadian elections.


A little more about expat voting in Canadian elections

After blogging last week about being deprived of my right to vote as a Canadian citizen, I realized two things:

  1. I’m personally affected as far as the impending election is concerned because Elections Canada is now requiring international electors to declare an intended date of return—even those of us who have previously applied to be on the Register, and have not yet been abroad for over five years
  2. Wikipedia’s page on Elections in Canada lacked any mention of the expat situation, erroneously claiming (though it used to be true for 14 months) that “National voting is available to all Canadian citizens aged 18 or older.”

I rectified the second situation by revising those sentences and adding a section on expat voting to clarify the current state of affairs.

I believe my summary, which recalls the five-year limit’s origins in 1993, is the most compact summary of the whole picture, to date, in one place.

Of course, I humbly encourage others to contribute to Wikipedia and edit the article to continue improving its content, but I think the section I mentioned is worth quoting:

Canadian citizens abroad

Although Section Three of the Canadian Charter of Rights and Freedoms provides that “every citizen of Canada has the right to vote”,[9] in practice only those citizens 18 years of age or older, and who reside in Canada or have been abroad for fewer than five years, may vote.[10] Exemptions to the five-year limit exist for members of the Canadian Armed Forces, employees of the federal or a provincial government who are abroad, employees of certain international organizations, and their cohabitants.[10] The five-year limit was originally enacted as part of Bill C-114, An Act to Amend the Canada Elections Act, in 1993; these amendments extended the special ballot to certain prisoners, and Canadians “living or travelling” abroad.[11] In September 2005, Jean-Pierre Kingsley, then the Chief Electoral Officer of Canada for 15 years, explicitly recommended in his official report that Parliament remove the five-year limit by amendment, but no action was taken.[12][13]

In May 2014, a court decision from the Ontario Superior Court of Justice invalidated the five-year limit as an unconstitutional restriction on the right to vote, in violation of Section Three, leading to a period of fourteen months during which all Canadian expatriates could apply to be on the register of electors.[14] However, the decision was reversed 2-1 on appeal at the Court of Appeal for Ontario on July 20, 2015, in a judicial opinion citing Canada’s history of using a residence-based electoral district system and a justification based on social contract theory, which held that the five-year limit was a permissible limitation of the constitutional right to vote under Section One.[15][16] As of August 2015, Elections Canada has implemented changes to its registration process to comply with the latest court ruling, and will require expatriates already on the register to declare an intended date of return.[17]

Again, I really hope this is appealed to the Supreme Court of Canada. Unfortunately, with the federal election just having been called for October 2015, it is impossible for any ruling to take effect in time for the impending election. (A legislative solution is also possible, but a court ruling would be the most optimal outcome.)

Let me vote, dammit

In Frank v. Canada (Attorney General), 2015 ONCA 536, the Court of Appeal for Ontario decided that Canadian expatriates could be denied the ability to vote after 5 years of residency abroad, in spite of the Charter clause guaranteeing citizens the right to vote, reversing an earlier court ruling that had vacated the temporal limit. Letting all citizens vote would be “unfair” to Canadians who live in Canada, apparently.

As a Canadian expat (US green card holder), I sincerely hope this case is overturned on appeal to the Supreme Court of Canada.

Like the respondents, who “attended university in the U.S. and remained there to pursue careers in their chosen professions”, my choice to be in the United States to advance my studies and career in the law is a matter of circumstance. Acquiring a green card did not signal the surrender of my citizenship and all its rights, responsibilities, and privileges.

It’s already annoying enough when the tax agencies of the two countries—CRA and IRS—use different definitions of residency for tax purposes… which differ from the governments’ definitions of residency for immigration purposes… which apparently differ from some U.S. states’ definitions of residency for driver’s licences…

… but now to convolute the meaning of a citizen’s right with a resident’s right?

I remain invested in the direction of the Canadian government and try to stay informed about Canadian politics. I still receive communications from multiple Canadian parties, am a supporter of two activist groups involved in IP and media law, and continue to engage in discourse with resident Canadians about the state of the nation.

As an individual with only one citizenship—Canadian—being disenfranchised at the end of five years from voting in Canadian federal elections would leave me with no democratic representation in any jurisdiction, since noncitizens in America are forbidden from participating in the U.S. electoral system even as a donor to any campaign. Even Canadian felons would have more political representation than I would have. This untenable situation would reasonably drive an expat to pursue foreign citizenship, if only to regain those rights and privileges that one would have expected Canadian citizenship to guarantee.1

The Charter doesn’t define the right to vote by residency, but by citizenship. Section 3 provides:

Every citizen of Canada has the right to vote in an election of the members of the House of Commons or of a legislative assembly and to be qualified for membership therein.

The majority opinion contends that residency has been historically a factor in implementing the electoral system that enables citizens to exercise the right to vote, but the court erroneously conflates the implementation of a constitutional right with the acceptable boundaries on that right.

It embraces the vague notion of protecting the “social contract”, a principle in which individuals who make laws must also obey them, as a legitimate purpose to restrict the voting rights of expatriates. But really, expatriates remain bound by Canadian laws, particularly those affecting taxation, citizenship, and property…2 Laws passed in Canada, far from having “little to no practical consequences” for my expat family as the majority opinion contends, affect us financially (at least in terms of loans and taxes), affect my parents’ property and retirement assets and income, and influence our choices later down the road about whether or not to return to Canada.

… and it’s not like every resident citizen is affected by every law anyways! Bear with me for a moment; consider this perspective: the scope of a law often excludes those people who supported it. A law limiting concealed carry handguns, for instance, would probably be passed by those people who themselves have no need or desire to engage in the actions that the law prohibits. Indeed, this ruling actually enables resident citizens to violate the social contract principle supposedly being protected: a hypothetical law imposing 50% taxes on foreign income earned by nonresident citizens, for example, could be passed by representatives of resident citizens living comfortably in Vancouver and Toronto unaffected, while disenfranchised citizens abroad would be the ones affected.

This case better make its way to the Supreme Court of Canada.

So, TL;DR: just let me vote, dammit! I am Canadian!

New fonts in Windows 10

Did anybody else notice this?

Update: Rockwell Nova also.

They’re hidden away in the optional features (“Pan-European Supplemental Fonts”), but easily installable from Settings -> System -> Apps & features -> Manage optional features.

Pan-European Supplemental Fonts in Windows 10

Most of these are a refresh on classic Windows fonts like Arial, Georgia, and Verdana, but they should come as a welcome surprise!

Georgia Pro Condensed Italic
Georgia Pro Condensed Italic

Happy prerelease testing!

Update: upon request, here are side-by-side comparisons of the new fonts. A subset of available weights/variants is shown in each case. Note that, in most cases, the “Pro” versions add new variants (e.g. Condensed, Light, Semibold, etc) but do not differ significantly in the Regular/Bold/Italic/Bold Italic weights from their ancestors.

Arial vs. Arial Nova
Arial vs. Arial Nova
Georgia vs. Georgia Pro
Georgia vs. Georgia Pro
Gill Sans MT vs. Gill Sans Nova
Gill Sans MT vs. Gill Sans Nova
Verdana vs. Verdana Pro
Verdana vs. Verdana Pro
Rockwell vs. Rockwell Nova
Rockwell vs. Rockwell Nova; in this case, the Nova font also has different metrics
Arial vs. Neue Haas Grotesk Text Pro
Arial vs. Neue Haas Grotesk Text Pro

Using OpenStack images on XenServer – Fedora 22, CentOS 7

For a long time, I’ve been using kickstart scripts (link to GitHub repo) to set up Fedora and CentOS virtual machines on a XenServer host. In the last year or so, the trend of cloud computing has led distributions to release prebuilt “cloud” images in OpenStack-compatible qcow2 or raw disk format, which happen to be broadly compatible with hypervisors. Fedora Cloud’s introduction with F21 prompted me to look into ways of using cloud-init/cloud-config without an entire private cloud infrastructure.

It should no longer be necessary to use a kickstart to install a new VM, because the distribution’s prebuilt images easily work on XenServer with a few conversions.

(Kickstart scripts remain useful for customizing an image, of course; they are often the mechanism with which Linux distros build such images.)

What are prebuilt images?

When I say “prebuilt images”, I mean VM hard disk files released by the Linux distribution. For instance, Fedora 22’s Cloud Base and Atomic Host images are provided in qcow2 and xz’d raw files:

Fedora 22 Cloud Base and Atomic Host images

These releases are designed to work in actual cloud infrastructure—meaning a compute hypervisor (usually KVM), a metadata service that supplies configuration like hostname and networking at boot time, and some APIs that can programmatically affect the virtual machine’s behaviour and configuration. OpenStack is the leading example.

But OpenStack is overkill when you’re just virtualizing a handful of VMs. You don’t need a private cloud when you’re not running a cluster or spinning up machines programmatically. That’s exactly why I found myself running XenServer.

Nonetheless, unless you’re using Xen full paravirtualization (which there are now good reasons to avoid), these images should broadly work with all major hypervisors: QEMU-KVM, VirtualBox, Xen PVHVM, VMware, etc… with minor format tweaks.

How to convert a prebuilt image for use in XenServer

Broadly, there are three steps in the process, the first of which is most important:

  1. Convert qcow2 disk image to VHD.
  2. Import VHD in XenCenter.
  3. Customize imported machine and convert to template.

You can optionally also export the template to an XVA file.

1. Convert qcow2 to VHD

The qemu-img utility can do this. Use your package manager of choice to install (e.g. yum install qemu-img or dnf install qemu-img on F22+). You should do this on another Linux machine (even a VM is okay), because messing with the Xen dom0 is not recommended.

Locate your downloaded *.qcow2 file, which might look something like Fedora-Cloud-Base-22-20150521.x86_64.qcow2. If it’s compressed, like CentOS-Atomic-Host-7.1.2-GenericCloud.qcow2.xz, decompress it first.

Use the command $ qemu-img convert -f qcow2 -O vpc [input file] [output file] to do the conversion. For example,

$ qemu-img convert -f qcow2 -O vpc Fedora-Cloud-Base-22-20150521.x86_64.qcow2 Fedora-Cloud-Base-22-20150521.x86_64.vhd

2. Import the new VHD

If you have XenCenter installed on Windows, use the File -> Import… option to load the VHD. Follow the prompts to set up the VM’s CPU, memory, storage, and networking allocations.

Manual import on command line

Ugh, not using the UI? That means a whole lot more work to import. Are you sure about this???

If you do not have access to XenCenter, it’s a more involved process.

Transfer the newly converted disk image to the hypervisor dom0, such as by copying it into a shared storage location (e.g. NFS image library), and you should be able to use xe vdi-import to load the VHD:

First, get the size of the disk image with $ qemu-img info [VHD file]. Note the size in bytes.

$ qemu-img info Fedora-Cloud-Base-22-20150521.x86_64.vhd
image: Fedora-Cloud-Base-22-20150521.x86_64.vhd
file format: vpc
virtual size: 3.0G (3221471232 bytes)
disk size: 516M
cluster_size: 2097152

Create a VDI in XenServer using the command line tool to hold this new data:

# set SIZE to size in bytes, e.g.
$ SIZE=3221471232
# set SR to the UUID of a storage repository in which to store the VDI
$ SR=$(xe sr-list name-label='NFS virtual disk storage' --minimal)
$ UUID=$(xe vdi-create name-label=Fedora-Cloud-Base-22-20150521.x86_64 virtual-size=$SIZE sr-uuid=$SR type=user)

Then load the VHD:

$ xe vdi-import uuid=$UUID filename=Fedora-Cloud-Base-22-20150521.x86_64.vhd format=vhd --progress

If all has gone well, you get output to the effect of

[|] ######################################################> (100% ETA 00:00:00) 
Total time: 00:00:24

You can check that it’s there by doing

$ xe vdi-list uuid=$UUID

It’s time to make a VM (important: must be PVHVM) to which to attach this VHD. You’ll need to create the CD drive, set up networking, etc, all on the command line. The CD drive should be installed with a cloud-init/cloud-config datasource(Aren’t you regretting not using the GUI now?)

$ VM=$(xe vm-install new-name-label=Fedora-Cloud-Base-22-20150521 template='Other install media')
# make an optical drive, which you might need for cloud-init
$ xe vm-cd-add cd-name='cloud-init-example.iso' vm=$VM device=3

# get the list of networks and their UUIDs; select one
$ xe network-list
# the following line is an example
$ xe vif-create network-uuid=b4187ad6-916e-d1d4-90a7-2b7f1353bca2 vm-uuid=$VM device=0

Now, create the virtual block device (VBD) that associates the VHD disk image with the VM.

$ VBD=$(xe vbd-create vm-uuid=$VM device=0 vdi-uuid=$UUID bootable=true mode=RW type=Disk)


The VM is now ready (although you’ll need to adjust CPU and RAM, which is outside the scope of this guide), either to be booted or to be stored as a template!

3. Customize and convert to template

I like to convert the now-ready VM to a template before using it for anything. This makes it a lot easier to deploy from this point onward. It’s also helpful to tweak the default CPU/memory parameters if desired.

When it’s ready, you can select a halted VM, and choose VM -> Convert to Template… in XenCenter. The equivalent for the xe CLI is something I haven’t figured out yet; the process might require taking a snapshot, and copying the snapshot to become a template.


Avoid flying domestic in China

I originally intended to blog about each city I visited during this vacation in Hong Kong & mainland China, but I got so busy with the actual tourism that I didn’t end up writing anything except for Hong Kong.

However, recent experiences flying (first from Xi’an to Shanghai Pudong, and then from Beijing to my birthplace) have been sufficiently dissatisfactory to warrant a rant about the state of domestic air travel in China.

1. China Southern Airlines problems

Supposedly this is one of the 10 worst airlines in the world, according to Business Insider/Zagat.

Xi’an to Shanghai

Our flight from Xi’an to Shanghai was delayed by about 3 hours. The incoming flight was late supposedly due to weather in Shanghai, so it wasn’t necessarily the airline’s fault. However, communication about the matter was rather poor (see complaints below about the XIY airport) and the delay estimates didn’t seem to be updated in the airline’s electronic systems, even though they knew pretty early on that our flight wouldn’t be able to leave til nearly midnight. China Southern’s website, Google, and (I think) FlightAware, were all providing inaccurate information as a consequence.

Meanwhile, multiple other airlines seemed to have no problem getting planes to fly the same route on time.

Beijing to my hometown

The flight left on time.

Curious observation, not so much a complaint: why did they think it necessary to serve food on a 1.5 hour short haul flight that left at 11 pm? It was a sausage bun of the sort you’d find at an Asian bakery for very cheap… not that one should expect very much of economy class airline food.

I did have an issue with the no mobile phone policy; mobile phone use is prohibited, even in airplane mode. Supposedly this is a Chinese government regulation for which foreigners have been detained for violating. I’m sure older planes with unshielded wiring could be affected by the cumulative effects of everyone’s EM interference—and that’s probably part of why China’s rules haven’t caught up to Europe’s or the US’s—but I really doubt the A320 would have faced much risk from smartphones in airplane mode. A flight attendant actually came around to enforce the rule. Oh well. I suppose we’ll have to blame the government for this obsolete rule.

Deplaning on the tarmac
Deplaning on the tarmac toward a bus to the gate. Sorry for the blur; I took the picture in a hurry.

2. Airport problems

Xi’an Xianyang International Airport (XIY)

The airport was grand and modern—far bigger than was necessary given the remoteness of and air traffic to that city. When we arrived from Hong Kong by Dragonair, we were basically the only arriving international flight; all the other gates seemed to be empty, and our flight’s baggage came on the only active conveyor belt, right next to a sign with such bad Engrish that it substituted an f for what have been a t in “tag”.

The departure hall, too, was much bigger than this city needed. There were other more serious problems, though.

Xi'an Xianyang International Airport (XIY) departure hall
Xi’an Xianyang International Airport (XIY) departure hall

For one, the technology seemed to outpace the capabilities of the people—a recurring observation on this trip. Airport employees made simultaneous, overlapping announcements on the PA system, talking over each other. They also made that gross blowing sound into the microphone each time before starting an announcement, as a mic check. For comparison, I’m told that at many Western airports, announcements are recorded and placed into an automated, prioritized queue (e.g. see Phonetica).

Second, the departure hall featured at least one smoking chamber. The one I observed was a glass booth for people to smoke their cigarettes… but the glass walls didn’t reach the floor, so the booth wasn’t actually isolated from the surrounding environment. Smokers also didn’t close the door fully, which led to that entire gate area smelling like smoke, unfortunately triggering my asthmatic cough repeatedly for those three hours we were delayed there.

Third, there was a ridiculous lack of use of digital information systems. The counter at the gate where we were waiting appeared to lack an airline reservations/logistics computer, and delays were usually not reflected on the airport displays, instead being announced in Chinese and broken Engrish on the PA. On the counter hung a piece of paper, hand-filled with the flight number and the fact that there was a delay. Eventually when we boarded, I don’t even recall if our tickets were scanned—just checked by the gate agent a flight attendant at the gate.

XIY gate counter, with no computer or TV screens specific to that gate
XIY gate counter, with no computer or TV screens specific to that gate

Whatever illusions of modernity and professionalism one got from the physical appearance of the airport were disrupted by these oversights.

Beijing Capital International Airport (PEK) Terminal 2

Never mind that Terminal 2 (T2) and Terminal 3 (T3) are practically separate airports with a minimum connection time (MCT) of 160 minutes for domestic<->international connections… or that the Airport Express train only goes from T3->T2 and not the other way around…

Possibly because of the passenger load at PEK, the airline would not accept checked baggage prior to 3 hours before departure. Consequently, I could not go through security, and had to lug around my heavy suitcase to coffee and dinner in the unsecured area for a few hours… while coping with the dearth of general (i.e. not paid restaurant) seating space prior to security. While I was sipping my drink, I began wheezing and coughing—remember my allergy-related cough?—because some unscrupulous customers were smoking, indoors, in an open restaurant. I can’t believe no one else complained. At last, a waitress told the smoker to put it out.

The story doesn’t get much better after screening. Once inside, I found that my boarding pass did not indicate a gate, and that the terminal displays did not show a gate assignment. My impression, and I could be wrong, is that PEK—and perhaps other airports—does not assign gates until shortly before departure. Unfortunately, that also meant no clear direction to go in the secured area, and nowhere really to sit…

Well, hey, at least I got to charge my phone at a charging station… which other patrons seemed to treat as a garbage bin in table form.

Patrons' food and garbage at a charging station in PEK T2
Patrons’ food and garbage at a charging station in PEK T2

3. The alternative: high speed rail

High speed rail in China is a wonderful thing. We took it from Shanghai to Nanjing in 2nd class, and from Nanjing to Beijing in 1st class seats. In each segment, top speeds exceeded 300 km/h. Trains always left and arrived on time, and seats were more spacious than any economy class seats on an airplane. Typically trains run about every 15 minutes along this route, and all the ones we took on this trip seemed to be filled.

High speed rail from Shanghai
High speed rail from Shanghai

Here are some photos of Chinese high speed rail stations and trains, from my last visit in 2012:

Given that a trip from Shanghai to Beijing in 2nd class would only be 553 RMB (about $89 USD)—uniform pricing regardless of when the ticket is purchased, unlike airfare—and that train stations are generally more convenient to get to/from than airports are—where a high speed rail link exists, I would definitely choose it.

4. Is it any better in the US?

I don’t fly that much in the US, and when I do, it’s often a rather short flight between Philadelphia and Boston. JetBlue and American are pretty nice, though. Even then, the convenience of taking Amtrak to/from 30th Station in Philadelphia and South Station in Boston usually makes rail travel far preferable to short haul flights when rail is an option.

But I doubt the US will ever develop high speed rail as China has. There’s not enough space or money or will—and, arguably, there is no comparable need.

Do you have comparable complaints about domestic air travel in China or the US? Please share.