He Would Rather Pay the Taxes in Full

Zadie Smith: “Upstairs, Alex picked up the case from his trip and emptied the contents into the bed. The clothes he lifted in one stinking bundle and dropped into the bathroom's washing basket. Books he put on the floor and then kicked into a reasonable pile in a corner. He filed through the paper by hand, throwing every other piece of it into the bin including all receipts, for he had long ago decided that he would rather pay the tax in full than allow himself to be the type of man who remembers a beautiful day by the expenses he ran up on it.”

Attending DrupalCon San Francisco April 19th to 21st

Starting with the community site Urban Vancouver, then as the support cowboy for Bryght and Raincity Studios and now with an independent practice, I've enjoyed all of my almost 6 years with the Drupal community. In a couple of weeks, I'll fly to San Francisco to attend my first DrupalCon. With my flight and hotel booked, conference ticket registered, and a ticket to a Major League Baseball ballgame ticket received in the mail, I look forward to the 3 full days of sightseeing in the Bay Area, including the plans to take a tour of North Beach and ride San Francisco's historic streetcars. The conference itself will present me the opportunity to meet many of the people working on the open source CMS that I admire. I'm looking forward to attending sessions and hanging out in the lobby, and in the evenings, drinking some sweet delicious beer with colleagues. Tuesday night sees me riding BART out to Oakland-Alameda County Coliseum for the first time in some twenty years where I saw my favourite Blue Jay of all time, Jesse Barfield, sock a dinger. This time, without a team to cheer for, I hope to soak it all in, arriving as early as possible to catch hitting and fielding practice, then taunt and boo the Yankees until my throat is sore. Leaving the conference early means missing some fantastic-looking DrupalCon sessions from Narayan Newton and Greg Knaddison. If the baseball gods get angry and rainout the A's game, you'll see me at one of those two sessions.

Vancouver Magazine's Instant Office Cafés on a Google Map

Today Scout Magazine and Beyond Robson linked to my Google Map of Andrew Morrison's 50 favourite places to eat in Vancouver. Also today, Vancouver Magazine published a list of 5 cafés in Vancouver (and North Vancouver) where you can setup shop for a virtual office, and they too did not include a map of any kind. Since there are only 6 places listed, this time I entered the addresses in, made a spreadsheet, converted it to KML, and imported it into Google Maps without any programming. The result (shorter URL) is below, with phone number, address and hours but without the writeup from Vancouver Magazine. It took me half an hour to create.

View Instant Office in a larger map

Andrew Morrison's 50 Favourite Things to Eat & Drink in Vancouver on a Google Map


Rob pointed to Andrew Morrison's favourite things to eat & drink in Vancouver. After a few hours of programming and manual data manipulation, I was able to provide a Google Map of Andrew Morrison's 50 favourite things to eat in Vancouver that Rob requested.


Sitting around all week looking for a programming task to sink my teeth into, Rob Vanmega posted a link to Andrew Morrison's favourite things to eat & drink in Vancouver. Not knowing much about the food scene in Vancouver, and not identifying as anything resembling a foodie (is there a word for us?), I nevertheless took up Rob's challenge to make it into a Google Map. Seeing this as an opportunity to scrape off some of my programming skills' rust, I set about to parse the list into a format that Google My Maps could import. It was way harder than it needed to be.

View Andrew Morrison's 50 Favourite Things to Eat & Drink in Vancouver in a larger map

Thankfully, Andrew Morrison crafted his list in a consistent, structured format. Not semantic by any means, but he wrapped each restaurant name and food item in <strong> elements, and the address, phone and website were all inside parentheses. Using TextMate to inspect the HTML list (surrounded by paragraph tags), and futzing around with a couple of regular expressions, I removed the surrounding text and get to the heart of the data. A couple of passes later, the data went into a CSV file and, after some manual manipulation by both Rob and myself, I came out with a decent set of information. Unfortunately, Google Maps wouldn't work with just the address, but had to use longitude and latitude.

That's where came in. With a useful, not free (but very cheap) API, I could feed in all 50 requests and, after a couple of test runs, got the points on the map. After reformatting the CSV (yet again), I piped it through a CSV to KML converter (a cross-platform application that violates quite a few Mac OS X interface tenets) and imported the resulting file into a custom Google Map.

