Thursday, June 30, 2011

DataViews and Filter Expressions

Yesterday I helped a colleague with a problem involving a DataView that would not find any rows when given a valid filter expression that should have returned rows. It took a little while to figure the problem out, so I thought I’d post the solution in case anyone else is stuck with the same issue.

In our case we had a DataTable (as part of a DataSet) that contained rows. Using the Debug Visualiser for the DataSet we could view the rows and see the data we expected. We had a column called BranchId and we wanted to find rows with a specific value in this column. If we wrote our own loop (we’re working in .Net 2.0 so no LINQ etc.) to iterate all the rows, request the value of the BranchId column and check it against the value we were searching for (17 in the first case) we found the row no problem. However, if we created a DataView with a filter expression of “[BranchId] = 17” now rows were returned.

The usual culprit here is ‘RowState’, where you must tell the DataView whether to include added rows, deleted rows, or to look at the modified or original versions of the rows. However, our code was correctly telling the DataView which row states to check, and the row state for the rows in question matched, so this was not the problem. Interestingly if we called AcceptChanges on the DataSet then the view would work fine, but we couldn’t do this because we needed to retain the current row state value for later in our algorithm, and AcceptChanges resets the row state.

In the end it turned out the problem was caused by a failure to call ‘EndEdit’ on the row. Specifically, the BranchId value for these rows had been programmatically set via code earlier in the application and EndEdit hadn’t been called on the row afterwards. This meant the proposed value was 17, but the current and original values were‘unset’ (note, not actually null as requesting the original value threw an exception saying the value didn’t exist, even though nulls were allowed). Calling EndEdit on the row moved the value from ‘Proposed’ to the current value without affecting the RowState, and then the DataView filter worked fine.

Of course this all makes perfect sense when you think about it, and of course you should call EndEdit to commit changes to a DataRow when you’ve finished making them. The confusing issue in this case was that ONLY DataView was checking the ‘current’ value of the field. Everything else (the Debugger Visualiser and other debug tools, and any code we wrote to check the column value without specifying which value to check) was checking the proposed value by default. This made it appear like the DataView or filter expression was at fault, and there was no help, guidance or clear hint that the issue was caused by the same field having two different values simultaneously. Also, since most of our edits occur through controls like the DataGrid, EndEdit usually gets called for us by the control. It was only because we had (unusually) set the DataSet value programmatically that we needed to manually call EndEdit ourselves. Interestingly, there also doesn’t appear to be anyway to tell the DataView to check the proposed value rather than the current (committed) value.

So, moral of the story (and a good thing to remember anyway), always call EndEdit on your DataRows after you’ve programmatically made changes to them (and you want to keep/commit those changes in memory).

Friday, June 24, 2011

Windows 8 for software developers: the Longhorn dream reborn?

I really wish there would be a public anouncement from Microsoft themselves clarifying a few things, but at least this puts some of the recent rumours/leaks in a positive light (rather than all the drama and doomsaying that has been going on);

Windows 8 for software developers: the Longhorn dream reborn?

Tuesday, June 07, 2011

Why Apple Enthusiasts Are Wrong About Windows 8 - Techland -

Why Apple Enthusiasts Are Wrong About Windows 8 - Techland -

Will Microsoft Own the Web (Again) ?


Contentious title, I know, but that’s just to get you here. If you’re reading this, it worked.

With the recent news about Windows 8 from Microsoft, like many, I’ve been pondering their future. Since I work for a software development company heavily invested in Microsoft tools and technologies, my future is tied to theirs so this makes sense. It’s hard to know what Microsoft’s strategy is, or if they have one at all. Sometimes it looks like they’re doing new cool things (WP7), although uptake by the market doesn’t always follow. Other times it looks like the right hand isn’t talking to the left, or the whole company is in panic mode. Much has been written about how Microsoft is behind it’s competitors, or no longer relevant, how Ballmer is (allegedly) driving it under and so on. There have also been the debacles over the question of the future Silverlight and the use of the admittedly idiotic term “Native HTML” all of which have caused laughter from some sections of the industry. All this may or may not be true at present, but I’m wondering if there isn’t a secret plan that’s being missed by most. I wonder if perhaps those laughing should stop and think about this a little bit longer.

Microsoft could be said to have owned the web at one stage, Netscape/Mozilla created the first browser but Microsoft came out with IE and basically crushed them. Let’s not forget that Microsoft is generally pretty good at playing catch-up even when it’s later to the game, it is good and experienced at being the underdog. We can argue about which product was actually better, or whether the business practices employed by Microsoft were fair and so on, but in the end they had far more of the browser market than any other. Of course, while IE is still widely used today, other browsers are growing faster and have stolen a significant portion of that market share.

Combine that with the up take in portable devices, mostly Smartphones and tablets like the iPhone, iPad, and Android phones and tablets, and Microsoft seems to be fighting a losing battle. Are Windows 8 and IE 9 part of a plan to turn that around ? That might sound ridiculous, obviously Microsoft are going to release new products, obviously they’re supposed to be better than what came before, and obviously Microsoft hopes those products will save them. What I’m asking is are Windows 8 and IE 9 the first steps in a plan to create the web client platform of choice ?

Hardware acceleration in the browser (IE9), a (supposedly, depending on your personal taste) cool and striking new UI for Windows based on the already much lauded WP7 interface, and an OS designed to run across a variety of platforms and form factors ? HTML5 and JScript as the development tools of choice for Windows 8? What if “Native HTML" is supposed to mean “Native and HTML” or something similar ? Taking HTML5 and JScript seriously opens up a lot of applications to running on Windows 8 and being sold through the new Windows 8 app store that wouldn’t have been if it was native only. If Windows 8 actually provided additional capabilities for web applications, things that couldn’t be done on other platforms, then web developers (at least some of them) would get excited about that. All of a sudden we have a class of (good/excellent) web applications that either only work, or work best on Windows. What if the plan is to produce the killer client OS for using the web ?

You may be terrified by this concept, after all, many see the web as a place free of dominance by a single client platform and want it to remain that way. Or you might just hate the idea of Microsoft being the winner here. You may scoff. Who knows if Microsoft can actually pull this off (no doubt many would argue they can’t)… but what if Microsoft turned Windows into the iOS of the web ? What if you could get web and internet experiences like no other, but only on the Windows platform  and that platform ran on your smartphone, your tablet, your laptop, your TV ?

What if having the fastest or best standards support or whatever in a browser doesn’t matter because the web is no longer separate to your OS, constrained inside the browser ? Is this Microsoft’s answer to ChromeOS, albeit with a different view… instead of the browser being the operating system shell, the OS is a bigger, better browser ? What if the point here is not to kill non-web applications or move away from them, but to actually enable web based applications to compete with non-web applications on performance, beauty, offline support and general user experience ? What if Microsoft made Windows the coolest platform for consuming the web and internet (on any device) as Apple made the iPhone coolest smartphone ?

Ok, so Microsoft have been building the internet and the web into Windows in various ways for a while, this isn’t exactly a new concept. Security is also a problem that gets bigger the more you integrate the internet and web to the OS. Microsoft may or may not pull it off, and if they do it’s likely to be Windows 10 before we see the full fruits of this (possible) plan (if any). Just for a moment though, throw out any bias you might have and consider what the world would be like if Microsoft managed this feat. What would the world be like if no one wanted to access the web unless they were using Windows ? What if Microsoft owned the web again ?

Friday, June 03, 2011

Mobile Opportunity: Windows 8: The Beginning of the End of Windows

Check out the following blog post by Michael Mace on Windows 8 and the future of Microsoft. It is an an excellent article with an interesting and well thought out analysis of both the possible success and failure Windows 8 represents for Microsoft. There's even a warning for traditional web companies, the likes of Google and Facebook, should everything come together in Microsoft's favour.

Mobile Opportunity: Windows 8: The Beginning of the End of Windows

Thursday, April 28, 2011

Windows Forms : Beware the Tab Control


I discovered an interesting memory leak in one of my Windows Forms applications today. The cause and symptom are entirely obvious once you think about it, but it’s easy not to notice when you’re writing the code initially.

In this particular case I had a tab control with several tabs on it, and some of those tabs needed to be visible or invisible based on either the state of the application or configuration settings. Unfortunately the .NET control for Windows Forms has neither enabled or visible properties for individual tabs, so the common solution is to remove ‘invisible’ tab pages from the tab control (or not add them in the first place).

In my case the form and each tab page had been constructed and laid out with the VS designer, so all the controls and tab pages were created in the VS generated InitializeComponent method. As a result, my form start-up code then checked the state/configuration and removed the unnecessary tabs rather than just not creating them in the first place.

That’s all good… works as expected. The problem is that when I removed the tab pages I didn’t explicitly dispose them. You don’t normally dispose tab pages, or any control, since the form normally does this for you when it’s own Dispose method is called. However, the form only does this for controls it can find, via it’s Controls property (recursively through the control hierarchy). Since I’d removed the tab page from the tab control, the form never found it to dispose.

To make matters worse, some controls (in this case my own custom controls, but I believe at least the Microsoft provided DataGridView control does the same thing) connect to events on external objects, and disconnect on dispose. Since dispose was never called, they never disconnected from those event handlers and so an external reference to them survived which in turn caused the garbage collector to leave them alone. Viola, memory leak !

It is of course a well known issue in Windows Forms that whenever you dynamically add and remove controls from a parent control you must explicitly dispose them, it was just that in this case I’d written the code many years ago and either hadn’t known that myself at the time or hadn’t realised what I was doing. As a result, I ended up with a leak.

So, if you’re removing tab pages from a tab control make sure to dispose them. Just ensure you do this at the right time. If there is any possibility that you might want to re-add the control back into the tab, you either can’t dispose it until the parent control (or more likely form) is disposed. Either that or you’ll need to create and populate (with child controls) a new instance of the tab page to add back into the tab control. Otherwise, if you add back in the old disposed instance, you’ll get errors about disposed objects being accessed.

Saturday, March 26, 2011

Windows Phone 7 Connectivity Issue

It would appear that with WP7 devices you are often, at least with free wireless hotspots while out and about, better off disabling your Wi-Fi connection if you actually want to be able to connect to the internet. As far as I can tell, if you are connected to a Wi-Fi network with a weak signal, the phone doesn’t automatically fall back to one of the other connection methods (i.e 3G) on a failed/timed out network request. This means if you’re connected to a network via a bad Wi-Fi connection most or all network operations will fail until you manually disconnect.

