So remember that tweet from the Public Library Service here in Prince Edward Island? The one that ended up with me depriving the citizens of PEI of the resources needed to learn Norwegian?

Library Tweet

Well, Dan Misener, personable producer of CBC Radio One’s Spark, read the post about my travails and invited me into the studio this morning to talk with host Nora Young about the crazy system we have for library lending of digital things that’s mirrored on the sensible system for library lending physical things.

Listen for it as the “compelling personal anecdote” behind broader Spark discussion of this issue on an upcoming episode.

Following on from yesterday’s experiments with an Arduino, a DHT22 temperature and humidity sensor, some Python and Cosm, a few developments.

First, I generalized and cleaned up the Python code and companion Arduino sketch, and you can now find these both, with some documentation, in a Github repository. This code improves error detection, and filters out the occasional out-of-range reading (like a 2300ºC temperature). It also sends the data to both Cosm and to Thingspeak.

Second, I brought my Belkin WeMo Switch into the office with hopes of wiring it up to this system: the Venta humidifier in the office doesn’t have a humidistat in it, only three fan speeds; I’m thinking that I should be able to set thresholds for turning it on, like “if the humidity is below 25% and it’s after 7:00 a.m., then turn on the humidifer.” Stay tuned for that.

Third, in Safari on my Mac I opened the Cosm feed for the temperature and humidity and the selected File | Open in Dashboard… from the menu.

Safari Open in Dashboard

I then selected the orange temperature “badge” from the page, and clicked Add and then did the same thing for the humidity badge:

Open in Dashboard

The result is that on my Mac OS X Dashboard I now have the temperature and humidity in the office displayed:

Regular readers will know of my interest in (obsession with?) the temperature and humidity here in the office. Today I took this to a whole new level with this:

DHT22 Wired to Arduino

That’s an Arduino wired up to a DHT22 temperature and humidity sensor ($9.95 from The Robot Shop).

Using the wiring diagram helpfully provided by Adafruit I connected the DHT22 to the Arduino, with data flowing in on pin #7.

Next I installed this DHT library for Arduino and then used this slightly adapted Arduino sketch to actually grab the data:

#include <dht.h>

dht DHT;

#define DHT11_PIN 4
#define DHT22_PIN 7

void setup()
{
  Serial.begin(115200);
}

void loop()
{
  int chk = DHT.read22(DHT22_PIN);
  Serial.print(DHT.humidity, 1);
  Serial.print("\t");
  Serial.println(DHT.temperature, 1);

  delay(2000);
}

It took a little bit of fiddling to get things to work – it turns out that I’d used the wrong resistor to bridge the data pin with the 5V pin – but once it was working, monitoring the virtual serial port on my Macbook displayed the current humidity and temperature every 2 seconds:

34.2     22.7
34.1     22.7

and so on.

Finally, to pipe this through to Cosm and the world, I set up this Python script to run in the background on my Mac (adapted from here; I needed to install python-eeml and pySerial first):

import eeml
import eeml.datastream
import eeml.unit
import serial
import time

# parameters
API_KEY = 'MY API KEY'
API_URL = '/v2/feeds/104026.xml'

arduino = serial.Serial('/dev/tty.usbserial-A6008jtr', 115200)

while 1:
    readings = arduino.readline().strip().split('\t')
    pac = eeml.datastream.Cosm(API_URL, API_KEY)
    pac.update([eeml.Data(0, readings[1], unit=eeml.unit.Celsius()), 
        eeml.Data(1, readings[0], unit=eeml.unit.RH())])
    pac.put()
    time.sleep(60)

The result is this Cosm feed, showing temperature and humidity for the office:

Reinventorium Temperature

Reinventorium Humidity

The old analog gauge in the office agrees with the DHT22 measurement almost exactly; the humidty on the analog gauge reads about 6% higher:

Analog Humidistat

