In June I recommended that we work to improve the “courtesy emails” that are automatically emailed to patrons from Robertson Library. The situation with the Prince Edward Island Public Library Service is even worse, as they try to cram in even more relevant-information-obscuring text; here’s an email I received today:

PEI Provincial Library Service Courtest Email Sample

What I need to know from emails like this is:

  • What books are due?
  • When are they due?

Everything about the email should be judged as to how effectively those pieces of information are communicated.

Information that I do not need that’s in the email:

  • The date (it’s already in the date stamp of the email itself).
  • The mailing address of the Confederation Centre Public Library.
  • My own mailing address.
  • Links to the library Facebook and Twitter accounts.
  • The “ID” numbers of the books (meaningless).
  • The wordy introductory paragraph (we all know how libraries work; this doesn’t need to be re-explained).
  • Statement of Confidentiality (meaningless).

What’s worse is that the “when are they due” information is presented in an ambiguous format: are the books due on September 10 or on October 9?

For an email that’s all about the date, that’s an important thing to be clear about.

Here’s a prototype for a replacement email:

Prototype for redesigned courtesy notice.

The Vinyl Cafe is a much-beloved long-running CBC Radio programme hosted by Stuart McLean. The heart of each episode are the “Dave and Morley stories,” tales of a fictional Canadian family and their misadventures. And the stories are – quintessentially – Canadian, filled with the kind of wry self-deprecating humour that is at the heart of our national psyche.

Stuart McLean’s telling of the stories is also quintessentially, well, Stuart McLean, filled with expectant pauses and told with a masterful sense of comic timing. So much so that for years I thought that Dave and Morley were real, only to have the wool pulled away from my eyes by my brother; I emailed McLean to complain, and he replied, kindly, with a wink and an apology.

Those pauses: they are epic. Almost a character in the story themselves.

Here, for example, is a 14 second snippet of the Gabby Dubois episode that aired a few weeks ago:

Just look at that waveform: signature Stuart McLean.

Indeed here’s the same snippet, but with the pauses hand-edited out; you lose 4 seconds (30%) of the clip in the process, and much of the impact:

Listening to an episode of the show this weekend, I realized that those pauses were a key to hacking the Vinyl Cafe: if I could split a Dave and Morley story into chunks by splitting on the pauses I could then remix the story into, well, whatever I wanted. Fortunately the open source toolkit was chock full of tools to make this surprisingly easy on my Mac. Here’s how I did it.

Chop out Dave and Morley

From the Vinyl Cafe podcast feed I downloaded an episode of the show, the same Gabby Duboid episode I took the snippets from above. I then used Audacity to locate and copy-and-paste the Dave and Morley story into a new file, and saved this as an MP3, which I called gabby-dubois.mp3.

Split on Silence

To split the story into chunks based on silence I used the mp3splt program, like this:

mkdir silence
mp3splt -d silence -s gabby-dubois.mp3

The result was the new silence directory filled with 326 small MP3 files, each a chunk of the story.

Glue Together at Random

The opposite of mp3splt is mp3wrap, which glues MP3 files together from the command line. I decided that it would be interesting to take the 326 small chunks of the Gabby Dubois story and randomly stick them back together to make an entirely new story. I did this like this:

cd silence
mp3wrap ../gabby-dubois-random.mp3 \
`ls | \
perl -MList::Util=shuffle -e 'print shuffle(<STDIN>);' | \
tail -n 255 | \
tr '\n' ' '`

This sequence of commands has the effect of doing the following:

  1. Listing all the files in the silence directory.
  2. Sorting this list into random order (using Perl).
  3. Taking the last 255 randomly shuffled files (because mp3wrap has a limit of 255 files).
  4. Stripped out the carriage returns at the end of each file.
  5. Feeding the result as the list of files to combined to mp3wrap, with the resulting combined file called gabby-dubois-random.mp3.

The Nonsensical Result

Here is the nonsensical result, which sounds somewhat otherworldly because there’s little convey to that it’s not an actual story other than that it doesn’t make any sense. The pauses are still there, which is why it works as well as it does. Listening to it I find that my brain strains very hard to make sense of what’s happening. But it can’t.