That’s the bad news. The even worse news is that WP7 doesn’t seem to have any way to manually disconnect from a Wi-Fi network. You can delete the Wi-Fi entry, which means you are disconnected from it AND the phone won’t reconnect next time that network is in range, or you can disable the Wi-Fi feature entirely. If you do the latter, then you have to remember to turn it back on later when you want to use a good Wi-Fi network (like your home or office one).

This can lead to frustrating experiences. Earlier in the week I was in ‘store A’ which is next door to ‘store B’. Store B I have previously visited, has free Wi-Fi which I’d connected to and because my phone could see this from store A it automatically reconnected. Of course I wasn’t actually in store B, I didn’t realise I was connected to their network, and the connection was flaky because the Wi-Fi isn’t boosted and there were concrete walls and what not between the two stores. The end result was that everything I tried to do on my phone involving the internet failed… until I realised there was a Wi-Fi connection. Once I finally realised why I was having connectivity problems I tried to disconnect. Problem was, I want my phone to reconnect to that Wi-Fi the next time I visit store B, I just don’t want to be connected to it right now. That means if I delete the Wi-Fi network I have to manually reconnect next time I visit store B… not what I want. The only other thing I can figure out how to do is to turn off the Wi-Fi altogether, which I did.

The good news is that once I did that, my phone reverted to the 3G connection and I could access the internet again. The bad news is I then forgot to turn the Wi-Fi back on when I left so I used more of my monthly data plan than I intended because it was a day or two later before I realised the Wi-Fi was still off.

None of this is ideal. At the very least I should be able to manually disconnect from a Wi-Fi network without ‘deleting’ it. At best, and this is what I expected to happen, the OS should revert to the next most desirable (based on cost and speed) network when it finds the currently preferred network isn’t working as expected. Microsoft have people much smarter than me, and I’m sure at least one of them can invent some sort of heuristic algorithm to decide when to change connections and which connection to pick next.

As it stands, many ‘consumers’ would be confused by their phone not working in some places (not understanding the whole weak Wi-Fi signal issue), and technical users will be frustrated by the inability to just disconnect this one time.

Saturday, March 12, 2011

Application Domains and LINQ Reqults


Another quick note; it’s generally not a good idea to try and pass the results of LINQ queries across application domain boundaries, unless you first convert them to a list, array or other well known type.

The result of a LINQ query is typically some kind of anonymous type (often an enumerator), and that type exists only in the application domain where the original query was run and the compiler generated the type for you. Passing that type across an application domain boundary will typically result in a missing type exception. Alternatively, it could conceivably cause other unwanted code or assemblies to be compiled into the other application domain.

Convert the result to a known list, array, dictionary, or other collection avoids this problem so long as that type is known in both application domains (which all of the standard .Net ones should be).

Friday, March 11, 2011

Reporting Services Assemblies Only Work When Loaded from Disk


Just a quick note today, this time about Reporting Services.

I won’t go into too many details, but we have a Windows Service which loads nearly all of the assemblies it uses (barring the ones installed with the standard .Net Framework install) from a database, into custom application domains in memory, then unloads them when done. This means the assemblies never exist on disk.

I have just spent two days tearing my hair out, because scheduling local Reporting Services reports via this service didn’t work at one of our client sites (but did work on our test server). Server reports worked in both environments, but local reports threw an exception saying the ‘main’ report definition was invalid. Examining the exception detail showed an inner exception stating a path was invalid, which was coming from calls to System.IO.Path methods used to retrieve the version information stored in binary files (exes/dlls etc.).

At first we hadn’t noticed the version/System.IO.Path stuff and we thought the problem (given the top-level exception) was caused by us loading the report definition (rdlc) from an embedded resource. We assumed we were loading the wrong resource, or the resource was corrupt etc. Additional logging added to the service proved the retrieved definition was in fact correct.

Anyway, long story short… we solved it by installing the Reporting Services Redistributable on the server hosting the service (which is not the same server as is running the Reporting Services web server, hence the need for the install). Once the appropriate files were installed the system worked fine. It seems that code inside the Reporting Services assemblies, when working with local reports, tries to read the version number of one or more binaries (to work out what version of the rdlc to expect ?) and without the files existing on disk this process fails and throws an exception.

Most people will probably never encounter this, but on the off chance I’m not the only one who does, I thought I’d blog it for prosperity.

Saturday, March 05, 2011

Windows Phone 7 Pros and Cons

As promised in my previous review of the HTC HD7 and Windows Phone 7, here’s a shorter list of the good and bad about Windows Phone 7. Note, some things appear on both lists for different reasons.

Haven’t seen WP7 in action ? Check out this short commercial on YouTube.


  • Simple, elegant, beautiful main screen.
  • Overall, easy to use.
  • Responsive touch based input.
  • Best touch keyboard (at least in my opinion), with good auto-correct.
  • Good keyboard layouts for email and URL’s.
  • Live tiles update to show useful information (number of missed calls/unread messages/weather)
  • Quick access to camera by holding down hardware button.
  • Voice commands (hold down Windows button to activate)
  • Pin almost anything (web pages, applications, map locations, contacts) to the start screen.
  • Easy access to voice mail.
  • Easy access to call history, return missed calls etc.
  • Easy and fast integration to Windows Live (and Hotmail), Facebook and Gmail.
  • Share options from browser, camera applications.
  • No copy and paste.
  • Easy and quick access to in call phone options (hold, speaker, conference call etc.)
  • Wireless (Zune) Sync for media and podcasts
  • Text messaging based on conversations.
  • Easily attach images to text messages (MMS).
  • Easily forward text messages.
  • Easily add contacts from text messages or missed calls.
  • Link profiles from multiple services/locations into a single contact.
  • Excellent Zune based interface for playing music, media, podcasts etc. (and this will run in the background while you do other things).
  • Easily access last (and previously) taken photos from within camera.
  • Simple but functional email application with clear, easy to read text, pinch to zoom etc.
  • Tab browsing in browser (sort of, not actually tabs, but certainly multiple open pages with the ability to switch between them).
  • Develop applications using Silverlight (for WP7) and Visual Studio .Net.
  • Auto upload photos to SkyDrive.
  • Auto-strip GPS coordinates from uploaded images.
  • Find my phone feature.
  • Excellent applications for Flickr/Twitter.
  • Easy to update OS via Zune software (unless you’ve got a Samsung device, apparently).
  • Easy to update applications installed from Marketplace.


  • No custom ring tones (nor any downloaded ones in market place).
  • No direct Outlook integration (Outlook –> Hotmail –> Phone can be done with an Outlook plugin).
  • Exchange support overly difficult (I still can’t make it work) and not supported by all Exchange servers.
  • No voice guidance in maps application.
  • Navigation option in maps application only appears if ‘Browser and Search’ regional setting is set to US.
  • Quick access to the camera still needs to be quicker.
  • Camera settings not persisted between invocations of the application.
  • Live tiles concept not taken far enough – better/more information could be displayed, more tiles should be ‘live’.
  • Only about eight live tiles fit on main screen without scrolling.
  • ‘Application List’ (alternative to the main screen) provides a poor user experience.
  • Battery and signal status not always visible.
  • .com button on keyboard doesn’t provide options for common domain extensions based on regional settings.
  • Search, Windows and Back buttons are too easy to activate during games if they are capacitive buttons. Games should disable Search/Windows during play time to correct this, but usually don’t.
  • Search from within maps application is flaky.
  • Primarily touch based input – not great for txting without looking at the screen, not as fast as a hardware keyboard.
  • No multi-tasking for third party applications (rumoured to appear one day, possibly by the end of the year).
  • No favourite/frequently used contacts (only recent contacts, and only about eight of those in total with four visible at a time).
  • No direct twitter integration.
  • Share option from browser doesn’t integration with other applications (Twitter/Facebook etc.), limited to SMS and email.
  • No copy and paste.
  • No tethering.
  • Very limited Bluetooth options.
  • Cannot access/use phone as a removable drive when connected to PC.
  • Wireless Sync – limited to one wireless network, only starts sync after ten minutes of AC charging, pops-up Zune application on PC, may not cope with multiple windows profile on PC.
  • No hardware mute button (or single tap mute button on lock screen).
  • Text messaging based on conversations. Not brilliant if you prefer an inbox/outbox style arrangement, or want to easily delete messages after reading.
  • Problems with profile images disappearing from contacts (usually when contacts updated in Windows Live).
  • ‘One time’ alarms don’t get deleted when dismissed, rather they get turned off and left in the application list.
  • Problems syncing pictures from phone to PC (for many but not all users, especially those with HTC devices). Other media or in other directions work fine.
  • No Flash (at all, rumoured to be coming), no Silverlight within browser.
  • Must pay Microsoft to deploy your own software to a physical device, even if not published via the Marketplace, or just testing/trialling it. Tools and emulator are free.
  • Lack of ability to customise phone. Pretty much restricted to wall paper, selection of white or black background, and one of 11 colours for the theme. No custom rings tones, no additional colours, wall paper only shown on lock screen, can’t alter live tile sizes.
  • Moving live tiles around on main screen is sub-optimal for user experience, but not totally awful.
  • Keyboard layouts discourage strong passwords.
  • Best experience requires a data plan.
  • No ability to discover MAC address on device (for adding device to MAC address filtered wireless networks).
  • Wireless networking disabled when phone ‘locked’ to save battery – so data plan gets used instead.
  • Find my phone off by default.
  • No ability to restrict cellular connections/location service by application. System settings are all or nothing.
  • No unified inbox for email.
  • Only sync media via Zune, no support for Windows Media Player or other systems.

Friday, March 04, 2011

Copy and Paste – A Legacy Solution in a Modern World

If the rumours are true, an update to Microsoft’s new Windows Phone 7 operating system is due within the next few days. Even if those rumours prove inaccurate, the update is likely to arrive within the next month or so. The major change publicised for this update is the addition of “Copy and Paste” to the operating system.

Since WP7 was first released, forum/blog posts, online comments and reviews have been blasting Microsoft for failing to include Copy and Paste. Typically theses comments start with the poster saying they “cannot believe Microsoft didn’t include Copy and Paste, it’s 2011 already and iPhone and Android both have it !”. Arguments for Microsoft usually go along the lines of, “Well it’s version one of a completely new operating system and they didn’t have time to implement and test every feature”. From there the argument rages on, with the suggestion that while it might have been ok to release a system without Copy and Paste in 2007 (which Apple did), it’s not ok to do it now when competitors have already implemented it. There are those who have said they won’t buy a phone without support for Copy and Paste.

My question is, do we even want Copy and Paste ? Given the debate it’s clear people think they want it, but sadly, the customer is not always right.