The result of all that work, about 3 hours worth of manual manipulation, programming and converting, we have a Google Map of Andrew Morrison's 50 favourite things to eat in Vancouver. I can't emphasize how much that this is a beta version of the map, since I haven't verified that every location is correctly situated. Feedback is welcome: send me a note if you notice something amiss, and I'll either correct it or add you as a collaborator.

Rob said in his link that “if someone lays this over a Google map, I’ll happily hit all 50 things by year’s end.” He has just over two and a half months.

Show Google AdSense to Visitors from Search Engines Only Using Drupal

Unbeknownst to people who visit my website directly, Just a Gwai Lo has served Google AdSense ads for some time now. Very early on I came to the conclusion that showing automatically-generated content-aware ads on personal sites was tacky, since those visiting directly were likely those who wanted to develop a personal relationship, no matter how loosely defined, with the author. That applies to the relationship I want to build with my readership as well: if they visit the site directly in a browser of subscribe to a feed, they shouldn't have something hawked at them.

People visiting through search engines, however, get no such treatment. They're likely people I don't know and, based on what people search for—and don't find on the site—don't want to have a relationship with. So anybody visiting in from one of the major search engines would see a Google AdSense ad, and over the years I've made enough to help fund some small vacations to the United States. (Since Google pays me in American dollars, it goes in my USD account, which I then withdraw for trips south of the border.) Nothing spectacular, and definitely not worth the amount of investment I put into the custom PHP script which looped through a list of domains returning TRUE if one of those domains were Google, Windows Live Search (as it was known then), Yahoo! and some others. Now I use Drupal, the following contributed modules and a one-line conditional in the block display filter to show ads to people finding my site that way.

  • AdSense, with the component modules "AdSense core" and "Managed ads" enabled.
  • Search Engine Referer API, which returns FALSE if the referrer is not a search engine and an object (essentially TRUE) if it is.
  • The following line of PHP in the "Page specific visibility settings" for the ad's block: I could have written a ternary operator, but I sought clarity in this case.

After my next payment, I'll disable this feature as part of an effort to simplify my Drupal install. This will cut down on the number of updates needed and ever so slightly decrease the load on the server. It's never been worth displaying them based on the time invested in this, though I can say the money plus experience with the advertising system in general did offset it a bit.

Try To Fix

Doug Stowe: I found just a bit more satisfaction as a fixer rather than consumer. To apply just a few moments of time in careful observation can save hours of time shopping, hours of time earning money to be wasted, and hours of time being frustrated by buying things you really don't even like in the first place. So before giving up on old stuff, be brave. Try to fix. You really can't make matters worse, so there are no risks.

Developmental release of Pirate module for Drupal 7 available

Three weeks until Talk Like a Pirate Day, and next week the Drupal project freezes its code in anticipation of the version 7 release of the CMS. In anticipation of that, I've updated the Pirate module, which turns all contributed content on a Drupal-powered website into pirate-speak for just the day of September 19th, to include a developmental release for the Drupal 7 platform. I'd like for people to test it out, and in order to do so on a day other than September 19th is to either modify the date in the following code of the module or remove it altogether. if (date('md') != '0919') { return $text; } I see that similar code to my module has been included in the Dialectic module, which supports other novelty input formats. I may be convinced to officially merge my work into that project in the future, though my module differs in that it activates on only one day a year. Any issues specific to the Drupal 7 conversion can added be to the issue for that. One sticky, longstanding issue that I could use some help with and affects all versions is a bug involving URLs that contain 'ing'. I pledge that Pirate will have a full Drupal 7 release on the day that Drupal 7 is released. #D7CX:

Brightkite Meetup Recap

Almost a month ago, I organized the first ever Vancouver Brightkite users meetup, and we got 5 people to come out, as well as some people who had Brightkite accounts but may not have known there was a meetup. My tentative attempts to lure people from the GeoWeb 2009 conference failed miserably. I was able to distribute some t-shirts and stickers, and still have quite a few left for those who are interested. If you're in Vancouver, email me your shirt size and I can hook you up. One person was out of town during the official meetup, though she and I did eventually have coffee (she resides in my hometown, so we had at least that in common). A few others expressed interest in a subsequent meetup, so that might be something we can do in the near future when it it starts getting dark earlier. If you're a Brightkite user and want to express interest in a future meetup, post a comment in the Brightkite meetup t-shirts and stickers and beer photo.

