Friday, December 03, 2010

Transit City II

I just accepted an invite for the the Facebook "event" Support Transit City, send a quick email. If you care about public transit in Toronto, you should, too.

I'm not really one to send a form letter, so here's what I ended up sending to Rob Ford and the new TTC Chair, Karen Stintz.

Dear Mayor Ford,

I am writing to express my support for Transit City and my concern about your plans to scrap it. In particular, your statement Wednesday that "Transit City is over" seems premature, ill-considered, and entirely disrespectful of council's authority.

You have frequently claimed that people want subways, and I have no doubt that is true. However, there is no denying that subways are extremely expensive. The TTC estimates that your proposed Sheppard subway extension would cost 3-4x as much as the planned LRT line, despite being only two-thirds its length. Wanting something doesn't mean you can afford it.

As a citizen of Toronto and a taxpayer, I believe we cannot afford to see the tax dollars already been spent on Transit City go to waste. Contracts have been signed, work has begun, LRT vehicles have been ordered, and the city of Toronto will be on the hook for costly fines and penalties if we change course now. Scrapping this plan would also represent the loss of billions of dollars of federal and provincial infrastructure money for Toronto.

I am both a driver and a public transit user, and I do not believe that Transit City represents "a war on the car." Only by rapidly improving public transit options can we begin to reduce congestion on the roads and make things better for everyone. Throwing out almost a decade's work on an affordable city-wide rapid transit plan would be the height of irresponsibility.

Mr. Mayor, you promised respect for the taxpayer. Abandoning Transit City would demonstrate exactly the opposite.

Sunday, July 25, 2010

My Favourite Android Apps

I was recently asked for a list of the Android apps I use. I figured, why not do it as a blog post? So here, for anyone who's interested, is my list of favourite Android apps, compiled after about four months of Nexus One ownership. These are the apps that assist me, inform me, delight me, and keep bringing me back, day after day.

Note that I'm using the latest version of Android (FroYo, or 2.2). Some of these apps may not run on older versions. You won't even see unsupported apps when you search in the Android Market.


Swype is an amazing replacement for the default Android virtual keyboard that makes typing easy and fast! The idea is that you can quickly swipe your finger around over the keys, and it traces the shape to guess what word you wanted. It works very well, and keeping your finger on the screen for each whole word makes it possible to type while walking or riding in a moving vehicle (as a passenger, of course). Unfortunately, it's not in the Android Market yet, but you can sign up for the beta. It will take some time before you're invited to join, so register now.


With FourSquare, you can share your location with friends, find out who else is wherever you are, and earn mayorships and badges in the process. Who cares about privacy, anyway? I'm going for the Super Mayor badge!

Chrome to Phone

This was a tech demo for FroYo's push messaging this year at Google IO. But, it's also a super handy little app that I use all the time. With Chrome to Phone, you can send Web pages from Chrome or Firefox on your desktop or laptop directly to your phone. Google Maps links open directly in the Maps app, and other pages are opened in the browser. Imagine this: You receive an e-mail on your desktop with the address of an event you'd like to attend. Find it on Google Maps, click a toolbar button, and the address is pushed to your phone, opening right in Maps automatically. With just two presses on your phone, you can get turn-by-turn directions in Navigation.

This should be the stuff of ads, but for some reason I can't even begin to understand, Google never even bothered to put this app in the Market. So, you'll have to download it from its Google Code site. The Chrome extension is available from the same place. You can get the Firefox extension, called Send to Phone, from the Firefox Add-ons site.


The official Twitter app was released just a couple of months ago into an already crowded field of clients for the popular service. It distinguishes itself with its beautiful, playful UI and its widgets, which, in my opinion, are the best available by far. It doesn't have all of the advanced features that some others do, most notably multiple account support. Power users may need to look elsewhere (for them, I'd recommend Seesmic).

One caveat: I had a significant problem with the official Twitter app around the time I upgraded to FroYo, though I'm not certain whether or not the upgrade was the cause. Automatic refresh stopped working, so tweets in the app and the widget wouldn't update unless I manually hit the refresh button. That was a major pain, and the lack of response from Twitter on the issue was disappointing. In the end, just clearing data for the app (in Settings > Applications > Manage applications) resolved the problem.


