Monday Morning Meeting: Issue #2

Links randomly selected from the stuff I saw the previous week: thinking about research and what data can tells us; a old browser's new polished interface; an essay about Twitter bots; a reminder about permanence; and some bonus links to thank you for your patience. Some links are from longer than a week ago.

Thinking Through the Strava Data

Strava, the one activity tracking app I don’t use, released a global heatmap showing where users cycle and run. (It centers on California initially. I would have centered it on a different spot for everybody, that spot having reached at least some threshold of activity.) They also announced a partnership with the Oregon Department of Transporation to license some of its data to help ODOT make decisions about which cycle paths to prioritize. The critque linked here is useful for several reasons: it serves as a guide on how to think about research in general, reminds us of the difference between flawed and small sample sizes (I can’t wait to use that on my baseball stats friends), and cautions us not to reject research outright because it’s flawed. (Bad data can make us seek good data.) How Echo presents the critique is also useful, breaking from discussions of the research to show us cartoon dialogues framing the research at hand. To highlight some of Echo’s specific critiques: she worries that the sample size only counted Strava users and is highly unlikely to accurately represent the city of Portland cyclists’ routes and that other types of counting are now going to make things better for Strava users while ignoring non-users. (Thanks to @skeskali for provoking the discussion that I saw about the data.)

The Firefox Australis interface: why what is where

In the past week, Mozilla released what they touted as their biggest overhaul of Firefox user interface in 3 years. This blog post from December of last year explains the major changes to the non-profit’s flagship web browser. “The browser is the most essential tool for people’s online life, and everyone uses it differently.” This release adds a “hamburger icon” to drop down a customizable button set (Chrome has the same icon, but drops down a menu instead) and tried to simplify the rest of the interface based on research. As soon as Apple updates its iCloud bookmarks sync add-on (Safari user over here), I’m in as a more active user.

The Mysterious Nature of Bots

Australia-based Jaiden Mispy wrote a Ruby library that implements a form of Markov chaining based on a person’s entire Twitter corpus. What? Imagine a Twitter account that automates impersonating you, taking what you’ve written over the course of your 140-characters career, slicing and dicing it, putting it back together in tweets that sort of (but never quite) make sense. The bots sometimes fave and reply and some bots even seem real to some people. Kevin Nguyen wrote an article (linked within this one) giving some more background on the history of Markov chain Twitter bots, and has since lamented that some people started to think his real @knguyen account was automated. My Markov chain bot is @oliawgyllis (my usual handle backwards), and following the tradition, my usual avatar is upside down. (For an extra laugh, I made the background look like the transparency checkerboard you would see in a graphics editing program.) I came to the conclusion that these bots and those that create them are trying to break the brains of those who read them, with the ultimate goal of killing all clichés and, I predict, wasting the opportunity by creating new and more resilient clichés.

No More Forever Projects

“The half-life of obligation is short; the half-life of guilt is long.” Diana Kimball came to my attention because of her and Max Tempkin’s project the 24-Hour Book Club, a self-described online “flashmob” where everybody in the group reads and discusses the same book during the same 24-hour period. This blog post, originally published in March on the Pastry Box Project, gently remindes us that since we aren’t forever, neither should be what we do.

Bonus Links As the Clock Ran Out

Attached to this tweet are three tabs that remained open as noon approached: Has the Whale Exploded Yet?, a single serving website with links to the history of exploding whales in the context of a recently unexploded whale (also: what to do if you find stranded marine animals); an explanation of what the term “full stack” means with reference to programming, and not pancakes, by South African developer (and former co-worker) Adrian Rossouw; and Uber’s Algorithmic Monopoly in which Matt Stoller identified the three issues he has with the car sharing/dispatching app’s business model.

Monday Morning Meeting: Issue #1

Links randomly selected from the stuff I saw the previous week: an essay on climate change by Zadie Smith, a tweet about baseball statistics, a photo I took of cherry blossoms in Vancouver (which itself contains further links), and an interview with the developer of a social reading service. Some links are from longer than a week ago.

“Elegy for a Country’s Seasons” by Zadie Smith

The author of White Teeth, The Autograph Man, On Beauty and NW ruminates on climate change. Most of what I read on the subject are dire warnings, but she reminds us that the future is here, just not yet evenly distributed (Jamaica, Mauritius, and elsewhere) and that religion and class can colour one’s viewpoint on the subject, even if people do differ across national borders. She suggests that really we are mourning, that ”missing from the account is how much of our reaction is emotional.”

Potential win expectency of a single replay review

  <p>The time between plays in baseball affords fans to think deeply about the game’s statistics. One such statistic, introduced to me by FanGraphs, a website and community studying baseball statistics, is win expectancy. The site’s owner defines win expectancy as “the percent chance a particular team will win based on the score, inning, outs, runners on base, and the run environment.” This year, Major League Baseball introduced replay review of contentious plays (with some exceptions, such as strikes and balls and the “neighbourhood play”). When a manager challenges a play, the umpires will dial into a “war room” in New York City, where anonymous officials will confirm, overturn, or let the play stand (that is, the replay officials make no call and defer to the on-field umpires). In the tweet highlighted here,, a website that visualizes win expectancy during the course of a game, succinctly quantifies the potential outcomes of a particular replay challenge. Maybe one day, managers will be able to make, in real time, the calculations needed to make a wise challenge, though how soon remains to be seen, especially since electronic equipment is banned from dugouts. Maybe that day is here, since managers can call into the team’s video room (which they do) and by the time the team makes the decision to challenge (thirty seconds), they’ll know what’s at stake.</p>