Vancouver Is Not Serious About Rail

(Cross-posted from Countably Infinite as part of Blogathon 2009.)

Canada Line 3:59 PM

Looking at Wikipedia's timeline of the Canada Line decisions, we see that TransLink canceled the project twice and we know that in order to cut costs, InTransitBC changed the construction from bored tunnel along much of Cambie St. to cut and cover. We also know that the Canada Line trains are completely incompatible with existing SkyTrain tracks along the Expo Line and the Millennium Line, and even if they were compatible, the system was never designed to connect trains at Waterfront Station. (An engineer at an open house years ago, before construction even started, assured me that they could—or would—not build a tunnel with the radius required to connect.)

Visiting the Vancouver City Centre station as part of the open house today (my set on Flickr), I was shocked with the visual reminder of something I knew already: that trains would not be nearly as long as the existing SkyTrain systems. Roomier, as Jim Pick notes, but shorter. The stations constrain the size of the trains to the two car trains, where on the Expo Line and Millennium Line, 6 car trains can fit snugly, as we found out last winter. The dirty trains and security guards killing me with kindness, asking me in a friendly way where I was going when I just wanted a picture of the tunnel, dispel any enthusiasm I might have had for Canada Line and rail in general in the Lower Mainland.

Dirty train on display at Vancouver City Centre Station

Longish articles in The Walrus and The Tyee by Monte Paulsen detail how Canada missed its chance for a culture where rail transportation co-exists as a first-class citizen in our supposedly modern nation. The humming and hawing about a second train from Vancouver to Seattle illustrates how various levels of government don't want this anywhere near their electoral constituencies. The recent "cancellation" of the Evergreen Line further puts to rest any claim that the Lower Mainland at its various levels of government is serious about rail. For this fan of rail transportation (I bought the Microsoft Train Simulator game at the height of the popularity of first-person shooter Half Life: Counterstrike) I have to ask myself: do I wait for Vancouver and its surroundings to seriously commit to rail as a viable mode of transportation around and inside the city, or do I move to a metropolitan area that is already serious?

Thanks to Karen for letting me write on her blog. I know she's passionate about this city and its public transit system, and it comes through on her transit blog TransLinked. I love this city and its buses, trolleys, passenger ferries and yes, its various trains, including the often overlooked and underrated (and popular!) West Coast Express. I've even gone so far as to take a trip out to Port Moody for no other reason than to ride Vancouver's commuter rail. In my capacity as administrator of the Vancouver Transit group on Flickr, I want to document and show my respect and awe for TransLink's network of transportation methods, and I want the city and its environs to seriously consider streetcar, elevated and below grade rail as well as extensions of the WCE. I'm looking forward to what comes out of Vancouver's demonstration streetcar project during the Olympics, and see it as the right step towards a serious approach to mass transit in the city proper and the Metro Vancouver region. I don't have any other signs of this, however with the Canada Line and other proposed extensions to SkyTrain.

Vancouver Brightkite Meetup Tuesday July 28th, 2009 at The Irish Heather

