After some experimenting with the Mac OS X application NodeBox to map my Plazes friends network, I graduated to a a more universal solution using NetworkX today.

I used a modified version of my Python code and an Amazon EC2 instance (setup instructions) to make images like this:

There are higher resolutions versions of the first and second images if you want to look at the details. The rendering is less sophisticated that my NodeBox experiments, mostly because NodeBox has some built-in styling that I didn’t attempt to fully recreate using NetworkX.

The updated Python script is smarter too: it now grabs all of each users friends, not just the first 50. Unfortunately this also results in significantly more demands on the script: in a network where some users have 500 friends, the number of nodes and edges gets really huge really fast. Hence my use of EC2 to get maximum processorage thrown at the problem.

🗓️

It’s time again for the midwinter Jack Frost Children’s WinterFest here in Charlottetown.

I’m going to set aside any commentary I might have about, say, the absurdity of using fossil-fuel-powered machines to make snow (the mind boggles at the self-fulfilling prophecy of it all), or importing ice from Upper Canada, or the overwhelming brand saturation of the event to point out its most egregious fault: it’s expensive.

Tickets for the weekend are $14 per person. There’s no special rate for children, and no family rate.

At the Prince Street School Home and School Association meeting this week it was pointed out that the high ticket price puts the festival out of reach of many downtown families. Imagine if you’re a lower-income family with four kids: you’re looking at $70 to get in the door.

Now I’m sure that to many $14 seems like a fair price — “it’s only the price of a movie and popcorn!” But for many others this is a lot of money; the sad irony is that many lower-income families live in downtown Charlottetown within shouting distance of the festival venue and yet cannot afford to attend.

Of course the Jack Frost Children’s WinterFest isn’t actually designed to be a festival for the local community: here is the way it was described at a public meeting of Charlottetown City Council in 2005:

We felt that working parents are seeking to spend quality time with their children and research shows that parents will come and spend time to create those memories as compensation for today’s hectic work schedule. In February you all know that there is pent up demand to get away and parents are searching for things to do with their children in these months. One could refer to Crystal Palace. … The objective of the Jack Frost Children’s WinterFest was to develop a festival during the winter months resulting in significant off-Island visitation and economic impact Charlottetown and Prince Edward Island.

So if you’re a harried double-income middle-class family in West Royalty or Moncton or Halifax you’re in the heart of the festival’s target demographic. If you happen to be a “non-working parent” with less disposable income, well, that’s just too bad. Unfortunately these demographic distinctions are lost on most children.

Catherine asked Oliver not to talk about the fact that he’s going to the Festival this weekend because she knows that a lot of the kids in his class can’t afford to go. That’s just wrong.

🗓️

I’ve been experimenting with NodeBox today: it’s a Mac OS X application with a Python engine that’s designed to make it easy to create 2D visualizations. I love network graphs and the NodeBox Graph library is an add-on for NodeBox that makes it really, really easy to create them. Here, for example, is a graph of my Plazes friends network:

NodeBox graph of my Plazes friends network

You can grab a higher resolution PDF of the graph if you want to zoom in for details. The graph shows my immediate friends, and also their friends. A connection between two users (in graphing terms, an “edge”) shows a Plazes “friendship” between those two users — i.e. one of them has “friended” the other. There are 732 individual users shown (I have 57 immediate friends).

If you’ve got a Mac and want to try this for yourself, just install NodeBox and and then grab my Python code and adapt as required (you really just need to change the line t = PlazesRelations(‘ruk’) to use your Plazes username instead of mine).

A couple of warnings: if you’ve got a lot of friends, or if some of your friends have a lot of friends, this script will tax the Graph library — it’s designed, say the docs, for “small graphs (<200 elements)". In any case, it will take a while -- 5 minutes, perhaps -- to generate a decent sized friends network. And the "retrieve trustee XML from Plazes” relies on an unsupported, undocumented API method, and so is subject to disappearing at any time.