<h3 class="title">
  <a href=""">Bike the Blossoms 2014 (my photo on Flickr taken during the event)</a>

  <p>This is a photograph I took on Saturday with my handheld supercomputer. At the time, I called it a cherry blossom cavern, though another wit called it a cherry blossom canopy, which sounds much less daunting. “Vancouver, BC is famous for its thousands of cherry trees (estimated 50,000)” reads the Wikipedia page on the subject (cherry blossoms, not the city). The page reminds readers of the trees’ blooming period, as “they begin to bloom in February yearly and peak in April.” If you blink, in other words, you might miss them. Fortunately, we have events that form part of the Vancouver Cherry Blossom Festival, which bills itself as “an annual spring celebration that wakes up Vancouver to the beauty of our 40,000 flowering cherry trees” who hold an annual tour of Vancouver by bike. The route is planned well in advance, so it’s uncertain whether the trees will have bloomed or have already shed their petals. We lucked out. (Further links with sources of the quotes can be found in the description of my photo.)</p>

<h3 class="title">
  <a href=""">Thomas Dunlap interviews Greg Leppert, developer of</a>

  <p>Greg Leppert wanted to be able to quickly post what he was reading without any commentary, and see what others were reading. Right or wrong, good or bad, when one clicks the bookmarklet, the current article shows up in your stream. When people you follow post links to your stream, clicking on a link invokes on that link for you. It then not only shows up in your stream, but lists who you saw that link from. (An automated /via, if you will.) When reading an article, say you’re not the first to read it. If so, when you invoke the bookmarklet on something directly, you see an overlay with the avatars of those that came before you. You then get a chance to ‘Yep’ or ‘Nope’ the post. The meanings of these are evolving through usage, but have tended to mean hearty agreement and hearty disagreement, respectively. Things get really interesting with the hooks one can setup. There are the usual suspects of Twitter, Facebook and the like (you even can have everything go to one Twitter account, and have only ‘Yep’ links go to a secondary Twitter account), and, even more intriguingly, you can setup your own endpoint. The custom hook is undocumented (I helped identify a bug through some blind testing), but one could imagine, with some elbow grease, setting up a custom hook to append a link to a text file hosted on Dropbox and then, at the end of the week, randomly choosing some of those links to write about in an email newsletter. This interview goes deep into Greg’s thoughts on his service, with special mention of how users have added a community on top of it with their @[x]isreading Twitter accounts. (My account is at @sglisreading, to answer your next question.)</p>

Two Random Running Routes: Kensington-Cedar Cottage and Kerrisdale

The first try was an unmitigated disaster.

I plotted a running route in Vancouver's Kensington-Cedar Cottage neighbourhood using an online tool. I accounted for the part of the route that crosses a busy street at an uncontrolled intersection and instead had it take the crosswalk near King Ed. A test run, which is to say, a test walk with the Co-Rider app to make sure turn-by-turn directions with a previously-defined route was successful. I made the mistake of updating the app the night before. And it started to snow just as I started my run.

Arriving at my hand-picked start and end point on February 22nd in the alleyway at E. 28th and Ross and Fraser area, I encountered a critical bug introduced into the version I updated to the previous night. The app itself would start but I could not press "play" for the turn-by-turn directions. I followed the route by looking down at my phone at every turn to see where I'd go next.

Apple recommends that one operate an iPhone 5 in between the temperatures of -20º and 45º Celcius. At the end of the run, with about 20% battery left, at an outside temperature below or just at freezing, the phone turned off on its own accord. Miraculously, the Couch-to-5k app had already logged it (twice, somehow), so I can count Feburary 22nd, 2014, against Week 7 Day 2 of the program.

This was the first run where I let a website randomly generate a running route which started and ended at the same point. As a way of seeing as much of Vancouver as possible, I didn't want to decide what direction to go it to see it. RouteLoops can randomly generate a map suitable for different modes (walking, running, cycling). You set the distance and it calculates the route, ending you where you started.

Things were decidedly different for my run in Kerrisdale. A week after my first run, on March 1st, instead of hand-picking a starting point, I used the Random Point Generator. It chose a spot on W. 47th Ave. between Yew St. and West Boulevard. The route, randomly generated by RouteLoops, had me turn right on West Boulevard, skip over to the parallel East Boulevard using 49th Ave and then run down East Boulevard to 50th Ave. With its lack of sidewalks, I had to run on the street. Turning right on Angus Dr., I found these pleasant little stop signs.

The second-longest leg of the run, Angus Dr. took me to W. 57th for a block, then turning left back on to West Boulevard where I saw a trolley pass by.

Hanging a right on W. 60th took me past Dr. R.E. McKechnie Elementary School, around Arbutus Park (by taking Arbutus St. and 59th Ave.) to SW Marine Drive.

Suspecting that SW Marine Drive lacked sidewalks, before the run, I looked it up on Google Street View. Arriving at the scene I got my final confirmation:

I ran against traffic, which was a little harrowing. At least one car cut the white line separating traffic from the shoulder, right in front of me no less. I know better than to run on any street like that again.

My 5K program for the "week" ended about 2/3 on SW Marine Drive. I was determined to finish the rest of the route and saw some construction on the 45th Ave. bike route.

  • construction on the bike path
  • Ryerson church.

All the while I had the Fog of World app track my movements. How do I describe Fog of World? I remember playing Warcraft II, and any movements into unkwown territory would reveal the map. As you left, the map would stay but you couldn't see any of the activity there. Fog of World operates in the same way: you visit a place you've never been to, and it "unlocks" that area.