Despite owning many phones including two prior to my new HTC HD7 that were capable of web browsing and email, I have almost never wanted copy and paste as a feature of my phone. I say almost, because on one occasion recently I wanted it for a single fleeting moment. I was viewing a web page on my phone (something I still prefer to do on a PC whenever possible) and I wanted to share it with my Twitter followers. My natural reaction was to reach for copy and paste, to copy the URL to the clipboard, change to my Twitter application and paste the URL in. In fact, it would have been worse than that. I would have had to navigate to a service like then paste the url in there, copy the output of that service and then switch to my Twitter application to paste the final value into the tweet.

Is that really what I wanted to do ? No. I wanted to share the page with Twitter users. I didn’t actually want to click, tap, drag or highlight the URL and choose to copy it. I didn’t want to switch applications, watching one screen animate to another, waiting for one application to go into the background and one to come forward.  Nor did I really want to manually go to and convert the URL, or even paste the url into Twitter. I just wanted to share the page. Any of that process might have been better (given the current state of the platforms) on iOS or Android, but it still would have been wrong.

At this point I found myself in a good news, bad news situation. Fantastically the WP7 browser includes a “share” option on it’s application bar menu. That’s what I should have reached for, that’s what I wanted. An option to share what I was viewing with a particular group of people via a specific medium, not some antiquated desktop technology from the 1970’s. The bad news is the share option, at present, only allows you to share a URL via email. There is no ability to share via Twitter, Facebook or any other service except your configured email accounts. So close, Microsoft, yet so far. This is surely an oversight on Microsoft’s part, since the camera application updates to include support for TwitPic and Flickr when the appropriate applications are installed (SkyDrive/Windows Live, email and SMS messaging are available by default).

Of course copy and paste would have allowed me to solve my problem, but we as an industry and particularly as consumers have moved past ‘good enough’ solutions. Apple’s iPhone and iPad have led the way in proving this. When Apple release a product that is missing features they are often defended by those who say it doesn’t matter features are missing, because what is there is so good. It’s the user experience that matters now, and it is through improved user experience that Apple are doing amazing things and pushing the industry forward. Given this, I’m actually surprised that Apple implemented copy and paste in their own platform. They more than anyone else should have been in a position to insist that it was the wrong answer, and provide a better solution or solutions. After all, they remain strong on their anti-Flash arguments despite criticism for it from many quarters and they have pioneered new user interface concepts.

Is copy and paste a good user experience ? Not really. It’s certainly what we’re used to, and what we’ve been conditioned to look for. It’s also relatively easy to engineer, and if done correctly can be provided by the underlying operating system and therefore operate in virtually any application without that application’s developer having to do anything. That’s also the biggest problem with it. While copy and paste is great as a fall back for when the user experience is already broken, we shouldn’t be using it when we don’t have to. We should be demanding greater and smarter integration. Copy and paste won’t run my URL through or tinyurl for me automatically, but fantastic integration between the browser and Twitter application would. If someone sends me a txt message with a name, phone number and address in it,  I don’t want to carefully copy and paste each value between applications, constantly switching between one and the other. I want to tap the info then select ‘save as contact’ and have the phone try to sort out which bit of text goes in which field in a new contact. Of course it should also allow me to tweak which data goes where if the phone gets it wrong. There are plenty of examples where copy and paste can be used, but is actually a hack to get around the fact that different applications or parts of the operating system don’t integrate the way they should.

My concern is that once we have copy and paste, improving the integration between applications becomes less important. Because we can use copy and paste, and because it’s easy for developers to implement (in fact they shouldn’t have to do anything), better integration between applications may not even be thought of let alone implemented as a priority.

I’m not upset about having copy and paste in the phone. It’s the ultimate fall back for sharing information between programs (except perhaps for the file system, which is also disappearing in the mobile space). Despite the fact I think you’re crazy to try and create Office documents (or most other sorts of document based content) on a phone, I can accept that if you do then copy and paste would probably be useful. I have to ask though, have consumers done themselves a disservice by demanding copy and paste ? Will Microsoft recognise this and resist the urge to say copy and paste is good enough ? Will we eventually see development tools that ask the developer what kinds of content the application can accept or publish every time a new one is created, and expose end points for dealing with that content directly to the operating system and other applications when it is installed on a device ?

On a desktop PC, copy and paste probably still has a place, at least for a while. It’s familiar, it works, and it’s already there. You also have a mouse and a full keyboard, which makes selecting and copying data easier. You can have non-full screen applications so copying and pasting between applications or even windows isn’t so painful. You’re more likely to be creating content, in particular complex documents with mixed data, which is where copy and paste shines. Copy and paste also works with multiple formats of data, text, images, folders & files, spread sheet cells, flow chart shapes etc. In the mobile space though, we have different problems, different input methods and most importantly the chance to do something better.

Although having copy and paste on the phone doesn’t worry me (so long as we don’t let it ruin our future), I am upset that it was given such a high priority. There are many more missing features in WP7 that would be infinitely more useful. Even custom ring tones would actually be more useful to me personally. I can only hope the impending update includes more than a thirty to forty year old technology we should be abandoning as fast as technology allows, or that future updates that include other features will ship soon after.

Friday, February 25, 2011

HTC HD7 / Windows Phone 7 Review

I recently got myself an HTC HD7 mobile phone, running the new Windows Phone 7 operating system from Microsoft. This post will be a review of both the phone and the OS for anyone who is thinking of getting this device or one like it. While there are many reviews of various devices and the Windows Phone 7 OS on the web, there were a number of things I only discovered after I bought the device. I hope to provide those details here for others so they can make a more informed choice. Therefore this will be an in depth review, but I will try to provide a bulleted list of important points in a follow up post, for those of you who are too busy or lazy to read this one in full.

Let me say that overall I’m very happy with my phone and the Windows Phone 7 operating system. I think that WP7 has significant potential and could well grow to become the number one player (or at least a major player) in the mobile OS space… if all goes well. Having said that, this is version one of a completely new OS and a number of things are missing (even some features that have been in cheap handsets for five to ten years already). As such, the current implementation of Windows Phone 7 might not be for everyone. Additionally, Windows Phone 7 is built around a touch screen user interface, and while you can buy devices with physical keyboards, the core user interface expects touch screen input which makes the device different to use from non-touch devices. Again, this means the OS may not appeal to all users.

I’m going to split this review into two parts. The first one will focus on the specific phone I’ve bought (and therefore mostly the hardware involved). The a second part will be more general and cover the Windows Phone 7 operating system.

One more thing before I really get started, this review is based on my own opinions and experience with one device, used outside of the US (in New Zealand), and a little bit of information I’ve read elsewhere on the web. Therefore, your mileage may vary. I will focus more on problems, issues and faults I have with the device and the OS, since they stick in my mind more than the good points (I’m that sort of person). That is not to say the device or the OS is rubbish or not worthwhile. Whether they are right for you, will depend on your wants and needs, which make and model of phone you buy, and which version of the OS you end up with (things can only improve as time goes on). This is written before the expected March update so some of these things may change shortly, or by the end of the year when the “Mango” update ships.

The HTC HD7 Device

Day Thirty Seven - HTC HD 7 (Windows Phone 7)

As a Phone

First things first, my mobile phones are primarily phones not toys so let’s cover the phone functionality. The news is good. I’ve had no signal issues, the quality and clarity of voice calls is great, the screen automatically dims and disables when you raise the phone to your ear and volume on the calls has seemed fine so far. As a phone the HD7 is great.

The Screen

The HTC HD7 has a large 4.3 inch screen, and this is one of the reasons I bought it. I believe the larger screen makes the keyboard easier to use, and it’s also impressive for viewing YouTube videos, Flickr images and so on. The screen is bright, clear, sharp and very responsive in terms of touch input. Overall, it’s great. Unfortunately, it is a TFT screen not an AMOLED one so it could be better still. The screen is very hard to read in strong sunlight, and not great even in weak sunlight. The large size of the screen also makes the device itself pretty wide, and I find it to be just a little too big to be comfortably used as a phone. If you have larger hands than me you might not have this problem, if you have smaller hands you might find it very difficult or awkward. I suggest if you are looking at buying an HD7 (or in fact any phone at all) you try holding it as you would a phone before purchasing to see how it suits you.

Audio and Volume

Volume on the HD7 for media can be a bit of a problem. The volume control in Windows Phone 7 goes from 0 – 30, but apparently the volume level at each increment is not the same across different phone makes and models. So far my experience is the volume is fine when using the device as a phone, I’ve had no issues with hearing people during voice calls. Using the external speaker on the phone for the music player, YouTube player, other media and presumably also as a speaker phone can be a problem though. In quiet situations it’s fine, but listening to podcasts or music in my car doesn’t work as even on the loudest setting I can’t clearly and consistently make out what’s being said over the road noise and air-conditioning. I have not tried a headset or head phones with the device yet, but my assumption is they would eliminate this problem for me. Depending on how, when and where you use the phone this may or may not be an issue for you.

Look, Feel and Build

The overall look and feel of the HD7 is great. It has weight, but is not heavy. It looks glossy and pretty on the front with minimal logo’s and branding (most of branding is on the back). The back has a nice grey, silver and orange colour scheme. I don’t like the battery compartment cover, it’s flimsy and I find it awkward to remove. Possibly it is actually more robust than a hard shell would have been, but I don’t think this is the sort of phone you want to be dropping anyway and I would have felt more comfortable with something that felt solid.

HTC HD7 (Windows Phone 7 Device) - Back

Worse though, are the power and volume buttons. The power button is located on the top of the phone and requires a downwards push to activate. Since this is the main button used for unlocking the phone (and the phone is almost always locked when not in use) this makes it very awkward to unlock with just one hand. First of all the size of the device makes it difficult to use one hand to get to the button, and secondly the downward force means you’re effectively trying to push the phone out of your hand. The button is also quite soft and needs to be pushed nearly flush with the case in order for it to actually activate. The volume buttons are ok, but on my device they rattle when you shake the phone or knock them with your finders. The rattle is quiet, but it feels like a weak part on the phone.

The Camera

The camera is a five megapixel device with a dual LED flash. I should say I haven’t used the camera much and I’m not very good as a photographer so your mileage may vary. The flash is quite useful as a flashlight (using the HTC Flashlight application), but so far I have always found it too bright when used with the camera. Images taken with the camera seem pretty good, but I have trouble with handshake, particularly in worse than optimum lighting conditions. The camera button, while not as bad as the power or volume buttons, is still more difficult to activate than it should be. The phone can also take 720p video, but I haven’t actually tried that. Geotagging via the camera and location hardware is supported.

Other Features