My family moved to the small village of Carlisle, Ontario in 1973. It was a sort of toned-down “back to the land” effort by our parents: no cows or chickens or wind power or yurts, but certainly a move toward the rural from our previous house in suburban Burlington.

The house in Carlisle, on Progreston Road, had 2 acres of land, all of it cleared. The previous owner had purchased a barn at auction some years previous and had disassembled it and moved it, and so much of the back yard was littered with lumber of all shapes and sizes that needed to be gathered, cut up and, in some cases, turned into sheds, a task that, for we boys, seemed to stretch on for hundreds of weekends.

Once the barn was cleared out of the way our parents set out on an ambitious reforestation plan, purchasing tiny seedlings and, with Mike (age 6) and me (age 7) to help, covered the back half of the lot with trees. Again, it was a process that, to our young minds, seemed endless and backbreaking and, perhaps, pointless.

Then 40 years passed.

And here’s what’s there now:

And here’s what it looks like on the Google Satellite map:

What an enormous gift our parents gave Mike and I forty years ago: from here in the future being able to see tiny seedlings transformed into a forest of trees taller than we could have imagined demonstrates what’s possible in a lifetime, and shows the value of being patient.

Next Tuesday the moving trucks will show up at the house on Progreston Road and our parents will move out of that house – back to Burlington just a few miles from where they lived in the late 1960s, as it happens – and a new family, with a young daughter in tow, will move in.

Mom and Dad and Mike and I made her a forest to play in. That’s pretty amazing.

We were out the door at 8:00 a.m. this morning – the bell at St. Paul’s Church had just started to chime – and headed up Prince Street, as we have hundreds of times since [[Oliver]] started school.

Today, however, was different: at the corner of Kent we turned right. Down Kent to Hillsborough, cut across Kings Square, up Weymouth to Ken’s Corner, across the perilous “intersection that nobody understands” and along Longworth (saying “hello!” to the crossing guard) to Birchwood Intermediate School where Oliver starts grade 7 this morning. It’s 11 minutes from door-to-door.

First Day of Grade One

The King of Prince Street

First Day of Grade Seven

First Day of Grade 7

We were warned that Birchwood would be chaotic and cacophonous this morning but it was neither. We chatted with the guidance counsellor – she too is moving from Prince Street to Birchwood, so was an old hand – about the meaning of the Birchwood school motto, “Prima Primo” (or is it “Primo Prima”?) which seems, oddly, to mean “First First” in Latin.

While this motto appears ceremonially throughout the school, the website is emblazoned with “Quality Education in a Caring, Disciplined Environment.” I suppose that’s not a bad sentiment, but it could also describe a military school or a dog training college. I would prefer something like “A Laboratory for Discovering Self, Community and the World,” but nobody listens to me.

Our experiences at Birchwood to date have been universally positive: we were in for a tour and a chat on Tuesday, got Oliver set up with his locker and introduced to his homeroom teacher, and saw his classrooms (including the wood shop, sewing lab and cooking lab).

Birchwood has a lot of room to ramble around in now that the Spring Park students, temporarily housed there for a couple of years while their new school was under construction, have returned home; this means there are a lot of rooms available for small-group teacher, special products and so on. We’ve lucked in to the small “intimate” junior high in Charlottetown: last year Queen Charlotte had 456 students, Stonepark had 773 while Birchwood had a modest 232. There are four grade 7 classes in the school (one of which is an 8-student late French immersion class); Oliver has 23 students in his homeroom class, which is larger than any class he’s even had, but still well within reason.

So far, so good.

While I was in getting coffee at Youngfolk & The Kettle Black this afternoon, personable owner Adam Young mentioned to me that the coffee bags I printed for them on the letterpress featured in Bob Gray’s review last Friday. I tracked down the digital edition of the paper and, sure enough, there they are:

Detail from The Guardian review of Youngfolk and the Kettle Black

There’s a colour version of the photo online it you’d rather.

I created Checkin, my Firefox OS Foursquare checkin app, as much to learn about Firefox OS as to scratch my own checkin itch. The next step along this road was to “localize” the app: in short, to make it work in languages other than English.