The app runs in the background and when tracking is turned on, shows you the places you haven't been to yet. (It's possible you've been to that place before, just not with Fog of World turned on.) My FoW data suggested that I had already been on a portion of 45th, and it wasn't until I came upon the Ryerson United Church that I remembered how that was possible: at some point a few years ago, it seems I had been going in the wrong direction biking from Kerrisdale and must have turned around. (This was captured by RunKeeper, the data of which I imported into Fog of World.) I took a quick photo of the church and I was back to finishing my randomly generated route.

Kerrisdale doesn't loom large in my image of Vancouver, so I'm grateful that a computer chose for me to go there. Without randomly selecting a starting point and randomly generating a route, I'd have to rely on the invitation of others or know about its significance. This way of exploring a city leads to little surprises, like the mansion surrounded by trees, (barely) seeing unusual architecture, and a little exercise along the way.

Six Microconfluences

A degree confluence is the intersection of longitude and latitude lines. For example, the closest confluence to Vancouver, B.C. are 49°N 123°W (in Boundary Bay) and the closest land-based confluence is 49°N 122°W (on the Canada-U.S. border near Abbotsford). The project to document them all on the web is big enough of a deal to have its own Wikipedia page. Since confluences of latitude and longitude have mostly been documented, Charlie Loyd set out to document microconfluences, which he defines as the intersections of hundredths of latitude and longitude points. I found this out after stumbling on his tweet late last year.

To find microconfluences, Charlie built a web page you can load up in your phone pointing out your current location and how far away from and which direction to find the nearest microconfluence. I found my first microconfluence in my hometown of Courtenay, British Columbia over the Christmas holidays. I could only get as close as the front door of a new housing development on Piercy Ave., taking a photo of my iPhone's screen with my iPad mini. Later, not wanting to always carry two cameras around, you'll notice I take screenshots of Charlie's web page with a photograph of something notable next to the screenshot.

On the same trip, Karen indulged me as we came across a microconfluence downtown in an alleyway, just before having dinner at a Mexican restaurant nearby, and took a picture of me.

I found my first microconfluence in Vancouver a week later, just behind the NO TRESPASSING sign of an apartment complex in the Mount Pleasant neighbourhood (near 12th and Main).

Closer to King Edward and Cambie, a microconfluence on Heather and W. 24th features a stop sign with blinking lights.

Separately from deciding to locate microconfluences in Vancouver, in December of 2013, I made a new year's intention to let fate decide more frequently in my day-to-day decisions. That means making lists of things that I like or might like do or eat or read or places to go, then letting a computer randomly decide which item on that list to do. To help further another goal of (eventually) seeing the entire city of Vancouver, I use a random point generator to pick for me which part of the city I venture to. On January 5th, I put that into practice, and it chose the point of 49°13′54″N and 123°04′48″W. That converts to 49.231667, -123.08 in decimal, and the hundreths of those are just rounding down to 49.2300 and -128.0800 (the last one was already conveniently a hundredth). That turned out to be a house between E. 43rd and and E. 45th on Inverness St. in Vancouver. (There is no E. 44th on Inverness.)

Not pictured: three teenagers rolling by on a single ATV, which reeked of gasoline. "Hello sir," they said to me.

Just recently, after scoping out some office space in Chinatown and heading to the library to finish up some work, I came across a microconfluence on the Dunsmuir and Cambie corner of Stadium–Chinatown SkyTrain Station near B.C. Place and Rogers Arena (formerly GM Place).

Along with my SkyTrain Explorer walks, microconfluences are non-random but still somewhat arbitrary points on map to explore the surroundings. In the future, I'll add more randomness to documenting microconfluences, removing the need to decide where to go based on the characteristics of the neighbourhood and letting a random number generator (memories of RANDOMIZE TIMER flooding back) make the call.

I see Nathen is also ground-truthing microconfluences, same with, I hope, others Should we build a microconfluence community website? With microconfluence antipodes?


The receipt says I bought the app on or about November 20th, 2012. That means it has been a little over a year since I started running. There's a gap in the summer months of this year, even though it doesn't really get very hot in Vancouver (maybe for 2 weeks). Maybe it's my Icelandic blood, but I prefer to run in the cold.

The reason I avoided running for so long, all through college and after, even on the treadmill, was that it was so high-impact. I'd always done the stationary bike for cardio, and now regular cycling in the not-freezing months. When running, I do notice strain on my calves and shins sometimes, but rest, yoga and stretching helps with that.

Running in the morning is a struggle, but then, so is everything, being a not-morning person. I mostly run during evenings on weekdays and afternoons on weekends. On some mornings I'm able to sit down and will myself to run. It's mostly just a matter of finding pre-existing will from the previous night, after setting out running clothes and making sure there is something small to eat. I finally bought a pair of dedicated running shoes after a year with my basketball shoes (since washed so I can use them indoors).

Which app do I use? More like which apps, plural, do I use? I stopped using the Couch-to-5K app pending a support request. The app doesn't add up the total time right (right now the number is negative) and while all my runs are logged, the dates are missing from some of them. I've started the training program over again, and with a different C25K app.

I listen to podcasts while running. The Welcome to Night Vale podcast and Joseph Planta's interview podcast are my favourites.

The Moves app runs constantly in the background, and using Moves Export, if the running stretches are long enough, it will post to RunKeeper. (I used to have RunKeeper for the runs, but no longer.)

