A few months ago Gordie and Janet phoned me up and invited me out to lunch: they were planning an extended trip to Europe with their two daughters, and wanted to poke me for advice on travel with kids. We had a nice chat, talking about everything from school work to SIM cards, and the more they talked, the more jealous I became. We’ve traveled, but never for such a long and indefinite period as they were planning.

And now they’re there. And, what’s more, all four of them are writing posts on a family travel blog. Not only can you learn lots of interesting things about Europe and families and travel in their blog, but you often get two or three perspectives on the same event from different members of the family.

So here’s Robin on their new Paris apartment:

The bed that Sarah and I got given is not a bed at all. It is a couch, a very small couch. It is supposed to pull out but this one; you just unfold the cushions and sleep on those. It is too small for two girls so I pulled the blanket off of Sarah and put it on the floor with a pillow.

Sarah did not wake up at all when I took her blanket so I got away with sleeping on a nice soft blanket. The blanket pattern is a tiger. It has orange and black stripes. The bed inside my parents’ room is, in fact, a bed—a reasonably hard bed, but a bed.

And here’s Gordie:

Here we sit in our Paris apartment. The apartment is quite small. There are three rooms: a bathroom, a bedroom, and (for lack of a better description) a multi-purpose room. The multi-purposes for the room include entrance, kitchen, dining room, and spare bedroom. The room is about 50 square feet. The bedroom is about the same size and the bathroom is about 12 square feet. Including the hallway, the apartment might be 150 square feet.

Gordie’s got the important stats, but, I gotta say, Robin does a better job at capturing the essence of the place.

I look forward to more tales of their adventures.

Those of you who have been reading since the Working for Free days will recall that presentation was anchored in this project for Casa Mia Café, an altruistically selfish attempt to ensure the success of the place that fed me coffee every morning.

Well, two years on and Casa Mia is still my coffee supplier, and I continue to use it as a playground for digital experiments.

My latest experiment started out with a strong aversion to Jesse Cook, an artist whose music, it seemed for awhile, was the only music Casa Mia ever played. I’m as much a lover of rhapsodic Canadian guitar as the next guy, but after 1,600 plays (there’s now evidence of this) I was ready to scream.

Which got me thinking: how could we make the café react automatically to the customers inside it at any point in time, and adjust the music playlist accordingly.

This week I’ve been working on an answer to this question. Here’s the working theory:

  1. Customer enters the café with a Bluetooth device in their pocket.
  2. The café’s music server, which is running a Bluetooth scanner, detects the presence of the device.
  3. If it’s a new device, never seen in the café before, a message is sent to it (at least for devices that have message-receiving capabilities) inviting the customer to register and associate their Last.fm account with their device’s address.
  4. If it’s a previously-seen device of someone who has registered, then the server finds their Last.fm address, and adds their musical tastes to the café’s playlist until they leave.

There are some technical bits that make this challenging.

The Bluetooth Bits

There’s not really such a thing as a “Bluetooth scanner,” at least not a friendly off-the-shelf application that you just install on a Mac. To the rescue comes LightBlue, a Python Bluetooth toolkit that lets me do neat stuff like:

# /usr/bin/python -Wignore
Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import lightblue
>>> lightblue.finddevices()
[('00:1F:5D:39:75:16', u'ruk', 5898764)]

Which tells me “somewhere near this computer is a Bluetooth device with a device address of 00:1F:5D:39:75:16 that calls itself ruk. This happens to be my [[Nokia N95]] mobile phone, which is sitting beside me as I type.

It’s not hard to imagine, with LightBlue in hand, how the “detects the presence of the device” part of this system works, then: just set up a Python script to run in the background and to report new Bluetooth devices as they appear.

The other Bluetooth challenge is in the sending of a message of invitation to newly-detected devices. There are lots of devices that support this, but also lots that don’t. For example, there’s no way, as near as I can tell, to push a Bluetooth message to an Apple iPhone or iPod Touch. Of course for any device there’s the issue of Bluetooth being set off, or set to non-discoverable; can’t work around that, other than by letting customers who want to play know what they need to do.