A novel and possibly unique feature of the HD7 is the ‘kickstand’ on the back. This allows the phone to stand up on a flat surface in landscape orientation. The metal kickstand surrounds the camera lens and flash on the back. The stand itself seems solid, making a subtle and satisfying click when opened but the hinge it’s on feels a little flimsy. I believe HTC say this isn’t a problem and force applied to the hinge should cause it to close shut rather than snap off which is good but I haven’t dared prove.

At first I couldn’t actually figure out why the kickstand was useful, but that was before I realised the external speaker on the phone is on the back. If you lie the phone on it’s back the sound will be muffled, and if you lay it face down you risk scratching the screen and you can’t see  video or access the on screen controls easily. So if you’re using the phone to play music, podcasts, video etc. and you want to use the external speaker then using the stand will give you a better experience.

Of course this only works if you have a flat and stable surface to sit it on. If you have the phone in your pocket, in your car, or presumably on public transport this won’t be the case. Again, headphones probably solve the issue in those situations anyway, but then I wonder why bother with the kickstand at all ? If I’m listening to music at my desk or at home, I’m going to use my laptop, PC, stereo etc. and not my phone.


Battery life is ok but not amazing. I get about one day to one and a half days use out of a full charge. I always charge my phone at night, every night, so that’s not really a problem, but heavy users may have problems. Gone are the days of the 5110 when you could charge a phone overnight and not need to charge it again for two weeks, but then they weren’t running hardware anything like modern phones do so that’s not really a fair comparison I guess.

Under use the battery does get warm, but has never gotten too hot to hold or caused any other issues.

Other Stuff

The capacitive buttons (back, Windows, and search) on the front of the device look nice and work well. The only caveat is because they are capacitive, and the because the screen is also touch based, there is virtually no area on the front of the phone you can touch without causing something to happen. I frequently find myself accidentally pressing the search or back button when I didn’t intend to and then being dumped out of the application I’m in. This would be less annoying if WP7 supported multi-tasking for all applications (and some level of multi-tasking for 3rd party applications is coming, we’re told) but would still be an issue even then. Sometimes I hit these buttons trying to pick up the phone (although if it’s locked the phone is inactive so this isn’t usually a problem), sometimes my fat fingers just splurge over the side and activate the buttons accidentally, and sometimes when I’m typing on the touch keyboard my finger hits slightly low on a character near the bottom and activates one of the capacitive buttons.

HTC Applications

HTC also have some nice applications for Windows Phone 7. In particular the ‘Attentive Phone’ application is very cool. If your phone is ringing, turn it face down to silence the ring, picking up the phone automatically lowers the ring volume. If you’re already on a voice call, turning the phone face down automatically activates the speaker phone mode. The flashlight application which uses the LED’s for the camera flash to provide light is also pretty cool, as is the simple note taking application.

The Windows Phone 7 Operating System

Overview, Start Screen (Live Tiles) and Application List

The OS is generally very responsive and pleasant to use with the touch screen. Vertical scrolling is ‘inertial’ and a single tap or tap and hold on the screen while its scrolling will stop it in place instantly. Windows Phone 7 looks very sexy. If you’ve seen any other reviews, you’ll know the front screen consists of ‘tiles’ which usually contain an application icon and name. Most tiles have a single foreground (text and icon) colour on a solid background colour. The background (or ‘accent’ colour) can be changed via the phone settings. Although simple, this makes the display clear, easy to read, and very striking. Some tiles, such as the picture hub, Xbox Live hub, HTC hub and some third party applications like the Flickr app have background images instead of the solid background colour. Additionally, some tiles like the picture and HTC hubs are double the width of normal tiles (see the first image in this post if you want to take a look).

Many tiles are actually ‘live tiles’ which means they can display additional and dynamic information. For example the Phone tile displays the number of missed calls, the People hub tile displays images of contacts, and the tiles for e-mail accounts and the SMS tile display the number of messages since you last checked that account. This can be very useful, but I feel the concept has not been taken far enough. For example, why doesn’t the Phone tile display both the number of missed calls and images of the last two or three contacts who made those calls (if known) ? Judging from the People hub tile there should be room for that information, but it’s not there. If it were there, it would make it very convenient to check on a missed call and decide how urgent a return call is based on who it was. Ok, so this information is only a tap away, but if the live tile is going to show information like this shouldn’t it do a really great job of it ?

A nice thing about the front screen is that pretty much anything can be ‘pinned’ to the start screen as a tile (albeit it not necessarily a ‘live’ tile). Applications, individual contacts, map locations, images, music, videos, and games can all be pinned to the start menu for quick and easy access. You can also tap and hold a tile which will then allow you to move it around and control the positioning of the tile. Unfortunately, this isn’t a totally fantastic experience. I would like the pictures hub pinned to my start screen, but I don’t want it double width. I can pin or unpin it, but I can’t change it’s width. Likewise, I can’t make other tiles double width either. Moving a tile is easy enough to do input wise, but dropping one tile on another doesn’t swap them, nor does it sensibly re-arrange the tiles. Instead, the tile that was ‘dropped onto’ moves down to the next row and if it’s a single width tile then you end up with a blank space next to it. This means you now have to tap and hold again to move the tiles around to get a sensible arrangement.

A problem I have with the tiles is you can only get about eight of them on the screen before you have to scroll it vertically, and the more items you pin the less quick it becomes to use them. I can’t really see what could be done about this though. Making the tiles smaller would make them harder to use as touch targets and less useful as live tiles. Perhaps the answer is not to change the tiles on the front page, but to change the way the application list works….

Once you get past the tiles on the front page, things start to fall down. You swipe to the right to access the ‘application’ list, which is exactly what it sounds like. You get an alphabetically sorted list of applications, one column wide, with the icon and name of each application. The items in the list are easy to touch to activate, and it’s nice to see the application name in large clear text but I can only see about nine and a half applications at once. Scrolling up and down to find applications when you have many installed quickly becomes a chore. The list doesn’t re-orientate when you rotate the phone (and if it did it would probably need to display as two columns) so you have to use it in portrait mode. You cannot re-order the applications in the list, and you can only see applications, not contacts, map locations, or anything else you can pin to the start menu.

What would be better ? I’m not sure. Perhaps multiple pages of tiles, instead of a list (or as well as). Perhaps a grid of applications like iOS and Android have. At least then you could put more commonly accessed applications together on the same page and those pages closer to the home screen. Even if the list stays, it really needs the ability to resort items and add non-application shortcuts to it.

One thing I haven’t gotten used to is not always being able to see my signal status and remaining battery power. I don’t know why this bothers me, I don’t think I often checked it on my old phone, and it is available most of the time when I want it. Not having that info there also gives me back valuable screen real-estate (albeit it only a little bit) so I understand the decision to hide it by default. I guess it’s a security blanket, I may not use it very often but not having it there upsets me. To access this information (in most applications or screens) you just drag downwards from the top of the screen and the status bar with this information on slides out. The problem I had accessing this initially is that most reviews or instructions say you need to ‘touch’ the top of the screen to bring it up. Just touching the top of the screen seems to fail more often than not while actually dragging your finger down a few millimetres from the top of the screen seems to work ninety nine percent of the time.

The Touch Keyboard

The touch keyboard on the phone seems to work well, or at least much better than any other touch based cell phone I’ve tried (including the iPhone 3 and 4), although Samsung’s swipe to text on Android seems to work remarkably well too. When I last tried to use an iPhone I found I couldn’t type on it at all, and the result of my attempts was so bad the auto-correct usually had no idea what I meant either. Obviously many iPhone users cope fine, so this probably reflects more on me than the device, but I find that I can type much better on my WP7 device. This may partially be due to the large screen size on the HTC HD7, but I don’t think that’s the sole reason.

In addition to the keyboard working well, the auto-correct is very good. The horizontal layout of the suggested words makes it easy to pick the right option and hard to pick the wrong one. There are also good keyboard layouts for entering certain kinds of data such as email addresses (where the @ symbol and common domain names are easily accessible).  There is a smiley button which brings up a short list of common smiley’s which is cool, but they really are smileys. They appear as punctuation marks, not graphical icons as many other phones now use, and the list is somewhat limited.

Unfortunately, it’s not a perfect solution. First of all, it’s still a touch screen keyboard. This means you cannot type without looking at the phone. I’m not a txting wizard or even good at it, but on my previous phones I could send simple txts without watching the screen or thinking hard about what I was doing based on the location of the keys. This allowed me to txt and walk, cross the road, make eye contact during conversations etc. You could argue that I shouldn’t have been txting in these situations, and perhaps you’re right, but the inability to do so now frustrates me sometimes.

I also find that text input is slower than on my old hardware keyboards, and that I cannot type two handed. If i try to type two handed then I cannot accurately hit the keys on the keyboard (this may have been my problem with the iPhone too). The way that works best for me is to hold the phone with one hand, an type with a single finger on the other hand. This is pretty fast, and much more accurate than anything else I’ve tried, but still slower than the old hardware keyboards with just number keys on them. I can no longer type one handed either. The phone is just too wide to get a finger or thumb from one side of the phone to the other while still keeping a secure grip on the phone, and to accurately hit the button I need. Obviously this may be partly due to the hardware rather than the OS.

There are also little issues with the keyboard. For example, often a .com button turns up which will automatically enter .com for you in a single tap – cool. If you tap and hold this button, it will pop-up a menu of other choices such as .org, .net etc. Also cool. However, even after you manually set all your regional settings on the phone to a non-US region, no option for local domains appears. For example, since I’m in New Zealand I would expect to turn up in addition to the common .org, .net, .com etc. but it doesn’t.

My final thought on the touch screen keyboard is is a concerning one, and (I think) not limited to WP7 devices. It is my opinion that mobile keyboards (touch or hardware) discourage the use of strong passwords. Perhaps we should have moved past passwords as an authentication mechanism, perhaps we will eventually, but they are still common place now. Trying to type a complex password that consists of numbers, punctuation and alpha characters requires constant shifting between keyboard layout (on touch devices), or hitting multiple hardware keys, combinations of tiny hardware keys. Keying in passwords is more painful than anything else, especially when you have some combination of a single number, a single punctuation character and a single alpha character in a row. Either some cooler layout for password keyboards is needed, or we need to get away from using passwords for mobile websites and applications.

The Phone

Accessing the phone features is easy and efficient, although in some ways not as good as some Nokia’s I’ve owned previously. From the main screen pressing the Phone tile will bring up a Call History screen showing recent calls made and received, as well as missed calls. A phone icon next to each call allows you to quickly return or repeat a call and tapping an unknown number allows you to save it to a new or existing contact. You can also tap and hold an entry to bring up a context menu that allows you to delete the call from the call list.