Shazam identifies the music you hear. Just hold up your phone and it records a snippet, analyzes it, and it tells you what song it is. Seriously, how cool is that?

Places Directory

Places Directory lists nearby places in categories like Restaurants, Bars, Shopping, Movie Theaters, and Hotels. See photos, reviews (from multiple sources), and location/contact information. There are certainly other popular apps of this sort out there (notably Yelp), but I prefer Places Directory for its clean UI and its slick integration (Dial, Map, Share, and Add to Contacts).

3G Watchdog and APNdroid

If you have a limited data plan, 3G Watchdog will help you to avoid going over your quota. It can even use APNdroid to automatically shut data off when you've used too much. I said a whole lot more about these apps previously.

My Tracks

My Tracks uses GPS to record your hiking, cycling, running, and climbing trips. It plots your tracks and reports stats including time, speed, distance, and elevation. You can even share your tracks on Google My Maps and upload them to Google Spreadsheets.

Barcode Scanner

Barcode Scanner photographs and decodes barcodes and QR codes. It can automatically open links in the browser, add contacts and calendar events, and configure wi-fi settings based on the information encoded in a QR code. A great way to exchange information with the outside world.

Squeeze Commander

If you have a Logitech Squeezebox, you'll love Squeeze Commander, the best Squeezebox remote control app out there. It fully controls your Squeezebox server, plays Internet radio, and is packed with delightful surprises, like volume control via your phone's volume buttons and auto-mute, pause or volume down on incoming calls. It can even download songs from your Squeezebox server to your phone.

Note: this is a paid app, costing €2.99 and well worth every penny.

ES File Explorer

Yup, there's really a file system in your phone. You can use EStrongs File Explorer to see and manage the files on your SD card and, if you really feel the urge, in your phone's internal memory. You can also transfer files with remote systems via SMB, FTP, and Bluetooth.

Astro is another popular file manager, but I do find EStrongs' UI to be a little bit cleaner and more friendly.


Dropbox is a service that automatically synchronizes files across multiple computers and even lets you share folders with other users or the Web at large. The Dropbox app lets you download files from your Dropbox to your phone and upload files to be synchronized across your computers.


Movies provides listings, trailers and Rotten Tomatoes ratings, all courtesy of Flixster. Never wonder what to see again.

Google Earth

Google Earth lets you explore the globe in 3D, right on your phone. Just wow.


NewsRob is an RSS/Atom feed reader that syncs with Google Reader. Perfect for keeping up with your daily reading while on the go. It offers really nice synchronization features, including the option to only sync while on wi-fi.


TripIt allows you to easily access travel plans. You just forward your itineraries TripIt, and it creates trip plans, including flight and hotel information, maps, and weather forecasts. You can that access all that information, and other people's trips that they've shared with you, via the app.

OI Shopping List

OI Shopping List is, unsurprisingly, a simple shopping list app. It supports multiple lists, as well as quantities, prices, and tags on items. You can remove crossed out items from the view by shaking the phone, and then later pick them again to add to your next list.

AK Notepad

AK Notepad is a really simple notepad app. You can set reminders on notes, share them, and sync them with


URLy is a simple but handy URL shortening app. It supports 38 URL shortening services, including,, and, and integrates nicely for easy use from any other application.


Wikidroid provides friendly formatting of Wikipedia content for your phone.

Honourable Mentions

The following five apps sound like great ideas, but in all honesty, I haven't had much opportunity to use them yet. Still, I think they're worth mentioning.

Google Sky Map

Google Sky Map is an augmented reality app that displays the planets, stars, and constellations as you point your phone around the night sky.

Carrr Matey

Carrr Matey is a parking app that helps you keep track of where you've parked and, optionally, how much time is left on the meter. It seems like a good idea, especially for really big lots.

Open Spot

Open Spot is another parking-related app, but to help you find parking spots in the first place. As you leave a spot, you use the app to report it (you can also report spots that you just happen to notice are empty). Then, when you need a spot, you can search for open spots that others have reported.

I love the idea of Android users banding together to help each other. Who knows if it will actually work, though!