The Music Bits

The music part of the system is a little more challenging: Last.fm isn’t really built for this sort of thing. Indeed once you start scratching into the Last.fm API, you realize that at every corner there’s another roadblock, part of Last.fm’s “we can’t actually let people listen to the exact track they want to listen to” licensing model.

For example, you might think a simple call to user.GetTopTracks for someone who’s just walked into the door would be a good place to start: just grab their favourite songs and add them to the café’s playlist using playlist.addTrack and then remove the tracks once they leave the café. Except that, alas, there’s no playlist.removeTrack method to allow the removal to happen. And the radio.tune method doesn’t actually support streaming playlists at all, only artists, users, and tags.

So, what to do? Well, my working model at this point is to variously dip into each present-user’s music by simply directly the Last.fm scrobbler to play Last.fm-style URLs like lastfm://user/reinvented/library (which, if you’re a Last.fm subscriber and have the scrobbler installed, should play my library for you if you click on it).

So, from a PHP script, I fade down the music server’s volume (it happens to be a Mac Mini, so I can do this using AppleScript):

function volumeFadeDown() {
      for ($volume = 7 ; $volume >= 0 ; $volume = $volume - 0.5) {
              system("osascript -e 'set volume $volume'");
       }
}

Then I “tune in” a given customer’s playlist:

system("osascript -e \"open location 
     \\\"lastfm://user/$username/library/\\\"\"");

Now that music is streaming, I wait some amount of time, likely sensitive to the number of playlists I’m juggling, and then segue to the next playlist.

Because it’s a stream, not tracks that I’m playing, the downside of this approach is that I’ll cut track off in mid-stream; I might be able to mitigate this somewhat by making calls to track.getInfo to get duration information for each currently-playing track, and then do the volume fade only once the end of the track was nearing.

None of this is particularly elegant, and it would be nice to have a more flexible track streaming service available, at cost, to allow to to either stream specific tracks or at least to add to and subtract from aggregate playlists.

I welcome any guidance on other approaches to this with Last.fm (or with alternatives to Last.fm).

Where I’m At

I’ve made good progress over the last few days with putting the pieces of this system together.

Casa Mia now has a Last.fm account, back-filled with 30,000 tracks worth of play data from iTunes. And because the Windows machine that’s playing music in the café is scrobbling everything it plays, we can now publish this information using the Last.fm API. So if you visit casamiacafe.ca, you’ll see the playlist in the right sidebar, and if you visit music.casamiacafe.ca, you’ll get a mobile-optimized version of the same.

There’s a headless Mac Mini sitting in Casa Mia running a modified version of haraldscan (a Pyhton script that’s built on LightBlue); it’s logging every Bluetooth device it sees, and we’ll let it run for a few days to get a sense of what sort of devices are walking into the café and what their capabilities are.

On the music side, I’ve cobbled together the PHP script outlined above, and have been running it here in the office with some dummy presence data fed into it to rotate through various playlists. The only dealbreaker I’ve encountered so far is the tendency of the Last.fm Mac scrobbler to stop working from time to time, reporting in a dialog box that it can’t stream; that’s difficult to deal with on a headless Mac where the dialog can’t be seen. So I’m looking at alternatives like lastfm-cli, a command-line client for Last.fm, that might allow me to stop using the GUI client altogether.

More than music…

There’s more to this than music, of course. I’ve already got the Bluetooth scanner set up to automatically check me in to Foursquare every time I stop by the café; there’s no reason why I couldn’t extend this to anyone who wanted to supply their Foursquare credentials.

Further on down the line, there’s all sorts of “automatically bring me a macchiato whenever I walk in the door” magic brewing around my head too.

As always, thoughts welcome.

Students of Canadian history will recall two men named John Hamilton Gray being Fathers of Confederation, one from Prince Edward Island and the other from New Brunswick.

So, a simple style question: when referring to both in a sentence, would you write “Johns Hamilton Gray” or “John Hamilton Grays”? Like:

On Monday night we had the Sir John A. Macdonald and the Johns Hamilton Gray over for supper.

Please advise.

Once again this year I’ve taken the official Eastern School District School Calendar and created a set of public calendar files. This is a little early to be doing “back to school” things, I admit, but I figure it’s better to get them out of the way now.  Here you go:

I’ve been keeping two Altoids tins around on my desk for over two years “in case I need them for something.” I think I envisioned some sort of Arduino-based Altoid-housed mobile telephone.

I realized today that these two tins were interfering with my ability to properly and thoroughly clean my office desk so, though it pained me greatly, I threw them away.

With the new bed we bought last month, this places me even closer to the Bruce Sterling image of nirvana.

[[Oliver]] and I drove up to Rollo Bay yesterday for the PEI Bluegrass and Old Time Music Festival.

It had been more than 30 years since I’d been at a bluegrass event: the last time was in Carlisle, my hometown, where I used to sell The Hamilton Spectator tent-to-tent. Oddly, I don’t remember much about the music, and I certainly don’t recall enjoying any of the music that I heard.

But somewhere in the last 5 years the bluegrass-enjoyment-switch got turned on in my head, and these days it’s some of my favourite music. So the opportunity for some full-on bluegrass action so close to home was irresistible.

Bluegrass festivals are a world unto themselves, and that world is very recreational-vehicle intensive. Here’s what the festival site looked like:

PEI Bluegrass and Old Time Music Festival Grounds

RVs stretch for as far as the eye can see. And these are not modest RVs: they’re set up with awnings, outdoor patios, satellite television dishes. And you get the sense that there’s a traveling convoy of bluegrass aficionados that roam the continent every summer, festival to festival, as there’s a lot of socializing and camaraderie happening out of the stage area proper.

My favourite part of the day was the workshops, held inside in Ceilidh Hall (it’s the large building on the left in the photo above). We saw parts of the banjo and harmony workshops, and I think I learned more about music in that 60 minutes than I’ve learned anywhere else. Here’s a snippet of the harmony workshop offered by Barry Scott & Second Wind:

We also got to see some main stage acts: when we first arrived PEI’s Bluegrass Revival had just gone on stage, and we watched their entire set, and then saw parts of Country Grass Band, Norman Bowser & John Jeffreys, The Spinney Brothers and Simply Blue.

To Oliver’s great dismay we had to head back to town before Grass Mountain Hobos went on stage (they’re his favourite bluegrass band; perhaps his favourite band of any sort). I had to promise him that we’d track them down again before the summer’s out, which might prove challenging as they’re off to the United Kingdom for the rest of July. We’ll have to work hard to find them somewhere in August.

All in all a great way to spend the day; we’ll be back next year.

Every weekend I continue to bluster away on my Adana Eight Five letterpress, each time learning, by trial and error, a little more about how paper and ink and type and pressure relate. And each time I learn how much I don’t know, and how much I need to learn simply by rinsing and repeating, over and over and over.

The hard part of letterpress, I’ve learned, is what’s called the makeready. This is the time after you’ve set the type, but before you start running off “good copies.” In computer programming it would be called the “debugging.” And as with debugging, it can consume a lot of time.

British Letterpress has a good introduction to the term; they write, in part:

[M]akeready is the process of ensuring that each part of the forme receives sufficient ink and pressure to satisfy its individual requirement. Bold, solid areas of type or blocks need more ink-and more pressure-than do light, delicate areas.

Simple enough. But achieving this, especially when, like me, you’ve both a limited array of equipment and supplies and a limited amount of knowledge, is a slow slog.

Mostly this is because the materials of letterpress – type, leading, furniture, chase – are all subject to wear and tear and thus amounts of “inexactness” that need compensating for.

Take a look at this type sample I printed tonight, for example:

Type Sample (Card Stock)

This proof is one I printed after perhaps 30 minutes of fussing about, and it’s still far for perfect.