At the bottom of the screen are three touch buttons, one that calls your voice mail box (a very handy shortcut), one that bring up the number pad for dialling, and one that takes you to the ‘People’ hub where you can select a contact to call. Selecting a contact in the people hub is kind of where this falls down. You get an alphabetical list of contacts, grouped by the first letter of their name (either first or last depending on settings). If you tap on the letter for the group, you get a full screen list of the letters of the alphabet and tapping one of those will skip to that position in the list, or else you can scroll vertically until you find the contact you want. There’s also an on screen search button where you can type a name to search for, and a button to add a new contact. Once in the contact hub, the mandatory hardware search button also takes you to the search contacts function (pressing the hardware search button a second time will take you to Bing web search).

All this works well enough, but on my old Nokia I could just start pressing numbers on the hardware keyboard and the phone would start searching for contacts either with those numbers, or with letters matching those numbers in their name. For example, if I wanted to call someone named Charlie I’d just type 242 and it would look for any contact whose name started with A, B or C followed by G, H or I, followed by A, B or C. This worked surprisingly well, but doesn’t work in Windows Phone 7 because there is no hardware keyboard, and even if there is the OS just isn’t designed that way. The search button on the screen is easy to miss, and you have to go either through Phone –> Contacts or via the People hub tile to get there which is all just more tapping. When I get to the people hub and I’m presented with the list of contacts, the natural thing to do is just scroll to find the contact, even though that’s (often) less efficient than searching. Presumably in time I’ll learn to do the faster thing, but the user interface just doesn’t lead you to it.

The settings page for the Phone application shows you your own mobile number and gives you caller id, call forwarding, and international assistance options as well as the ability to change your SIM PIN.

During a phone call you get three buttons on screen, End Call, the Number Pad button and a drop-down menu button. End Call obviously terminates the current call, and the number pad button displays the numeric keyboard on screen so you can use voice mail, telephone banking and other touch tone based services. The options on the drop-down menu for the third button include mute, speaker phone, add call (for conference calls) and hold. This is a very quick and convenient user interface which is easy to use and discover. I like this much better than my old Nokia phones.

My biggest disappointment with the phone functionality (and text messaging) is you can’t use custom ringtones. I know this is version one of the OS, but this seems like such a simple feature given the phone already supports playing media, that I just can’t believe they left it out. Now let me clarify. You CAN assign different ringtones to different contacts, although disappointingly there doesn’t appear to be a way to assign separate sound for a contacts SMS tone. What you CAN’T do is use an MP3, WMA or any other kind of sound file as a ring tone. So no music, no sound effects, no quotes from TV shows etc. as ring tones.

At the moment, there don’t even seem to be ringtones in the market place. There does seem to be buried support for ringtones and selling ringtones in the market place, so it seems like this will come in a future version (please Microsoft, soon) but it’s not there now. I haven’t bothered assigning different ring tones to my contacts since none of the pre-loaded ring tones mean anything to me, so while I might know someone of importance is calling me I still won’t be able to tell from the tone alone who it is. This is just a broken user experience, in my opinion.

One more thing I’d like to see is a mute/silent mode button on the lock screen itself, that way you can not only silence an incoming call but also switch the phone to silent mode to deal with any future calls with a single touch (after you press the power button to bring up the lock screen). Alternatively, a mandatory hardware button for toggling silent mode would be good, but I’d prefer the lock screen option myself since I’ve already bought my phone and it doesn’t have one. At the moment to silence the phone you have to press the power button to bring up the lock screen (if it’s locked), then press one of the volume buttons. From there, you can either turn the volume all the way down (which means turning it back up again later), or you can press on the ring/silent icon that appears at the top of the screen. This is ok, but again it’s one more tap than seems necessary for such a common use case. It’s also not just tap, it’s a switch from a side mounted hardware button to a software button on the phone’s screen which might require a second hand, a different grip or some other kind of ‘context switch’.

Text Messaging

Text messaging works a little differently than I’m used to, as well as differently to the phone application. I’m not sure I like it. Unlike my old Nokia’s and Samsung’s, I no longer have messages or an inbox/outbox type structures. Instead, you now have ‘conversations’. I guess this is coming from the iPhone style of SMS handling. I’m used to dealing with messages, not conversations and I don’t find conversations actually add anything for me. I don’t text a lot, or to many people at once, and I can always recall what I last sent someone, so I don’t need to see my own messages to them, or anything other than their last message to me.

When you choose the SMS tile you get a list of conversations displayed, not text messages, although some of the last message received or sent in that conversation is shown below the conversation header. You can tap and hold to delete a conversation, tap a conversation to see all the messages in it and send a reply, or tap the add button to start a new conversation (send a new message).

Within a conversation each message sent or received is shown in a speech balloon, in the correct sequence, so you can see the whole conversation being had. I can see why this appeals to some people, but it’s not what I need or want. I don’t want messages I send stored on the phone, most texts I send are short and often don’t require a response from the recipient so they become useless noise in the conversation list. Likewise, I used to delete each message I received after I read it, but this is slightly harder (although not actually hard) on WP7 than on my previous Nokia/Symbian phones. Basically my old Nokia phones would have a one touch delete button or ask me if I wanted to delete a message when I left viewing it. To delete a message from the conversation screen in WP7 you have to tap and hold on the message, then choose delete from the context menu, then confirm the delete. To delete the entire conversation (which is what I actually do), you have to tap the application bar to bring up the additional menu items, then choose delete, then confirm the delete. Too many taps again.

One thing that is nice and easier is forwarding a message, simply tap and hold on the speech balloon for the message you want to forward and then choose the ‘Forward’ option from the context menu.

Choosing who to send the messages is weird, in that it differs from the phone application. You get a ‘to’ field a where you can key a contact name in, or you can press an add symbol to bring up a contact list – which looks the same as the list that appears in the people hub but doesn’t allow you to scroll sideways to recent contacts or the other pages in the people hub. Also, the button for choosing a contact from the list is small and hard to hit compared to other items in the user interface.

There’s a button to press to add attachments, such as images, into SMS’ (which presumably turns them into an MMS) and so that makes it nice an easy to send photo’s to other people’s phones. If you receive a message with an image attached, tapping it once gives you a bigger view (without all the other message stuff) and from there you can choose to use it as wallpaper or save it to the phone so it can be viewed later or used as a contact image etc.

Sadly, there’s no ability to switch between conversations and an inbox/outbox style mode, nor to auto delete/not store messages sent. In fact the only messaging options are to enable or disable delivery confirmations, and the number for the SMS centre.

It’s also not as intuitive to add a new contact from a received text message as it is from phone calls received or missed. I had no problem adding a new contact from a missed call, but I couldn’t figure out how to do it from a txt message I received. I’ve since discovered that it is possible, by tapping the phone number at the top of the conversation screen. Silly me, I thought I’d be able to tap or tap and hold the speech balloon that was the message itself. Either that, or there should be an add icon next to the balloon or phone number when the message is from an unknown number.

While the user interface doesn’t match my usual workflow, it does actually work pretty well for what it is and it will appeal to many people. On that basis, it’s neither broken nor bad, just mismatched for me personally. Despite that, it still functions for me, it’s just a little messy. One curious thing missing from the user interface is the contact’s profile image on received messages (or for the entire conversation with a single contact). Obviously this isn’t really necessary, but seems like the sort of thing that should be there.

The only thing here that is ‘broken’ is an odd problem with the dates and times shown on SMS messages I receive. Messages I send are marked with the date and time on the phone which is correct. However messages I receive often have nonsensical dates or times on them. For example I received a message today that was a reply to one I’d just sent a few minutes before, but the reply was dated tomorrow. I’ve had other messages turn up with yesterdays date, or with times on the same day but hours before the message it was in response to. I have no idea why this is. My own regional settings are correct, and the messages with the bad times have come from different phones owned by different people. I find it hard to believe everyone else I know has incorrect settings on their phones. It doesn’t even appear to be an issue with UTC time being used, as far as I can tell. It’s just weird. In fact, if I send myself an SMS message the sent messages shows the correct time but the received copy turns up with tomorrows date. Riddle me that, Batman !

The People Hub and Contacts

As mentioned in the phone section, the people hub is linked to from the Phone tile. As well as being the primary place for managing contacts and selecting a contact to call, it also links to social networks. Swiping left and right within the People hub will move between the Contact List, the Recent Contact list and the What’s New List.

The recent contact list is exactly that, recently used contacts. Unfortunately there is no frequently used contacts or favourite contacts page, which I would find more useful than the recent list we are given. The recent contacts are displayed as tiles and not in a list like most other places, which is a little strange. Worse yet, there’s only room for two rows of tiles with about about two and half tiles on each row, so you end up with two horizontal pages of recent contacts which just seems awkward somehow. It seems like it should be possible to display more in landscape orientation, but the application doesn’t rotate. Of course Recent Contacts is still better than nothing, and does come in handy sometimes.

The What’s New application shows updates from social networks, including Facebook and Windows Live (but not Twitter ?! – rumour has it Twitter integration is coming). I haven’t actually linked my phone to Facebook yet (I’m avoiding that), but a Windows Live account is required to use WP7 and I’ve linked my primary Live ID to the phone. Since my Windows Live account is already linked to Facebook in the cloud, I actually get many of peoples status updates and wall posts on the What’s New screen anyway. The same goes for LinkedIn and other accounts. Even if the phone isn’t specifically linked to them, linking Windows Live to them still allows this screen to show you bits and pieces from those social networks. You can also make comments on/replies to people’s updates directly from this screen, at least for some social networks. For anyone who loves social networks, this should be very cool. Since I’m not a big social network user it’s really just a gimmick for me.

I mentioned Twitter isn’t directly integrated to the phone, but there are third party applications available for twitter including an official one.

It’s not all sunshine and roses, however.

When you link a Windows Live or Facebook account to your phone, all of your ‘friends’ from those networks automatically become contacts in your phone (at least where privacy settings allow). I understand that you can turn off Facebook contacts altogether, or limit them to contacts with phone numbers (I think), but I’m not actually sure these options go deep enough. Not having actually tried it I can’t really comment.  You can add contacts on the phone that don’t exist online, as well as additional contact details that aren’t available from the online profile (although they may sync back to Windows Live, I haven’t checked yet).

Where a person exists in multiple networks, you can link different profiles together to form a single contact. All this should mean you can get a single view of a person across multiple networks, and if your contacts keep their own phone numbers/addresses up to date on line you should never find yourself with out of date details or having to import ‘business cards’ into your phone. The problem is that not everyone publishes their contact details to you, so you may still end up having to manage that data yourself.