I tried four approaches to getting the translations for the words and phrases in the Checkin app done:

  1. I emailed friends who speak Portuguese, German, Danish and Swedish. I have helpful friends: each sent me back their translation within a couple of hours.
  2. I set up a project at the crowdsourced translation site GetLocalization.com and requested translations into the remaining languages the Firefox OS is set up for. I did this 24 hours ago, and so far I’ve had no translations offered by the “crowd”, but I did have one person double-check the German translation.
  3. I set up a similar project at the crowdsources translation site Crowdin.net with similar results: 24 hours in and nobody has translated anything.
  4. I set up a project at the pay-per-word translation site Gengo.com, which specified $2.40 US per language for the 40 words I needed translated. I ordered translations for Polish, Spanish (Spain), Spanish (Latin America), Chinese (Traditional), Portuguese (Brazil), Arabic and Hungarian. The translations were completed in between 15 minutes (Hungarian) and 9 hours later (Polish), with the majority of them completed with two hours. The service was easy to use, easy to set up, and there was a helpful interface for clarifying translation details (like “does CHECKIN mean to ‘to enter’ as in a hotel or does it mean ‘to verify’?”)

Once I had all the translations done, I needed to set up the app to use them. The post Localizing Firefox OS Apps from Mozilla proved very useful in this regard. I simply needed to pull out all of the strings from the app – things like “Enable Foursquare?” and “Checked in” – and put them in language-specific “properties” files that look like this:

settings = Settings
enable-foursquare = Enable Foursquare?
currently-disabled = Currently disabled.
foursquare-instructions = To enable Foursquare checkin, check the box above and authenticate yourself to Foursquare.
confirm-checkins = Confirm checkins?
confirm-explanation = Require confirmation every time?
checkin-confirmation = Checkin to
checkedin = Checked in.
gps-waiting = Waiting for GPS
gps-explanation = Waiting for the GPS to return your current location.

On the left of each line is a key that I’ll use later in HTML and JavaScript to reference the string; on the right is the translation for the language in question (the example above is the file checkin.en-US.properties, which is used on English-language devices). So, for example, here is the same file but for Spanish:

settings = Configuración
enable-foursquare = ¿Activar Foursquare?
currently-disabled = Actualmente desactivado.
foursquare-instructions = Para activar los check-ins de Foursquare, marca la casilla de arriba e identifícate en Foursquare.
confirm-checkins = ¿Confirmar los check-ins?
confirm-explanation = ¿Solicitar confirmación siempre?
checkin-confirmation = Realizando check-in
checkedin = Check-in realizado.
gps-waiting = Esperando GPS
gps-explanation = Esperando a que el GPS devuelva tu ubicación actual.

Once all of the properties files were created, I created a locales.ini file that referenced each of them. Here, for example, is this file set up for English (the default language) and Spanish:

@import url(checkin.en-US.properties)
[es]
@import url(checkin.es.properties)

With the properties files and the locales.ini set up, getting the translations into the app required two steps: editing the HTML and editing the JavaScript.

In the index.html for my app I needed to reference the locales.ini and also the l10n.js script that I copied from the Gaia repository:

<link rel="resource" type="application/l10n" href="locales/locales.ini" />
<script type="application/javascript" src="js/l10n.js"></script>

Then in the places in the HTML where I wanted to use a translated string I simply added a reference to the key in the properties files like this:

<h1 data-l10n-id="settings">Settings</h1>

That has the effect of displaying either Settings (if the app is displayed in English) or one of الإعدادات, Indstillinger, Einstellungen, Configuración, Beállítások, Ustawienia, Configurações, Inställningar, or 設定, depending on the language of the device.

In the JavaScript I do a similar thing, but using the navigator.mozL10n.get function:

$('#statusmessagetext').html(navigator.mozL10n.get("checkedin"));

That’s it! Running Checkin on the Firefox OS simulator and changing the device language changes the language of the app: when the device is set to Hungarian, the app appears in Hungarian. It’s really quite magical.

I’ve two remaining challenges:

First, Arabic is a right-to-left language, but my app isn’t set up yet to account for this, so although the app is translated into Arabic, it still appears left-to-right. It seems like there are hooks in the Gaia UI building blocks, so I expect that, with some digging, this should be relatively easy.

Second, there are some translations that are longer in another language than in English, and the Firefox OS stock UI isn’t handling these well. So I see things like this, in Hungarian:

Hungarian localization not wrapping.

I’ll have to figure out a way around that too.

The updated multilingual version of Checkin hasn’t appeared in the Firefox Marketplace yet; if you want to install it in your device, though, you can grab the app from Github and install it. Recommendations for improved translations are welcome.

By the fall of 1996 I had been working on the website of the Province of Prince Edward Island for over a year and we were well on the way to expanding the site from its tourism-information roots to becoming a comprehensive website about all of the various activities of the provincial government.

That November the first provincial general election was called since the website first went online in 1995 and so a meeting was arranged with Chief Electoral Officer Merrill Wigginton to discuss the possibility of posting election-related information on the site.

Merrill did not warmly embrace this opportunity – recall that these were early days not only for the web on PEI, but for the web itself, and he was justifiably suspicious – but, to his credit, he agreed to let us experiment, and so what quickly followed was a page of general electoral information along with a tool for finding your district and poll (this was before the days of Island-wide civic addressing, so the tool was a blunt instrument).

Elections PEI Website Screenshot, October 27, 1996 (from Archive.org)

On election day, November 18, 1996, I was at “election central” in the Studio Theatre of the Confederation Centre of the Arts to take the results of the election and post them online. As befit my “temporary suspension of disbelief” status at the time, I was the last in line to receive the results: they were telephoned in from the districts to a bank of clerks who transcribed them onto sheets of paper, then handed to data entry clerks who entered the data into a PC-based results spreadsheet from which occasional reports were printed for distribution to the media, to the political parties and, eventually, to me. So the results posted online were not exactly “live,” more like “liveish.”

By the end of the night the Keith Milligan Liberals had fallen to the Pat Binns Progressive Conservatives. Not only had the government turned, but, as someone whose livelihood depended on maintaining the government’s website, so had my employer (to the credit of parties of both stripes, the website was a refreshingly non-political venue, and my position survived two turnovers of government).

Detail from 1996 PEI election results website.

In the 17 years since that first election, I did the same thing for five provincial general elections in total – 1996, 2000, 2003, 2007 and 2011 – and saw the government swing back the other way, from the Pat Binns Conservations to the Robert Ghiz Liberals in the process.

After its initial skepticism, Elections PEI quickly warmed up to the Internet to the point where the route that election results followed on election night for subsquent elections was telephone-Internet-PC-printer-media. Indeed, eventually the media stayed home on election night and used the Internet instead, as we began to feed results directly to them and to Canadian Press.

Behind the scenes, additional embracing of web was happening too: for its public website, Elections PEI moved to its own domain name – from www.gov.pe.ca/election to www.electionspei.ca – and we worked with the office to add a rich set of historical resources, an enhanced civic-address-based electoral district finder, and more information about how and where to vote during election periods.

Elections PEI Website Front Page Screenshot, 2008 (from Archive.org)

In more recent years I was joined in all of this work by my brother and Reinvented colleague Johnny who ably did his own fare share of Elections PEI website updating, Register of Electors training and support and election night data entry.

When the provincial Register of Electors was introduced – a permanent database of the name and address of every qualified elector – a system was required to manage the gathering and maintenance of the data. Merrill Wigginton, by this point a strong proponent of web technologies, sketched out a system for making a web-based system to do this, and we built the system to his spec, using it for the first time in the 2003 election. (It’s worth noting that this and every single piece of software we wrote for Elections PEI used open source software exclusively: Apache, Perl, PHP, MySQL and a host of other applications and utilities from the open source community).

Elections PEI Intranet Screenshot, circa 2011

By the summer of 2003 I was winding down my work on the provincial website – the way I’ve always explained this was that there came I time when I had to either manage or be managed and I wasn’t comfortable with either prospect – but I agreed to stay on under contract to continue to manage Elections PEI’s technology.

