We’re Looking for Canadian Windows Phone 7 Apps

canadian wp7 apps

Windows Phone 7 hits the shelves of Bell, Rogers and Telus on November 8th, and we want to make sure that there’s a strong showing of apps written by Canadian developers in Marketplace when that happens. If you’re a developer based in Canada with an app that’s ready or near-ready, please contact me (Joey deVilla) via email as soon as possible! There are some things that I can do to help speed up the submission process that wouldn’t otherwise be available to you.

This article also appears in Canadian Developer Connection.


31 Days of Windows Phone 7

"31 Days of Windows Phone 7": Windows Phone showing the calendar for the month of October

Keep an eye on Jeff Blankenburg’s blog for the rest of the month! Every day in October, he’s posting an article on Windows Phone 7 development in a series called 31 Days of Windows Phone 7.

As of this writing, he’s posted these articles:

Jeff talked about his “31 Days” series (previous;y, he did a 31 Days of Silverlight series and 28 Days of Did-You-Knows in Technology one as well) on show 5 of Silverlight guru Jesse Liberty’s podcast.

This article also appears in Canadian Developer Connection.


I’ll Take Two for My Desk, Please

steve and giant monitor 1

I may have to take a course at ObjectSharp/New Horizons Toronto just to get close to the toys! After the Windows Phone 7 Coffee and Code on Thursday, Barry Gervin and Steve Syfuhs (who just got started working at ObjectSharp, an indirect result of my stunt where I wore assless chaps at CodeCamp a little while back) took me on a tour of their new office. It’s gorgeous, with a nice large social area in the centre and great-looking training rooms with two-monitor workstations for students and these gigantic Samsung touch- and pen-sensing screens at the front of the class. These photos show Steve demoing the big screen’s pen-sensing capability with a simple whiteboard app.

The ObjectSharp folks tell me that they’re making their space available to user groups. I just might have to take them up on that offer.

steve and giant monitor 2

Just in case you’re not clear: ObjectSharp is the part of the company that does the software development and business intelligence work, and New Horizons is the part of the company where you go for training for Microsoft tools and technologies. The new office puts them all in one place – 11 King Street West, 14th floor, falling distance from King subway station.

This article also appears in Canadian Developer Connection.


Drupal Camp Toronto 2010

drupal camp toronto 2010

Drupal Camp Toronto 2010 is happening in Toronto today and tomorrow! It’s a gathering to discuss all things Drupal, featuring keynote speakers such as ones: Dries Buytaert, Jeff Eaton, and Mark Brown. It’s at a nice, central, easy-to-get-to location, the Toronto Reference Library (a few steps north of the corner of Yonge and Bloor). And here’s something you might not expect – Microsoft Canada is a Platinum Sponsor.

port 25 canadaFor more about Drupal Camp Toronto 2010, I refer you to Microsoft Canada’s open source community blog,, which is run by the Open Source/Interoperability team of Nik Garkusha, Julia Stowell and Jenna Hoffman (whom you might remember from Make Web Not War earlier this year in Montreal). They’ve got some articles on Drupal and Drupal Camp Toronto, including:

This article also appears in Global Nerdy.


Imaginet’s “Unlock the Power of Visual Studio 2010” Events in Vancouver, Edmonton and Calgary

imaginet unlock the power

Our friends at Imaginet are hosting two-hour events in Vancouver, Edmonton and Calgary where they’ll show Visual Studio developers how to get up to speed with all the goodies that have packed into Visual Studio 2010. Here’s what they’ll cover:

What’s new in Team Foundation Server 2010

Learn about important updates and enhancements to Team Foundation Server in the 2010 release.  Understand key components such as: Branches as a first class citizen, Branch visualization, and Change set history visualization.  See how using Team Project Collections can improve manageability and scalability.  Imaginet will demonstrate hierarchical work items and typed work item relationships as well as improvements to Team Build including features such as Buddy Builds and Gated Check In.

Testing Tools & Rich Developer-Tester Interaction with Visual Studio 2010

Imaginet will demonstrate the new testing tools in Visual Studio 2010 and how the generalist tester is now brought into the full Microsoft ALM platform.  The new Test Professional product is a purpose-built tool for test professionals to plan, execute and manage testing of your web, Windows Forms or WFP application.  See how the rich defect reporting including IntelliTrace and other information about the execution and system under test, helps eliminate the “I can’t reproduce the bug” response from development.  Test Lab Management can also assist in streamlining the setup and teardown of test labs for test.