I found that somehow I had multiple Windows Live profile entries for the same contact (for many different contacts). When I went to edit a contact’s details I was asked which profile to edit, and every profile had the same name (“Windows Live”) which made it difficult to find the data I wanted to change. Frequently the multiple profiles contained the same data and so were effectively duplicates anyway. I decided to fix this by cleaning up my Windows Live contacts. One benefit of syncing contacts to the cloud is that you can then do bulk management of the contacts on line rather than on the phone. This can be faster and more convenient since you have a big screen, full keyboard and Windows Live already has de-duping and contact clean up options.

After spending an hour cleaning up my contacts online I was pleased to find they had already automatically synced to my phone and the multiple Windows Live profiles problem had disappeared. I was then distressed to find that all the profile images that had previously been in my phone had disappeared. No amount of syncing my contacts will get the images back. Looking online it seems I’m not the only one with this problem, and that deleting the Windows Live account from the phone and re-adding it will solve the problem. You you can’t do this with your primary Windows Live account, however. I think if I hard reset the phone I’ll be able to set up the account again and then sync fresh again. This should also solve the problem, but I don’t really want to do a hard reset of my device. I also strongly suspect the problem will re-occur as soon as I edit my contacts online again. Very uncool, and Microsoft need to fix this quickly.

One thing I applaud Microsoft for is taking Facebook seriously. Apparently if you have both Windows Live and Facebook profiles linked for a single contact, the Facebook profile is the ‘primary’ one at least in terms of which contact image is displayed etc. It would be easy for Microsoft to try and push users towards Windows Live by making it the default, and/or claiming that not everyone has or wants a Facebook account and therefore make Windows Live the default. I’m not big on social networks, and I suspect that Windows Live is actually cooler in many ways that Facebook, but the critical factor is that most people (or at least many, many, many consumers) have a Facebook account and that is their primary social network. This may change overtime, but it’s the way things are now, and it’s good to see Microsoft recognising that and behaving accordingly (even if I loathe Facebook myself and am avoiding linking my phone to it).

Of course not everyone has a sensible image for their social network profiles, or maybe just not the image you want to see. In that case you can still choose an alternate picture, either from a different social network or from an image stored on the phone. This way you can have the image you want, but most contacts will come with a sensible image so you don’t have to go around asking everyone to pose for a contact photo for your new mobile etc.

Apart from the image sync issue, and any privacy concerns you have about storing your contacts in the cloud, this whole system seems to work pretty well and is pretty cool. A note on the privacy issue, I don’t believe your contacts have to be publicly visible on the web (probably depends on the social network the contact is attached to). Certainly calendars and other data that syncs to the cloud from the phone can be explicitly marked private. The issues are really that you might accidentally mark something public/fail to mark it private, and also that data stored in the cloud is (in theory) open to more attacks from more people because it’s stored on the internet rather than on a device in your possession with somewhat more limited connections. So long as you’re not storing national secrets or confidential medical/legal data etc. n your contacts and calendar you should be pretty safe… but make your own decisions.

The really weird part comes when we talk about integration to other Microsoft products. Hands up if your current phone can or does sync to Microsoft Outlook ? Not if you’ve got Windows Phone 7. You cannot sync Outlook directly to a WP7 device. You can sync Outlook to Windows Live/Hotmail via an Outlook plug-in and then sync that account to the phone (for some data, tasks apparently aren’t supported) but there is no more ActiveSync/Outlook integration. I’ll cover sync later, but basically syncing to your local PC is now don via the Zune software and just does media not contacts, calendars, tasks etc.

If your Outlook is connected to Exchange, then you might be in luck. Maybe. Windows Phone 7 is apparently missing some security features required by many Exchange installs, and requires the Exchange server to support some specific features (Exchange Active Sync aka EAS). Setting up my phone to connect to Gmail, Hotmail, and Windows Live was super simple and quick. So far I have completely failed to connect my phone to my office Exchange server even after hours of trying, and with the ability to mess with the Exchange server installation and configuration myself. Even if I had made it work, the processes requiring you to export security certificates, email them to another (webmail) account accessible from the phone and install them would be beyond many ‘consumers’.

Microsoft’s response to this mess seems to be this is an OS for consumer devices and most consumers don’t use Exchange. I have two issues with that. First, many consumers do use exchange at work (whether they know it or not) and more and more consumers want a single device for work and play. Of course if direct Outlook sync was available this wouldn’t be a problem for these users or those who use Outlook without Exchange. My second issue is that if you’re going to go with that line of logic, then don’t support Exchange at all. Either you are building a consumer device and consumers don’t use Exchange, so no support is required, or there’s enough demand for Exchange support to make it worth building. If the latter is true, then that support should be just as slick, secure and cool as the integrations to other non-Microsoft systems. To me the whole ‘consumer’ argument is nonsensical and circular.

In addition to the People hub you also get a ‘Me’ tile on the front screen. Accessing this tile will show your own status updates and wall posts, and allow you to make a new status update easily. This is also a nice feature, but it would be nice if it also showed your own mobile number and maybe email addresses.


One of the most common things I use my phone for is as an alarm (reminder) system. I use the alarms for general wake-up/go to work style alarms, as well as one off appointments or reminders for the current day (I generally find the alarm apps on phones easier to use than the calendar apps for one-off reminders).

The standard alarm application in WP7 is simple and works pretty well, with a few exceptions. When you open the alarm application you see a list of alarms, with their time, name and the day or days on which they occur (or ‘once’ if they only occur one time). Next to each alarm is a slider button that allows you to turn the alarm on or off, and at the bottom is a button to add new alarm. This is all pretty cool and self-explanatory. Adding a new alarm allows you to set the alarm name, time, individual days on which it occurs, how often it repeats (if at all) and the sound to use. Note, just like ringtones, you cannot use custom sounds.

I only have two problems with the alarms as they stand. The first, and only remaining problem, is that a one-time only alarm is not deleted when you dismiss it after the alarm goes off. Instead, it is turned off and the alarm remains in the list. For an alarm I specifically marked as occurring once only, this is definitely not what I want. I want that alarm deleted. Leaving it their only adds cruft to my phone and makes managing other alarms in the future harder, unless I manually delete each one after it occurs, in which case why can’t the phone just delete it for me ?

The second problem is an odd one I’ve recently solved. Shortly after I got the phone I setup three alarms. One occurred at 7:00am on every weekday, one occurred at 8:00am on every weekday and Saturday and the third occurred at 8:45 on every weekday. Setting up the alarms went fine, and they all appeared normally in the list of alarms, but when the alarms went off and I dismissed or snoozed them I would have to do so twice. Immediately after hitting dismiss or snooze, a second prompt for the same alarm would occur, and dismissing or snoozing that one would do the right thing. Other alarms I added didn’t do this. After a while I got sick of this and deleted those three alarms and recreated them. Since them the problem has gone away. Probably you’ll never encounter this, but if you do, try deleting the alarm and recreating it to solve the problem.

One little thing that is sort of annoying but not a problem is the live tile for the alarm application. The application shows the word ON in the top right corner when there are alarms enabled, and sometimes the time of the next alarm at the bottom of the tile (I think when the alarm’s next occurrence is the same day). Unfortunately, it seems if you have any alarm that repeats then the alarm tile always displays ON which makes that feature kind of useless. I’m not sure what it should do. Either only display on if the next scheduled time is today (like it does for displaying the time of the next alarm), or only display ON if there are one-time only alarms.


At this stage I don’t have much to say about the Calendar. I don’t use it much and I haven’t really tested it out. I also haven’t used the calendars much on my old phones, so I have little compare it to. About the only thing I ever did with the calendar on my old phone was sync my business calendar in Outlook to my phone for meeting reminders, and now there’s no Outlook sync and I can’t get Exchange sync working I’ve just given up on this. It’s not important enough for me to bother with, most of my work involves being the office and doesn’t involve meetings or appointments.

I can say it does sync fine to Windows Live calendars, you can have multiple Calendars, and the Calendars themselves can be private (i.e not visible to your Windows Live contacts or other web users). You automatically get a birthday calendar where birthdays can be manually added, and are also automatically imported from Windows Live and Facebook profiles. You will get (by default) a reminder for each automatically imported birthday which can be annoying if you have many contacts online who’s birthdays you don’t really care about. You can turn off the reminders in the Windows Live calendar (and presumably in the phone) for individual contacts, but you need to actually go and do this for each contact. Thankfully, unlike my old Nokia, the birthday calendar won’t cause you to get reminders going off at Midnight of the day of a contacts birthday !

The calendar also has a double width live tile, which seems unnecessary, at least for me.

Each calendar can have a different colour associated with it, so you can easily tell business appointments from personal ones etc. You get day and month views of the calendar but no yearly view (which apparently some people want, although I can’t image why). You also get an Agenda page which shows you your next ten or so appointments, regardless of how far apart they are in your calendar, which can also be useful.

Media, Music, Pictures and Syncing

As a media player the WP7 OS rocks. It’s functional, easy to use and pretty. I’ve never used a Zune device, but I’m lead to believe the WP7 user interface is based on the Zune or Zune HD. Music, Video, Podcasts and Radio are all supported. Still images are also supported, but are accessed from a different area (normally the Pictures hub) than than the Music & Videos tile. New and Recently played items are easily accessed and displayed with thumbnails of album covers etc.

Syncing of media is done via the Zune software. You cannot use ActiveSync, Windows Media Player, iTunes or treat the phone like a USB drive. Rumour has it some phones have hacks that allow you to enable treating the phone like a USB drive, but they haven’t worked for me and I have little confidence that doing so would allow files copied on this way to be accessed via the apps on the phone.

I don’t really mind the Zune software as the primary syncing mechanism, it actually seems quite good. My only issues are that because the Zune is focused around media, there is no syncing of other data, like contacts, tasks, calendars, data files etc. from PC’s and also that many people (myself included) have problems with the Zune sync.

Throwing ActiveSync away for WP7 devices was a good thing, and I applaud Microsoft for this. ActiveSync, despite some good attributes, was cumbersome and often failed for many users. Unfortunately, replacing it with a new system just as prone to failure doesn’t improve the situation. My only sync issue at the moment is that photo’s and videos on the phone will not sync back onto my PC (from the PC to the phone works fine though). I can get photo’s off the phone by uploading to Sky Drive or emailing them, but that’s not what I want to do. The error I get when I try to sync seems to have been experienced by many other people, especially HTC users so maybe this is a problem with something HTC have done. Despite several hours of web searching, I have not been able to find any solution to this, and it’s not a pressing enough problem for me to spend more time on right now.

Although the WP7 device doesn’t support multi-tasking for third party applications, you can play music, podcasts and radio in the background while doing other things on the phone. Pressing the volume buttons when the player is in the background will cause controls to play/pause/stop the media to drop down from the top of the screen for quick and easy control. There’s not much more to say about this aspect of the OS, everything works as expected and works well.