Bump lets you exchange contact information, photos, and apps with others just by bumping your phones together. This is a cross-platform app, allowing you to share with both Android and iPhone users.

Key Ring Reward Cards

Key Ring creates a digital copy of all your customer loyalty and membership cards on your phone. You can scan the barcodes from your cards, or just enter the numbers manually. When you retrieve a card, the barcode is displayed so that it can be scanned right off the screen. This seems like a nice way to lighten your wallet, but to be honest, I haven't had the guts to ask anyone to scan my phone yet.

Without question, there are huge numbers of fun and useful apps available for Android. I've listed my faves, but I'm sure there are some great ones I haven't discovered yet. Did I miss a great app? If so, please let me know!

Finally, don't forget to support Android developers. If you can afford it, I think it's a great idea to show your appreciation for apps you like by buying or donating. It's the best way to ensure a steady stream of great apps to come!

Sunday, June 13, 2010

Bill C-32

The Conservatives are taking another kick at the Copyright can. This time, they've come up with Bill C-32. Here is my letter to the Minister of Industry, Tony Clement. Please get informed and speak out!

Dear Mr. Clement,

I am writing to express my concerns with the recently introduced copyright bill, Bill C-32. Professionally, I am a software developer and a published author, so I am dependent upon copyright to make my living. I am also an enthusiastic consumer of copyrighted works, particularly music and software, so I view the issue from both sides.

The bill represents a significant step forward from your government's previous attempt at copyright reform. In all areas but one, it appears to take a balanced approach. Unfortunately, the one exception, the digital lock provisions, destroy that balance by giving producers of content a final technological veto over any and all rights that would otherwise fall to consumers. Thus, in its current form, Bill C-32 is critically flawed.

The inclusion of such strict protections for digital locks is surprising, to say the least. They appear to have survived, virtually unchanged, from the failed Bill C-61, in spite of the outpouring of opposition during last summer's Copyright Consultation. Indeed, the most commonly heard opinion throughout the Consultation was opposition to C-61-style anti-circumvention provisions (expressed in 6641 of 8306 submissions). One cannot help but wonder what purpose the Consultation was meant to serve when its strongest message has been ignored, no doubt in deference to the wills of a powerful American corporate lobby. As one Canadian who made the effort to have my voice heard, I am deeply upset by this result.

The DMCA-style hard line that has again been offered in Bill C-32 is clearly not supported by Canadians, and it is not necessary for Canada to meet our obligations under the WIPO Internet treaties, which require only “adequate legal protection and effective legal remedies” for digital locks. In other countries, including India and New Zealand, WIPO implementation has been achieved with more balanced approaches to digital locks.

A copyright balance requires that consumers' rights be protected in all cases, not left to the whims of the dominant media corporations. Circumvention of technological measures can be necessary to exercise those rights, so it is simply unacceptable to criminalize such circumvention for non-infringing purposes. I strongly urge you to amend Bill C-32 to make the anti-circumvention provisions applicable only to circumvention for the purpose of copyright infringement.

Wednesday, June 09, 2010

Android Data Diet (Postscript)

Last week, I blogged about how, after accidentally burning through my monthly data allowance in one day, I configured my Nexus One to use minimal data, and how I started using a couple of apps to measure and limit that usage. Yesterday was the beginning of a new billing cycle, so I was able to see the damage from my excesses and gauge how successful the ensuing diet was.

My extra data charges for this month: $5.60. Phew, not too bad!

At 5 cents/MB, that means I used 112 megs beyond my 500 meg limit. But 87.6 megs of that was on the day I exceeded my limit and the day after, before I realized what had happened. Once I put my phone on the diet, it only used 24.4 megs over 20 days (1.22 MB/day on average), costing me just $1.22.

I'd say the diet was a resounding success! I managed to keep my data usage very low while still staying relatively well connected. I was manually syncing my mail and contacts, but at least I could check them when I wanted to and look up things on the Web. I did miss having my Twitter and Facebook feeds kept up to date, though.