I’d like this setup to be less dependent on the intermediate MacBook (it makes the MacBook far less portable, for one thing), so my next step will be to adapt the setup to either use the Raspberry Pi to gather and forward the data, or to get an Ethernet shield for the Arduino so that it can hand this by itself.

I decided that it was only right, given the work I’ve been doing with OpenStreetMap on the UPEI campus, that I should revisit the neighbourhoods closer to home too. Given that my life is lived, in large part, around Queens Square in downtown Charlottetown – office on one end, home on the other – that seemed like a good place to start. So, over the last few days, I’ve been fleshing out details, to the point where things look like this now:

Queens Square in OpenStreetMap

I added all the foot paths through the square, made some adjustments to the setup of the Confederation Centre of the Arts so that its footprint is clearer, and added monuments and fountains. You can take a look for yourself (and join in the effort – just click Edit) at OpenStreetMap.org.

Terry MacIsaac has been the Principal at Prince Street Elementary School for [[Oliver]]’s entire 6 year stint there, and over that period I’ve come to know him as a smart, engaged, caring educator. Not only has he served us well personally with Oliver, but he’s served the school community well by being open to new ideas, welcoming of newcomers, and passionate about literacy, numeracy and the arts.

Which is why I was so happy to find out today that Terry has been named one of Canada’s Outstanding Principals.

I know that Terry will use this opportunity to shine light on the excellent work being done by the teachers and staff on his team, and as parents we’ll do our best to accentuate this next week during national Teacher-Staff Appreciation Week.

Yesterday I saw this tweet, about a teach-yourself-Norwegian audiobook available from the Public Library Service:

PEI Library Tweet

As I do want to learn Norwegian, at least in theory, I followed the link, which led me to a page on the Prince Edward Island-branded Overdrive.com website. To “borrow” this audiobook I needed to enter my library card number, put the audiobook in my “cart” (thus starting us, forebodingly, down the road toward ecommerce language), then “checkout” (ibid), select a 7, 14 or 21 day “lending period,” download a XML wrapper file for the audiobook, download the “Overdrive Media Console” software for my Mac, and then open the XML wrapper inside the Media Console to actually download what, in the end, was simply 3 non-DRMed MP3 files.

After listening to the first 5 minutes of the first MP3 file, I decided that I didn’t really have any interest at all in learning Norwegian, so I tried to “return” the audiobook, but found no way to do so. Apparently there isn’t one, at least in the Mac version of the Media Console. So not only am I stuck with this MP3 file for the next 21 days (I’m only allowed 10 digital “loans” at a time), but, worse yet, nobody else in Prince Edward Island can learn Norwegian for the next 21 days because there are, as you can see in the screen shot from Overdrive’s website below, “Available copies: 0.” Because of me.

Learn Norwegian

As near as I have been able to determine, I may be the only person who thinks this is an absolutely crazy system for the public library-mediated circulation of digital objects.

Libraries have hundreds of years of experience in managing the circulation of physical objects, and one of the defining characteristics of physical objects is that there are only so many of them to go around. And so, for example, there only 10 copies of The Casual Vacancy in the library system and 47 people who want to read it:

Casual Vacancy

But Learn Norwegian - Level 1: Introduction to Norwegian, being simply a collection of MP3 files, isn’t shackled to this physical reality: there can be an infinite number copies of these MP3 files created so that, in theory, should the Premier decide that everyone in PEI should learn Norwegian, it would be trivial to pass a copy out to every citizen.

And yet, for some reason, we’ve opted to acquiesce to a system that takes the regular old model we’re all used to for managing and circulating physical objects and, absurdly, applies it to digital objects.  So I’ve now “checked out” the Norwegian book for the next 21 days (even though, in truth, I’ve deleted all trace of the MP3 files from my computer).

