Skip to Content

Damon Albarn of Gorillaz discussing Glee on Q

One of my favourite quotes this year was from Damon Albarn discussing why Gorillaz will never appear on Glee:

"It's a homogenization of everything and it ultimately will lead to emptiness."

His point being that young musicians should avoid writing for TV shows and write their own material since covering songs will not allow you to form your own identity and may make you beholden to TV producers.

The discussion was with Jian Ghomeshi while appearing on Q:

Damon Albarn on Q

A lot of the extended interview talks about their creative process, loosely about celebrity, and what it means for Gorillaz to be successful.

Vancouver business licence data mapping at Open Data Hack Day

Today at the Open Data Hack Day, we spent some time working with the Vancouver business licence data, trying to see if we could make an interesting visualization. The set has 59,356 rows of business licences registered in Vancouver and I was most interested in a map of employees per neighbourhood. Unfortunately, we found some problems with the data.

The biggest issue was that the number of employees per licence is self reported and, as a result, very inaccurate. For example, Inlets Bistro & Lounge is reported as having 148,358 employees which is obviously incorrect. There are also multiple licences issued for many businesses and it is unclear if this is for different departments of the same company or just being reported twice. As a specific example, PricewaterhouseCoopers LLP has 45 active business licences for the same address and 0, 1, 3, 700, and 850 employees reported. Choosing how to use these records is then very difficult.

Another problem is that although the business type and business sub types are fairly well defined within the dataset, this is inconsistent with external services. One of the suggestions that arose would be to conform to the North American Industry Classification System, allowing the data to be mashed up with data from Statistics Canada. This could allow for a much richer analysis.

We managed to geocode the data using Google Fusion Tables (many thanks to Tim), which resulted in the following map:

Map of business licences in Vancouver

It was very interesting to see where all of the businesses were, some of them were even located in the US. I managed to create a map of the reported number of employees for each neighbourhood from the licences:

Reported employees for all business licences in Vancouver

This is not a very useful map since the data was so bad and it is certainly not reflective of the actual number of employees in Vancouver, but it was interesting to try.

Chrome tab statistics extension

Last week I built a simple Chrome extension for tracking tab usage and wanted to share the discovery process. The initial idea came from a few of us at work looking at how many tabs we had open and that we should (jokingly) aggregate this into some kind of live activity monitor. I looked at some of the documentation for Chrome extensions and it seemed simple enough to create a counter with the current number of open tabs.

Chrome extensions are written using stripped down HTML pages, CSS, and Javascript, and held together using a JSON file that describes how the pages should be used. To create the basic counter I built on the Hello World example and created a simple popup with a placeholder for the counter. It was pretty straightforward to find the number of tabs open since Chrome has functions to get all the windows and to get all the tabs in a window, and I wrote this value to the placeholder.

While I was building the counter I noticed that there are event listeners for when tabs are opened or closed and started to wonder about plotting this on a graph with time. The easiest way to hold onto a log of the browser tab events was to create a background page listening for events and push them onto a Javascript array. Background pages are special pages that run behind the scenes as long as the browser is open, and Chrome provides a function to get their variables from other extension pages, like popups. This makes it easy to grab the log when a popup is opened and render the information.

I looked around at some different graphing libraries and settled on Flot, mostly because it includes jQuery and I had seen it used nicely in Managing News. This example, using only one line of Javascript to declare the graph, was especially impressive and exactly what I needed.

Wrapping that all together and tinkering for a bit, this is what I ended up with:

Chrome tab stats screenshot

I hope this will help others who are interested in starting out with Chrome extensions. To dig deeper or give it a try, take a look at my repository or the Chrome extension documentation.

Vancouver population growth from 1981 to 2001 using open data and Quantum GIS

Here is a map created using Quantum GIS and some open data from the City of Vancouver. It graphs the population growth in Vancouver for each local area from 1981 to 2001. Interesting to note is how much the residential housing boom downtown affected the population growth compared to other areas.

Population growth in Vancouver 1981 to 2001

I also created a short screencast showing how to do the calculation yourself:

Open Data and Beautiful Maps

This past weekend I attended the Pacific Northwest Drupal Summit and gave an introduction to open data and beautiful maps. I talked about open data, covered the creation of a map in under 10 minutes, and discussed how to create beautiful maps using advanced techniques like custom tilesets. The video is already online thanks to the hard work of Justin Carlson, posted on his blog here and embedded below:

Tylor Sherman: Open Data & Beautiful Maps from Carlson Media on Vimeo.

Paraphrasing some of the questions and comments at the end of the video:

Question 1: How does generating views with OpenLayers differ than with GMap?
Question 2: Can you use the Google Maps API when using OpenLayers and a Google Maps tileset?
Question 3: How does location.module differ from others storage methods? How do you decide which storage method to use?
Question 4: Can I use tiles to display polygon data and still interact with it?
Question 5: If I have a database of address how can I convert them into latitude and longitude?
Question 6: What other input data types are supported by mapping modules?
Question 7: Can I use a shapefile to generate an overlay?
Question 8: What other tilesets can I use with OpenLayers?
Question 9: Have you played with polygons and highly granular shapefiles?
Question 10: How did you get the Google Map API entry step into the install profile?
Question 11: Ben comments that using geo.module instead of text fields is helpful if you have a lot of data because it decreases the server load by speeding up your queries.

For the talk I created an install profile and drush make file to build a simple and lean Drupal mapping distribution, which for now I have named Quickmaps. The source code for the distribution is available at I am making the slides available as a PDF here and have been tracking my Mapnik and Quantum GIS source files at

The inspiration for this talk comes from my Water! drinking fountains map for Vancouver. This is a map I created just over a year ago now and it has been really engaging to see it being discussed and used in so many different ways. Here is the original screencast showing how to set up a water fountain map in under ten minutes:

Water! from tylor on Vimeo.

I had a great time sharing this presentation and it led to some great conversations throughout the rest of the summit. Thanks to all of the organizers for putting on such a successful event!

Syndicate content