Followers of @justagwailo, my automated ephemera Twitter account, know that I'm a frequent user of a service called Brightkite. Brightkite is a social web application that lets people check into physical locations with the intention of socially interacting online. With Twitter integration (you can have checkins, notes, and photos automatically post to Twitter with customizable text), it's an "where I'm at" application which also shows you who has checked in nearby. You can get SMS notification of nearby Brightkite users, and even set privacy settings so that only friends see your exact location and others see a more general city or municipality as your current location. The Brightkite iPhone app makes checkins easy, giving you the option to search for something if it isn't in the "pick a place" listing, using the built-in GPS to find out what's nearby. On the heels of the successful Brightkite meetups in Berlin and Austin and the BayArea, the team at Brightkite wrote some helpful hints on organizing a Brightkite meetups, spurring me into action to organize one for the Vancouver area. (I should note that I'm in no way affiliated with Brightkite. I'm just a frequent user.) In a couple of weeks, Vancouver will host the Geoweb 2009 Conference, though I won't be attending. I would like to invite those who use Brightkite in the Lower Mainland, as well as people who are interested location-based online social interaction tools to join me at The Irish Heather at 7:00 PM on the 28th of July. (That date conveniently happens to be my birthday.) I'd be interested in doing a short introduction to Brightkite, and talk about the future of location-based online social interaction (one word: games). I see Brightkite as an interesting way to explore a city and expand people's social network. I can also see roadblocks to the effectiveness Brightkite and its ilk, and would like those interested in discussing mapping, social activity online, and collaboratively mapping the world to join me in a week and a half to see where things are going. Did I mention I'll have Brightkite t-shirts and stickers to give away? RSVP at the Yahoo! Upcoming event listing (understanding that the address is 212 Carrall, not 217 as listed there).

22nd Street Explorer

22nd Street SkyTrain

A couple of Sundays ago, I trekked out late in the afternoon to Columbia Station, entirely forgetting that my intended destination was 22nd Street Station in sunny New Westminster, British Columbia. The reason for the trip to Vancouver's suburb to the south: to explore the neighbourhood as I did for New Westminster Station portion of my SkyTrain Explorer heritage walks around the Greater Vancouver area. Limited at this time to Vancouver proper, Burnaby and New West, the book by John Atkin details the history of buildings and surroundings of SkyTrain stations in the Lower Mainland.