For me this was something predicated on two things:

First, it was work I enjoyed: being in the engine room of democracy is thrilling, and the technology challenges I faced (like “how do you make a web system that won’t crash when 97,180 people try to look up the election results at the same time on election night”) were compelling.

As much or more, however, was that I enjoyed working with the people of Elections PEI: over 17 years I worked closely with Merrill Wigginton, Lowell Croken, Norma Palmer and Judy Richard, and a host of temporary workers and returning officers during election periods, and they were universally kind, smart, witty people with a passion for democracy and logistics both.

No more so were both factors – good challenges and good people – in evidence as on election day in 2003 when, as I detailed here at the time, a hurricane struck the Island the night before the election; everyone pulled together, though, and the election was held, people voted and everything worked as it should. That experience cemented a lot of work relationships and was no small part of my agreeing to stay on as part of the Elections PEI operation.

And that’s how, for the past decade, I continued to work with Elections PEI on its technology infrastructure.

The Register of Electors system became more sophisticated for the 2007 provincial general election: it was used to create “Confirmation Forms” for every civic address in the province, 60,000+ printed forms that were created by merging data from the Register with PDF files. After the door-to-door confirmation process where this information was cross-checked against the situation on the ground, these forms were then reassembled and we gathered with a team of 100 public servants in the Shaw, Sullivan and Jones buildings to have the database updated. We repeated the process in 2011, and for two rounds of municipal elections and a few byelections along the way.

The system that allowed all that to happen is one of the creations of which I am most proud: it had to work – the Election Act said so – and, as it was being used to create the Official List of Electors, it had to work well. We have some amazing administrative assistants in the provincial public service, and it’s a testament to their skills that almost 100,000 names and addresses were updated in less than 48 hours for three elections in a row.

Somewhat miraculously, all of this – the election results system, Elections PEI’s website, and the Register of Electors – was hosted, for over a decade, on a pair of Dell PowerEdge 600SC servers located on the second floor of a two-floor vault at Elections PEI’s headquarters at 180 Richmond Street, a “server room” that made bona fide system administrators cringe every time they saw it, for it lacked both backup power and any air conditioning, and regularly got up to 30°C+ in the summer heat. But the servers – nicknamed wallis and edward – just kept on going and going and going. The edward server – it hosted the MySQL database server and the internal web services – had its fan die a few years ago, but we simply removed the cover to add additional cooling and it kept on going.

Elections PEI Server Specs, 2004

Early in 2012 two things appeared near in the horizon. First, edward and wallis needed to be replaced: servers don’t last forever, and those two were certain to have a hard drive or power supply go eventually. Second, Lowell Croken and Norma Palmer, Chief and Deputy Chief since 2005, announced they were going to retire before the year was out.

Working with Elections PEI we began talking with the province’s IT Shared Services group about purchasing new servers, and this evolved into a conversation about taking over maintenance and administration of the technology itself.

My 17 year working relationship with Elections PEI was an unusual and perhaps unique one; I knew that, for the long term, not only did edward and wallis need replacing, but I needed replacing too, so that the office could have a long-term, sustainable technology platform for the future. So, over the last year, along with Elections PEI, I’ve been planning for this migration.

Norma Palmer retired in mid-2012 and Lowell Croken retired in January of 2013; it took me and edward and wallis a little longer, but last month the switched got flipped and IT Shared Services took over administration of the Elections PEI website, the Register of Electors and the election results system, all now safely ensconced on modern hardware in an air-conditioned, fire-protected server room with a staff to oversee it.

I spent more than half of my professional life working with Elections PEI in one form or another; I honestly never stopped loving it. Democracy, especially when viewed from underneath the bonnet, where you see how hard everyone works to make sure everyone can exercise their franchise, is a lovely thing, and I was honoured to be given the opportunity to be so closely involved its logistics.

Best wishes to Norma and Lowell in their retirements, best wishes to new Chief Electoral Officer Gary McLeod and his Deputy Judy Richard, and hats off to the staff at IT Shared Services for a smooth migration. I’ll be thinking of you when you’re down in democracy’s engine room when the next election rolls around; for a change, all I’ll need to worry about on that day is voting.