One feature that should be truly awesome is “Wireless Sync”. This allows you to sync your media (music, podcasts, video, pictures, and other stuff handled by the Zune software) via a wireless network. Unfortunately, while the feature works very well technically, its design doesn’t work at all for me. The two main issues are that you can only sync on a single nominated wireless network, and when the device syncs.

The primary PC I sync my phone to is a laptop. Since that’s a mobile device in and of itself, it connects to multiple wireless networks. I would really like to be able to sync my phone both at home and at work, so I need the wireless sync feature to work on either any wireless network or on at least two different nominated networks. Since the Zune software only allows you to nominate one wireless network to use, which network do I select ?

The second, and bigger problem is that wireless sync only starts after the phone has been charging on AC power for ten minutes. Of course the phone and the PC to sync to have to be on and connected to the appropriate wireless network. If this is the case then the Zune software will automatically open (good !) and the sync begin. Unfortunately my laptop isn’t left on overnight (actually, neither is my home PC) and I only ever charge my phone at night while I sleep (I have no need to charge it any other time). That means the wireless sync never occurs for me. If I could manually start the sync, or the sync occurred whenever the phone (re)connected to the specified wireless networks, at a specific time of day, or every few hours then I could make use of this feature. With the way it’s designed at the moment, it’s never going to work unless I make a special effort and from my point of view that’s not what this feature should be about.

I have an additional worry about wireless sync, which is what happens with multiple user profiles on a single PC. I know the iPod and iTunes don’t handle this well, and I suspect Zune/WP7 might be the same. Imagine this scenario; a single home PC shared by multiple family members each with their own Windows logon. If someone plugs in their phone and the wireless sync starts while a different user is logged into the PC, what happens ?

First of all, since the Zune software opens on screen when the sync starts, the best case scenario is that everything works but the user at the PC is annoyed because the Zune software opens and steals focus from the application they were using. Of course it’s also possible that user will try to close the Zune software (and may continue despite the warning about the sync being in progress), in which case the sync will be cancelled, uncool. Of course, that’s the best case scenario.

The worst case (and what I fear actually happens) is for it to do what the iPod and iTunes do, which is to start syncing to the connected device using the current user’s profile. So if Johnny’s phone starts to sync and Sally is using the PC, then Sally’s media is synced to Johnny’s phone. Wrong ! Wrong, wrong, wrong ! Like I mentioned earlier, I’ve seen this happen with iPods and iTunes (connected via cable rather than Wireless), when someone plugs in their iPod to the PC’s USB port just to charge it while someone else is using the PC and the auto-sync feature is enabled, the wrong media gets synced. This is because the iPod isn’t linked to a user profile, but to a PC. It’s possible Microsoft have done something better with WP7, but I fear not.

At the moment I haven’t tried testing this to see what actually happens. If anyone knows what happens or is in a position to test it, please leave a comment so we can all learn something. The best thing would be for the sync to occur silently, so the logged on user is never aware of it happening, but I doubt this is the case.


The camera application is simple and functional. It is easily accessed either from the menus, or by holding down the camera hardware button for a second or two. This works even while the phone is locked, if you have the appropriate setting enabled. While this is a nice shortcut, and my primary way of accessing the camera, I’m not sure it allows you to quickly grab a shot you might otherwise have missed as Microsoft claim. While it is quick, it still takes a second to hold down the button and then you need to release and semi-press again to focus, steady your hands, then press again to take the picture. That’s assuming you don’t need to adjust settings such as the flash or scene mode, or change the zoom level. If you’re really trying to take a picture quickly in an unexpected situation, I suspect you’ll still be too late, or will get a blurry mess.

The on screen controls allow you to zoom in and out, switch between still and video mode, access the camera settings and view the last image taken. Being able to quickly get to the last image taken is cool. The right hand edge of the last image taken appears on the left hand side of the screen (just a narrow strip about a centimetre wide so it doesn’t obliterate the live view of the next image you might take). If you touch that strip the image scrolls into view and then you can scroll back and forth between all the images taken with the camera. You can also choose to delete an image, share it via SMS/email, upload to Skydrive or to some third party applications like Flickr and TwitPic.

Camera settings include ‘scenes’ for capturing the best image, effects such as black and white or sepia, the resolution of the image to take, the metering mode and a flicker adjustment for the screen as well as options for the flash. While it hasn’t been much of a problem for me (I don’t use the camera on my phone a lot), I’m told the camera settings don’t persist in between invocations of the application and this is frustrating many people.

Using the camera is much like any other digital camera. Press the shutter (camera) button half way down to focus (boxes appear on screen to show focus points) and then press it fully to take the picture. I do find that most of the images I try to take end up blurry because of handshake, but that may be either me or the hardware button on the HTC HD7 rather than the fault of the OS.

A couple of cool features exist around uploading your images to the web. The first is you can set the phone to automatically upload (and share) photos taken with your phone to your SkyDrive account. The second is that you can have the photo’s geotagged on the phone, but the GPS information removed when the images are uploaded to the web in order to ensure your privacy. This is great stuff, but it would be nice if you could auto-upload to other places (Flickr, Facebook) and I would personally prefer to be given the option to include the GPS data in the uploaded image on a per upload basis.

Email and Browser

The email and browser experiences on the phone are great, for a mobile device. The email user interface is certainly the best I’ve seen, at least for what it does, and the browser has been fine for me and much better than my old phones although I haven’t compared it to the iPhone or Android.

The default email view is crisp, clear, large and easy to read. You can pinch to zoom inside a message. HTML emails containing images do not download the images by default (you get place holders), but tapping a place holder will download all images easily. Attachments show up as icons on the email. Tapping an attachment begins the download, tapping it again after the download is complete opens it (and in the case of a security certificate file, will import it into the certificate store on the device). The screen on the HD7 makes it easy to read the emails even when zoomed out a long way. Double tapping the screen zooms to 100%.

The email application is very simple in terms of features. Each email account (each Gmail, Hotmail, Exchange, POP account) loads a separate instance of the of the application, there is no unified inbox across all accounts. There is very basic folder support within each account, so you can download and view mail that’s stored in ‘folders’ or ‘labels’ in the Cloud). Sending messages is intuitive and simple, but has few options for layout or fancy editing. You can have a simple text signature on your email if you want, and the default is ‘Sent from my Windows Phone’.

One thing with the email client that can be confusing for some users is following an image that is a hyperlink, when the image hasn’t downloaded yet but the image text is clear enough to indicate where it goes. The first time you tap the image place holder it starts downloading the image not following the link, which might have been your intention. Tapping it again before the image downloads and the page refreshes doesn’t do anything. Once the page reloads you can then tap the image to go to the linked URL. This makes perfect sense from a technical point of view, but might be confusing for some people.

The browser supports multiple open pages, although they aren’t displayed as tabs because that would reduce screen space. When viewing the list of open pages you see a thumbnail of each one and have the ability to close the page from the thumbnail list. Favourites are also supported. I’ve personally had no problems with the speed of the browser rendering, although the performance of the network isn’t always great (but then that’s probably not the fault of the OS).

Neither Flash nor Silverlight is supported inside the browser at the moment. Flash is rumoured for the phone, but no time frame given and I don’t know if that means flash inside the browser or just for running flash apps on the phone.  IE9 mobile is rumoured to be coming to WP7 by the end of the year and is supposed to be a fantastic mobile browsing experience, but I haven’t used it so can’t comment.

One that that isn’t great is the ‘share’ option. When viewing a web page in the browser you can choose to ‘Share’ it which will let you send the URL via an email message. This is great, even after installing third party applications there are no options for sharing via Twitter, Facebook wall posts or status updates or any other mechanism other than email. Interestingly the Camera application doesn’t suffer from this. after installing TwitPic and the official Flickr application I get share options for images when viewed from within the camera application itself, but no such integration seems to exist for the browser.

Despite how good the system is for a mobile device, if I have a laptop or PC nearby, I’ll be using that to browse the web and read email, not my phone. It’s handy having these functions on the phone when that’s not possible though.


Something that really upset me about WP7 is that, as far as I can tell, I cannot load custom software I develop myself onto the phone without paying Microsoft $NZ150 a year. It would be bad enough if it was a one off payment, but per year ? For a device I own and they are giving away the development tools for ?

To clarify, you can download the WP7 tools for free and use them to develop with the emulator at no charge. In order to load software you develop onto an actual device you have to ‘register’ the device for development which ‘unlocks’ it. In order to do this you must have an App Hub account. In order to create an App Hub account you have to pay Microsoft money. I think the amount varies per region but the well published price is $US99. For New Zealand it appears to be $150. What’s more, I understand the phone periodically checks internet services to see whether it should be unlocked for development or not and re-locks itself if the response is no. I believe this means if you stop paying the subscription then your phone will re-lock itself.

This all makes perfect sense in terms of registering with the Market Place to distribute software, at least if you’re going to charge for it or do advertising supported software. If you’re producing truly free software then I’m not sure where I stand, but perhaps the charge is still reasonable giving you are publishing applications to the market and there is some cost for Microsoft involved in that process. What I think is unreasonable is not allowing a developer to load a software onto a single device for their own purposes or testing without paying. I believe the process should work something like this; your app hub account can be created without payment, and linked to a single Windows Live ID. You can then link that Windows Live ID to a single phone (or nominate a single phone as a test device).  Then you can load any software from within Visual Studio onto that device. If you wanted to publish to the Market Place, then you’d need to pay.

It was previously possible to ‘unlock’ the phone using a third party utility, but that has now been discontinued. The developers of that utility have talked with Microsoft and there is hope that Microsoft will make changes in this area, but no details of what or when.

The rest of the development experience is pretty standard if you are familiar with Visual Studio, C# and Silverlight. There is a very cool Bing Maps control, along with some phone specific controls like the Pivot and Panorama controls. Integration to the phone and it’s core services is not great though. For example, you can’t read information about existing contacts or create new contacts. Instead you can display a ‘chooser’ to ask the user to select a contact and have the phone number or email address returned, but that’s about it. Likewise, you can start the camera and get an image returned, but I don’t believe you can get live video feed from it. You also can’t write a program to intercept an incoming call and choose to silence it or hang up based on some rules because the API to do that just doesn’t exist. In short, access to the phone’s services is mostly limited to starting an application (browser, camera, email etc) and maybe getting some limited information about a single contact/image/message etc. back from it. Hopefully this will change as the OS, development tools and libraries mature.

Maps and Navigation

