Mobile Breathalyzer - Another Free Windows Phone App

January 19 2011

Got another (free) Windows Phone App in the marketplace:

 The Mobile Breathalyzer

Using revolutionary technology in Windows Phone 7, the Mobile Breathalyzer allows you to determine your blood alcohol content using your phone. Um, yeah, right. Download this joke app and then have your drunk friends try it. Watch them blow into the phone, expecting a result. Good times!

Give it a try! Thanks to @systim for doing the design. Good old designer/developer workflow on this one -- Blend/VS did the trick.


Using The Nonlinear Navigation Service To Solve Back Button Problems With Window Phone 7 Apps

January 10 2011

Started using the NonlinearNavigationService to solve some issues in my app where the back button threw my app into a loop and the user could never back out of the app to close it. Which made the app fail certification incidentally. (Because you manually can't prune the navigation history, this is really the best workaround to avoid this type of loop.) This service works great -- just add the dll and you are good to go -- except it doesn't work with the Page Transition Service from the Silverlight Toolkit.  That's too bad, but hopefully someone out there will address that! If anyone does, let me know...

Music Buzz - A Free Windows Phone 7 Application For Discovering Music and News About Your Favorite Bands

January 7 2011

I've taken Buzz off the Marketplace and replaced it with Music Buzz, which is the same thing, but free!  The ecomonics of the app store are worth noting: Buzz, priced at 99 cents, received 5 downloads in two months. Music Buzz has already been downloaded 1000 times in the last two weeks! 

Here's a description of the app:

Find music, news and more about the bands you love. You'll be amazed at the latest buzz and music (remixes, bootlegs and more) that the Music Buzz application will discover.  Please give it a try!

Here's a screenshot:



Eschewing NavigationService Model in favor of RootVisual Model

January 7 2011

When developing Windows Phone 7 apps, one is inclined toward the navigation model for moving between pages.  But it is worth calling out that there is a different way to proceed, which is to simply load your new page in the root visual, as follows:

App.Current.RootVisual = new Screen4();

This has the advantage and disadvantage of entirely bypassing the navigation framework, which means that the back button always exits your app. I say this is an advantage because for certain applications, that's the very behavior you seek, and you can find yourself getting into a lot of trouble with the navigtation history problems, which can cause your app to end up in a loop and not be able to be exited (since there is no App.Exit() method for Windows Phone 7 - see this blog post for the reasoning).  I say disadvantage because you lose the ability to do navigation transitions, as explained in this post.

Nonetheless, it is worth considering up front when you start an application as to whether you should use the NavigationService model or the RootVisual model.

WebException on an HTC Windows Phone 7

December 9 2010

So, had this issue where HTTPWebRequest was throwing a WebException on a production HTC HD7 device – the error was "The remote server returned an error: NotFound."  However, the browser itself worked fine. What was really weird was that these same HTTPWebRequest calls work fine in the emulator and Samsung devices. I was totally flummoxed.

Turns out that there were a few misleading things to solve this bug.

First, was that all Web Request errors are mapped to a 404. So the real error could be (and was) different. In fact, the error from the server was a 500. The reason? The call to the server was the start of an OAuth handshake which involved sending a timestamp. Apparently, HTC phones with no SIM card don’t set the date or time correctly, and thus the DateTime.UtcNow was returning something totally bogus, and the server was rejecting the call.

The fix was to add a dialog to the app in the event that the time hasn’t been properly set.

One suggestion for debugging these types of HTTP failures is by setting the WiFi proxy on the phone to your machine’s IP, then using Fiddler2, and enabling the “Remote connections” option under Fiddler’s options.

Buzz For Windows Phone 7

November 23 2010

99[Update -- Buzz has been retired in favor of Music Buzz, which is the same app, but free!] 


Check out Buzz for Windows Phone 7. Find the buzz about the bands you love. You'll be amazed at the latest news, blogs, videos and music (remixes, bootlegs and more) that the Buzz application will find. 99 cents but it is worth it. Found stuff I wouldn’t have otherwise.

Here’s some screenshots:



Ten Tips To Make Your Windows Phone 7 More User Friendly

November 23 2010

I’ve now been using my Windows Phone 7 as my main phone device. And I’m definitely liking it. Out of the box, it is pretty darned intuitive and user friendly. But now, having used it for awhile, I’ve done some things to make it that much better.  Here’s what I’ve done:

  1. Change the lock screen to a black background. When using a phone I like to quickly glance at the screen to see if there are any new messages, etc.  And often just to see the time. I found using a photo on my lock screen to be too busy for this purpose.  They offer the use of a color lock screen, but they don’t offer black, which I think provides optimum readability since the lock screen text is always in white. So, I took a picture of a black sofa and then used that as my lock screen photo.
  2. Rearrange default tiles.  After using the phone for awhile, I determined which apps I kept returning to and rearranged my tiles based on usage. I still use my phone primarily to make calls, text message and use the calendar.  So here are the tiles that I have front and center on my phone
    1. Phone – After all, it is a phone!
    2. Messaging – Fastest way to text messages.
    3. Settings – When I’m out and about, I like to hook into wireless networks, so I find myself going to settings a lot to hook into wireless networks.  Plus, as I keep messing with the phone itself to get it the way I want it, I find myself in settings a lot. As such, I added the settings tile.
    4. Music – Now that I am using the phone as a Zune and plugging the 8th inch adapter into my home stereo and car, I find myself in the music section a lot.
    5. Calendar – At this point, I’ve been using my cellphone as a calendar for years, so it makes sense to have the calendar tile on there.
    6. Photos – Same with photos. Our phones are our cameras these days.

      (Note to Windows Phone team if you read this: I wish I could configure what images appear in the photos and music tile instead of it being hidden from me.)

      So, those six items each up all my space.  Below the fold on the home screen I am putting apps as I try them out.
  3. Change theme from dark to light. I really find reading white text on a a black background hard on the eyes after awhile. Thus, I changed the theme. Much better reading black text on a white background.
  4. Sync my phone over wireless. This is a really cool feature!  No more plugging the phone into a PC. Here’s how to do it: Note that you have to have a password protected wireless network for this to work. And, hey, all you iPhone users out there: this is a feature that isn’t on the iPhone!
  5. Manage my contacts/calendar via Outlook. See this post for more:
  6. Turn off location. Call me paranoid, but I don’t like location turned on with my phone.  See for more on why. What’s nice is that you can turn it off but still install apps that “think” they need it. For example, the official Twitter app says it is going to use your location when you try to install it, but you can still install it with location turned off.
  7. Change ringtone.  I liked 04 Silk.
  8. Turn off vibrate. Don’t like things vibrating in my pocket.
  9. Use speech recognition for search. The quality is really there! 
  10. Tilt phone to landscape mode when typing. It really makes the keyboard much more usable.

Missing ActiveSync? How To Sync and Import Contacts Into Windows Phone 7 From Outlook Using Windows Live Hotmail As A Bridge

November 16 2010

I am a long time user of Windows Mobile and I sync all my contacts and calendar appointments using ActiveSync with Outlook on my home PC.  These are all my personal contacts and personal appointments. It is a version of Outlook that is not connected to an Exchange server and is not tied to work.  Over the years this has been a rock solid back up for my contacts and appointments and, as I have moved from phone to phone, ActiveSync has always been perfect for getting all these contacts on to a new device.

So, when I got a Windows Phone 7, I needed to get all my contacts (phone numbers, etc.) and appointments on to the device.  But Windows Phone 7 doesn’t support ActiveSync. So what to do?

[UPDATED 11/18/2010 -- Another way to do this is using the Microsoft Office Outlook Hotmail Connector. That doesn't exactly sync your contacts/calendar, but allows you to drag and drop items from one place to the other.]

My initial searches for this on the web were suggesting that Google was the answer. But I didn’t want to use Google to sync my contacts and appointments.

The solution I found was to use Hotmail/Windows Live.  I was able to export my contacts and appointments out of Outlook and put them into Hotmail/Windows Live and then sync them to the device. Here’s how:


Step 1 – Export To .CSV

Getting your contacts out of Outlook 2003 or Outlook 2007 and into a .cvs works as follows:

  1. In Outlook, on the File menu, click Import and Export.
  2. Click Export to a file, and then click Next.
  3. Click Comma Separated Values (Windows), and then click Next.
  4. In the folder list, click the Contacts folder, and then click Next.
  5. Browse to the folder where you want to save the contacts as a .csv file.
  6. Type a name for the exported file, and then click OK.
  7. Click Next.
  8. Click Finish.

In Outlook 2010, it is a little more buried:

  1. Click the File tab.
  2. Click Options.
  3. Click Advanced.

Advanced command in the Outlook Options dialog box

  1. Under Export, click Export.

Export command in the Backstage view

  1. In the Import and Export Wizard, click Export to a file, and then click Next.
  2. Under Create a file of type, click the type of export that you want, and then click Next. The most common is Comma Separated Values (Windows), also known as a CSV file.

Step 2 – Import to Windows Live Hotmail

  1. Sign into Windows Live Hotmail.
  2. Click Contacts.
  3. Click Manage/Import
  4. Navigate to the .csv

You’re done!  To force your Windows phone to sync, go to settings, Email and Accounts and then press and hold the Windows Live account. It will display an option to Sync.


Unfortunately, Hotmail doesn’t allow you to do a bulk import of appointments.  Fortunately, I only had a smattering of appointments that I wanted to get copied on to my Windows Phone 7, so it wasn’t too painful to export each one individually and then import it into the Hotmail/Windows Live calendar.

Step 1 Export To .ICS

  1. Open the appointment that you want to export.
  2. Click “Save As” and make sure you are saving in the iCalendar format


Step 2 Import to Windows Live Hotmail

  1. Sign into Window Live Hotmail
  2. Click Calendar
  3. Click Subscribe (which turns out to be Subscribe/Import”)
  4. Change the radio button to Import. Also be sure to change the radio button to import into an existing calendar. One gotcha to watch out for is that, when you import an appointment into the Hotmail/Windows Live calendar, it tries to create a new calendar very annoying. You have to manually change the dropdown to your default calendar:


Unfortunately you’ll have to do this for each appointment you want to get into your Windows Phone.

Again, to force your Windows phone to sync, go to settings, Email and Accounts and then press and hold the Windows Live account. It will display an option to Sync.

Page Transition Animations and Windows Phone 7

November 9 2010

So you want your Windows Phone 7 application to have nifty transitions similar to how the native apps on the phone work. Most commonly you see the turnstile effect or the slide effect.


With the Silverlight Toolkit for Windows Phone, it is pretty darned easy. Download sample code. Here’s how:


  1. Download and install the toolkit. It gets installed to C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Toolkit\Nov10\Bin\Microsoft.Phone.Controls.Toolkit.dll if you were wondering. It should automatically appear as an option  as Microsoft.Phone.Controls.Toolkit when you go to add a reference.
  2. Change your app.xaml.cs file in the InitializePhoneApplication() method so that RootFrame is of type TransitionFrame:
  3. Then, under the root element of each page (which should be <phone:PhoneApplicationPage> add the transition you want. You'll need to add the xmlns to dll, like this: xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
    1. If you want Turnstile transtion, it would look like this:
    2. If you want Slide transitions, it would look like this:

And that’s it! You can also play around with the other transition modes supported, which are roll, swivel and rotate.

Download sample code.

App Hub Problems Solved By Updated Terms of Service on XBox Live

November 4 2010

I was losing my mind trying to use the App Hub up here:

But, then I found this:

If you're an App Hub member, and are experiencing any of the following issues:

clip_image001 Inability to access the Windows Phone Dashboard

clip_image001[1] Inability to access the Xbox 360 Dashboard

clip_image001[2] Inability to review Xbox 360 games

A recent change to the Xbox LIVE service may be affecting you. With the launch of the new Xbox 360 dashboard experience today, Xbox LIVE users are being asked to review and sign an updated Terms of Use.

The App Hub membership gives you the opportunity to develop for both Windows Phone 7 and Xbox 360 Indie Games, so even if you are strictly a Windows Phone 7 developer, this change may affect you. If you experiencing any of the above issues, please follow these steps to sign the new Terms of Use and restore your ability to access App Hub:

1. Sign out of App Hub

2. Browse to

3. Click "Sign In", and sign in using the same Windows Live ID as you do to sign into App Hub

4. Sign the updated Terms of Use

5. Return to App Hub (

6. Sign back in using your Windows Live ID to continue using App Hub as normal.


And now all is happy.