It seems that Microsoft has remembered that there are still developers out there building mobile applications. It would appear that there isn't much new stuff out there for mobile developers in the Windows Mobile platform (not much has really changes since WM5 was released). Hopefully with a new team blog and more interactive documentation things may be changing. Anyhow, enough of the talk, here are a couple of links worth checking out:
- Team blog for the Mobile Developer Group (Microsoft)
- MSDN Wiki:
Windows Mobile: http://msdn.microsoft.com/en-us/library/bb847935.aspx
Windows CE: http://msdn.microsoft.com/en-us/library/bb847932.aspx
Shared WM/CE Library: http://msdn.microsoft.com/en-us/library/bb158484.aspx
MSDN Annotations is easy to use. Just click on the Add New Content link below the Community Content bar, write your comment, add your tag(s), and then click Submit. We will be actively monitoring your comments and are looking forward to everybody's feedback!
Hope these are useful. If not, let the team know!
When the iPhone first came out and everyone was raving about its user interface I had to agree with them, despite being a long-term Windows Mobile user. Of course, like all new user interfaces there are always going to be some learning points but on the whole there is a lot to be said for an interface that was solely developed for the use with a finger.
Take the following screenshot, which is actually of an iTouch but could easily be an iPhone, you can see that at the bottom of the screen shot is a set of rollers. These are used to set the date and time that an appointment is to start. By flicking your finger across the rollers you can wind the date/time forward/backward at different speeds depending on how quickly you move your finger.
The clear advantage of this interface over the traditional date/time pickers used by the new appointment dialog on Windows Mobile (see below). In fact the Windows Mobile interface is so bad (actually perhaps old is a better term of it) that you can't reasonably use it with a finger, you really do need to either use a stylus or if you've worked out how, the d-pad.
The current guidance from Microsoft for new Windows Mobile applications is to build for the smartphone (ie no-touch) with the assumption that this is the canonical set of the controls available for both platforms. Unfortunately this is probably the worst thing you can do for a usable touch interface. In my opinion if you want to build an awesome application for the Pocket PC (ie Windows Mobile 6 Classic or Professional - urge why do we still have such silly sku names!) you should be focused on a "touch first design".
Side note: My apologies for the rather poor photo of the iTouch. Of course Pocket PC Controller (used for the Windows Mobile screenshots) doesn't work with the iTouch and my HTC Touch Dual has a barely competent camera under low light conditions ;-)
Just a couple of images captured from Monday and Tuesday here in Seattle:

Surface Computing: Just One Big Expensive Toy ;-)

Taking a break after talking Sync Services and SQL Server Compact Edition

Dave's leading the charge (hey, he's not an MVP....)

Pick your weapon - personally I think the i-mate keyboard is too small and hard to use
Am I in the right area?

Everyone's pretty drained after today's discussions with the product teams (spot the person who is asleep)
Sunday afternoon saw some dodgy weather hitting the airport that resulted in my Qantas flight from Sydney to San Francisco being delayed by about an hour and a half. Whilst we were hopeful that they would be able to make this time up in the flight, these hopes we soon to be dashed as we hit some nasty turbulence through the night. End result, a few of us missed our connecting flight through to Seattle. The situation got worse as they could rebook us on other flights today. This either meant getting an early morning flight or going across the hall and buying a cheap Virgin America flight. Both Grant Holliday and I decided to go with the Virgin flight which meant had some time until the 8pm flight. So, we thought we'd step outside the airport for a bit of fresh air.



Given we had over 5 hours to kill we decided that we should head downtown to try to take in some of the tourist sites. After jumping on the main train system "BART" we ended up downtown a couple of blocks from Union Square. As we emerged from the underground station we were greeted by a jazz band knocking out a number or two on the pavement.

We got our bearings and made our way across to Union Square where there was an open-air art display. Nothing particularly catching although all fairly modern pieces.

From Union Square we too the cable car down to Fisherman's Wharf. Apparently all the cars run on 4 cables that are driven from a single engine room.
From the end of the cable car there was a short walk down to the piers. On the way we saw some magnificent cars....



From the Wharf you can see what feels like the entire bay. Right in the middle of the view is of course the infamous Alcatraz prison.



But you can also look back towards the city, taking in the vibrant pier area and at least a portion of the somewhat hilly city.