Update: just discovered, as a result of experimenting, that, like other Plazes API method, the one that I’m using to grab “trustees” only returns 50 results at a time. As such the code as it stands right now will only graph your first 50 friends (and their first 50 friends). As it turns out, that’s probably a Good Thing, as it naturally limits the number of nodes to a reasonable number.

🗓️

There must be something in the water over there in Brighton that causes musicians to become politicians. Or politicians to become musicians. Or something like that. First we had Wes Macaleer, renowned for bringing his guitar along to staff celebrations when he was Minister of Economic Development. And now Councillor Rob Lantz unleashes his guitar on us.

Wes was more “up in the air, the Junior Birdsmen” than Rob who, as he describes it, is channelling the Allman Brothers.

🗓️
Bill for a Birth in Prince Edward Island in 1948
🗓️
Snow Covered Charlottetown City Hall
🗓️

A demonstration of what a talented musician, Imogen Heap, enhanced by digital prosthetics, is capable of: thanks to Fabrica (which has been a treasure-trove of goodness this week after lying dormant recently).

🗓️

I’m not sure whether Aliant’s Stories on the Phone is a very, very good thing or a very, very bad thing. I tend to lean in the “very, very bad” direction, as I think getting a bedtime story over the phone seems like it would be missing a lot of what makes bedtime stories important (i.e. the opportunity to communicate with your child). That said, I suppose if there’s nothing else available, it’s better to have a story over the phone than not at all. Call 1-888-280-7070 to find out for yourself.

🗓️

Canadian Blood Services has a website, onematch.ca where you can register online to become a donor of stem cells, either from your blood or from your bone marrow.

🗓️

I’ve hacked together a proof of concept connection between Jott and Plazes. If you have accounts on each, you can call Jott from your mobile and “voice plaze” yourself. Here’s how:

First, go to Jott.com and login. Then visit your My Links page and click on Add it here under “Developers - Got a custom link to add?”. Enter the following information:

  • Link Name: Plazes
  • Setup Url: http://ruk.ca/plazes/jott/configure.php
  • Link Url: http://ruk.ca/plazes/jott/post.php
  • Send SMS Response: your choice; all you receive back right now is “Your message was received.”
Setting up a custom Jott Link

When you save the new link, you’ll be automatically redirected to a page on my website where you’ll be prompted to enter your Plazes username and password:

Setting up Plazes authentication information

Please note that this information is not transmitted or stored securely. So use at your own risk.

Now it’s as simple as calling Jott (or, if you want to test, just sending a Jott message from the website) and saying “Plazes” when asked “Who do you want to Jott?”. Then, after the sound of the beep, say:

status message at plaze

For example, you could say “hanging out at pony bar” or “working hard at casa mia”. Jott will transcribe what you’ve said, send it to my link, where I’ll split the message into “status message” and “plaze” parts and use the Plazes API to create a new Plazes activity.

It’s important to note that the word at is used to separate your “status message” from your “plaze”. You can leave out the status message by just saying “at plaze.” And, of course, you can’t say something like “At home talking to Jim at work at Reinvented Office,” as this will drive the (very primitive) parsing algorithm insane.

Obviously this works only for existing Plazes, and will locate you at the first match for a keyword search of Plazes for the location you speak. Remember that Jott supports spelling out words, so it’s probably better to say “p l a z e s” than “plazes” if you’re trying to create an activity at “Plazes HQ”.

This is all only an hour old, so it’s prone to bugs, will not report failures properly (or at all) and may not work. I welcome any comments you have about any experiments you do, or suggestions for improvement.

Note that Jott transcription doesn’t happen immediately — I’ve had it take as much as 5 minutes — so your Plazement will not happen instantly. Check your Jott inbox to see how things are getting along.

🗓️

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, listen to audio I’ve posted, read presentations and speeches I’ve written, 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, or a podcast RSS feed that just contains audio posts. You can also receive a daily digests of posts by email.