Ooti Billeaud built himself a BMX ramp. City regulations required him to build a house in front of it.

Although I’ve described myself as “printer, developer, writer” for many years, I haven’t written professionally since my days as the restaurant reviewer for The Buzz, many years ago.

Until this week, when I contributed a piece to the Lady Baker’s Tea blog.

Gloria is a new song from Henry Jamison. From The Fader, Jamison writes:

I realized that I was writing a parallel story about the ways in which boys in our culture are “recruited” into a toxic fraternity, by each other, by their fathers, by video games etc. I try to sing myself and others out of a simple resistance to the nefarious male ego and into a sense of inviolate self-worth.

In Leiderschap in de nieuwe netwerksamenleving, Marco Derksen writes (machine-translated from Dutch to English):

In an era of uncertainty and rapid technological change there is a great need for leaders who, on the one hand, are not afraid to outline a vision for the long term, but on the other hand also dare to be vulnerable. By returning to previously made decisions, by admitting mistakes made and by being open to the input of otherwise-minded people. Organizing and being able to deal with diversity is perhaps the most important leadership competence in the complex world of today and tomorrow!

I couldn’t agree more: having ideas—vision—is easy; everybody’s got ideas. Humility is a rare commodity, rarer still in leaders. When you witness the two together in one person, it’s delightful to behold.

And organizing and being able to deal with diversity is so seldom discussed, a skill few have, and yet without it we’re left with an intellectual monoculture incapable of evolving.

Edward Hasbrouck has written a delightfully exhaustive review of the Gemini PDA:

A year after my initial review, and six months after I received my Gemini, here’s a detailed update on what works, what doesn’t, what Planetcom needs to do to deliver on the promise of the Gemini (and the promises made to Indiegogo backers), and — most importantly — how to decide whether you should buy a Gemini to use on your travels.

The Holy Grail for many travelers-who-work-while-traveling is a compact, always-connected device, with a big (enough) screen and a big (enough) keyboard, running open source software.

As Edward’s review makes clear, the Gemini is a device tantalizingly close to this ideal, but with some serious issues, especially software-related, that would make it difficult to rely on as the only device in your travel bag.

Earlier this year I ran into my neighbour Christina on Prince Street and she told me that she’d just walked home from Charlottetown Airport; it only took 90 minutes, she reported, and had been a lovely walk.

I joined the Passenger Advisory Panel of Charlottetown Airport this fall, and our first meeting was scheduled for yesterday at noon. Inspired by Christina, and mindful that ground transportation would be one of the topics on the agenda, I resolved to get to and from the airport using novel means.

Believe it or not, you can get to the airport by public transit, a little-known feature of the city’s transit system.

Route № 11, the Airport to Winsloe North Collector, makes 7 counter-clockwise trips in the morning from Charlottetown Mall to the airport, a trip that takes 8 minutes, and makes 4 clockwise trips in the afternoon, a trip that takes 17 minutes. Given that the Charlottetown Mall is the northern hub of the transit system, it’s thus possible, with a transfer, to get to the airport from almost anywhere in the city. At only 11 trips a day it’s not enough service to rely on there being a bus for all arrivals and departures at the airport, but it’s also not nothing.

I caught the 11:15 a.m. Route № 1 bus from the Confederation Centre of the Arts on Grafton Street, arriving at the Mall at 11:30, and then transferred to Route № 11 at 11:45 a.m., arriving at the airport just before noon (note that the bus doesn’t actually go into the airport; you need to disembark at the corner of Maple Hills and Sherwood, before the bus turns left).

Both the Route № 1 and Route № 11 buses included a cowcatcher-style bicycle rack, which allowed me to take my bicycle with me to the airport for the route back. Which is exactly what I did; here’s my route as tracked by Google Fit:

Route from Charlottetown Airport to my House by bicycle

I rode out of the airport on Sherwood Road, through the roundabout and down the hill past the cemetery; when I reached the Confederation Trail I turned left and followed the trail all the way downtown, past the Charlottetown Mall, UPEI, the Experimental Farm and Joe Ghiz Park, emerging from the trail only when I got to Cumberland Street by the Maritime Electric plant. The journey was remarkably flat, with the only mildly-challenging bits being from the airport up to the roundabout, and the stretch that’s slightly uphill before UPEI. And most of the trip was on the trail, making it both car-free and scenic.

Remarkably, given that I’m not in shape, and that I faced a headwind most of the way, the journey only took 31 minutes from airport to my front door on Prince Street.

When ground transportation came up at the meeting I talked about my journey there and the plans for my journey back, and suggested that, while bus and bike might never be the predominant way of getting to and from the airport, it should at least be publicized as an option, if only to drive home the fact that the airport is among the most convenient to get to, by any means, of any airport in Canada.