Look at the upper case P in the top line of the Dorchester section, for example: in this typeface the upper case P has a slight overhang that extends over the right edge of the body and, in this case, overlays the body of the lower case P. The effect of this – likely because of wear and tear and accumulated cruft – is to push the P up slightly resulting in a different amount of ink and pressure than the letters before and after. And so, as you can clearly see, it’s too dark. As this is my only upper case P in this font, I’m kind at a loss as to what to do, other than too (somehow) bring its sister letters up to meet it.

Another issue on this same sample is on the top line of the Times Roman section: notice the incomplete printing of the “NnOoPp” letters. This case is a little easier to handle: it seems easier to add pressure than it is to take it away, and one quick hack I’ve found for this is to stick a layer of sticky tape on the tympan (the layer of oiled paper onto which the paper to be printed is set). Many times this seems to be just enough to add the right amount of pressure; in this case I’ve still a way to go in this regard, but it’s a lot better than when I started.

As another experiment – I’d seen it suggested on places like Briar Press – I tried moistening the paper I was to print on before putting it on the press. To do this I consolidated a collection of Windex bottles to free one up, and then lightly spritzed some water on the paper; for this test I used some straw paper I bought at HazelTree this morning. Here’s what resulted:

Type Sample (Straw Paper)

I seem to have used a little too much water for my own good but, that said, the effect was rather dramatic: the water loosened up the paper such that the type could “bite in” much more effectively. Because of the different faces in the sample, the effect of this was alternatively good and bad: the Dorchester suffered for it, the Temple looks slightly better, and the Times Roman (truth be told it’s Times Roman Bold) was much improved. Some further experimenting with this technique is in order; I may need a more effective (i.e. less rain-like) way of moistening.

I ended up printing about 2 dozen versions of the type sampler on various weights and types of paper. Here are seven of the most interesting examples:

Type Samples, Various Papers

My favourite, if only because it’s the least likely, was the pink card stock (it’s shiny and has a styrofoam-like quality): it took the ink quite well, especially for the Times Roman.

Learning letterpress is very reminiscent of learning computer programming, another trade in which I’ve no formal education: it’s all about test and iterate, test and iterate. See what works and what doesn’t, and evolve.

Fortunately, like with programming, there’s a good body of guidance on letterpress, both historic and contemporary. There is, however, no substitute for the slog. Which is why if you look in the window at Reinvented HQ on the weekends you’ll likely see my hunched over a case of type or up to my elbows in Varsol.

As quoted in Prince Edward Island and Confederation 1863-1873 by Francis Bolger, an 1873 quote from the Patriot in reference to Prince Edward Island joining Canada:

“On Tuesday, July 1, whether for weal or for woe, Prince Edward Island became a Province of the Dominion. At twelve o’clock noon, the Dominion Flag was run up on the flag staffs at Government House and the Colonial Building and a salute of 21 guns was fired from St. George’s Battery and from H.M.S. Sparton now in port. The Church and city bells rang out a lively peel and the volunteers under review at the city park fired a feu de joie. So far as powder and metal could do it, there was for a short time a terrible din. But among the people who thronged the streets there was no enthusiasm. A few minutes before 12 the Sheriff, Mr. Watson, stepped forward on the balcony of the Colonial Building and read the Union Proclamation. He was accompanied by two ladies and a half dozen gentlement. The audience within hearing consisted of three persons, and even they did not appear to be very attentive. After the reading of the Proclamation was concluded, the gentlemen on the balcony gave a cheer, but the three persons below – who like the Tooley St. Tailors who claimed to be the “people of England” – and at that moment represented the people of Prince Edward Island, responded never a word.”

When I was in Montreal earlier in the month I took a Dyad-brand electric bicycle for a test drive. It wasn’t something I went looking for: on a stroll down St. Laurent with my family we stumbled across the dealership, which had just opened the week before, and I went back the next day to take one of their bikes for a ride.