I’m not arguing against digital rights management here (I’ll argue about that elsewhere; it too is crazy, but a harder crazy to fight): it’s worth noting that the MP3 files that I am technically “borrowing” right now have no restriction on copying them. While it would likely be a contravention of the terms I agreed to at some point in the process, there’s no technical reason why I couldn’t be running off copies for every Islander right now. Indeed there’s no technical reason that, despite the Overdrive Media Console’s insistence to the contrary (“All copies of this title, including those transferred to portable devices and other media, must be deleted/destroyed upon expiration.”), I couldn’t hang on to the MP3 files for the rest of my life.

So what I have “borrowed,” then, is really just a flag in an Overdrive database that says, in essence, “don’t let anyone else in Prince Edward Island learn Norwegian for the next 21 days.”

This is crazy, and we must demand better, more rational systems from our library, if only because we’re making up systems and processes here that will be with us for generations.

I’ve been working out various ways of printing a paragraph of Anaïs Nin’s diary and finally settled on a tiny 4-page book. Which means that I needed to again get my head around the geography of imposition. Transforming physical spaces in my mind is not a strong suit for me, so this took a lot of experimenting, but I finally figured it out:

Imposition

This is set up for “work and turn” printing, meaning that I’ve set all four pages to be printed at once, set up so that pages 1 and 4 for one copy of the book, and pages 2 and 3 for another copy are printed, and then the paper is turned over and printing on the other side, completing each copy of the book with the other set of pages.

I’ve still got some work to do fixing everything in place for printing so that everything ends up where it should, but I made good progress today, and might be ready for printing this afternoon.

Here at Robertson Library there is significant work being done on building tools to manage digital repositories. One of the challenges with this work is that, outside of the world of those who organize and archive for a living, this is an uncommon term: “Mildred, where did I put the deed for the house? It’s not in the repository” isn’t something you’re every likely to hear. (And, of course, there are all the negative associations with the word depository; they mean the same thing: “a place where things are stored.”)

Digital work is so ephemeral, so malleable, that those of us working deep within its mines rarely have cause to think about issues of preservation; we worried about “where things are stored,” but only for the moment.

But as the digital world ages and evolves, we need to start thinking harder about permanent storage, about a kind of “digital safety deposit box” where we can put things and have some confidence that they’ll be there in 25 years when we go looking for them.

This point was driven home for me this week right here on the University of PEI campus. Last week I discovered a cache of useful PDF files of campus floor plans. I used the floor plans of Robertson Library to build a digital model of the building in OpenStreetMap, and planned to return to the well to do the same for other campus buildings. When I repeated last week’s Google Search this week, though, all the links to the PDF files of floor plans were broken and returned an “Page not found” error.

UPEI Page not Found

Digging a little deeper I found that, rather than being a technical bug, the reason for this was that the Facilities Management section of the UPEI website had been reorganized and, while the result is much easier to use, it also meant that much of the useful reference content under the hood – everything from floor plans to campus design guidelines to maintenance manuals and procedures – disappeared.

This is why repositories are important.

Documents like building floor plans for a university campus should have a permanent, inviolable address, a digital safety deposit box where they can always be found, no matter the web design flavour of the day.

Fortunately, it is exactly that challenge that Robertson Library’s repository toolset, chiefly Islandora, is designed to solve.

Islandora, and the Fedora Commons repository software it manages, gives digital things – PDF files of floor plans, and anything else digital – a permanent, secure place to sit. With an address that doesn’t change. And a storage system designed intentionally to outlive any particular storage technology (under the hood it’s all just XML).

Ironically, given the library’s leadership as a repository tool builder, it suffers from the same tendency to use “a folder on a webserver” as a repository for its own internal documents. The archive of minutes of Library Council – core documents to the management of the library, and a vital historical resource – don’t have a home in a repository, for example, and they should.

Indeed, the history of the library itself – Robertson Library : the first twenty-five years – is just a PDF file squirreled away on a webserver. Last week when I went look for it, I found the link was broken – it pointed to a PDF file on an old version of the library website – and the only reason you can read it today is that I pointed this out to library staff and they helpfully corrected it.  But the library website itself is due for a redesign, and it’s likely that once this happens this link will break again.