This is a tale of two photos, both, in theory, with location data embedded in their EXIF metadata, but with the manifestation of that EXIF data to the Apple Photos and Preview apps only available from one.

The First Photo

The first photo, of sunrise on Prince Street, is one that I took in January 2018 on my Nextbit Robin phone. When I run exiftool on this image, I can see the GPS data:

GPS Latitude                    : 46 deg 14' 8.93" N
GPS Longitude                   : 63 deg 7' 26.80" W
GPS Position                    : 46 deg 14' 8.93" N, 63 deg 7' 26.80" W

When I load this image into GraphicConverter, I can see the GPS data:

GPS Data in GraphicConverter

But when I use the Mac Preview app to look at the photo’s EXIF data, I don’t see anything under the “GPS” tab at all:

No GPS data in Preview for this image

And, similarly, the location information doesn’t show up when I import the image into Apple Photos:

No GPS location in Photos for the first image

The Second Photo

The second photo, one I took in 2014 on my Motorola phone, also shows GPS data in exiftool:

GPS Latitude                    : 51 deg 4' 47.92" N
GPS Longitude                   : 114 deg 7' 41.76" W
GPS Position                    : 51 deg 4' 47.92" N, 114 deg 7' 41.76" W

There’s GPS information in GraphicConverter:

GPS data in GraphicConverter for the second image

But in this case there is also GPS data showing in Preview:

GPS data for second photo in Preview

And there’s a location showing in Photos:

GPS location in Apple Photos app for the second photo

What’s the difference?

When I run exiftool with -v3, for extra verbosity, on the first image, I can see more details about how the GPS data is being encoded in the JPEG images.

In the first photo, the latitude is:

  | | 4)  GPSLatitude = 46 14 8.93 (46/1 14/1 893/100)
  | |     - Tag 0x0002 (24 bytes, rational64s[3])

Whereas for the second photo the latitude is expressed as:

  | | 2)  GPSLatitude = 51 4 47.92 (51/1 4/1 4792/100)
  | |     - Tag 0x0002 (24 bytes, rational64u[3])

The latitude format itself, and the tag ID, are the same, but the number format in the non-working photo is rational64s while the number format in the working photo is rational64u.

Further, if I overwrite the latitude tag in the first photo using exiftool like this:

# exiftool  24788827667_69d2141fa6_o.jpg -GPSLatitude="46 14 8.93 (46/1 14/1 893/100)"

Then the latitude changes to rational64u:

  | | 1)  GPSLatitude = 46 14 8.93 (46/1 14/1 893/100)
  | |     - Tag 0x0002 (24 bytes, rational64u[3]):

And once I do this, Preview becomes capable of reading the latitude from the file:

Latitude showing in the updated first photo

So what’s the difference between rational64u and rational64sFrom here we learn:

  • rational64u is an unsigned rational number, which is a pair of 32-bit unsigned integers.
  • rational64s is a signed rational number, which is a pair of 32-bit signed integers.

The EXIF standard clearly says that the latitude and longitude values should be unsigned rational values; this makes common sense, as there are, in addition to the GPSLatitude and GPSLongitude values, also GPSLatitudeRef (N or S) and GPSLongitudeRef (E or W) values which obviate the need for the values to be signed.

So it would appear that while other tools–Flickr, Google Photos, exiftool, GraphicConverter–can read latitude and longitude values expressed, contrary to the standard, as rational64s, Apple tools cannot.

I took a look at a cross-section of my Flickr photos, recently repatriated to my local machine: of 13,542 photos I sampled, 6,612 photos had location data in them according to exiftool; of those, 2,572 photos (mis-)encoded the latitude as a rational64s and 4,040 encoded the latitude as a rational64u.

Of the photos with the latitude expressed as rational64s, 2,271 (88%) were from my Nextbit Robin Android phone; interestingly, there are also 377 photos where the latitude from a Nextbit Robin photo is (properly) rational64u, so I wonder if something changed in the EXIF-encoding library on the device at some point.

How to fix this?

The exiftool utility cannot only read EXIF from files, but, as witnessed above, it can also write EXIF data into files. So I wrote a shell script, fixlocation.sh, to do this:

#!/bin/bash

LATITUDE=`exiftool -s3 -c "%+.6f" -GPSLatitude $1`
LONGITUDE=`exiftool -s3 -c "%+.6f" -GPSLongitude $1`

exiftool -overwrite_original -GPSLatitude=$LATITUDE -GPSLongitude=$LONGITUDE $1

 I can run this on a directory of “broken” images with:

find ./ -name "*.jpg" -exec fixlocation.sh {} \;

The result is files that Apple applications like Preview and Photos can properly interpret the locations of (while not compromising the ability of other applications to do the same).