As near as I can tell, Dyad is the local branding for a line of electric bicycles made in China, and the Montreal dealer – they’re on St. Laurent just south of Rachel – is buying direct from the factory. Or maybe he is the factory: the owner suggested that if there was anything I didn’t like, I just tell him and he’d have it changed.

There were three models to choose from.

At the bottom end there was what amounted to a mountain bike with an electric motor strapped on. I took this for a brief spin and it was immediately obvious that while the motor might give an extra kick up a hill, it was more “power assisted” than a motor-powered bicycle.

At the top end was something very Vespa-like in design – to see it you’d think “that’s a cool scooter” and not “wow, an electric bicycle” – and test-driving it I found it weighed as much as a scooter too, and was just too ungainly to imagine as part of my everyday life.

Which left me with the middle of the pack, a model they call the Mojito. I had the option of a quick 15-minute ride for free or a longer drive at $15/hour and I decided to really get a feel needed more time, so I opted for the rental. Here’s a brief tour of the Mojito (not my finest work, but it will give you a taste):

I’d planned to shoot some video of the bike in action too, but I was uneasy enough about remembering which control did which that I decided that it was best to devote all my attention to the driving.

After riding the Mojito around for 45 minutes, I left it impressed with what an electric bicycle could do: I was reaching top speeds of 50 km/h on a hill, going up hills without too much struggle, and the bike handled very nicely, with the nimbleness of a regular bicycle with some of the power of a scooter.

The battery statistics I was promised were a range of about 50 km, a top speed of about 45 km/h and a recharge time, from drained, of 6-7 hours (with a regular household plug). I didn’t ask about the battery life, but I’ve seen similar cycles quoted with a limit of 300-400 recharging cycles per battery, which could mean the battery could need to be replaced as much as once a year.

These limitation means that, unlike an electric scooter, which you can, in theory, drive forever as long as you have a gasoline station in range, you’re limited to a 50 km distance from an electric outlet that you can use to recharge and a 6-7 hour window of time to wait for the recharge to happen. This means, for example, that I’d be lucky if I reached Summerside from Charlottetown on a single charge (about 62 km).

So these bikes are obviously not suited for intercity transit, but rather for quick trips around the city.

All of which makes me wonder, at least in the Charlottetown context, where the electric bicycle fits into the transportation landscape: you can, in theory, take a moped-style bicycle like this anywhere you can take a regular bicycle, and Charlottetown is of the scale that, unless I had to make regular trips to Winsloe and back, I can’t see why a regular bicycle wouldn’t be the better option: no charging or batteries to worry about, no maintenance worries (or at least maintenance worries that I can’t solve myself with a screwdriver and a wrench) and I get exercise in the process.

Don’t get me wrong: driving the Mojito around Montreal was loads of fun – I felt like a gasoline-free Gregory Peck in Roman Holiday – but in the end riding electric bicycle felt a lot like using an electric can-opener: something I could do “manually” without much additional effort and with a lot less complexity.

Am I missing something? Would an electric scooter of this sort work well into your daily routine?

If, like me, you’re averse to the notion of fencing public parks for expensive touristic events, you still have a chance to see Cirque du Soleil this week in Charlottetown, as part of their show – the foreplay, if you will – happens outside the gated fortress: every night’s performance begins with a parade down Great George Street from Province House to the water.

Milling around the house tonight around 8:30 p.m. I sensed that something was going on up at Province House – it’s only half a block away – and so I grabbed Oliver and we headed over. Over the next hour it became obvious that a dress rehearsal was in the works: the police motorcycle showed up, the Minister of Tourism showed up, and then lots of tourismocrats holding walkie-talkies landed. And at 9:30 things suddenly sprang to life. It’s an awfully impressive entertainment: juggling, fire-breathing, stilt-walking. They even light Great George Street on fire.

If tonight’s dress rehearsal was any guide – lots of people showed up, out of nowhere – there are going to be crowds. My advice: show up early, say around 8:30, and set yourself up close to the street around Great George and Dorchester: that way you’ll get the best view of the fire-intensive activities, and you’ll be well-positioned to stand up and follow things down for the finish.

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