(SkyTrain is an elevated rapid transit system encircling the region. The book does not include walks around the stations located in Surrey, a shame since Surrey's history and current development is very interesting too!)

First up, Grimston Park. Mislabled in Google Maps "Grimstone Park", the sign on the park assures us otherwise. Sitting on the benches facing south gives you a good view of Surrey and the passing SkyTrains. Onwards from there we pass by storied houses, and Atkin leads us to the neighbourhood school and a church converted from a house. A fairly interesting, if overwhelmingly residential, neighbourhood. Of 22nd Street Station itself, the builders retained a small part of the Highland Park rail line beside it.

I've done 9 walks now—10 if you include the Metrotown Station walk, which consists of walking through the mall—and have 5 to go. The remaining walks happen in Vancouver, and I'd like to do a group walk at some point around Broadway Station, a station that serves as a hub for the system as it shares space with Commercial Drive Station. The 22nd Street Station walk (Flickr set with a semi-accurate map) wraps it up for the New Westminster portion of the SkyTrain Explorer tours. John Atkin does not, in this edition, have a tour for Columbia Station nor for any of the Surrey stations. I hope that in a subsequent edition he'll also include stations on the newer Millennium Line and possibly, for a third edition, walks around Canada Line stations.

For those who want John Atkin himself to lead the tour, it's not too late to sign up with the CIty of Burnaby. At this writing, he will guide you through the Royal Oak and Edmonds portions of the book, which I've already covered in my series.

Park This! Inspirational and Effective Solutions for Bike Parking at the Vancouver Museum

Last night I had the opportunity to visit the Vancouver Museum (or, Museum of Vancouver) to attend a lecture featuring three presentations about bicycle parking. Titled "Park This! Inspirational and Effective Solutions for Bike Parking" short presentations first showed implementations worldwide, then the second more generally addressed bike parking as a public issue, and the third discussed Vancouver's experience specifically.

The Vancouver Public Space Network (VPSN) took photos of the event and the subsequent Velo-City museum tour. As I sarcastically predicted, bike parking was inadequate for the event (1, 2, 3, 4, 5, 6).

Park This! presentations

Richard Campbell presented first, showing and telling about other cities' ideas to make it easy for cyclists to leave their bikes behind while they go about their business. Considerations for good bike parking in cities are, he says: length of stay, cost, available space, demand, customers, and security.

Richard Campbell's presentation slides at the Vancouver Museum showing Biceberg, Eco Cycle, Millennium Park Bicycle Station, and My Beautiful Parking

Rough notes on the cities he covered, each of them, in the presentation, each illustrated by a photo:

  • New York City: covered bicycle racks, with information on how to lock a bike
  • Portland, Oregon: bike parking on the street, temporary curbing, prove it's successful
  • Melbourne, Australia: Parkiteer at the rail stations, enter with a smart card, sign up for a particular station, take care of the station
  • Boston, MA: Alewife Station, chain link fencing, security cameras, smart card which you can use for transit
  • San Francisco: e-Lockers: smart card, 5 cents per hour, at transit stations and downtown areas
  • Spain: Bigloo, which is a turntable tube, smart card
  • Amsterdam - bike parking near train station
  • Zutphen, Stationsplein, the Netherlands: stairs with ramps to roll bike down, repair shop, double level parking
  • Spain: Biceberg: bicycle vending machine, smart card
  • Japan: Eco Cycle, vending machine, holds
  • Chicago: Millennium Park Bicycle Station, with showers, changerooms, segway rentals, bike tours
  • Freiburg: Café Velo, bike tours
  • Barcelona: My Beautiful Parking, verticle hanging (cheaper) or racks

Adrian Witte presented next, discussing the issues surrounding bike parking generally. 20,000 bike trips in 1994 increased to about 55,000 in 2006, which still only accounts for 3.5% trips of all modes in the city. Adrian asked if road builders think of parking, why can't bike path builders?

How can bike parking be used to increased cycling participation?

back to basics: good design

  • visible
  • accessible
  • secure
  • easy-to-use
  • convenient
  • plentiful

Valet parking checks all the boxes.

use of technology

  • electronic locking systems
  • advanced stacking: above or below grade

integrate with other modes

  • make it competitive with automobile travel
  • widen the circle: 5 minute walk vs. 5 minute cycle
  • smart cards, bike lockers, bike stations, bike rentals, car share, transit
  • car share: locate cars vehicles with convenient bike parking

public bike system

  • removes parking need, transfers security from bike owner to rental provider

Summarizing, Adrian said that tried and true design principles, embracing technology, integrating with other modes, trying different angles to solve the problem help in establishing a bike parking system in a city.

Stephanie Doerksen's presentation at the Vancouver Museum on bicycle parking

Stephanie Doerksen of VIA Architecture (also of the VPSN) brought the to Vancouver specifically, observing that bike parking made for cycle-friendly streetscapes. In 1995, the parking bylaw amendment required bike parking to new developments. In 1999 the city created a comprehensive biking plan, making more bike parking available in commercial neighbourhoods. In 2009, there's still a shortage. She mentioned VPSN's visual audit of bicycle parking, and her photos showed bikes locked to objects other than those intended for bike parking.

Stephanie noted that the city is thinking of replacing parking meters with a different payment system, and that they have the opportunity to replace the physical parking meters with bike parking poles. It would be easy and efficient, not requiring a change to the streetscape. Other ideas include converting a parallel car stall to bike parking, such as on curbs in Portland and angle parking. 12 bike parking spaces, she says, for each car parking space.

Panel Discussion/Questions

At the panel discussion afterwards, the audience and the presenters discussed bike parking around Denman and Robson. A question arose about parking for bikes with trailers for groceries & kids. Another audience member remarked that bike parking not a sexy issue: bike stations have been successful, but take up space. Later, an audience member made the connection between bike racks and street furniture: they can lead to a sense of order to the street, but Vancouver does not seem to have uniformity like in Toronto.

Addison Berry on Herding Cats in the Drupal Documentation Community

Addison Berry, aka @add1sun, presented about her experience as documentation lead for the Drupal content management system project the other day at the Writing Open Source conference in Owen Sound. In her role as chief cat-herder, she found that the most difficult people aren't poisonous. Instead they just don't know how to communicate with the community, and they need to translate where they're coming from to the way the community operates. It's hard work, she reports, to turn them into a contributor. She referred the audience to the "Poisonous People" presentation by the Subversion people, as yet unwatched by yours truly. Addison talked about religious wars that occasionally break out. That is, the crux of the issue is more important than the resolution, and often leads to inaction. She also discussed the differences between recruiting in the corporate world and recruiting in the open source world. For private companies, they hire a skillset that they can filter for by listing the job requirements, either explicitly or implied. In open source, she says, you have the skillset first and you work with it. Many cats scratching their own itch, hence the herding to get them to scratch the community's itches too. The people you get working on a project have a rich background, both in terms of skills and life history. Skillsets include a lot of non-technical backgrounds in open source (Addison has an anthropology degree, for example, and my education is in political science). Drupal has a large mass of documentation, and Addison is trying to whoop up energy in managing the base of existing documentation for Drupal 5 and 6 while gearing up for writing the documentation for the upcoming Drupal 7. Open source has a natural passion that brings people together. Showing the example of a rowing team on her slide illustrated the need to hire a coach to tell them when to row. Herding involves keeping lines of communication open and opening up new ones as well as banging on pots about documentation. Instead of telling people what they can do, empower them by including them in the conversation. Addison, as leader, knows what she won't do and has so far been able to find people who will. Tracking metrics around the documentation—answering a question I had before I had the chance to ask it—Addison is not interested in, but she found someone who is. Many "soft-skills", such as facilitation, have come in handy even if the person with the skill does not claim membership in the software community. Also universities and their students have found time and energy to contribute usability testing as part of course credit or as part of their graduate studies. Letting go and getting out of the way: Addison wanted the vision to be perfect, but quickly understood that she can't lead the charge or drag it out all the time: instead she recognized the need to let people run with things and support them. Getting people to trust you that that's the right direction.

Attending Writing Open Source June 12th to 14th

In a week, I will attend the Writing Open Source conference in Owen Sound, Ontario. I'm excited to meet some of my colleagues in the field of open source documentation, having written the bulk of the support materials for Bryght, the Drupal-powered hosted service. I'm particularly interested in meeting those working to document open source tools other than Drupal, to gain some perspective on what's out there and what's needed. Writing documentation was my first task at Bryght back in 2004. I recall spending part of that Christmas break furiously jotting down the important steps to creating dynamic and community websites. This included checklists, instructions and descriptions of module settings and how people could take advantage of them. The initial push of documentation made the subsequent job of supporting customers easy: instead of each time having to explain how to do something, I quickly pointed to the documentation, either through a link or a copy & paste. Along the way I even heard from non-customers thanking me for the handy references. After the second time someone asked we documented the answer. (We even wrote documentation after the first time someone asked a question.) Sometimes it didn't work, and sometimes the documentation wasn't all that great or hard to find. We allowed comments and opened the forums and listened to feedback when what we wrote didn't make a whole lot of sense. That's the experience I'd like to share with the conference, and I'd like to hear of others' experiences in making complex software more understandable. After the weekend conference, I'll spend a couple of full days in Toronto proper, getting some much needed distance from Vancouver. I'd like to meet with some of the Toronto Drupal heads, and others I know (but haven't met) from other online communities I'm part of. Sadly, my favourite baseball squadron, the Toronto Blue Jays, play on the road in late June. Surely a local pub will have the games in HD? The themes at Writing Open Source have a lot in common with two sessions I attended at FSOSS (the Free and Open Source Symposium) in 2006. I wrote two well-received pieces about the symposium, both notes on sessions at the conference: (Audio and video for both presentations are available at I'm looking forward to the sessions in Owen Sound next week, and to sharing what I learn there!

Cherry Blossom Theme 1.0 Released

Screenshot of the Cherry Blossom theme for Drupal

More than 5 years ago now, I sat down with Raincity Studios' Mark Yuasa to discuss the redesign of this blog, Just a Gwai Lo. It was springtime in Vancouver, and the cherry blossom trees around the lower mainland were blooming, so I suggested that as the visual theme for the blog. Then powered by WordPress, Mark delivered two designs in a few weeks and a few months after choosing the overwhelmingly pink comp, I switched to Drupal, bringing the theme along with me.

It's now time to release the theme to the general public. If you visit the Cherry Blossom theme project page on, you can install a Drupal 6-compatible version of the theme. I put up a demonstration site so that you can see the theme in action, as I've long moved onto another theme (currently the Deco theme). One known issue that I'd like help with is an alignment problem with Internet Explorer 6, after fixing I'll release a 1.1 version.