One small tweak to my experiments with Plazes and NetworkX results in much, much clearer and useful network diagrams (and ones that render in seconds rather than hours): I removed from the graph any node (i.e. any Plazes friend) who has no friends of their own. This means that if I say “you’re my friend,” but you don’t reciprocate, and you don’t have any friends of your own, you don’t show up on the graph. This has the pleasant effect of leaving in place only more “active” Plazes users, who have friends of their own. By separating the wheat from the chaff, so to speak, the true nature of the network is much easier to see. I’ve also modified the graph so that the size of a user’s node is proportional to the number of friends they have. Here’s the graph that results for me:

My Plazes Friends Network

This graphic is actually more than the sum of its parts (rather than an unintelligible rat’s nest of connections): you can clearly see my reboot network (top left), my Plazes crew (top right) and my tiny local network (along the bottom).

You can grab the updated Python code yourself if you want to take this for a ride.

🗓️
NetworkX  •  Plazes  •  Python

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.

🗓️
NetworkX  •  Plazes  •  Python

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.

🗓️
Mapping  •  NodeBox  •  Plazes

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.

🗓️
Music  •  Politics  •  Prince Edward Island
Bill for a Birth in Prince Edward Island in 1948
🗓️
Charlottetown  •  Health  •  History  •  Prince Edward Island
Snow Covered Charlottetown City Hall
🗓️
Charlottetown  •  Photographs  •  Weather

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).

🗓️
Imogen Heap  •  Music  •  Technology  •  Video

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.

🗓️

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 /now, look at my bio, listen to audio I’ve posted, read presentations and speeches I’ve written, see things I’ve favourited elsewhere, 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, an RSS feed of favourites elsewhere, or a podcast RSS feed that just contains audio posts. You can also receive a daily digests of posts by email. I also publish an OPML blogroll.

InstagramYouTubeVimeoORCIDOpenStreetMapInternet ArchivePEI.artDrupalGithub.