Garth Taylor made his annual phone call to me tonight to alert me that he’ll be back at the Charlottetown Farmers’ Market this Saturday. Given that Garth was threatening to retire 4 years ago, this makes for the slowest retirement ever. Stop by and welcome him back.
One more small contribution to the public understanding of the release of names of companies that received PNP investment: use this tool to search for specific companies.
Quickly assembled thanks to the very capable and flexible DataTables plug-in for jQuery.
Using open source tools to spread open source data: that’s what it’s all about.
Update: I’ve now got three searches in place:
- Search the PNP list released by the Province
- Search the PNP list merged with the 2008 OpenCorporations.org data — remembering that this is old data, this search allows you to search the “description of business”, and can be helpful in identifying numbered companies.
- Search the PNP list merged with the 2008 OpenCorporations.org data, with shareholders and officers — again remembering that this is 2008 shareholder and officer data, and that the shareholders and officers involved in November 2008 may not have been shareholders and officers when the PNP investment was received, this search allows a “people search” of PNP companies by officer (president, shareholder, etc.).
I don’t have strong opinions about the propriety of the PNP program.
I do, however, have strong opinions about what it means for a government to “release data.”
The Province of PEI “complied” with a court order to release the names of companies that received investment under the Provincial Nominee Program by releasing a PDF file on its website.
PDF, while certainly readable on a variety of digital devices, is not “open data” in any real sense.
To solve that issue, I ran the PDF file through pdftotext and then stripped out the page headers with a text editor using regular expressions.
The result is pnp.txt, a simple ASCII text file with the 1,354 company names from the PDF.
Update: I’ve merged the PNP data with the 2008 OpenCorporations.org data and 933 matches (69% of the PNP companies); you can download this as pnp_plus.csv (comma-delimited ASCII) or pnp_plus.xml (XML). Or search with this tool.
Update: I’ve merged the PNP data with the 2008 OpenCorporations.org data and included the shareholders and officers of the company, getting 2708 matches. Use with caution, as this data is 4 years old now, and shareholders and officers listed were not necessarily in place when PNP investment was received. Download this as pnp_people.csv (comma-delimited ASCII). Or search with this tool.
Some experimenting, over the course of the last week, with a business card for Youngfolk & The Kettle Black. I’ve settled on the bottom-right as the design I’ll print (these are all rough proofs pulled with a stamp pad), with the ampersand underprinted in red and everything else in black. I was rather wedded to the “upside down Y” idea for a long time, but as soon as I overlaid the larger ampersand, and filled up some of that volume in the middle, a righways-Y suddenly became a lot more appealing (and, as it happens, a hat-tip to the erstwhile former occupant of 98 Water Street, Café Ampersand).

