The Alibi Lounge opened recently at 77 University Avenue in downtown Charlottetown, next to Cedars and across from the Atlantic Technology Centre. I had lunch there.

The Good

  • Transformed interior: barely a hint of former life as failed Indian and Chinese restaurants.
  • The music is the best restaurant music in Charlottetown: perfect volume, excellent mix.
  • Friendly staff (although my jury is out on being called “darlin’ ” by someone younger than me).
  • Thai chicken soup: tasty, hot, homemade.

The Bad

  • Password-protected wifi (staff advice was to “use the open wifi from next door at Babas”).
  • Club sandwich was run-of-the-mill; hint of tarragon elevated it, but the poorly-toasted bread took it back down. It wasn’t horrible, but it didn’t change my life or leave me wanting to have it again.
  • The napkins are made of a silk-like fabric. Napkins should never by slipperly.
  • Fortune cookies: they taste bad in Chinese restaurants, they taste bad here. I get the irony, but how about something that’s ironic and tasty?
🗓️

At the end of the reboot conference this year I ended up walking to dinner with Christian Dalager and I mentioned that my “one actionable idea” contributed at the end of the conference was to create an RSS feed of my banking transactions.

As it turned out, I was talking to the right man: not only was Christian interested in this notion, but already had done work to parse his own Danish bank’s electronic data (in his case he had to screen-scrape, a considerably more ambitious task than I hoped to require).

My “bank” is actually a credit union, and my credit union uses the same MemberDirect web banking platform that many other Canadian credit unions do.

My first thought when approaching the task was to simply grab data in the handy comma-delimited ASCII file format that’s available under “Activity Format” on the “Account Activity Request” page of the site. Unfortunately the transaction data this provides only includes “metadata” — like the actual place I made a debit card payment, for example — for the current month’s transactions; before then it’s only dates and amounts. This would be fine if I wanted to start my data with the current month (I could just made sure I grabbed the data before it lost its metadata layer at the end of the month), but I want to go back in time as far as possible.

Fortunately there’s another option: MemberDirect now makes “Electronic Statements” available for download going back, in my case, to the start of 2007. While the statements are PDF files, and therefor require some additional parsing to grab transaction data, they are metadata-rich and thus the best candidate for my project.

Rather than going through the process of downloading the 29 PDF files currently available to me, I decided to write a script that would login to my MemberDirect account and grab all available statements automatically. Fortunately this proved to be quite easy: the MemberDirect authentication model simply accepts an HTTP POST with the username and password, and sends back a session cookie that can then be sent back for all future requests.

After some experimenting and parsing of the HTML that gets returned, I’ve come up with memberdirect-getstatements.php, a PHP script that uses cURL and the PHP Simple HTML DOM Parser to login, grab the index of available years, and then download all available PDF electronic statements.

This script isn’t for the faint of heart: you’ll need a PHP-equipped host with cURL (if you have a modern Mac you’ve already got both) and it’s possible that the script might need tweaking for credit unions that aren’t mine.

More information is (or shortly will be) available on this wiki page. Comments and experiences welcome.

My next step is to write a parser for the Electronic Statements that will allow me to do some basic “how much am I spending on coffee”-type data analysis.

Update: you can grab the statement parsing code here to extract transaction data from the electronic statements into a MySQL table.

🗓️
Charlottetown  •  Credit Union  •  Internet  •  PHP  •  Technology

8:25 a.m. - Arrive on Bus #1 at the University of PEI. Bus pulls right into the parking lot as it usually does.

10:03 a.m. - Ready to depart UPEI. See posters on bus shelter advising the the bus will not pull into parking lot as it usually does, but ignore these given 8:25 a.m. experience.

10:07 a.m. - See a bus drive by on University Avenue. Assume it was my bus and that posters are actually accurate. Phone Charlottetown Transit and seek confirmation; friendly operator puts me on hold, calls the bus that drove by and asks driver to come back and get me.

10:10 a.m. - Bus comes back to get me.

This is what it’s like to live in a small town with a customer service-driven transit company.

🗓️

When we arrived at Copenhagen airport earlier this week to fly to Toronto via Helsinki on Finnair the check-in area in Terminal 2 was in chaos due to a broken luggage system: every few minutes the system would start up again, a few bags would get through, a few more people would get checked in, and then things would break again and everything would come to a standstill for another 20 minutes.

Eventually we did get through and, somewhat surprisingly, our flight took off almost exactly on time. In retrospect we should have known this was a bad sign.

Eleven hours later when we arrived in Toronto I was happy to see my bag roll onto the carousel at the head of the line. Then we waited and waited and waited for Catherine’s bag — checked in at the same time and almost identical but for the colour. It never arrived.

