I get to vote!

… at least in this federal election.

After Elections Canada’s letter requesting my intended date of return, I responded by postal mail declaring a future date that should accommodate my intended career development in the United States. Needless to say, that intended date was pretty far into the future. At the close of my letter, I stressed that the Canada Elections Act has no statutory time limit on the intention to return:

I also write to emphasize that I became a nonresident of Canada upon acquiring residence in the United States on ****** **, 2014. Therefore, I am within the five-year limit on actual time abroad recently reinstated by the Court of Appeal for Ontario, even if my intended return would be beyond five years, since the applicable statute imposes no temporal restriction on the intended date of return for an eligible elector “who… (c) intends to return to Canada to resume residence in the future.” Canada Elections Act, S.C. 2000, c. 9, § 222(1).

I look forward to receiving a special ballot from your office at the upcoming election.

This week, I received the special ballot voting kit, which includes a guide pamphlet, ballot paper, an inner envelope, an outer envelope, and a preaddressed envelope.

Voting kit for special ballot
Voting kit for special ballot

* As far as I am aware (and yes, I’ve checked), it is not illegal in Canada or Ontario to photograph this kit, provided that no vote has been marked. I haven’t yet decided for whom I will vote, so this photography serves simply as an illustration of what to expect for Canadian expats, rather than as evidence of my vote.

Hopefully this won’t be the last time I get to vote in Canada from abroad.

Are you a Canadian temporarily abroad?
Register to vote with Elections Canada!

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

Democracy Thwarted

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.

Footnotes

Footnotes
1 It’s worth noting that American expatriates retain the right to vote indefinitely while abroad, and even some citizens who have never even set foot on U.S. soil can nevertheless vote in several states. Hurrah to the Constitution?
2 Increasingly in today’s world, laws that apply to surveillance and foreign intelligence, too, come to mind.

New fonts in Windows 10

Arial Nova 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.