Actual conversation en route to school this morning:
“I got an email from your teacher last night. She said you had a good day yesterday.”
“She’s a Newfie.”
“Oh, from Newwfoundland. From what town?”
“Why?”
“There are a lot of towns in Newfoundland with funny names. Like Bay Bulls.”
“Oh, like the fish translator.”
“The fish translator?”
“Yes, on the Internet, the fish translator?”
“Oh, you mean Babelfish?”
“Yes, Bay Bulls Fish.”
I needed to send $1500 CAD from Canada to Ukraine, and so did some research over the weekend as to the various ways of doing so. Here’s what I found.
| Method | Fee | Result in USD | Exchange Rate | Effective Cost |
|---|---|---|---|---|
| Western Union | $46 | $1462.50 | 0.975 | $83.50 |
| Moneygram | $74 | $1467.00 | 0.978 | $107.00 |
| Ria | $20 | $1453.95 | 0.9693 | $66.05 |
(For comparison, the Bank of Canada exchange for USD at noon today was 0.9965; I received a rate of 0.9787 on an unrelated deposit at Metro Credit Union today).
Other options suggested were a bank wire transfer (I was quoted $35 plus undetermined “intermedia transfer bank” fees, with no ability to tell what the net deposit would be), PayPal (good for many things, but doesn’t currently supported payout to Ukrainian bank accounts) as well as the online services Currency Online and HiFX (possibilities, but it’s not clear to me how you get money in to their systems if they don’t have a local presence; if by wire transfer, it might end up being more expensive because of the local wire transfer fee).
I ended up doing the tranfers at The Cash Store, a storefront on University Avenue that is otherwise in the business of cheque cashing and payday loans, and thus a storefront I had, until this point, seen as shady and best avoided. As it turns out, the friendly and helpful clerk there was able to process my request quickly, and while there was some stumbling on the (vast number of) data entry fields on their transfer system, I was assured that should I return to transfer again, my information is all on file it it should be point-and-click-ish.
I welcome suggestions of other solutions to the problem.
My friends at Youngfolk & The Kettle Black on Water Street in Charlottetown have opened a new branch on Victoria Row in the space formerly occupied by Poffertjes.
The new space is tiny and there’s just room for a counter along the wall, with no place to sit. It’s a stand-up or take-out place, and it’s as close as you’re going to come to the feeling of ordering coffee at a bar in Italy in this province (and the coffee is, it must be said, very, very good).
I’ve been for coffee twice now, and both times I’ve observed that, despite (or perhaps because of) the confined stand-up-only space, there’s a social aspect to the new branch that’s unique in the city: personable co-owner Adam Young has confirmed that people stay “400% longer here than in the other place,” and, in my experience, there are conversations between customers that you would see neither at Youngfolk Mark I nor, indeed, at Tim Hortons or Starbucks or any other coffee place in town.
Whether it’s the forced proximity, or the need to stand, or some sort of social kevorka in the air, strangers seem comfortable with starting a conversation with each other while leaning against the wall enjoying coffee.
With its proximity to the Legislative Assembly, which starts sitting again next week, my great hope is that Youngfolk Mark II becomes a hotbed of political thought and debate, meted out over espressos while winding down after Question Period. I’ll buy the first round, Hon. Premier.
We’ve been using Trac as a ticketing system to manage the work of our web team at Yankee Publishing for five years now — ticket #1, “Correct long-range weather banner,” was created November 7, 2007. We’re now up to almost 6000 tickets in the system and the degree to which Trac has improved our workflow, communications and ability to look back in history is hard to overstate: it’s been a truly transformative tool.