The standard maps application is fairly basic, but works well. You can centre on your current location, search for locations, pinch to zoom and move around the map by touch. Performing a tap and hold will place a marker, and tapping the marker will bring up information about the location and points of interest/local businesses near it.

There IS a navigation option, but there’s a few issues here. First of all, when I originally setup the phone I set all my regional settings to New Zealand/English New Zealand etc. because that’s where I am. Doing this turns off the navigation feature in the maps application. I have no idea why, since if you set the “Browser and Search” regional setting back to United States the navigation option reappears and works fine on maps of New Zealand. There really doesn’t appear to be any reason for it to disappear when the regional setting is not the US. Basically, if you want to use the navigation feature make sure you set your Browser and Search region to the US.

There’s no voice guidance, although the route and directions can be seen on screen so this means it’s not really useful when driving even though you can switch between driving and walking directions.There also doesn’t appear to be any offline support, the map control requires you to have an active data connection, so if data is expensive, unavailable or your connection is flaky then the maps and navigation experience isn’t going to be great.

The search function is also odd. While it will find some streets by name fine, other searches take you to roads in entirely different hemispheres, or to roads in the country you’re currently in but that bear no relation to anything you tried to search for. For example, trying to find Wiseley Road while in Auckland, or even searching for “Wiseley Road, Auckland” will take you to places in the United Kingdom. Searching for Swanson Road will take you to Karangahape Road, although “Swanson Road, West Auckland” will actually find the right place. Neither of the first two search results is in anyway accurate or useful. Oddly, the mandated hardware search button takes you to the Bing web search, not the location search while inside the maps application. To get to the location search you have to click the application bar button with the same icon as the hardware search button. Given the hardware search button gets repurposed in other applications, this seems like an oversight.

There are two views of the map supported, the road map which is best for navigation or slow connections, and the aerial map which is basically the satellite image view. The satellite view is very pretty and nice to look at, while still showing roads and names of areas, roads, creeks, streams and so on. I personally prefer the aerial view, although the road view is faster, cleaner and probably uses less data.

Xbox Live and Games

I don’t play mobile games. I find Bejeweled and Tetris boring, and Angry Birds would be interesting for about fifteen minutes. Since I’ve mentioned it, Angry Birds isn’t available for WP7 at the time of writing but is coming. Apparently legal and contractual issues have held it up, rather than anything technical. There is an Angry Birds ‘clone’ available in the marketplace already, called Chicks ’n Vixens.

I play games like Mass Effect, Oblivion, Space Quest, Broken Sword and so on. Games with plots, stories, and depth. ‘Casual games’ as they’re often called don’t interest me. Of course, that’s just my personal taste, so you should check out the available options in the WP7 marketplace rather than rely on my opinion.

So far, XBox Live on Windows Phone 7 hasn’t really changed my mind about mobile games. I did find one flight simulator called “Rise of Glory” by Microsoft Studios that I played briefly in trial mode. While it was fun, it didn’t convince be to spend $4.99 to buy it (at least not yet). Other games I’ve tried have either been more basic and with less interesting controls, so they didn’t appeal to my personal tastes, or I didn’t understand how to play them despite the on screen help and tips(as was the case with “Zombies”).

For those with a broader taste in games the integration to XBox Live and your gamer profile is nice. With the addition of XBox Live Extras you can customise your avatar, earn achievements and increase your gamer profile points. There are also quite a lot of games to choose from so if you’re more interested than I am it’s likely you’ll find something to keep yourself entertained. There’s also an intriguing page within the XBox Live hub for ‘turns’, presumably for playing turn by turn games with other players. I haven’t found any games that use this, nor do I know anyone else with a WP7 phone so I haven’t tried it out but it sounds like an interesting concept.

Sadly, almost all the games I tried were frustratingly slow to load and to move between levels. Most are quick and fluid while actually playing, although my brief encounter with “Zombies” felt like the CPU was struggling to cope with the game.

Overall the experience isn’t bad, but it hasn’t thrilled me. As someone who has never been interested in mobile games in the past, that’s probably not surprising.


As mentioned previously there’s no custom ring or alert tones. Because the live tiles take up most of the space on the main screen there’s no real point in having wallpaper there, so there’s no option for that. You CAN choose custom wallpaper for the lock screen, which doesn’t have a lot of other detail on it and you see it frequently, so this makes sense. It seems like a custom image would also make sense for the background of the application list, but there isn’t an option for that currently. You can also choose a colour scheme using two different options, a light or dark theme and an accent colour. Your choice of accent colour is limited to one of about eleven possible colours though.

In short, customisation seems to be limited to; accent colour and white or black background, lock screen wallpaper, and what’s pinned to your main screen.

Bluetooth and Cable Connectivity Functions

With other phones you might be used to getting a whole host of functionality when you connect them via a USB cable or Bluetooth. My old Nokia had so many options I can’t remember what they all were, and I seldom used any of them. If you’re a heavy user of these sorts of features then you need to beware of WP7 – don’t assume the same options exist here.

When connecting my WP7 device to my laptop using a USB cable, there are no options at all. The Zune software will auto-start and perform a sync, but I cannot use the device as a USB/removable storage drive, I cannot use it as a modem or internet gateway, nor any kind of media device. In effect, all a cable connection allows is Zune sync.

Connecting the phone via Bluetooth allows me to do two things; listen to audio from my phone through the computers speakers and, use the computer as a headset or speaker phone for calls from. That’s it. There’s still no tethering (using the phone to connect the laptop to the internet), no ability to view files on the phone or copy files to/from it, no other options at all. I don’t really understand the first option, since I’m more likely to want to listen to audio from my PC (that I haven’t synced) on my phone if I’m at home or the office, I can’t think when I’d want to do the reverse.

So if you need more than those two options, you might want to hold off until the OS is updated, or get a phone on another platform. Luckily I never really did anything with Bluetooth previously, except copy images and sounds off the phone which can be done other ways now (via the internet and Wi-Fi).


A screenshot showing the available options when a WP7 device is connected to a PC via Bluetooth.

Networking and Data

You pretty much have to have a data plan for WP7 to be useful. You can turn off all cellular connections for data in settings, but this turns it off everywhere, you can’t enable it for specific applications (just like with the location service). I should clarify by saying some system level functions (such as find my phone, check for phone updates etc.) do allow you to turn off cellular data or say Wi-Fi only, but not for third party applications, or for email accounts etc.

What about wireless networking ? Yes, it’s included. It works great for me, although I’ve seen some complaints from other users on-line. Overall connecting to and using wireless networks is simple and easy, but there are two gotcha’s.

First of all, you cannot find out your MAC address from within the phone itself. This means if your wireless network performs MAC filtering you will need to use the wireless router to find out what your MAC is. That’s not generally much of a problem, but it is annoying the information isn’t just there in the phone so you can read it to your IT administrator etc. Presumably Microsoft hid this detail because WP7 is designed for consumers and your average consumer doesn’t understand MAC addresses. There are of course plenty of people who are consumers and do understand them, and plenty of network admins who are going to ask the user for the MAC address or try to find it on the users phone themselves. They will then be frustrated to discover they can’t get the information they need from the device itself. Worst of all, it appears this information can’t even be retrieved by third party developers, so even third party applications that provide system information won’t give this to you.

The second problem, and the reason you really need a data plan, is that wireless networking is turned off when the phone is ‘locked’ (and the screen is off). The phone automatically locks itself (and turns the screen off) after a configurable period of time, so it’s going to spend most of it’s time in this state. Because of this, your phone isn’t going to automatically retrieve email, check for phone updates, or any other data in the background while it’s unused in your pocket or on your desk etc. It also means that if you don’t disable the cellular connection entirely, the phone is going to use it (albeit for relatively small amounts of data) even when you’re connected to a wireless network, unless the phone is actively being used at the time. Since there’s no offline maps, unless you have a constant and free WiFi connection everywhere you go (including throughout the journey) you won’t be able to use the map application for navigation and so on.

Of course you *can* use the phone without a data plan, simply turn off the cellular data entirely and just use it on wireless networks, but it won’t be the optimum experience.  Your non-phone based live tiles aren’t going to update except when you’re using your phone, and you’re often going to have to wait for email to download etc. when you open the applications, since the syncing won’t happen when you’re not using the device.

I can understand turning the wireless network feature off to save battery, but you’d think the phone would reconnect periodically (to networks it’s allowed to auto-connect to) so the possibly expensive cellular connection either isn’t used or isn’t used as much when wireless networks are available.

Other Cool Features

A cool feature of WP7 is the ‘find my phone’ option. This feature is off by default, so you need to turn it on if you want to use it. Once enabled, you can use your Windows Live account on the web to find or erase your phone. Options for finding your phone include viewing it on a map, and causing it to ring (presumably without making a phone call for which you’d otherwise be charged for by your carrier). Additionally, causing the phone to ring this way ignores the silent and vibrate settings, so you’ll still be able to find it even in those modes. Another option is to lock the phone and put a please return to sender message on it. All of this should be great for finding lost or possibly even stolen phones, assuming the battery lasts long enough for these features to be useful.

Updating the phone is very easy. Today I received an update to the OS that prepares the device for the coming March update. The phone brought up a message this morning saying an update was available. I connected my phone to the PC via a USB cable, the Zune software auto-started and brought up a screen saying an update was available and asking me if I wanted to install it. I said yes, and the Zune software performed a backup of the phone, installed the new software and restarted the phone. I didn’t time the process but it felt like it took ten to fifteen minutes. There were no issues or problems and the phone has been fine since.

The Market Place live tile will show a count of the number of updates pending for applications you have installed, and on opening the Market Place you just tap the ‘Updates’ text to see a list of updates and choose which to install. Installing applications from the Market Place is also very easy.

Voice commands seem like another cool feature, although I haven’t used them myself. Just hold down the Windows hardware button for a second or so, then speak a command such as ‘Call Fred’, ‘Find Bus Stop’ or ‘Open Calendar’ and the phone will perform the appropriate action. The phone will also confirm it’s activity by speaking back to you.

I already mentioned Wireless Sync in the Zune/Media section. It’s a very cool feature that is completely broken for my usage patterns. If you didn’t read about it before, skip back to the Media, Music, Pictures and Syncing section. It’s worth knowing about in case it works for you.


I’m going repeat my comments from the top of this article here, since they accurately describe my overall impression;

Overall I’m very happy with my phone and the Windows Phone 7 operating system. I think that WP7 has significant potential and could well grow to become the number one player (or at least a major player) in the mobile OS space… if all goes well. Having said that, this is version one of a completely new OS and a number of things are missing (even some features that have been in cheap handsets for five to ten years already). As such, the current implementation of Windows Phone 7 might not be for everyone.