These events are free, and they’ll be taking place in the following cities on the following dates:

City When Where
(click here to register)
Monday, October 25 Fairmont Waterfront Hotel
Malaspina Room
900 Canada Place Way
(click here to register)
Monday, November 8 Met Centre
Grand Lecture Hall
333 Fourth Avenue SW
(click here to register)
Tuesday, November 9 Shaw Conference Centre
Salon 12
9797 Jasper Avenue

This article also appears in Canadian Developer Connection.


Windows Phone App Challenge #1: The Pomodoro Timer

app challenge - pomodoro timer

Introducing the Windows Phone App Challenge

“I’d love to write an app for launch,” a number of people have told me, “but I can’t think of an app to write. Got any ideas?”

Sure. I have lots of ideas. A few of them are even good (and won’t get anyone put in a compromising position, thrown in jail, or both)! My plan is to take those good ideas and present them to you, the potential Windows Phone 7 developer, as a challenge to turn those ideas into apps and submit them to Marketplace. You can make them available for free or charge for them, and I’ll ask for only one thing: email me and let me know that you’ve submitted an App Challenge app (that goes double if you’re a developer based in Canada)!

Here’s the first App Challenge: Build a Pomodoro Timer app. It’s a simple app, you can write a basic one in a hurry, but if you dress it up a little, you just might be able to sell it and make some decent coin. Sound tempting?

The Pomodoro Technique

pomodoro technique bookWhen you multitask – and a lot of programmers do – you might think that you’re getting more done, but in the end you end up with a set of half-finished tasks half-heartedly done. The way to really get stuff done and get into the much-vaunted “flow” state is to focus on a single task at a time.

The problem is that our brains aren’t evolved for doing that sort of thing for really long stretches. Being able to focus on a single task for hours would’ve gotten us killed by sneaky predators or the other horrible things that Mother Nature came up with in her infinite wisdom and even more infinite sadism. The tendency to get distracted by other things is a great safety feature in the wild, but not so useful in the white-collar 21st century world.

The Pomodoro Technique is a way to be productive that also takes both the need to focus and our limited attention span into account. Francesco Cirillo came up with the idea in the late 1980s and formally defined it in 1992, and there are a lot of people, Yours Truly included, who use it to get stuff done. Here it is in a nutshell:

  • Choose a task that you want to get done. It can be anything: writing some code, filing your expenses, answering your email, filling out TPS reports, cleaning the garage – anything that you need to get done.
  • Set a timer for 25 minutes. Francesco Cirillo used one of those wind-up kitchen timers shaped like a tomato, which in Italian is pomodoro, from which the technique got its name.
  • Do that task, and only that task, until the timer goes off. Focus completely on the task.
  • When the timer goes off, you have completed a Pomodoro! Take a five-minute break. Stretch. Walk around. Get a drink of water.
  • Repeat. You can either continue with the same task, or pick another one. Whatever task you pick, you must completely focus on it for 25 minutes.
  • Every 4 Pomodori (that’s the plural form), take a longer break. You’re only human.

That’s it!

Here’s why it works:

  • 25 minutes doesn’t seem so bad. Ever looked at a pile of work that you had to do and felt the fingers of icy dread wrap around your heart? That’s because you’re picturing the hours, days, weeks, months and even years that it will take. This is the sort of thing that leads to procrastination, and take it from me, procrastination will screw you up in so many ways. Looking at work in bite-sized chunks make it easier to deal with, in the same way that breaking down a program into bite-sized blocks of code makes it easier to deal with.
  • It’s simple. The more complex a working methodology, the less likely it is that you’ll follow it. Pomodoro is dirt easy — it takes only a minute to explain (and less than a minute if you talk quickly), and the only technology you need is a countdown timer that can measure a 25-minute interval.
  • It harnesses the most powerful force in the universe: compound interest. (Okay, you can argue that love is the most powerful force in the universe, but for the moment, let’s say it’s compound interest.) Compound interest is the result of tiny gains made over time. Each interest payment is almost too small to notice on its own, but collectively, and with enough time, the total interest is huge. Every Pomodoro is a compound interest payment in your “stuff done” bank, and over time, it really adds up!