And that is why repositories are important.

I’ve been driving around a Nokia Lumia 800 phone for the last year. Given that everyone else I know carries either an iPhone (80%) or an Android phone (15%) or no phone at all (5%), you might think this marks me as a contrarian. And it does. But it’s actually more about being cheap: Nokia sent me the phone because, through a series of happenstances, I am nominally a “Nokia developer,” and they were actively seeding devices to developers last year, presumably in an effort to encourage Windows Phone app development.

So, despite the many little frustrations of the phone (sub-par camera, jangly scrolling, etc.), I’ve held onto it because it’s just good enough to get by with. That, and I have a soft spot in my heart for it’s typographic user interface, which I admire for its moxie and, of course, for its typographicness.

Given all this, I was excited to read this morning that a bold new update to the phone, Windows Phone 7.8. The word came via the Nokia Conversations blog, with its expected snazzy video, a video that proudly proclaimed Your Update is Waiting For You / Get it and Enjoy!

Windows Phone 7.8

Great. Except that my update wasn’t waiting for me when I checked. And, reading the fine print at the bottom of that blog post, I found why:

Delivery of the update is operator dependent, meaning you will receive a notification in the coming weeks if you have an unlocked phone or if your operator has approved the update. If you don’t receive the update notification within the next three weeks, please contact your operator for more information.

I reconciled myself to waiting. And then I remembered that the last time an update for Windows Phone was released, there was a hack, dubbed “the cable trick” that was reported to allow the anxious to update their phones sooner than later by fooling the Zune software into thinking their Lumia’s time had come. I decided to give it a try, which required the following comedically bizarre series of steps:

  1. Start Windows XP in Parallels on my MacBook Air.
  2. Try to install the Zune software.
  3. Find out I can’t install the Zune software until I update Windows XP to Service Pack 3.
  4. Try to update to Windows XP Service Pack 3, but am told I don’t have enough disk space.
  5. Shut down Windows XP, increase the size of the virtual hard drive by a few GB and start up again.
  6. Insatll Windows XP Service Pack 3.
  7. Install the Zune software.
  8. Check Zune for an update for my Lumia – nothing found.
  9. Try the cable trick: start checking for an update in Zune software, then, after a few seconds, turn off the wifi on my MacBook Air. No luck: no update found.
  10. Try again. And again. And again. Each time waiting a few seconds more or less.
  11. Success! Zune tells me an update is found.
  12. Install the update: wait for it to download, install, and for the phone to restart.
  13. Find, despite the update, my phone is still Windows Phone 7.5.
  14. Repeated the entire process; Zune reported another update. Installed it. Still at Windows Phone 7.5.
  15. Repeated the entire process; Zune reported another update. Installed it. Presto! Now I have a Windows Phone 7.8 Lumia.

Zune Update to Windows Phone 7.8

Eileen Higginbotham, Resource Teacher at Prince Street Elementary, has been doing very interesting work at the school with dogs and children, and she’s started to write about this “Prince Street Puppy Project” on a new blog. Eileen’s dogs are very much a part of Oliver’s school day, and have been for several years; it’s fascinating to watch how these animals have become an important part of the school. Here’s a sample:

A few weeks back, I was with a couple of the older girls who train and I wanted KaBoom to do the leg weaving that Kannon does.  It was easy to figure out how to get her to run through the legs but having her come around to start back through the legs was just not something I could get.  The girls watched me try and watched me fail a couple of times.  Then I stopped and asked them for ideas.  We knew what we wanted the behavior to look like but we just weren’t being clear enough for KaBoom to get it.  One of the girls stepped forward, saying she had an idea.  We watched her work and, just by changing some body movements, she got the weave!!  JACKPOT!!  Then, she taught the moves to us. Soon after that, we all had a reliable weave.  Now, we have to start stringing them together!!

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