I’ve been doing some work this week on “geopresence archiving,” culminating in the release of some code, called GeoArchive, that will slurp in Foursquare, Plazes, Twitter, Openpaths, Google and Flickr geopresence data and convert it into GeoJSON.
GeoJSON is a funny thing: you’d think that the last thing the world would need is yet another format for GIS data. But it turns out that is exactly what the world needed, for GeoJSON appears to have hit a sweet spot of portability, understandability and flexibility that is causing a whole new set of geographical tools to flower.
Using the aforementioned GeoArchive, I converted every single geopresence I’d logged in the last 10 years (starting in 2004 with Plazes and continuing until the present) and dropped the resulting GeoJSON files into a GitHub repository called geotraces (yes, that’s making public some detailed private information, but it’s information about the past, and I haven’t murdered anyone or had an affair, so I’m comfortable with that).
I then used the (excellent, free, open) GitSpatial tool to sync that repository so that I could use its spatial querying magic to extract interesting insights from it.
I eat lunch at Tai Chi Gardens, a small vegetarian restaurant around the corner from my office, several times a week.
But exactly how often do I go there?
I decided to use my newfound geo-superpowers to find out.
I used the (dreamy) BoundingBox tool to get the coordinates for a bounding box around the restaurant, building in a comfortable buffer to allow for the inexactness of GPS:
This gave me a bounding box (selecting the CSV format) of:
-63.1299796551,46.232755568,-63.1289904541,46.2335363014
To query my GeoJSON, I opted to start with my Google Latitude traces, which cover the longest recent period in the most detail (because, in part, they were collected passively; I didn’t need to “check in” to record my presence); the GitSpatial URL I ended up with was this one and visiting it gave me – handily and happily – some more GeoJSON, which I could feed to the (very helpful) GeoJSON.io, which allowed me to double-check that everything worked as I wanted (it did):
With this GeoJSON in-hand, I then used some old-school UNIX command line magic to extract the number of unique dates in that file:
grep when taichigardens.geojson | cut -d" " -f10 | cut -d'"' -f2 | sort | uniq
That gave me a list of dates when I’d been inside that bounding box – and, likely, eating lunch at Tai Chi Gardens:
2010-01-16 2010-02-20 2010-05-29 2010-06-15 2010-06-19 2010-06-26 2010-06-28 2010-10-16 2010-11-17 2010-11-20 2011-03-31 2011-04-05 2011-04-11 2011-04-20 2011-06-11 2011-06-13 2011-09-06 2011-09-27 2011-11-14 2011-11-23 2011-11-30 2011-12-12 2012-05-14 2012-05-15 2012-05-16 2012-05-18 2012-06-05 2012-06-06 2012-07-30 2012-08-01 2012-08-03 2012-08-06 2012-08-08 2012-08-10 2012-09-10 2012-09-17 2012-09-21 2012-10-31 2012-11-05 2012-11-13 2012-11-22 2012-11-26
Piping that result through wc and I find out that over the period from January 16, 2010 to November 26, 2012 I visited Tai Chi Gardens 42 times:
grep when taichigardens.geojson | cut -d" " -f10 | cut -d'"' -f2 | sort | uniq | wc -l
This is just a toe dipped in the water of the experimenting I hope to do with my decades-long stretch of geopresence data. I welcome you to join me.
While I was trawling through the archives of Arthur from 1985 this morning, I noticed that there was an ad in every issue for Ernie’s Barber Shop – “Ernie & Pauline, Operators” – on Simcoe Street:
And then, in the issue of November 11, 1985, a review of Ernie’s that I wrote – my first newspaper story (although it ran, oddly, without a byline), headline “Real haircut”:
For the past 15 years, I’d been making the monthly trek out to the old “Long Acres Barber Shop” near home; Kurt, Louis, Joe and Mike were always there, always friendly and had become like members of the family. Moving away meant saying good bye to all that; facing the world on my own: finding a NEW barber.
I roamed the streets of Peterborough … oh there were places to get your hair cut — “Rice’s House of Unisex Hair Design,” “Fernando’s Hairateria”, “The Hair Cutting Ranch” — but no real barbers. In desperation. I let my fingers do the walking and pulled out the yellow pages. There. between “Dynasty Hair Design” and “Esquire Hair Salon” was what I’d been looking for “Ernie’s Barber Shop”.
Quickly I found my way to 173-1/2 Simcoe Street. At first I thought that Ernie’d been bought out by some crazed lawn ornament salesperson. There were all sorts of things — I think they call them “curios” — in the front window. It turned out that Ernie IS the crazed lawn ornament salesperson: I guess you can’t make a living just cutting hair.
I opened the door, walked in, and immediately knew I was in my element. I was greeted by Pauline (Ernie’s protege) and escorted to a real barber chair. Pauline was extremely friendly and my fears disappeared within minutes. The conversation was pleasant, my fellow customers interesting (there’s one lady who comes in nearly every day and has been for the past couple of decades) and the hair cut superb (I was assured that if I wasn’t pleased I could come in anytime and they’d touch it up “on the house”).
That article in Arthur caught the eye of James Ramsay, also an Arthur writer and a Trent student a few years my senior. James also grew up in near Aldershot, and also got his hair cut at the Long Acres Barber Shop. We remain friends to this day.
I had my cut for years thereafter at Ernie’s, sometimes by Ernie, and sometimes by Pauline (although after a while Pauline left and Ernie was on his own). Eventually the original location closed and Ernie opened up in a more modern space around the corner, and I followed him there. Who knows how many times Ernie cut my hair.
Toward the end of my time in Peterborough I went into Ernie’s for what turned out to be my last haircut in the the city and my last hair cut from Ernie. As I was sitting there in the chair with Ernie at work I noticed a newspaper clipped taped to the corner of the mirror: it was my article from Arthur.
I thought about telling Ernie that I was the writer – and for all know he’d figured it out — but I decided to remain anonymous. My haircut done, I paid Ernie, left him a tip, and headed out, a satisfied customer.
I learned this afternoon that Ernie died, of lung cancer, a couple of years ago; here’s his obituary
KALWA, Ernst “Ernie” Erwin, born 26 October 1929 in Osterode, Germany, succumbed to lung cancer in Peterborough on 01 December 2012. Ernie immigrated to Canada in 1953, and came to Peterborough on the recommendation of a man he met on the ship. He found work as an orderly at St Joseph’s Hospital where he met Registered Nurse Muriel Doris Calberry of Hastings. They were married 26th October 1955. He began barbering in 1954, operating Ernie’s Barber Shop on Hunter Street, and later on Simcoe Street, until retiring “a legend in barbering” in September 2012. Ernie was an avid angler and horse-racing enthusiast. He is survived by his loving wife Doris, son Paul Elliott Allen Kalwa of Peterborough, son Ernest Larry Kalwa (Elysia DeLaurentis) of Elora, sister Elli and brother Walter, both of Germany. He is predeceased by his parents Johann and Augusta Kalwa (née Opalka), brothers Adolf and Paul, and sisters Ida and Hedwig, all of Germany.
It amazes me to learn that Ernie was still barbering until two years ago, 27 years after I first walked in his door.
Thank you, Ernie, for filling an important void in my life at an important time. And for getting me started in the writing game.
Perhaps no institution was as important to my education in my twenties as Trent Radio, the campus-community radio station in Peterborough, Ontario.
My entrée to the station came via an ad in the October 7, 1985 issue of Arthur, the Trent University student newspaper:
The meeting was well attended: among others there was Betsy Trumpener, Stephen Badhwar, Thomas Haig, and Jake Berkowitz. The product of that first meeting was a radio series we called “Nouspeak” and we were quick off the mark: in the very next issue of Arthur I had this update in the Letters section:
And by the November 11 issue of Arthur we were already running “best of” episodes:
My first piece aired on Thursday, November 21, 1985; titled “Phoning the Kremlin: Getting the Feel of a Global Village,” it consisted entirely of my attempt to phone somebody at the Kremlin in Moscow, a montage of various conversations with international telephone operators playing over Supertramp’s Fool’s Overture:
While I can’t make any claims to it having been great radio, it was an interesting experience, and I regret that there is no copy extant (my personal copy was stolen in a house break-in some years later).
I continued to be involved with Trent Radio for several years after that initial foray, producing music programs, an experimental unhosted call-in show called “Dead Air” (a tape loop ran over and over inviting callers to phone and “fill up the dead air”; as soon as they called, they went live to air with no intermediation), and a variety of other shows, both musical and spoken word. I worked as an “operator” (Trent Radio parlance for “the person who unlocks the doors and makes sure the producers show up), as the paid programme director. And I took on Trent Radio’s “producer oriented radio” mantra – wherein the emphasis is on radio production, not radio consumption – as a personal one, something that stays with me to this day.
Over the 5 years I spent in and around Trent Radio in various capacities I made good friends, fell in and out of love several times, and learned much, much more than I ever learned in the single year I spent as a student actually enrolled at Trent. It’s not an exaggeration to say that Trent Radio is where I grew up, and I owe the institution a great debt for that.
I was moved to write all this because today is the day that Trent Radio is celebrating Trent University’s 50th birthday; starting at 17:00 Eastern Daylight Time, you can listen in to the Trent Radio web stream and hear programming from producers-past. Here’s the broadcast schedule, liberated from Facebook:
- Friday August 8th: 17:00 Barb Woolner; 18:00 Glen Caradus; 19:00 Paul Cleveland; 20:00 Atticus Bakowsky; 21:00 Bill Kimball; 22:00 Laurel Paluck; 23:00 Jack Smye; 23:30 Alex Karas.
- Saturday August 9th: 00:00 Andrew Foogarasi; 01:00 James Kerr; 02:00 Sable Guttman; 03:00 Anthony Gulston; 04:00 Jess Grover; 05:00 Matt Jarvis; 06:00 Blair Sanderson; 07:00 Stephen Couchman; 08:00 Good & Country; 09:00 Jim Doran; 10:00 Steven May; 11:00 Rob Thompson; 12:00 Me Show; 13:00 Trent Radio Hangout LIVE w/Anthony Gulston & Philip Benmore; 18:00 “Arthur” Live; 21:00 Live from the Sadleir House Dining Hall.
- Sunday August 10th: 02:00 “A” is for Aftermath w/Joe Lewis.
I recognize many of those names, and I’ll be listening.
I’ve been reading House: A Memoir, by Michael Ruhlman, and really enjoying it. Who would have thought you could make a chapter on pre-purchase home inspection a gripping read?
The book, in addition to being a blow-by-blow account of the purchase and renovation of an old Cleveland home, is also a paean to Cleveland itself.
Ruhlman writes, while walking over the Lorain-Carnegie Bridge, for example:
I loved traversing this bridge for this view of the city and its terrain, a city beside a river basic. And I loved Cleveland unabashedly, but like most here I have a bipolar relationship with it. I could adore it and denigrate it in the same breath, often for the same reasons. But I didn’t like when others did so.
Could the same thing not be said about Prince Edward Islanders?
Indeed, not understanding this very fact is likely a primary reason why new Islanders are so often chewed up and spat out: unless you can find the right tone at the right time – and “the right time” involves a 10 to 15 year long quiet period – it’s usually best to say nothing critical about the Island lest your opinions be taken not as the loving self-criticism of one who belongs but rather as a holier-than-thou pronouncement from one who doesn’t.
The Old Farmer’s Almanac long-range weather forecast for the Atlantic Canada region for today called for “tropical storm threat”:
Environment Canada’s tropical cyclone information statement for today:
Bertha is now being declared a post-tropical storm. The forecast for offshore waters remains unchanged. Minimal effects for land areas except for some ocean swells.
However, although neither we nor any other forecasters have as yet gained sufficient insight into the mysteries of the universe to predict the weather with total accuracy, our results are almost always very close to our traditional claim of 80 percent.
The Guild, which is home to the Reinventorium, is also home to a black-box theatre, a theatre that happens to be located less than an arm’s length through the wall in front of my desk where I type.
This theatre plays host to a rollicking schedule of productions over the summer months, and while I’m generally happy to have my work happen in a space that oozes creativity, sometimes that oozing interferes with the quiet contemplation needed to do complex digital work.
All of which is to say: sometimes it’s hard to get work done when a troupe of fresh-faced triple threats is belting out Anne of Green Gables-themed show tunes in the room next door.
So the question then becomes: when is this happening?
The snappy new Guild website has a helpful calendar right on the front page, but the schedule information there isn’t much use to me if I’m not making a daily visit to the website: I want the information on the same day-to-day calendar that I used to manage everything else in my life, a calendar that appears on my laptop, my iPad and my phone and automatically syncs among the three.
So the question becomes: how to liberate the calendar information of of its website prison and into a shareable object?
This turned out not to be too difficult; here’s how I did it.
Look under the Hood
Firebug is a very useful tool for looking under the hood of a website: it’s like a super-charged version of “View Source.” Using Firebug’s “Network” tab, I watched as the The Guild website loaded:
I noticed that one of the things to happen as an HTTP POST to a script called admin-ajax.php with the following parameters:
action=get_events readonly=true categories=0 excluded=0 start=1406430000 end=1410058800
The important bits here appeared to be the start and end, which were unixtime values for July 25, 2014 and September 7, 2014 respectively, which is that range of dates on this month’s calendar.
The response from this POST was a JSON-encoded array with the events taking place between these start and end dates, like this:
[ { "id": "10", "title": "Anne & Gilbert, The Musical", "start": "2014-07-29 13:30:00", "end": "2014-07-29 15:30:00", "allDay": "", "className": "cat4 aec-repeating", "editable": "", "repeat_i": "1", "repeat_f": "1", "repeat_e": "2014-10-11" }, { "id": "10", "title": "Anne & Gilbert, The Musical", "start": "2014-08-05 13:30:00", "end": "2014-08-05 15:30:00", "allDay": "", "className": "cat4 aec-repeating", "editable": "", "repeat_i": "1", "repeat_f": "1", "repeat_e": "2014-10-11" },
The important bits of information here were the title, the start and end date, and the “cat” in the “className” element. The “cat” was important because the calendar lists both theatre shows and art gallery shows, and I only want the theatre shows on my calendar, so I want to exclude any event with “cat1”.
Converting JSON to iCalendar
The iCalendar format is a simple, well-documented plain text format for representings events; it’s the lingua franca of calendaring apps, and you can import iCalendar files into Apple’s Calendar, into Google Calendar, and into most anything else that reads and writes event data.
To convert the JSON-encoded calendar data on The Guild website into an iCalendar-format file, I wrote a little PHP script called harvest-guild-calendar.php that uses cURL to issue the HTTP POST to The Guild website, requesting events for the next 90 days, and then parses the response and outputs each event – minus gallery shows – into a iCalendar file.
The resulting file (here’s a full snapshot taken today) looks, in part, like this:
BEGIN:VCALENDAR CALSCALE:GREGORIAN PRODID:-//Reinvented Inc.\, //TheGuild 1.1//EN X-WR-CALNAME;VALUE=TEXT:The Guild Theatre X-WR-TIMEZONE;VALUE=TEXT:Canada/Atlantic VERSION:2.0 BEGIN:VEVENT SUMMARY:Anne & Gilbert, The Musical DTSTART;TZID=Canada/Atlantic:20140805T133000 DTEND;TZID=Canada/Atlantic:20140805T153000 END:VEVENT BEGIN:VEVENT SUMMARY:Anne & Gilbert, The Musical DTSTART;TZID=Canada/Atlantic:20140812T133000 DTEND;TZID=Canada/Atlantic:20140812T153000 END:VEVENT BEGIN:VEVENT SUMMARY:Anne & Gilbert, The Musical DTSTART;TZID=Canada/Atlantic:20140819T133000 DTEND;TZID=Canada/Atlantic:20140819T153000 END:VEVENT
Spreading the Calendar
With the iCalendar file in hand, it was short work to create a shareable Google Calendar for The Guild, and to make this available in several formats:
- iCalendar (suitable for importing or subscribing to in Apple’s Calendar for OS X or iOS, etc.)
- XML (suitable for viewing in feed readers)
- HTML (standalone viewing in a browser, or embedding in another website)
Using the Calendar
In my case, I took the iCalendar-format file and imported it into my ownCloud calendar, which then automatically echoed it the Calendar on my desktop:
And the calendar on my Android phone:
And to everywhere else I see my calendar.
As a result of all this, I have continuous awareness of when Anne & Gilbert are about to break out into song.
Like – as you can see from my phone above – in about 35 minutes from now.
Time for lunch.
Starting on January 1, 1914 and for every issue of the paper going forward, The Charlottetown Guardian ran some variation of “Confederation Celebration, Charlottetown” as part of its flag on page 1:
Until, that is, Tuesday, August 4, 1914 when it was changed to “Confederation Celebration, Postponed”:
As a page 1 story explained:
At a special meeting of the General Committee for the celebration of the Jubilee of Confederation held in the Council Chamber last night it was resolve to postpone indefinitely celebration of the event.
Hon. Mr. Justice Haszard presided over a full attendance.
The chairman opening the proceedings by referring to the crisis in Europe and asked an expression of opinion as to the advisability of proceeding with the celebration.
Hon. J. A. Mathieson, Premier, thought there was no alterative to postponement. In the present condition of affairs there was nothing else for it.
The chairman, Messrs. Pope, Tidmarsh and Ings concurred.
Mr. Pop this moved, seconded by Mr. Heartz:
“The in view of the fact that the Empire is at present engaged in a world-wide struggle and all lesser issues are sunk in our hopes and fears for the welfare of our country, it would, in the opinion of the Committee, be unfitting to hold the celebration at this time and it is therefore decided that it be postponed indefinitely, and that the Committee adjourn subject to the call of the chair.”
The following day, Wednesday, August 5, 2014, The Guardian reported that Britain had declared war:
I was intrigued to find this passage in the R. T. Holman entry in the Dictionary of Canadian Biography earlier this week:
R. T. Holman was a merchant who stood apart from the social life of his small community, who apparently neither sought nor gained political favours, and who possessed unorthodox religious beliefs. Though Holman had been born into a Baptist family, his father had left the church in 1835 following a doctrinal disagreement with a clergyman. It is not evident how Robert’s views on religion developed, but the census of 1861 listed him as a “universalist” and by the 1870s he had abandoned organized religion in favour of free thought. Not content to object passively to the predominant religious sentiment of the community, he brought speakers to Summerside to preach humanism. One example of his antipathy was his response to the province’s proclamation of Thanksgiving in 1899. He protested in a half-page advertisement in the Pioneer that the day should be “free from cant, free from hypocracy and free from policy” and that consequently his stores would remain open.
Prince Edward Island is a challenging place to be weird, and so it’s useful to look to history for examples of successful weird people like Holman.
The ad that’s referenced is an interesting one. Here’s the version that ran on October 18, 1899 – the day before Thanksgiving – in the Summerside Journal:
It reads:
A Proclamation!
Being unable to comprehend how I can SERIOUSLY or SINCERELY box up the beautiful sentiment of thankfulness into any special week days operation by ORDER of Parliament or any civic ruler, and recognizing as I often do the consistent, profound, and reverential manner in which many of those who think differently from me regarding such old customs, keep this special day, nevertheless I must proclaim to my patrons that I shall have
MY STORES OPEN
ON
Thanksgiving Day, Thursday, the 19th inst.
As usual to receive PAYMENTS? SELL CHEAPLY? and not to disappoint those who may have hauled their load of produce many miles.
In this country of SHORT SEASONS and RAPID CHANGES with winter soon upon us we should not lose any fine day but carefully and quickly save the bountiful crop that we have been favored with, thus enabling us to more easily discharge our mutual obligations to each other. WE ARE ALL DEBTORS AND ALL HAVE OBLIGATIONS TO MEET. And the man who could be so cold as not to have a CONTINUOUS FEELING OF THANKFULNESS while engaged in the activities of life with prospects of good success and this MANLY OBJECT IN VIEW is somewhat more than even PAYING BILLS. And if THURSDAY, THE 19th INST., should be a fine day and I should be financially better off from the operations of the day, I KNOW that I shall have many opportunities before THE WINTER PASSES to cast a ray of happiness into many dwellings RIGHT HERE IN SUMMERSIDE, the occupants of which will be asking heretofore
FOR BREAD? FOR CLOTHING? FOR FUEL?
And if I could be moved to recognize in a proper way their real wants then a manifestation of natural, true and unadulterated thankfulness would be apparent and which would be Free from Cant? Free from Hypocrisy?? Free from Policy???
Grief, love or thankfulness are not things to be made to order, bottled up and “used as directed.” They simply spring spontaneously from the human heart. We all know it, LET US BE FRANK ENOUGH TO ADMIT IT.
Call next Thursday, the 19th inst., and always for exchange of favors.
R. T. HOLMAN
[[Oliver]]’s MacBook Air power supply had become dangerously frayed, to the point where continued use would have involve low-level electrocution. Sugru to the rescue, and some personalization thrown in for effect (in 14 pt. Bodoni):
Usually I’m at the other end of the camera, so there are very few photos of me when I’m traveling.
Which is why this photo of Oliver and me in Berlin, along with Sam Stewart and Matthew Richard, taken in 2010, is such a nice thing to stumble across.
We all happened to be in Berlin the same week, and we met up at Yellow Sunshine on Weiner Straße one night for burgers and debrief.
I was reminded of that night this afternoon when I encountered Matthew behind the counter at The Kettle Black, where he’s working for the summer (and where he’s making fantastic coffee, having honed his skills, I am told, in the big city).
We were all so young then.