If you’d like to find out more about the Pomodoro Technique, you can check out the book by its inventor, The Pomodoro Technique, which is available free of charge in electronic form from the Pomodoro Technique site. You might also want to look at Pomodoro Technique Illustrated, written by Staffan Noteberg and published by the Pragmatic Programmers.

Your Challenge: Build a Pomodoro Timer App

The 25-minute countdown timer is incredibly important to the Pomodoro Technique. You can’t truly practice Pomodoro without it; you’d have to occasionally check the time, which takes away from the one thing you’re supposed to do during a Pomodoro: focus.

Here’s the basic user story:

  • The user picks a task that s/he wants to focus on during the Pomodoro sprint.
  • The user starts the timer and begins working.
  • 25 minutes later, the timer makes some kind of sound signalling the end of the sprint.

Because I’m a nice guy and want you to succeed, I’m going to give you the starting point for a basic Pomodoro timer and leave it to you to finish it.

pomodoro app

It’s past any sane person’s bedtime as I write this, so I decided to save myself a little trouble and use Nigel “Compiled Experience” Sampson’s Minutes to Midnight app as the basis for my dirt-simple Pomodoro timer example. I left the XAML pretty much as-is; here’s the underlying code:

using System;
using System.Windows;
using System.Windows.Threading;

namespace Pomodoro
  public partial class MainPage
    private DispatcherTimer timer;
    private DateTime endTime;

    public MainPage()
      Loaded += OnLoaded;

    private void OnLoaded(object sender, RoutedEventArgs e)
      timer = new DispatcherTimer
        Interval = TimeSpan.FromSeconds(1)

      timer.Tick += OnTick;
      endTime = DateTime.Now.AddMinutes(25);

    private void OnTick(object sender, EventArgs e)
      var timeLeft = endTime - DateTime.Now;

      Countdown.Text = String.Format("{0:D2}:{1:D2}",
                         timeLeft.Minutes, timeLeft.Seconds);

The Minutes to Midnight app counts down the hours, minutes and second to midnight , which is pretty close in spirit to what a Pomodoro timer does. It uses a DispatcherTimer object and its Tick event to update the display of the time remaining to midnight every second.

I simply took the app and made the following changes:

  • Changed the namespace to Pomodoro
  • Declared a new instance variable, endTime, which would store the time when the Pomodoro should end.
  • In the OnLoaded event handler, I initialized endTime to the current time plus 25 minutes.
  • In the OnTick event handler, I:
    • Changed the calculated value of timeLeft so that it was equal to the amount of time remaining until the end of the Pomodoro.
    • Changed the formatting of the displayed time so that only the minutes and seconds remaining were shown.

Now it’s your turn! Can you:

  • Make the timer stop when the 25 minutes is up?
  • Make it play a sound when the 25 minutes is up?
  • Add controls so the user can start, stop and reset the timer?
  • Let the user type in the name of the task that s/he is supposed to focus on during the Pomodoro?
  • Store the number of achieved Pomodori and catalog them by task type and date?
  • Give the user a “medal”, “trophy” or “achievement” for completing large numbers of Pomodori?
  • Break away from the digital readout and make it look and feel more like a tomato-shaped kitchen timer? (See this article for inspriation.)
  • Make the code less like “example” code and more like “real” code (for instance, moving the main program logic out of the event handlers)?
  • Add a screen or two that explains the Pomodoro Technique?
  • Come up with other enhancements?
  • Write and submit a finished, polished Pomodoro timer app and submit it to Marketplace in the next couple of days?

There’s your challenge! Go write a Pomodoro timer app, submit it to Marketplace, and don’t forget to let me know about it!

This article also appears in Canadian Developer Connection.


Join the “Ignite Your Coding” Mobile Development LinkedIn Group!

Lit match: "Ignite your mobile development"

You might be familiar with the Ignite Your Coding LinkedIn group, a great place to keep up with all sorts of development news (and not just for the Microsoft’s platforms, but for all of them). But did you know that there’s also a Mobile Development LinkedIn group that’s a subgroup of Ignite Your Coding? Join it, keep up with mobile development news, share your knowledge, join the discussions and get to know the Canadian mobile dev community!

This article also appears in Canadian Developer Connection.