Inspired by my friends Elmine and Ton’s documentation of their birthday unconference format, here’s my guide for livestreaming your birthday party.

We livestreamed Oliver’s birthday party last night to a global audience of friends and family, stretching from Portland, Oregon in the west to Vaasa, Finland in the east. At its peak the stream was watched by 9 viewers, and there have been 32 replays of the archived video in the hours since. Here’s how YouTube broke the streaming down by total viewers and then by stream quality (the lower the number the poorer quality the video):

YouTube stats for Oliver's birthday livestream on Oct. 1, 2018

Beside the video there was the opportunity for viewers to chat, and this resulted in a lovely four-country chat between old friends; as Ton wrote in a blog post about attending the party from afar:

Watching is not quite the same as attending, but the live music and hanging out with other friends of Oliver online in the chat makes it a surprisingly social event.

Livestreaming used to be the preserve of bearded experts with expensive gear and connections; it’s now something anyone can do.

On the hardware side, I used my 7 year old MacBook Air laptop connected to a Logitech C920 webcam by USB and mounted on a tripod:

Livestream Hardware

On the software side the key was Google Hangouts Live on Air, which allowed me to dispense with the complexity of a standalone video encoder and simply beam my webcam into a YouTube live event.

Starting this up was simple as going to YouTube’s My Live Events page, clicking “Schedule an Event,” selecting “Quick” under “Type,” filling in the rest of the details (including whether I wanted the livestream to be public, unlisted, or private; I selected unlisted, as I didn’t want the event to be generally available on YouTube, but rather only available to those with the URL), and then, at the appointed time, clicking “Start Hangout on Air” from back on the My Live Events page (YouTube’s complex navigation appears not to have an obvious link to that page, so bookmark it). Scheduling the event in advance gave me a YouTube URL that I could email out to friends and family in advance.

The benefit of using Google Hangouts Live on Air for the video (over the simpler “Camera” option, which you’ll also see as a “Type” when setting up the event), is that you can include others in the livestream, by video or audio call or even by telephoning out; I didn’t end up doing that, but it was nice to have the option.

When the event is over, YouTube retains an archive of the livestream at the same URL (there was no obvious “stop” button in either Google Hangouts or YouTube; YouTube appeared to have figured out that we were done about 30 minutes after I stopped the Hangout).

From a technical perspective my only complaint was that the auto-focus on the Logitech camera had a hard time keeping up the action near and far, and so there’s a fuzziness to the video that belies that the camera is perfectly capable of focus in calmer situations.

Beyond the wonder of international virtual participation in the party, we’re also left with a record of the evening, as the first guests arrived:

First Guests Arrive

To the full-throated party:

Party in full swing.

To our indefatigable next door neighbour sweeping up after things had wound down:

Cleanup

While livestreaming an event still requires some hardware, some Internet, and a (slight) learning curve, it’s something that’s well within the preserve of far more people than realize it; there’s no reason why any birthday party, all candidates meeting or protest rally can’t be streamed these days. If you have questions, feel free to ask.

We are all happy and exhausted after a birthday party for Oliver made possible by so many wonderful friends, new and old, from this Island we call home.

I told Oliver, while he was getting ready for bed tonight, that I was having trouble remembering everyone who had come–the kitchen served 50 bowls of chilli–and his response was that life is big and our heads are small.

If I were to pick any one inspiration from tonight’s festivities, it is the joy of being able to show people the results of their efforts

In the room tonight we had people from the delivery room on the day Oliver was born, teachers and EAs from innumerable classrooms where he’s learned about the world and himself, kind-hearted support workers who have taken him–and us–under their wings, politicians who have inspired him, neighbours who have watched out for him, musicians who’ve entertained and befriended him, friends from when he was a toddler, classmates from kindergarten and classmates from grade 12.

All of these people had a role in raising Oliver these 18 years; each has contributed something, perhaps without knowing it, to the person he has become.

It makes me so happy that these people could gather, share a meal, meet each other.

And see that the newborn they conjured back from the edge in the NICU, the young boy who benefited from learning about “juicy words,” the teenager who felt welcomed in for a cup of tea and a tune, the young man who needed help finding a way, through words and images, of telling his own story, the citizen who benefited from compassionate, open-minded role models… they played a part in that.

And it was Oliver’s idea to bring them all together.

Life is big. Our heads are small.

What an amazing night.

Peter and Oliver at his 18th Birthday

The first thing Oliver did this morning was to update his Netflix profile to give himself access to shows of “all maturity levels.”

(He put on the previous restrictions himself, and could have removed them at any time).

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, read presentations and speeches I’ve written, or get in touch (peter@rukavina.net is the quickest way). You can subscribe to an RSS feed of posts, an RSS feed of comments, or receive a daily digests of posts by email.

Search