That all said, there’s always remained a level of “ticket friction” with our use of Trac: it’s really rather easy to open up a web browser, fill out a new ticket form, and create a ticket, but it still requires, well, opening up a web browser and filling out a new ticket form.
I’ve always wished we had the ability to use email to create tickets in Trac, but there’s always been a piece or two missing from our ability to do this; last week, though, I figured out a simple way to do this by knitting together Postmark (a system we use for sending transactional outbound email) to handle the incoming email, with email2trac, an extension to Trac that handles all the nasty email-parsing bits.
Here’s how I did it.
Install email2trac
Installing email2trac is easy. On the server where we run Trac itself, I did this:
wget ftp://ftp.sara.nl/pub/outgoing/email2trac.tar.gz gunzip email2trac.tar.gz tar -xvf email2trac.tar cd email2trac-2.6.2/ ./configure make make install
The result is /usr/local/bin/email2trac with configuration then done via the /usr/local/etc/email2trac.conf file, which in our case looks like this:
[DEFAULT] project: /web/trac debug: 1 black_list: MAILER-DAEMON@ drop_spam : 1 drop_alternative_html_version: 1 email_quote: > html2text_cmd: ignore_trac_user_settings: 0 inline_properties: 1 reply_all : 0 spam_level: 5 strip_quotes: 0 strip_signature: 0 ticket_update: 1 ticket_update_by_subject: 1 umask: 022 verbatim_format: 0
There’s good documentation for all of the various options — in most cases the defaults were fine for our setup.
Create the Inbound Hook
While Postmark Inbound helpfully parses email into JSON, email2trac actually needs the original email, or a reasonable facsimile of it, to parse into a Trac ticket, so our web hook needs to take the JSON from Postmark and reconstitute an email message.
The PHP script I created to do this is quite simple: it uses the Mail_Mime PEAR package to take values from the JSON-encoded message we get from Postmark and create a new MIME-encoded email that can then be passed to email2trac: it takes the JSON as input, writes out a MIME-encoded file as output, and then sends this to email2trac. It handles attachments (it base64 decodes them into local filesystem files and then adds them back as MIME attachments).
This PHP script becomes the “Inbound Hook” for Postmark. So if I call the script create-trac-ticket.php, and put it online at, say, https://example.com/trac/create-trac-ticket.php, then that’s what I paste into Postmark as the “Inbound Hook.”
Set up Postmark Inbound
Setting up Postmark Inbound is easy: under the “Credentials” tab of a Postmark server, you’ll find an email address that looks like somethingsomething@inbound.postmarkapp.com (where somethingsomething is a long hex value). That’s the email address you’ll send email to when you want to create a Trac ticket.
On the “Settings” tab of your Postmark server you then set up an “Inbound Hook” which is a URL where you want to direct the JSON-encoded version of any incoming email to. Just paste in the URL for the PHP script you created to do this.
Set up an Email Alias
I didn’t want to have team members required to remember a complicated somethingsomething@inbound.postmarkapp.com address to send ticket to — I wanted something simple, like ticket@example.com. So I added a user to our Google Apps account with a simple email and forwarded its email to the more complex somethingsomething@inbound.postmarkapp.com email address. There’s a need to confirm forwarding addresses when this is done; fortunately Postmark provides a way to inspect all incoming email, so you just need to look under the “Incoming” tab of your Postmark server for the Google confirmation email.
Setting Ticket Options
Once all the pieces are in place, creating tickets is easy: you just send email to the address you created, with the ticket’s title in the Subject, the ticket’s description in the body of the email. The email2trac script is smart enough to assign you as the ticket’s “reporter” as long as you email from the same address you’ve connected to your Trac account. You can also include macros in the body of the email to affect the setting of different ticket options. For example, if I add:
@owner: billg @priority: blocked @severity: Critical @cc: hankj,floj @datedue: 11/20/2012
Then the resulting Trac ticket will have its owner, priority, severity, cc and datedue fields set appropriately.
Using up an Email Signature
I went one step further toward frictionlessness and set up a Mail.app signature like this:
@owner: peter @priority: sprint @severity: Normal
When I’m creating a ticket, I just select this signature and change the options as needed.
Why this is Great
This is a great improvement to our Trac system because it allows not only for less friction when creating tickets — it’s really easy, for example, to grab a screen shot with Skitch and create a ticket with it — but also because it allows any system that has the ability to send or manipulate email to become a Trac ticket generator. We can, for example, build alerts into our Nagios system that will result in Trac tickets being created when systems fail. Or build local scripts with AppleScript to make ticket creation even more frictionless. We’ve only begun to scratch the surface of what’s possible over the last week, and already we’re considerably more productive.
The news has just come in over the wire that the Homburg, err, Holman Grand Hotel has gone bust and will close on Monday.
For those wishing a refresher course on how we started down this road, I invite you to read How did Charlottetown end up with a new hotel covered in beige aluminum siding? for the blow-by-blow from the initial announcment of the hotel in 2007 up to its completion and opening last year.
Surely the implosion of this “did anyone every actually think this was a good idea?” colossus should allow us to move on to a post-Homburg era here in Charlottetown.
Let’s finish the job: close the crazy tunnel under Grafton Street, reinstate the name “Main Stage” on the Confederation Centre of the Arts theatre (what is “Homburg Theatre” now other than a reminder of our propensity to fall in thrall to the grand delusions of impresarios), and make a point of thinking twice before doing anything like this again.
Several months ago I started to catch word of The Alpine Review. The references were coming from people who I hold in the “automatically pursue anything they recommend” place in my heart — people like Martin and Peter and Igor. And so, without being completely sure of what I was getting myself into, I paid the $35 to order the first issue. It arrived in my post box on Monday.