As a result I got to know a lot about the lost luggage system that the airlines have built. Here’s a few things I learned that you might find helpful when this happens to you:

  • If your destination is an airport that’s not a “hub” for your airline, but is rather a rarely-visited or seasonal destination, it’s likely that the airline won’t have a dedicated staff on the ground and has outsourced “ground handling” to another company (indeed this is often the case even if you are flying through their hub). In our case Finnair appeared to have no local staff in Toronto and Servisair was the local contractor.
  • Don’t throw away the luggage tags of any bags that do arrive. I made the mistake of throwing away the tags on my suitcase before we realized that Catherine’s had gone missing, and so the Servisair clerk had no way of telling which bag needed a trace. Fortunately I was able to fish my tag out of the garbage.
  • Make sure you hold onto your luggage tag “receipt” — that’s the portion of the luggage tag they peel off and stick onto your boarding pass or passport when you check in. I never realized how important this was to the process of tracking a missing bag: it has the all-important tag number that’s needed to initiate everything.
  • Before you leave the airport make sure you have (a) the phone number of the ground handling agent where you can call for updates and (b) the WorldTracer file number for your lost luggage. WorldTracer is a cross-airline system for tracing baggage, and for airlines that belong you can use a web application — here’s the one for Finnair — to get status updates on your trace.
  • The “file number” that the ground agent gives you might not be the full file number. We were given one in the form “AYXXXXX” (AY is the airline code for Finnair) that WorldTracer wouldn’t accept: it turns out that we needed to prepend the airport code for our destination airport — YYZ — to this code (so that it became “YYZAYXXXXX”).
  • Don’t expect there to be a 24/7 call centre that you can call for updates. In our case the Servisair office in Toronto was open from 10:00 a.m. to 6:00 p.m. daily, but the number was never actually answered by anyone and we always had to leave a message and wait for a call back.
  • Don’t expect the local ground agent to feel any greater sense of responsibility to the airline you traveled on. Our agent was helpful, but made it clear that Finnair wasn’t providing him with the digital information he really needed to help us, and wasn’t in a position to do anything about this.
  • Don’t expect compensation for out-of-pocket expenses at the airport: I’m not sure what the regulations are about this, but when we asked in Toronto we were told that Catherine could get a voucher for expenses only if the bag didn’t show up in 48 hours.
  • Don’t expect the bag to show up soon. In our case Finnair only flies from Helsinki to Toronto three times a week, and we were warned not to expect the bag to arrive before the next flight, and perhaps not even until the one after that.
What Catherine's WorldTracer screen looked like

As it happens, Catherine’s bag was ready for us to pick up at the airport on the Saturday after it went missing on Tuesday, just in time for us to pick it up and fly back to Charlottetown. Catherine had a devil of a time finding where to pick up the bag at Terminal 3 in Toronto — she ended up at an office that was neither Finnair nor Servisair. Oddly, she had to show neither identification nor the original baggage tag to be able to retrieve her bag.

As you might imagine, she’s very happy to be back in Charlottetown and wearing clean clothes again.

🗓️
If you open a browser window with no idea why...
🗓️

Last week in Sweden my old reboot friend Guy Dickinson popped over from Copenhagen for the afternoon and we spent an afternoon and evening drinking dreadful tea, eating Caribbean food and catching up on each others lives since the last reboot.

Several times Guy mentioned his ravenous consumption of reading material through Instapaper, to the extent that when I got back to Canada this week I suggested to Guy that he blog about this. And so he did. It’s an interesting and comprehensive post in the “how I use the tools I use” school, and if you consume web text you should read it.

I mentioned to Guy that it wouldn’t be such a bad life to “simply spend my time asking my friends to write about things I’m curious about.” He replied “Like a newspaper editor?” If I could run a newspaper like that, then yes. That would be a lot of fun, and probably the best and most interesting newspapers and magazines are exactly that.

🗓️
Design  •  Friends  •  Technology

🗓️

Matt Webb on Scope.

🗓️
Reboot  •  Video  •  Matt Webb

All digital problems are ultimately caused by DNS issues, all analog problems are ultimately caused by grounding issues.

🗓️
Design  •  Musing

Consider a science fiction story in which there are two classes of people: those who have arrived, and those who aspire. The Aspirants, as they are called, spend a life damned to aspire to but never achieve a comfortable role in society. In this story I would be an Aspirant and the role to which I’d aspire would be at the heart of the demographic of Mountain Equipment Coop.

I mean, what’s not to like: it’s a coop, their stores are beautiful and ecologically tilted, and they sell cool, intricate purposes-designed gear.

In my role as a MEC Aspirant I almost always visit a MEC store when I find myself in a city with one, and tonight was no different: driving home from supper with Mike I spotted the new Burlington store on Brant Street and pulled a quick U-turn with the car. Once inside I was left, as usual, to gaze forlornly at the grappling hooks and kayak racks and extra-bright bicycle lights and the trousers with pockets for ice axes, wishing only for one little slice of a hobby that would cause me to need any of these wonders.

Sure, I bought a kids travel backpack there back in March, but a kids travel backpack is surely not at the heart of that to which I aspire. It’s no ice axe, no extra-large BPA-free Nalgene water bottle, no bear can.

When they announced that the store was closing for the night in 15 minutes I panicked, knowing that unless something changed I would end up in the parking lot with my Aspirant frown still painted on. I couldn’t face the prospect. So I bought myself a spork. A nice titanium spork.

Spork

I don’t actually need a spork: there is no activity in my life that would be weighed down too much by carring both a spoon and a fork. But I’ve always wanted a spork. I’ve gazed at the sporks on every previous visit to Mountain Equipment Coop. And so I’m hoping that by quenching my sporky desires I will somehow, if not give up my role as Aspirant, be at least able to move on.

🗓️

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 /now, look at my bio, listen to audio I’ve posted, read presentations and speeches I’ve written, see things I’ve favourited elsewhere, 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, an RSS feed of favourites elsewhere, or a podcast RSS feed that just contains audio posts. You can also receive a daily digests of posts by email. I also publish an OPML blogroll.

Instagram • YouTube • Vimeo • ORCID • OpenStreetMap • Internet Archive • PEI.art • Drupal • Github.