I have been archiving Prince Edward Island energy load and generation data since November and I’ve created various tools, like this graph and this gauge and this mobile app to put this data in my “peripheral view,” with a goal of making myself more aware, in a visceral way, of how much electricity we’re generating and using here on the Island.

One of the things that’s surprised me is how much electricity we use here in the summertime. A frequently-offered explanation for part of the increase in overall electricity usage is the shift to electric heating; so you’d expect the summertime usage to be lower than the wintertime usage. And it is. But by much less than I would expect. Here’s a graph that shows the “peak daily load” from November 2012 to August 2013: this is the highest Island-wide electricity load, in megawatts, for each 24 hour period.

During this period, the day with the highest peak load was January 23, 2013, with 245 MW, and the day with the lowest peak load was May 26, 2013 with 140 MW.

But look at August 1, 2013: the peak load on that day was 185 MW, which was higher than the peak load of 183 MW on February 15, 2013 when the temperature never went above 2°C.

Perhaps even more interesting is a graph showing the miniumum daily load – the least amount of electricity we’re using in any given 24 hour period:

It’s a rare day when the minimum load dips below 100MW. That seems like a lot of electricity to be using a 4:00 a.m.

One of the great things about looking at the electricity portion of our energy usage is that, because it’s centrally generated and distributed, it’s easy to measure in aggregate. One of the frustrating things is that nobody – not Maritime Electric, not the Province of PEI – really knows what is using all that electricity. Of course everyone has educated gueses – perhaps it’s ground-source heat pumps or air conditioning, for example – but that’s just a best guess.

Thoughts?

One of the more satisfying aspects of my Mail Me Something project is getting to see things I’ve printed on the letterpress popping up all over the world as envelopes arrive, are unsealed, and photos posted on Instagram, Twitter, Path and Facebook (it’s also a good measure of the speed of various post offices: in order things have arrived, so far, in Tyne Valley, Berlin, Düsseldorf, Mount Stewart, Peterborough (Ontario) and Malmö).

Updated calendar

Act quickly summer is almost over

Heather Mullen Act Quickly Photo

Peter Bihr Act

I will @ruk! Thank you for the unexpected motivator! ;)

Photos, from top to bottom, by Jonas, Jonas, Heather, Peter and Pedro.

This isn’t quite getting hoist on my own petard, but apropos of What makes you a “well-known businessman” in The Guardian?, I note that of the 53 references to my various exploits that have appeared in The Guardian in the last 20 years, one of them, appearing on the August 10, 2002 edition, was titled “City businessman ticked that bank is frozen in time” and starts:

This could be a case of someone having too much time on their hands.

Peter Rukavina said Wednesday he is frustrated that the clock on the front of the main Charlottetown branch of the Bank of Montreal on Grafton Street has been stuck at 6:38 for the past six months.

So, he has formed Citizens for Correct Time (number of members: 1, but he said he’s working on more).

The problem with the clock, he said, has got to stop … er, start.

“My family and I live and work in downtown Charlottetown,” said Rukavina, a Charlottetown businessman. “We pass by the broken clock three or four times a day. The fact that the clock is broken means we’re not only without a handy source of the current time, but it’s an embarrassment for the community: it says ‘look, we don’t even know what time it is here’.”

Perhaps not one of my nobler pursuits, especially when you consider the result of the “action”: rather than fixing the clock, the Bank of Montreal simply removed it altogether.

At least I wasn’t referred to as a “well-known city businessman.”

(For that matter, I have no idea why I was referred to as a “businessman” at all).

About This Blog

Photo of Peter RukavinaI am . I am a writer, letterpress printer, and a curious person.

To learn more about me, read my /nowlook at my bio, listen to audio I’ve posted, read presentations and speeches I’ve written, or get in touch (peter@rukavina.net is the quickest way). 

I have been writing here since May 1999: you can explore the 25+ years of blog posts in the archive.

You can subscribe to an RSS feed of posts, an RSS feed of comments, or a podcast RSS feed that just contains audio posts. You can also receive a daily digests of posts by email.

Search