It turns out that not only are the aforementioned recommenders of magazine, they’re deeply steeped in its creation. Peter is an editor. Martin’s an author. Indeed as I scanned the table of contents I realized that I’d had lunch at one time or another with a healthy cross section of the issue’s contributors.
As to the magazine itself: wow.
My elevator pitch would be “A contemporary take on the Whole Earth Review zeitgeist with the production values of Monocle” (and, fortunately, with none of the “you should really wear this $290 scarf and this $2900 watch” aspirrationality of the latter).
The writing is substantial but accessible; the design is magnificent. And, true to its title, the approach is to survey the terrain from a distance (but not from far enough away that you can’t leap down and make connections to everyday life). This is a magazine that I will spend weeks making my way through, for every page holds a new insight. And each new insight leads me down a rabbit hole.
On page 180, for example, is an item titled Red Telephones and Pink Ponies that starts off:
Napoleon famously said that ‘If you start to take Vienna – take Vienna.’
I was inspired to find a reference for this quotation, which led me through vast swaths of the Internet, through the UPEI library ready-reference desk, and into an email dialog with the magazine’s managing director Louis-Jacques Darveau, who told me he’d heard the quote from the late Ben Weider, a Canadian businessman about whom Wikipedia says “well known in two areas: bodybuilding and Napoleonic history.”
Well, okay.
Satisfied, I then continued my tangent, reading parts of the English translation of the 1823 book Memorial de Sainte Helene: Journal of the Private Life and Conversations of the Emperor Napoleon at Saint Helena. Wherein I found the following entry from March 31, 1816:
This day the weather has continued very bad; we suffered from it; besides, we are absolutely infested with rats, fleas, and bugs: our sleep is disturbed by them, so that the troubles by night are in perfect harmony with those by day.
The weather changed entirely to fair on the 31st; we went out in the carriage. The Emperor, in the course of conversation, observed, speaking of Egypt and Syria, that if he had taken Saint Jean-d’Acre, as ought to have been the case, he would have wrought a revolution in the East. “The most trivial circumstances,” said he, “lead to the greatest events. The weakness of the captain of a frigate, who stood out to sea instead of forcing a passage into the harbour, some trifling impediments with respect to some shallops or light vessels, prevented the face of the world from being changed. Possessed of Saint Jean-d’Acre, the French army would fly to Damascus and Aleppo; in a twinkling it would have been on the Euphrates; the Christians of Syria, the Druses, the Christians of Armenia, would have joined it; nations were on the point of being shaken.” One of us having said that they would have presently been reinforced with 400,000 men. “Say 600,000,” replied the Emperor, “who can calculate what it might have been if I should have reached Constantinople and the Indies; I should have changed the face of the world.”
Not quite the pithiness of “If you start to take Vienna – take Vienna.” But certainly the same sentiment.
As with many good things, The Alpine Review, though international in scope, is published in Montreal. Louis-Jacques calls the city “a silent actor” in the magazine, but I think some of the sensibility of the city — pluralistic, international, complex, chaotic — shows through.
I haven’t been this excited about a magazine in a long, long time — perhaps not since I read Louis Rossetto’s pitch for WIRED on The Well back in the early 1990s. What’s different about The Alpine Review, though, is that it seems to be a creation of my tribe — a sort of house journal for those of us lurking at the nexus of hacker/maker culture, systems, ecology, psychogeography. It’s the closest I’ve ever come to a “hey, Pete, here’s a magazine made about exactly the things that are interesting to you right now.”
I’ll be buried inside The Alpine Review for at least the rest of the month. I shall eagerly await future issues.
Thank you.
I am