I wouldn't have started running without using an app to track it. Running seemed daunting until having a program, and even though the programs were available for quite some time (like those training programs marathon have always put out beforehand), having a handheld computer tell me when to start and stop is better than having to track it myself. It's also fun to relive it through the map right after the run and the stats, and having Fog of World tell me where I haven't been shows me alleyways and streets and neighbourhoods I'd never consider otherwise and gets me running farther and father away from home.

Granville Heritage

Has it really been almost three years since my last SkyTrain Explorer walking tour? It sure doesn't feel like it. Not including the Metrotown Station tour, which only takes you through the mall, all that's left is Burrard Station, Stadium-Chinatown Station, Broadway Station, and, up until this weekend, Granville Station.

Starting a SkyTrain Explorer walking tour.

The route took me from Granville Station heading south to Smithe. Along the way, I gazed upon the Sears building renovation project and the Vancouver Block. Past Granville and Robson, I admired the facade of the Commodore Ballroom, a venue I've been fortunate enough to attend a few concerts at. Atkin points out the B.C. entertainment hall of fame plaques lining Granville Street and especially the one in from of the Orpheum. Along this section of the tour, changed since the book's publication date has been the tearing down and rebuilding of the building on the corner of Robson Street, formerly an optical store, soon to be an Old Navy store, and the closing down of the Granville Seven theatre.

Taking me along from Granville and then onto Smithe, Atkin directs me to walk up the stairs to Robson Square. How did I not until now visit this side of it? The view of downtown Vancouver is incredible. Did I know the multicoloured sculpure by Michael Banwell was there until yesterday? No, I did not.