Now that I have a full month's data available again, I have happily re-enabled all my data-hungry settings, like auto-sync and Twitter notifications. I did leave the unfortunate Wi-Fi sleep policy disabled, and I'm continuing to use 3G Watchdog to monitor my data usage. I have increased my daily quota to 30 megs, which should give me lots of room to do whatever I want, but prevent any more runaway data use in the future.

On an unrelated Android note, Google has rolled out free turn-by-turn navigation to Canada, along with 10 other countries. This is a killer feature of Android, and it's great to have it available here. It also gives us something new to play with while we're waiting for the FroYo update.

Thursday, June 03, 2010

Android Data Diet (Part 2)

Yesterday, I described how I curbed my Nexus One's appetite for tasty (but pricey) mobile data. But what's a diet without a scale? I still needed a way to monitor just how much data I was using and warn me or, better yet, stop me if I used too much.

Cue the apps.

As I mentioned yesterday, Android doesn't do this out of the box, but fortunately there are at least a couple of great, free monitoring apps available. I tried NetCounter and 3G Watchdog. I think NetCounter has a really nice UI, and it provides the ability to monitor both mobile data and Wi-Fi, but I ended up choosing 3G Watchdog for its excellent quota features.

You can use it to set a daily, weekly, or monthly quota, and then have it warn you when you exceed a given percentage of that quota. Moreover, you can have it shut the mobile data right off if you exceed another given percentage.

I have set an extremely low daily quota of 2 MB, with a warning at 50% and auto-disable at 99%. I'll keep this setting until the end of the billing cycle -- recall from yesterday that I've already exceeded my data limit for the month and am now paying for each meg I use. The idea is to try to keep below 1 meg a day (which only costs me five cents), and cut myself off at 2 megs. That should keep my extra data fees for the remainder of the month under a couple of dollars.

So far, this approach is working: With the changes to my settings that I described yesterday, I'm finding it easy to stay well below 1 meg most days, and on the couple of occasions where I have exceeded 2 megs, auto-disable has worked like a champ.

Once my monthly data usage resets, I'll re-enable auto-sync and my Facebook and Twitter updates, and I'll increase my daily quota to something like 40 MB. That should give me plenty of room to stay connected and use lots of data when I want to, but will prevent any further disastrous 450 meg days.

By default, 3G Watchdog permanently adds a notification indicating the current state of your data usage relative to your quota. I find that quite intrusive, but fortunately it has an option to disable the notification. I did, and added its attractive little widget to my home screen instead. Even that may not stick around once my data diet month is over.