The other attraction we poked our heads in on was the seal colony just off Pier 19.
Then it was back on the Cable car, then the BART and back to the airport. The Virgin America flight was actually a great experience. Despite being a discount carrier they still serve you a drink after the flight has taken off, the decor is all brand new, which includes the in-flight entertainment system. You have to pay $7 for the movies (similar range to the earlier Qantas flight) but nearly everything else is free, including live satellite TV, games (Doom was an immediate hit!), music and radio. I have to commend them on putting together a flight service I would definitely recommend, unlike the rubbishy Australian counterpart, Virgin Blue.
I'm currently writing this post from the scheduled charter bus service that runs from the airport to the downtown hotels. For $11 per person, per direction, you can't really go wrong. After a busy day I'm looking forward to getting a good night's sleep and then catching up with fellow MVPs as the MVP summit begins (a week of Geeky Fun-ness).
Having not done much with Silverlight I thought I'd give it a go today building a very simple application that would periodically go off to a webservice, retrieve a new item and insert it into a list. The UI which you can see below is very basic - it has a Start and Stop button and a list which is gradually populated with items. Clicking the start button initiates the request process which periodically (approx every 2 secs) makes the web service request.

This all seems simple enough and you would have throught the following would work:
Private service As SimpleServices2.SimpleService2SoapClient
Private Sub Start_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
If service Is Nothing Then
Dim temp = New SimpleServices2.SimpleService2SoapClient
service = temp
AddHandler temp.HelloWorldCompleted, AddressOf SimpleCallBack
temp.HelloWorldAsync()
End If
End Sub
Private Sub SimpleCallBack(ByVal sender As Object, ByVal e As SimpleServices2.HelloWorldCompletedEventArgs)
Static count As Integer
count += 1
Me.mItemList.Items.Insert(0, e.Result & " " & count.ToString)
System.Threading.Thread.Sleep(2000)
Dim temp = service
If temp Is Nothing Then Return
temp.HelloWorldAsync()
End Sub
Private Sub Stop_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
If service IsNot Nothing Then
Dim temp = service
service = Nothing
RemoveHandler temp.HelloWorldCompleted, AddressOf SimpleCallBack
End If
End Sub
Whilst this would appear to work the UI appears to be very unresponsive. Sure enough if you put a breakpoint in you will see that SimpleCallBack gets executed on the UI thread - most unusual if you are used to WinForms programming where the call back would generally not be on the UI thread. Ok, so the thing to do here would be to create a background thread to do the periodic web service call.
Wrong again! Unfortunately as Simon points out there is a dependency that requires service calls to be made on the UI thread (urgh you say). So, now we have to code around this in order to jump to a background thread to sleep (so as not to block the UI thread), then jump back again to the UI thread to execute the web service request. Of course ideally a bit of refactoring would result in us initiating a background thread that simply makes a synchronous call but unfortunately there is no synchronous method on the service proxy.
What we end up with is the following:
Private Sub SimpleCallBack(ByVal sender As Object, ByVal e As SimpleServices2.HelloWorldCompletedEventArgs)
Static count As Integer
count += 1
Me.mItemList.Items.Insert(0, e.Result & " " & count.ToString)
Dim t As New System.Threading.Thread(AddressOf WaitThenRetrieve)
t.Start()
End Sub
Private Sub WaitThenRetrieve()
System.Threading.Thread.Sleep(2000)
Me.mItemList.Dispatcher.BeginInvoke(New System.Threading.ThreadStart(AddressOf RetrieveNewItem))
End Sub
Private Sub RetrieveNewItem()
Dim temp = service
If temp Is Nothing Then Return
temp.HelloWorldAsync()
End Sub
This ain't a great looking solution but I'll leave it to you to work out how you can abstract this into a background thread, or better still into a wrapper class that handles the rubbish stuff for you.....Perhaps the Silverlight team might want to FIX this as it's a royal pain at the moment.
Over the last couple of days I've been digging through some of the developer resources for working with the Office 2007 file formats and came across the announcement that the Open XML file formats have won approval as ISO/IEC standards.
Although I doubt that this will result in the end of the file format wars I think it will cause an explosion of developers working with these formats for automatically generated documents, spreadsheets etc. Microsoft is supporting this effort with an Open XML SDK Roadmap looking something like this:

The June 2007 CTP of the SDK is currently available for download. Although, given the proposed timeline we should see a second CTP sometime in the next month or so. Version 1 of the SDK only really provides a wrapper around the packaging format. Where the SDK becomes really exciting is when it provides access to the document information itself (ie a rich API for creating documents). Hopefully we will see that in version 2 later this year - I'm guessing that the release will be scheduled inline with the next release of Office.
While I remember, here are a couple of interesting resources to get started with too:
In case you haven't noticed, the Code Camp Oz 2008 speaker schedule has been announced. Looks like I made the cut and am sharing a RapidFire session with Mahesh Krishnanm. The title of my session is "Do you want a connection with that?" and will be looking at the world of disconnected applications in contrast to the more traditional connected or web based applications. Don't forget that pre-conference activities start mid-afternoon on Friday (ie ANZAC day!).
Forrester Research report on "Defining a Mobile Enterprise Policy" - worth a read if you are looking at adopting mobile devices into your enterprise. With mobility becoming more significant to the enterprise with every day we are likely to see an influx in the risks associated with disconnecting our data. The more information (such as traditional data like email, contacts, calendar and increasingly vertical specific data like trend information, buying patterns etc) that is held on a device, the more risk is associated with the device falling into the wrong hands.
Where laptops and tablet PCs were always a risk in the past, mobile devices are much smaller, easier to mis-place or have stolen as they can easily slip undetected into a pocket or handbag. Strong IT governance is required such that employees know their responsibilities and know what to do if a device is misplaced. In the same way you would cancel a credit card as soon as you know it's missing, you should be able to immediately cancel your mobile device (eg remote wipe or secure lock the device) so that the information can't be accessed by unauthorized parties.
Lastly a personal comment regarding information that is stored on a mobile device. Too often have I heard the story "My device died and I lost XYZ because it was only on my device." In my opinion this is YOUR fault, that's right, I'll say it again, it's YOUR fault - if you don't backup your data then if the device fails, is lost or stolen, then it is YOUR fault. What's my solution - well I have a rule that I don't store anything on my device that isn't readily available as either a download (eg apps such as Google Maps), on my exchange server (so I can easily configure a new device and be up and running in less than 5 minutes!) or sync'd to my laptop or desktop PC. There are some exceptions to this rule - such as the odds and ends I have on my mini-SD card, but I know there is an acceptable risk associated with this and there is nothing on there that will stop continuity of business (well in my case continuity of life as my mobile is pretty much a personal use only device).
Yes that's right, the first CTP of Sync Services for Windows Mobile is available for download! Get it at the Microsoft Synchronization Services for ADO.NET download site.
Make sure you send feedback re performance, functionality etc to the forum at http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=1225&SiteID=1
Some you might recall that I issued a Skype Challenge last April where the rules were essentially:
- To go an entire month without using either a landline* or a mobile phone** to make or receive phone calls.
- You have to make all calls via Skype
- You can't accept calls, unless they come via Skype
- You can't send/receive SMS, unless they go through Skype
A year on and some things have changed but unfortunately other things remain an issue:
- Battery Life - This continues to haunt mobile device users. Currently my HTC Touch Dual lasts a little over a day and it doesn't even have WiFi
- Audio Quality - Until Skype taps into the phone speaker instead of the external speaker this will remain an issue
- Unable to Receive SMS - Still not possible
- Audio Quality - Over WiFi audio quality is very variable. However, if you are running on one of the 3G networks then the quality is quite acceptable for the most part. You do need to have good reception and strong signal strength for this to be tolerable
- Unavailability - Particularly with WiFi this continues to be an issue - I doubt we will get good wide area WiFi coverage like some of the US cities. However, perhaps WiMax will be rolled out. Alternatively the latest thing is for homes and offices to have their own mobile cell - perhaps this will be the future of improved coverage.
- Unable to Send SMS - AFAIK still not available on the mobile version of Skype
- Contacts Unavailable - When will we have a universal contacts list - I'm sick of running Outlook, Live Messenger, Skype, Facebook, LinkedIn - all with different collections of people. If I want to get hold of someone I want to say "call bob" and for my single list to respond "on his home, work or mobile, Sir?"
As you can probably tell I failed the challenge and to be honest have grown to like the convenience of using my mobile phone for everything when I'm out and about. Towards the end of last year I went through more phones than hot dinners (mainly cause I just moved to Sydney and hadn't learnt to cook yet - only kidding!) trying to find the ideal form-factor v's feature set. Both the TyTnII and the Touch Dual came very close but there is still a middle ground where I think the Sony Ericsson Xperia X1 may fall.
Since moving to Sydney I have again gone without a home phone line, opting for an IInet Naked DSL account - you still have a copper wire to the door, just no phone connection and the line rental is buried in the monthly broadband cost (but is significantly less than a full line rental). I still use Skype for making calls and sending SMS messages.
Interestingly what we have seen from a couple of mobile phone carriers are offerings around using skype over their data connection. For example on the 3 network you can get so many hours of free skype talk-time on some of their data plans (ie not included in your data limit) - I'd be interested to hear how many consumers actually use this!
In conclusion - I think this is the year where data will become affordable. Once we have cheap data, the rest will fall into place. Then we can really talk about taking on the Skype Challenge.
With all the (hopefully) positive feedback around those people luck enough to be able to run SP1 there are always going to be some sad cases where it breaks existing applications. Unfortunately from the few people I've spoken to, personal experience and this knowledge base article there seems to be more than just an occasional application that is affected - this is like the RTM of Vista all over again:
Personal Experience: Under both beta and the RTM version of SP1 Windows Explorer periodically crashes (approximately once a day). It seems to recover but can't seem to connect properly to network drives until I do a full reboot. Suspect this is to do with the version of TortoiseSVN I'm using, but doing work has proved to be more important than trying the latest build to see if it fixes the problem.
Fellow MVP: Installed SP1 and now all his Office 2007 applications crash on exit - not a great look given these are Microsoft's two flagship products.
The List of Doom: The knowledge base article entitled "Information about programs that are known to experience a loss of functionality when they run on a Windows Vista Service Pack 1-based computer" contains information about programs that are known to either blocked, do not run or experience loss of functionality under SP1. One such program is the New York Times Reader application which was most definitely the WPF love child - although I failed to see the attraction. How can such a revered application go to being in the book of shame? Oh well, I guess it can't have been that great in the first place......
This evening I was on the way home and decided to drop into the shops to pick up some odds and ends to cook for dinner. The only money I had with me was my credit card so I used that to pay - swipe card, enter pin, purchase approved, next customer please...... Well, that's how it should have gone. Unfortunately given the current state of the Australian Banking industry this went completely pear shaped when the shop attendant decided "credit card purchase must have signature".
Before I go on I would like to make you all aware that some credit card do have pin numbers, and some eftpos units actually will accept a pin! If this sounds strange, then go live in NZ for a while - nearly every transaction I made over there was with my NZ credit card with pin. The only time I had to sign for things was when I used my Australian credit card (and that was mainly cause it's issued overseas, rather than it being specifically an Australian card).
So why is this a farce? Well other than people believing that credit cards must have a signature, the biggest farce is actually that people still believe that signatures are a security mechanism. Now in my opinion credit card signatures suffer from at least two major flaws:
- Just about every kid has to pass Tracing 101 at some point. And, in case you have forgotten how to do tracing, all you need to get is a bit of baking paper, or some other thin/semi-transparent paper, and a pen. Place the paper over the signature you want to copy and practice tracing the shape - 30 mins later you are a genuine fraudster!
- As if it wasn't bad enough that every man and his dog can copy a signature, very few shop attendants actually bother to inspect them.
So you might ask what's the point? There is none - signatures are a farce and the quicker the Australian Banking industry wakes up and smells the roses the better. What's worse is that they continue to make stupendous profits at the expense of our financial security.
Closing thought: Oh, and don't get me started about the new chips that some credit cards have had for over 5 years now - when are we going to see eftpos units that insist on these being used when they are present. I would feel a lot better if these, along with pins, were mandated across the board!
Well they hug their Pocket PC of course..... errr ok, well I hope not. This topic came from noticing some funny email signatures today:
“Have you hugged your Pocket PC today?”
“Smart People Carry a Smart Device Running a Smart OS, but Use Your Blackberry if you must”
I particularly love the second one - it so highlights the state of affair when it comes to corporate adoption of mobile devices. Unfortunately a large number of organisations roll out (mandate) Blackberry devices without realising that they can get the same effect from using the much superior Windows Mobile devices. The added benefits from the Windows Mobile platform aren't limited to those organisation wishing to do their own application development - the integration with Exchange 2007 provides simple device management that removes the need to call your system administrator at 3am in the morning when you loose your device! Going forward the platform is going to move from strength to strength with better management and better enterprise integration, making it an obvious choice when it comes to total cost of ownership.
While we are talking about the Windows Mobile platform I would like to highlight the recently revamped Windows Mobile Developer Center on MSDN. This will include content on
- .NET Compact Framework
- SQL Server Compact Edition (SSCE)
- C++
- Device Driver Development
- Mobile Games
- Mobile Web + AJAX
- Windows Mobile SDK
(As some of you will have guessed one of the future directions of mobile development will be a logical extension of the move in the web space to rich applications. Enter Silverlight - can you see where a rich user experience, with offline capabilities would be useful in a mobile world?)

Just recently Intilecta has done an entire refresh of the website. It's now a great starting point for anyone wanting to know how to get more value from any existing business intelligence investment. With a different approach to most traditional business intelligence vendors, Intilecta can help realise some of those failed promises the larger BI vendors make when up-selling their products.
I've long been waiting for Bill Poole to join the realm of us bloggers. For those who don't know Bill he's probably one of the smartest guys I've met and is currently working for Change Corp in Perth. In his initial posts he talks about SaaS and SOA, and the decision to have your data/apps centralised or decentralised. If this is a sign of the level of posts to come then I would highly recommend subscribing to his feed as it will definitely be thought provoking.
- Bill Poole's Creative Abrasion
More Posts
Next page »