After some confusion as to which route to take to get there (Hornby? through the square?), I found myself on the west side of the Art Gallery, where we see a memorial to Edward VII (Shakespeare quote!) and an entrance to the old law courts (now the art gallery) with Police and Sheriff signs outside. (I'd been watching a little bit too much Doctor Who, 2005 edtion, so I half expected the Doctor to pop out of it with Rose.) Through the art gallery's square, where so many protest has taken place, we are led to gaze upon Hotel Georgia.

All in all a short tour, just south down Granville, hang a right on Smith, then back north through Robson Square to the Art Gallery. For all the photos, visit my Granville Station SkyTrain Explorer page, or the set on Flickr.

Three Tupper Discoveries

Tupper Community Garden For no other reason than to eliminate fog from my Fog of World, I rode my bike around the 22nd and Kingsway area in Vancouver and came across three nice discoveries at Sir Charles Tupper Secondary School. The first is a Tupper Neighbourhood Greenway, pictured above. The second, below, is a cul-de-sac sign with "Except Bicycles". Are there any other cul-de-sac signs in Vancouver that say "Except Bicycles"? Tupper Cul-de-sac/Greenway The third discovery (not pictured) was an organized game of touch football, with three refs, flags, and first down markers (placed by one of the refs, on the playing field no less). That looks like a lot of fun. I'd do it just for the huddles.

More Like 72-Hour Book Club

It's time, belatedly, to reflect on my reading of The Particular Sadness of Lemon Cake by Aimee Bender, which I read as part of the most recent 24-Hour Book Club. The fictional narrator, Rose, writes a biography of her family life after she discovers that she feels the feelings of the people who make the food she eats. It's empathy in the extreme sense, that is, Rose actually feels the same feelings of others rather than "simply" being able to recognize them in others. We don't know when the novel is set, though we do get a clue. The novel left me more with questions than answers.

(If some of the text below looks like gibberish, that's because it contain spoilers, and if you've read the book and/or you're curious, use ROT-13 to decode them.)

  • Can a 9-year-old girl really recall, or experience as viscerally, as much and so vividly in a day as our Rose does?
  • What does it mean that her mother went on a work retreat to Canada (and on the opposite coast) for a week and not somewhere within the continental U.S.? Qbrf vg zrna gung fur jnagf gb "trg njnl" yvxr ure fba qbrf crevbqvpnyyl?
  • Why doesn't the father ever confirm or refute the idea that hcba ragrevat n ubfcvgny, ur'yy svaq bhg jung uvf frperg cbjre vf? Wouldn't finding out answer a lot of questions he had about himself and his family? Or maybe they would raise too many other ones.

The family lives near the Fairfax District in Los Angeles, which I coincidentally read about the week previous to reading this book at A Los Angeles Primer. That means that if I ever spend longer than a few days in L.A., that I'll have to make a pilgrimage. One scene of the book, when Rose learns to drive a car, details the route she and her father take. Has anybody mapped it out yet?

The 24-Hour Book Club is a self-organizing group of people who agree to read the selected book all on the same day and share their thoughts. According to the ReadMore iPhone app, the first book of the club (Mr. Penumbra's 24-Hour Bookstore by Robin Sloan; my highlights) took me 7 1/2 hours to read over 3 days. The second book (Both Flesh and Not: Essays by David Foster Wallace; my highlights) I devoured within the allotted day, skipping the word definitions in between essays. ReadMore tells me that I spent 5 hours and 38 minutes reading the third book (my highlights), and just like the first book, over the course of 3 days. It's safe to say that I can't binge-read a book within a single day, and that The 24-Hour Book Club is, for me, more like the 72-Hour Book Club. The next day is fast approaching, and all signs point to that being a travel day, finding me on trains, planes and maybe even an automobile.

Resources I consulted (after reading the book):

Some highlights I shared in "real time":

Mike Klassen's Fraser St. Jane's Walk

Still lots of Vancouver to explore. Even though the SkyTrain Explorer book has taken me to places in the city I wouldn't normally venture to, there remain many pockets of the city that I have yet to encounter. Looking at the Jane's Walks in Vancouver a couple of weekends ago, the one along Fraser St. caught my eye, in part because of the subject but also because of who was presenting it. Country lane near Fraser St. Fraser St. Jane's Walk tour guide Mike Klassen Our guide, Mike Klassen, took us from 29th north to 16th, with a short detour in a back lane. The highlight for me was at the very beginning of the tour, the Fraser St. country lane. It does duty as a back lane for cars and a gathering area for neighbours. Mike tells us that he's vary rarely seen anybody drive with excessive speed, and kids can be seen playing in the grassy areas. He wants to see neighbourhoods learn from the trial and offer up ideas to the City for their own lane ways, suggesting they could enter into a competition as to which neighbourhood can design the best one, with the winner getting it built. We also saw an unusual church roof, a wood bench out side Fray on Fraser, and we topped it off with a walk through McAuley Park and a visit to Matchstick Coffee at Kingsway and Fraser. You can find all the photos I took in a set on Flickr, taken with the Samsung Focus on loan to me while my iPhone traveled across the country with Karen. Thanks to Mike Klassen for delivering a great tour and to Jane's Walk and to the volunteers around the world who put them on.

Seattle Trip Spring 2012

Another successful, if short, trip to America. With a little trepidation, not knowing if it was "worth it" to stay in Seattle for a couple of nights, I set out on the first day starting at 5 o'clock on a dark and early on a Friday morning. I traveled by train via Amtrak Cascades, coincidentally sharing a car with John and Rebecca Bollwitt. They discovered that I had only planned to see if there was a ticket available for that night's Seattle Mariners opening night, having only planned to attend Saturday night's game. When John and Rebecca found this out, with their extra ticket in hand, they kindly offered the seat next to them in Safeco Field's Terrace Club. After arriving and taking a much-needed (and very much planned) three-hour nap, I bused in from the Bellevue Westin, eyes wide open as we passed through tunnels and over the floating bridge, and proceeded to my first tourist attraction.

Leftover elevator machinery Seattle Underground Tour Purple glass

2012-04-13 17.54.37

Just before the game on Friday, thanks to the advice from a traveler to Seattle, I took the Seattle Underground Tour. For the first 15 minutes our guide regaled us with tale of how the city got its sewer system before spending 45 minutes walking underneath the streets, looking at the "first floor" of some of downtown's buildings. Highly recommended for an hour's worth of tourist activity.

Opening night at Safeco Field Ichiro in right field

Left: My first opening night! It was fun watching the hometeam Mariners run out of centre field, and seeing a flyover at the end of the national anthem. Though, a helicopter? In the land that gave us Boeing? Right: Ichiro patrolling right field the next day.

That night at the ballgame, I got to use up two of my Major League references prepared for the night: "Give him the heater!" deep in the count of an at-bat and "Too high!" when the visiting Athletics hit a home run. I didn't get to use up my third reference, though I would get my chance the next day.

Saturday proceeded with no agenda except sleep in, do a light workout in the hotel gym followed by a quick swim and hottub. I also wandered around the Bellevue Square mall and a few blocks of the Seattle suburb's downtown, if only due to their proximity to the hotel. The evening's plans were to bake in right field during batting practice of the second game at Safeco Field. Having brought my glove, I managed to catch a "home run" ball that had, unfortunately, ricocheted after striking a little girl, not paying attention, in the shoulder. Being a Blue Jays fan, I immediately offered her the ball, her mother throwing me a loop telling me that it was OK, she already got one. (I kept the souvenir.) Seemingly my luck is improving, as this now makes it two major league baseballs that I've caught at a ballgame, the first being a foul ball at Oakland-Alameda County Coliseum in 2010.

Three beers deep and a bowl of nachos later, former Toronto Blue Jays relief pitcher Brandon League took the mound and promptly bounced the ball over the catcher. To the amusement of very few from the hometown crowd, I yelled out "Wild thing, you make my heart sing!" fulfilling my third and final Major League reference. Nobody laughed, but, a couple of pitches later, someone yelled out "Wild thing, you make everything, groovy", so I felt vindicated.

Space Needle from below

2012-04-15 15.19.20

On Sunday, after working out and swimming a second time at the hotel, spending the afternoon hour on the obvservation deck of the Space Needle proved to be the final highlight of the trip. $19 just to see the panorama of a city, you say? I had hummed and hawed about it at the outset, but realized as soon as I walked on the outside deck I found it far more peaceful that I'd imagined it would be. Drinking a beer in the sky was a nice cap to a weekend visit.

The train trip back had no compadres on it, so I was stuck in a car with a loud party of four. That's why the good lord invented the dining car.

Upgrading Drupal Sites: Two Case Studies and a Spreadsheet

Upgrading Drupal sites between major versions can be tricky. The community of developers that numbers in the thousands has taken great care to maintain upgrade path between adjacent versions of the content management system. This is especially true of Drupal's core, though one must go through each version to get to the destination. (An example: going from Drupal 5 to Drupal 7 requires passing through Drupal 6.) Contributed module upgrades take place with a very slight degree of peril, though typically a developer will include upgrade paths between major versions. Though incredibly rare, some modules will not upgrade their database to the new version of the module, and even then someone will flag it as an issue and it will get resolved.

Official Documentation

If you came here looking for guidance on upgrading your Drupal site, please consider visiting the official documentation at The following only deals with two specific cases that may not apply to your site.

Upgrading Roland's Site

Some upgrades are very easy, however. Upgrading Roland's website was a breeze. My method:

  1. install a fresh copy of Drupal 7 on my local environment
  2. copy his site's database to my computer, and import into a fresh database
  3. run the update.php script, taking notes if any errors pop up. If they do, either fix them or make a note of what to do when it comes to do it for real
  4. do another test upgrade locally, just to make sure
  5. clear out temporary data like sessions and cache on the local install
  6. export the database and upload it to Roland's server
  7. install Drupal 7 fresh with a very few modules (WYSIWYG, which he uses, and Views, which he doesn't)
  8. import the database, and run update.php, perform the fixes from the earlier notes
  9. show Roland what it looks like, then make the necessary switches behind the scenes to make it live on the domain

(To keep it brief, I've excluded the steps about virtual host files on his server and faking a subdomain with my /etc/hosts file on my own computer.)

One funny bug that I couldn't put my finger on, which came up with another client's upgrade, was the need to save a node in order for URL aliases to kick in. If it comes up again, I'll dig further into's issue queue. One thing you learn quickly about the issue queue is that URL aliases are a common problem.

Upgrading Just a Gwai Lo (Eventually)

Other upgrades are not so easy. For the better part of a year, I've been working on porting over Just a Gwai Lo to Drupal 7. Working against me are the following:

  • my SkyTrain Explorer page, which contains custom PHP to display the hierarchical book view plus the use of Viewfield to show station pages (example). I cherish that section of my website, and would like to see it come over in an upgrade.
  • a few custom content types need their modules to either be upgraded or provide an upgrade path. I use Embedded Media Field in conjunction with Feeds to display my own photos posted to Flickr. I will need to move to the Media module along with Media: Flickr to do the same thing. There is an issue asking for an upgrade path, which I continue to monitor.
  • I have a spreadsheet for other modules, which, for a laugh, I've made public. An explanation of my methodology follows.

The Spreadsheet

Every major upgrade to a site I work on gets a spreadsheet. Though some upgrades will need to require certain added and maintained functionality, those same upgrades can drop functionality too. It's usually best to conceive of features first, then map modules to them. Since I already know what I want (essentially status quo), the module-based approach stays for this spreadsheet.

Using my personal site as the example, I'll go through my research process.

  1. Make a raw list of the modules used. I'm OK with doing this manually, since it gives me a chance to think through whether installing it in the first place was a good idea.
  2. Highlight in blue the modules that are either custom modules (there's always at least one in all of my projects, personal and otherwise) or ones I can drop. In my case, I have the Fenchurch module (named after my first VPS, which was in turn named after Fenchurch in Hitchhiker's Guide to the Galaxy), which adds some small things to forms and whatnot, to upgrade. I'll also likely drop Better Formats since Drupal 7 adds most of what I need.
  3. Highlight in red the modules that are not ready and that I need (called blockers).
  4. Highlight in yellow the modules that I'm not sure are ready or that I don't know whether I'll need.
  5. Highlight in green the modules that are ready for Drupal 7. Developmental and bet versions of modules are OK to use as long as they work. I always evaluate modules on their merits, not what their version number says. Green means go!
  6. A row for notes, such as links to issue queues or which modules to use instead, or what I can do to make them ready.

As soon as it's all green, then it's time to do the work of upgrading. I then follow the same general process as outlined for Roland's site, though usually quite a few more times, since more things tend to go wrong

The spreadsheet definitely has flaws. Breaking it into a sheet per sections (such as one for content, another for each custom module) might make sense if only the format allowed for freer form of information. I remain a fan of Google Docs and its sister service Sites, so one can combine the two and embed a spreadsheet into a more freeform Site, for example. The online spreadsheet allows for live collaboration, though I have no experience with it in the context of upgrading a Drupal site.

Spreadsheets are most useful when a project requires a arithmetic calculation. I use them a lot for trip budgets, though only to get a rough sense of how much it might cost in total. This form of spreadsheet works as a status dashboard.


The roadblocks and the work to overcome them tempted me to archive the site and start all over. A complete restart would have, in theory, allowed me to concentrate on writing instead of futzing with the site's details. On the other hand, most of what I learn about Drupal's capabilities comes through experimentation and breaking, then fixing, things. While I've archived Drupal sites in the past (such as PDXphiles and improvident lackwit), and a method exists for doing so (and possibly another using a module intended for caching), I can't be sure that my thousands of posts and thousands of tags will come in properly, not to mention that changing one little thing could mean having to do the archiving process all over again. And I don't even want to think about redirecting to a subdomain like but also ensuring that any new URLs work.

Looking Forward to Drupal 7

Assuming all goes well, I look forward to using some of the RDF features baked into Drupal 7. I experiment with semantic markup in my reviews section, with most using microformats, at least one what I believe to be RDFa (I'm never really sure, but that's why I experiment!), and I hope in the future using some of HTML5's features such as micro data. Ideally the next incarnation of this site will feature stripped-down theme. Still pink, of course.

Review: Samsung Focus with Windows Phone 7

As part of WOMWorld Nokia, my friend and mobile technology aficionado Roland Tanglao offered to lend me a Samsung Focus with Microsoft's mobile operating system on it for a weekend. I took it around Vancouver, installed apps, took photos, tracked a walk on Commercial St., and, breaking with tradition, actually made a phone call.

Samsung Focus with the Flickr app

Over the course of four days, I installed the following apps through the Windows Phone Marketplace, listed here in alphabetical order: 1Password, Facebook, Flickr, Flux (Google Reader client), Foodspotting, Foursquare, Netflix, Public Transit (wrapper for Google Transit's website), Runkeeper, Shazam, Stacks for Instapaper, Twitter and YouTube. I resented having to install software to watch YouTube videos, and found the Flickr client incredibly slow. I was grateful that 1Password existed to access my 490 unique passwords, but was disappointed the app did not follow many Windows Mobile Phone 7 app conventions (tapping the hardware search button took me out of the app to Bing, for example). I was generally pleased with the other apps, especially the simplicity of the Twitter app and, compared with 3 years of iPhone experience, the completely different paradigms of Foursquare and Flux, to take only two examples.

I spent no money on apps, instead relying on either free or trial apps. Instapaper requires a $1/month subscription to its service in order to use 3rd party apps, so I bought the minimum 3-month subscription. I would have loved to try out the MLB At Bat™ app (since I'm a big fan and guaranteed buyer of the iPhone app; go on, Major League Baseball, keep raising the price, I'll happily keep paying), but a limited time with the phone didn't make a $11 purchase seem like a good idea. If I owned the phone, it would have been not only the first purchase but first app installed.

Insides of the Samsung SGH-I917 (Samsung Focus Windows Phone)

What I loved:

  • The pane paradigm on the home screen and in apps, with a bit of the discoverable parts showing on the side. Text size is generally big in apps, meaning that going back to the iPhone, everything felt tiny. Tapping on icons made them looked pressed down, and sliding away after pressed is a nice visual touch.
  • Trial mode apps. Theoretically iOS apps are trial mode with in-app purchase, but the WP7 marketplace made trial mode explicit.
  • Apps like Foursquare and Twitter with their big, comfortable-on-the-eyes typefaces, and WP7-native design approach.

What I merely liked:

  • Zune music player, though I wished album covers could be bigger, quicker access to the app from outside it. Swiping from side to side on an album cover switched back and forth between tracks, which doesn't make sense to this thirtysomething still used to pressing buttons to do the same.
  • A hardware camera button, with pressing down slightly to focus. I expected to be able to take a picture in lock mode, or at least get to the camera by pressing the button. No such luck.
VPL WIreless Network Captive Portal

I liked the camera, but found it hard to get a non-blurry shot a little too often. For my comparison shot, I went to Caffe Rustico on Main St. and took a photo of their couch area with my iPhone 4 and from the same spot with the Samsung Focus. Not a huge difference to these eyes. The iPhone 4 had a wider shot and, with the HDR setting on, shows more in the window than the Samsung Focus.

What I neither liked nor disliked, but found weird:

  • Every time I put the SIM card in, I had to reboot the phone. The iPhone spoiled me: put in a working SIM and you're good to go.
  • The phone indicated, incorrectly, that I was roaming. In order to get access to the Internet over 3G, I had to turn on data roaming. Random forums of destiny told me that I can safely expect to not receive a roaming bill because of this.
  • I stumbled on the FM radio receiver. Not a selling point, but if I were caught in a city-wide emergency which affected cell towers (say, an earthquake), I'd be grateful for it.

What I absolutely hated:

  • Vibrating on the capacitive buttons. There is no ability to turns it off. Random forums of destiny confirmed this.
  • A lot of mistaken taps on the capacitive buttons and mistaken hits on buttons, especially while in my pocket when only ever wanting to adjust the volume. Enlist me in the war against the capacitive button cult.
  • Slow charging, when at all. The iPhone wall charger was better than through the computer, but I expected faster recharge times. I expected to be able to charge at least somewhat reliably through my MacBook Air.
  • The default of the phone is to automatically save the screen and then lock, even while reading but not pressing any buttons. Maybe I could have turned it off, but I wanted to stick with the defaults as much as possible.

If I had more time with the device, I'd happily buy some apps, starting with MLB At Bat™, then Flux, then Stacks for Instapaper. I'd be very happy with the software and very unhappy with the hardware. Can I have an iPhone with Windows Phone 7 on it?

Introducing the Readability Button Module for Drupal

Spend any significant amount of time reading long articles on the web and you get distracted. Distracted by sidebars and insets full of links and animated graphics, many of which are advertisements. Distracted by badly set typography. Distracted by "next page" links at the bottom, forcing you to wait for the next part of the article to load as the publisher gets another increased statistic to sell. 

Enter Readability. Developed by Arc90 as an experiment, Readability started life as a bookmarklet and browser extension designed to improve the reading experience. In addition to decluttering distracting constituents of a web page, the bookmarklet offered a consistent look that stripped an article to its essential element, the text. After Arc90 released the bookmarklet as open source software, Apple's integrated the code into the Safari web browser. Subsequent to that the company changed direction with Readability in January of this year and started a web service for both website publishers and readers. While keeping the core service of simplifying articles for easier reading, with the new Readability, publishers of any type on the web — from magazines with multiple contributors to single editor blogs — can integrate Readbility into their website and optionally receive payments for their work from readers who sign up to contribute.

How Readability Payment Works

Publishers first must claim their website by adding a special code to the HTML header, which they can remove after verification. Using their own Readability accounts, readers can contribute a monthly fee that they, the readers, individually specify. (Publishers have no say what readers have to contribute, though Readability sets the monthly minimum at $5.) Readers' money first goes to Readability, who take a 30% cut. Readability then divides the remaining 70% amongst the publishers that readers, while logged into Readability, read through the service. As a simple example, let's say a reader only reads two online publications, The New Yorker and The Bygone Bureau. If a reader contributes $10 per month, and in the span of a month, uses Readability to read 6 articles from The New Yorker and 5 articles from The Bygone Bureau, Readability takes its $3 cut and The New Yorker gets $3.82 ($7 divided by 11 total articles, multiplied by 6 New Yorker articles) and The Bygone Bureau gets $3.18 ($7/11*5).

Readability buttons, as they appear on websites, typically offer the reader has the option to send the article to Readability and come back to it later ("Read Later") or immediately convert the article to Readability's simplified version ("Read Now"). Some tools that do 'read later' functionality, like Instapaper, can, after reading through the app, send the link to Readability so that it is counted towards the reader's monetary contribution.

Publishers do not need to claim their website or receive any payment in order for readers to use the part of Readability that converts article to pleasant-looking text, nor do readers need to pay Readability to convert distracting pages. The publisher-contributor model constitutes a new way for publishers and writers to make a few bucks on their creation and for readers to keep good writing coming without have to put up with (as many) advertisements. One publisher confided in me that "nobody's getting rich off it," referring specifically to Readability, but Readability at leasts represents an opportunity for innovation in the ways publishers, writers and readers interact and support each other.

Readabilty Button for Drupal

Screenshot of a Readability 'Read Now | Later' button on an example node in Drupal

Since I work primarily with the content management system Drupal, and wanted the functionality not only for my site but for other Drupal sites, I've developed a module called Readability Button. "Without this module, site maintainers would have to edit their theme directly, introducing code that they need to maintain. Instead, they can turn on the module and change settings, and if they want to discontinue Readability integration, can simply disable the module. Readability Button features the following:

  • Enable the button on a per-content type basis. Also a permission to show the button on nodes to certain roles.
  • In the module configuration, temporarily add the verification string (the full element provided by the Readability web service) without editing your theme. You can disable this after you've verified your domain.
  • Configure whether to show only on the individual node view or also on lists (such as the blog page or taxonomy views).
  • Optional Print, Email, "Send to Kindle" buttons.
  • Modify the colours of the foreground and background using hexadecimal colour codes. Optional integration with jQuery Colorpicker.
  • Change the orientation of the button from horizontal to vertical.
  • If a reader is logged into their Readability reader account, and the reader is a contributor, clicking the button sends a portion of their contribution to the site's publisher.

If you add the module to your Drupal site, I encourage you to make a feature request and submit bug reports in the issue queue.

Imagining a 2.0 branch

The module as described as above has some limitations:

  • Once you add it to a content type, all nodes of that content type receive buttons, no matter how short
  • If you allow the button on lists, it appears on all lists. that includes views, taxonomy term pages, blogs, etc.
  • The weighting of the button is somewhat of a kludge

A 2.x branch of the module, which only exists in my head, comprises of the following features:

  • Make the Readability button a field in the Drupal 7 sense. This would enable many things for "free":

    • flexible placement of the field in content types, using the per-content type field settings
    • Views integration, meaning with any list you can override settings to show or hide the Readability button
  • Readability API integration, meaning authentication and management of your Readability publisher account for websites and reader accounts for site members
  • If the website uses the Domain Access module, then each site could conceivably have its own 'domain' in Readability as well. Imagine individual bloggers on a Drupal site as a publisher who gets the 70% cut from Readability

Beyond the Module

Just a Gwai Lo currently uses the Deco theme, and, in order for Readability to reliably convert my own website to the clutter-free text, I made some slight changes. In particular, I needed to ensure Readability correctly picks up on article titles and dates. Per Readability's recommendations to mark up articles in the hNews microformat, I've added an entry-title class to my


h2> tags, necessitating modifications to the theme's template.php and node.tpl.php files. I also added a element wrapped around the date for blog posts. The right way to do all of this would be to find a way to modify the theme elements in a module, though I think the only option available to me is to maintain a sub-theme.

The Music Must Carry On, But Cannot Carry On

Lars Svendson: Pop music is based on the banalities of everyday life, and it attempts to convert these banalities in such a way that they make a break possible with everyday boredom. In pop music a hope is formulated that these banalities can become something more. For example, that a form of love exists that can release us from life's heavy burdens or burdensome lightness. And in the absence of thls release, pop music can remove some of the excess time, for 'there's still time to kill' (Up Against It). As long as the music lasts, we escape boredom, but, sooner or later, the music will stop. In the absence of meaning, the club becomes a place of refuge, and in dancing, embraced by the music, we gain a foretaste of a kairological eternity: 'When you dance with me, we dance forever' (Hit Music). But the Pet Shop Boys are also well aware that, ultimately, this is escapism: 'Live a lie, dance forever.' It gives some consolation, but no solution. The aesthetic revelation - like the anaesthetic revelation - is at most temporary. The Pet Shop Boys' album Bilingual takes us from an opening question in Discoteca: 'is there a disco around?' to the final song Saturday Night Forever, where one has entered the club. But as the penultimate track says: 'I know that it's not gonna last forever" They have a Schopenhauer-like belief in music but, like Schopenhauer, know that it will not last. The music must carry on, but cannot carry on, just like Beckett's voice has to carry on despite the fact that it cannot. When one is not out clubbing, there is nothing to do but to try to live an everyday life, in boredom and waiting, yet with hope. Music, or anything else in the aesthetic dimension, is not a solution in itself.

Where Things Disappear Into Pure Functionality

Lars Svendsen: Anthropocentrism gave rise to boredom, and when anthropomorphism was replaced by technocentrism, boredom became even more profound. Technology involves the dematerialization of the world, where things disappear into pure functionality. We have long since passed a stage where we could keep track of technology. We scurry along behind, as is perhaps particularly clear in IT, where hardware and software have always become obsolete before most of the users have learned how to use them.