You can install 3G Watchdog by scanning the following QR code with an Android device (or just by touching it if you're reading this on one):

Finally, I should point out that to use 3G Watchdog's auto-disable feature, you'll also need to install another app: APNdroid. It's a handy little app that simply disables mobile data by appending a suffix to your active APN. It also has a widget that can be placed on the home screen for easy access.

Here is the QR code for APNdroid:

Thanks to Richard Fruet and Martin Adamek, the creators of these great apps. They're life savers...or at least money savers!

Wednesday, June 02, 2010

Android Data Diet

A couple of months ago, I got myself a smartphone. No, not that one; something better. I got a Nexus One, Google's flagship Android phone. Though younger, Android is already significantly more capable than iPhone OS. It's also open source, Linux-based, and uses Java as its primary development language. Throw in the top-notch development tools based on Eclipse, and it was a total no-brainer for me.

Oh, and did I mention it's dead sexy?

I actually got my Nexus One while I was in California for EclipseCon at the end of March. Google sells the phone directly online (though they recently announced they're ending that experiment and pursuing more traditional sales channels), but I saved myself the costs of international shipping and customs duties by having it delivered to my hotel in Santa Clara and bringing it back with me after seven days in the US.

Since then, I've been absolutely delighted with it, but for one most unfortunate incident: A couple of weeks ago, my phone allegedly decided to eat through my entire month's data allowance in one day. My Telus bill shows over 450 megs of data on one Sunday, and I have no idea how that could have happened. Telus was, of course, completely unhelpful, refusing to share any information about which specific hosts or domains my phone was supposed to have accessed. That information could have helped me determine if and how that kind of data usage actually occurred, but Telus wouldn't even confirm whether or not they actually keep such information (even though Canadian privacy law requires them to, on request, inform an individual of the existence of all personal information and give him or her access to that information). Unfortunately, Android doesn't report data usage out of the box, and I hadn't even thought of installing an app to do that.

So, it's impossible for me to go back and find out what happened that fateful day, but it was immediately clear that I couldn't let it happen again. I was only about a week into my monthly billing cycle and was suddenly being charged 5 cents per megabyte of data. So, the first priority was to severely restrict my data use for the rest of the month. Beyond that, I'll need to put in place a strategy to prevent me from getting into this situation again.

The first thing I discovered was alarming, and it's my only real complaint about Android so far: by default, Android is configured to put Wi-Fi to sleep whenever the phone's screen shuts off, in order to save battery. So, while the phone is sitting at home, unused, it falls back to mobile data, instead. But just because the screen is off, that doesn't mean the phone's not doing anything. I had it configured to automatically sync my Gmail, calendar, and contacts, and to constantly refresh my Facebook and Twitter feeds. Though I wouldn't ever expect this kind of activity to result in 450 megs of traffic in a day, megabytes or even tens of megabytes are certainly quite possible.

So, the first thing to do was to disable this Wi-Fi sleeping behaviour, but for some reason, the setting is very well hidden. From the home screen, you'll need to navigate to Settings > Wireless & networks > Wi-Fi settings to find it. Then, you'll need to hit the menu button, and finally select Advanced. Only then can you switch the Wi-Fi sleep policy to Never. I would highly recommend every Android user do this, as unintentional data use can cost you money. I haven't experienced any noticeable effect on battery life, either: I'm still easily able to get through a day on a single charge. I really think Google selected a poor default, and I've told them as much in this bug. Hopefully, it will be remedied in the future.

Since I'm not always in a location where Wi-Fi is available, my next step was to try to disable all background data usage. All account synchronization can be turned off in one place, which is most convenient: Settings > Accounts & Sync > Background data. Once this is done, you'll need to synchronize manually, such as by selecting the Refresh menu item in the Gmail app. Also, this setting must be re-enabled temporarily in order to use the Android Market. I currently do both of these things only when I'm on Wi-Fi.

Finally, I went through all of my apps and looked for any settings related to background data use or notifications. For example, Seesmic has a notifications feature that relies on polling the Twitter server to update the feed. I disabled all such features, and now my data use has slowed to a trickle.

Still, there was something missing: I needed a way to track my data and be notified if it gets too high. Fortunately, there are at least a couple of great, free apps for data usage monitoring available on the Android Market. I'll talk about those tomorrow...

Sunday, April 18, 2010

Transit City

I just wrote the Premier in support of restoring provincial funding for Transit City. Please take action to help, too. Here is what I wrote.

Dear Premier McGuinty,

I am deeply disappointed by your recent decision to delay previously promised funding for the Transit City Light Rail plan. Delaying funding now will only compound Toronto's severe transportation woes, and could very well kill this vital project altogether. It would be most unfortunate if your lasting legacy was undoing all the work and collaboration that has already gone into developing this plan.

In December 2009, as construction began on the Sheppard East line, Minister Bradley was quoted as reaffirming your government's commitment to quickly building a comprehensive public transit network in Toronto. He said, "By providing more convenient, affordable, faster rides on public transit, we are tackling congestion, creating jobs, stimulating the economy and improving the air we breathe." He was corrrect: Transit City will allow Torontonians to make a contribution to the critical cause of reducing greenhouse gas emissions, provide desperately needed transit access to Toronto's inner suburbs, and stimulate the economy with thousands of jobs.

Although the province's budget deficit is unfortunate, public transit funding is not the cause of this deficit, and cutting this funding is not the solution. Nothing has changed since Minister Bradley's statement last December.

As a long-time Liberal supporter, I am also concerned about the impact of this about-face on your government's prospects for re-election. If another party campaigns on a promise to restore Transit City funding in the next election, I fear that I will have to give them my vote. I cannot think of another issue that is more important than this one.

I ask you to please deliver on your promise and return the $4 billion to the Transit City budget to keep this plan on track. Transit City is too vital to the health of our city to be put on hold.