Nick's .NET Travels

Continually looking for the yellow brick road so I can catch me a wizard....

Google Maps 1, Live Search 0

I've got to hand it to those clever geeks at Google - I just downloaded the latest version of the Google maps client for Windows Mobile and it was able to give me my current location, despite not having a GPS unit in this device!  How are they doing it?  Well, according to the instructions they are doing an approximate triangulation of the cellular broadcast information to give you a location that they say is accurate to about 1700metres.  This might sound rather a large inaccuracy but if you think about how little data they are probably working with, it is probably no wonder. 

My initial position was accurate to about a block, which for most purposes (like finding yourself on a map of Sydney) is close enough. If you need more accuracy then you just need to cough up the extra couple of dollars to get either an external GPS unit or a device (such as the HTC TyTnII) that has integrated GPS.

Whilst I haven't downloaded the latest Live Search client, I'm yet to see anything that has impressed me as much as the Google Maps client (kind of bizarre for a predominately web based company!)

Why should you think about Professional Development?

One of the most important aspects of your career is professional development but it is also the one thing that most people neglect.  Well, at least until they wake up one morning and discover that they are no longer content with their current job.  At this point they start talking to recruiters and either have to learn additional skills in order to capitalise on the latest technology fad (as an aside a couple of hot areas at the moment are Sharepoint/MOSS and Unified Communications) or they simply move sideways to a different company doing a similar job for similar pay.   Professional development is something that should be continually worked on and in some cases closely managed to maintain a current skill set and advance you career.  This is true regardless of whether you are a student just entering the work force or a senior executive dreaming about days on the golf course.  The only way to be relevant is to stay relevant!

Ok, so now that the lecture is over lets discuss some of the activities you can engage in to stay relevant.  One of the simplest things to do is to read the newspaper every day. I don’t mean read every page meticulously (although this can be great when you are relaxing on the weekend), I mean scan the paper for important events, announcements and other information that is relevant to what you do.  Tuesday is of course IT day in the paper with all the major papers having an IT section but the Financial Review typically has one or two pages most days on Information which covers National events and announcements in the IT space.

Other ways of getting your IT fix are through subscribing to, and reading, a number of broad spectrum blogs.  Whilst it can be interesting and beneficial to subscribe to blogs that are specific to your niche area, you can often become blinkered and forget that the IT world continues to evolve around you.  You can also stay grounded by talking with colleagues, preferably outside the organisation you work in.  Quite often they may have come across news or other information that might be relevant to you but the only way to know for sure is to talk to them (yes, I know IT people aren’t that communicative but trust me, the more you do it, the easier it gets!). 

One technique I use for staying in contact with people is via instant messenger or Skype.  A number of organisations block access to these technologies which is not only very draconian it also prevents you from doing your job.  I have a large number of contacts that I regularly contact for their thoughts on design decisions, issues that have arisen or to discuss best practices.  Of course, this relationship has to be bi-directional in that you are willing to offer assistance as and when it is requested.  This might seem a waste of your time, but I can guarantee that in the long run everyone benefits – you increase your knowledge and your employer gets a better product/outcome.

Of course, if you don’t already have a set of colleagues that you can turn to for assistance then you need to establish these industry contacts.  To do this you can convince your employer to send you to industry conferences (for example CeBIT or TechEd) but one of the best opportunities is sitting on your doorstep.  Attending local events run by the ACS (such as the Branch Forum), user groups (such as the Perth .NET Community of Practice – or the SQL Server User Group - or other industry bodies (see the Australian IT section for a calendar), are a great way to meet people.  More recently the .NET user group formed a weekly coffee group that meets at Tiger Tiger ( every Tuesday from 1:30pm – there is no commitment, you can simply rock up, talk shop while enjoying some food or coffee for an hour or so.

Lastly I would suggest a regular investment in technology books and/or training courses.  Unfortunately technology related books tend to be quite expensive in order to cover the investment of writing them from a extremely niche market.  Again, this is an area where the .NET user group has continued to lead by example, setting up and maintaining the .NET library.  This is housed at the Silicon Beach House ( and for more information you can contact the user group co-ordinator, Mitch Wheat (mitch @  In terms of training courses there are a range of local providers but they are usually quite expensive.  A strategy for conducting your own learning is to look at the requirements for passing some of the certification exams and using that as the basis for a study plan.

In closing I would like to remind you that professional development is your responsibility, NOT your employers.  Whilst I would encourage employers to provide staff with an opportunity to develop their skills, at the end of the day it is your life and as such you need to make professional development your priority.

[This post is for those who read my blog but don't get the ACS WA Offline publication where it will be printed]

Documentation Comment Creation

One of the most painful points about coding in VB.NET is the time taken to compile projects.  Luckily the background compilation more than compensates for this as you don't need to compile your application in order to see all the compilation errors in your code. Interestingly one of the key artifacts of a slower compilation process is that you typically want to reduce the amount of unnecessarily tasks that are carried out as part of compilation. 

Of particular note is the generation of XML documentation files.  I'm not for one minute suggesting that their creation isn't important but you don't need to create them during debugging.  To disable the creation of these files during debug mode go into the project properties dialog for each project, make sure the Configuration is set to Debug (which is probably the Active configuration type) and then disable the XML documentation.


C# Project Settings


VB.NET Project Settings

Interestingly by default this option is enabled for VB.NET projects, yet disabled for C# projects - perhaps this says something about the different styles of developers. One gotcha for VB.NET Developers is that disabling this option does more than simply preventing the creation of the XML documentation file.  It also prevents the automatic creation of XML documentation comments.

For example if you were to document the following property:


you would place the cursor on the line before the Public keyword and press ''' (/// has the equivalent behaviour in C#).  This would automatically generate a commented XML snippet:


Unfortunately in VB.NET if you disable the generation of XML documentation files you are also disabling this functionality - you can press ''' as many times as you want but nothing will happen.  For C# developers there is a checkbox that controls the creation of documentation comments in the Options dialog:


Byte Me - Perth

I touched down in Perth around mid-day on Saturday and have enjoyed a good dose of Perth sunshine ever since.  With last night being the official launch of Byte Me I would like to encourage everyone to go to some of the fantastic events on offer this week.  If you don't know about the Byte Me festival then you should check out their website or drop into Tiger Tiger to pick up a brochure.

Other events on this week (as I mentioned earlier) are:

  • Weekly Coffee (Dec 4th and 11th)
  • Perth Massive (Dec 4th)
  • Byte Me! Festival (Dec 1st -9th)
  • SQL Server User Group (Dec 4th)
  • Perth .NET Community of Practice (Dec 6th)
  • Now That's Secure.... Not!

    This morning I got notification that my Naked DSL line has been successfully provisioned (I'm one step closer to being connected at home once more).  I wanted to make some minor changes to my account so I gave the ISP a call and quoted my account username.  As with most phone services they wanted to verify who I was so they asked for my account password.  I never like giving out my password, over the phone, email or IM, so I said that I was uncomfortable with this form of security check.  To which they responded "I have the password in front of me, I just want to verify who you are". 

    Argh, you mean they store passwords in clear text????  I hope they don't do that with my credit card details that they use to bill me each month!

    Gmail for Student and Staff

    I was reading in the Information section of Financial Review this morning that the NSW Department of Education and Training was going to put its email service out for tender.  Was impressed to hear that they are currently running Outlook/Exchange for students and staff - as far as I'm concerned this is definitely a best of breed solution as it has web access (via OWA) and full occasionally connected support (via both Outlook and Windows Mobile).

    Reading on I was alarmed to hear that they might consider following Macquarie University and rolling out Gmail for students and staff.  For students this probably isn't a problem as their email usage is probably not in the same league as staff and as such they might not get the same benefit out of being able to work offline.  That said, an increasing number of students have laptops and by the virtue of moving between lectures, tutorials, labs and of course home, they are more mobile than staff. 

    All this leads back to the fact that a best of breed email solution must work online and continue to work offline.  Any solution that relies on being online in order to operate is simply going to hamper productivity.

    The moral of this story is "don't let IT drive your business, ensure business drives IT".  In other words the usage of an application has to be the first priority on selecting an appropriate vendor, rather than the simplicity of the solution or even the price.

    Vacancies at the Silicon Beach House

    I've just posted across on the Silicon Beach House blog that there are now a couple of vacancies.  If you are looking for offices in the CBD or are interested in sharing a work spaces with some of the most innovative people in Perth, then now is the right time to join the Silicon Beach House. 

    The process is simple - simply contact me and we can get you started within hours!


    Competition reminder: Buy a WM6 device to go into the running to see the world.

    Microsoft Disappoints (again)

    So a number of days after Microsoft released the much anticipated Visual Studio 2008 I'm still trying to download it from MSDN. Initially I wasn't going to post about this but it has been the cause of so much frustration that I can contain it no longer. Normally downloading files from MSDN is a relatively straight forward process.  You logon, you find the file you want, the File Transfer Manager appears and after a while the file downloads.  As you would expect, if there is a network connection issue the file download will pause and the manager will continue to retry (the number of retry attempts can be configured etc).  If for whatever reason the manager can't reconnect, the download will remain in the list until you decide to resume it (perhaps when your connection has been restored).

    Unfortunately someone at Microsoft decided that now would be a great time to try out a third party download manager that quite frankly is one of the worst products I have ever seen.  Whoever is responsible should be hung-drawn and quartered for this decision - Visual Studio 2008 is a product that so many people have been waiting for, using this download manager is effectively an insult to every developer who has ever supported the Microsoft way of doing things. 

    So, you might ask why I'm so negative about this download manager.  Well, the fact that I'm on my third download attempt and that the previous two attempts got to 90% of the 3+Gb download before completely failing might have something to do with it.  The other reasons are:

    • Requires the Pop-up blocker to be disabled
    • Prompts to download the file to the Documents folder, instead of Downloads by default
    • Because it is an ActiveX object it actually downloads to a temporary folder under Vista.  This gives you a weird prompt asking if you want to see the temporary folder (if you don't click yes, you will probably never find the file it just downloaded for you)
    • It doesn't seem capable of retrying if there is even a minor network connection failure
    • It doesn't appear in the taskbar so the only way to view it is to minimise all other windows (of course clicking view desktop will hide it too)
    • If you leave it to download when you go to lunch and it runs into issues, the chances of being able to resume are almost 0 (this has happened twice now at 90% where I've had to restart)
    • There is no ability to close the manager and resume later. And there doesn't seem to be any way to configure the download manager.

    For a product that really only has a single user case (ie download a file) this is pathetic. Microsoft lift your game and prove that you too can deliver Customer Service.

    Update: Looks like Microsoft have now added all the SKUs to the main MSDN Subscribers download area and that they have fixed any performance problems with the File Transfer Manager. 

    Perth in December

    In an attempt to avoid travelling during the silly season I am making a quick trip to Perth in the first week of December (1st -13th to be exact).  At this stage it's going to be quite a hectic couple of weeks with all manner of activities/events to attend:

    If you can't make any of these events but still want to catch up with me while I'm in Perth then drop me an email or IM (same as my email) me.

    Meanwhile back in Sydney there are of course a number of events that I won't be around to attend:

    (I'm sure there are more, these are just the ones that come to mind)

    Competition reminder: Buy a WM6 device to go into the running to see the world.

    Competition: Buy a new Windows Mobile 6 device and see the World!

    For one of the first times in my life I visited the Windows Mobile area of the Microsoft Australia website.  I want to share an announcement that's on the main page about a competition where you could "win a trip for 2 to your choice of one of the 7 wonders of the modern world, valued at $15,000".  So, what do you have to do?  It's easy, simply purchase a new Windows Mobile 6 (Palm, HTC, Motorola or i-mate) between 1 Nov, 2007 and Feb 29, 2008.  Then visit the competition website and follow the link to submitting your entry.

    Application Restart on Windows Mobile

    Over the last week or so, fellow Microsoft MVP, Rob Farley has been getting familiar with my HTC Touch device. One of his biggest pain points is that applications frequently get closed when they are not in use to free up memory for other applications. Unfortunately this seems to be a little known fact about Windows Mobile - that when it is memory constrained it will go through the background applications requesting that they close. 

    There are two sides to correctly handling this scenario from a development point of view.  Firstly, at an application level you do get an opportunity to refuse closure.  For example if the application is in the middle of downloading updates or refreshing content then it can hold off closing until it has completed.  Bearing in mind that this will of course slow down the running of other applications and may prevent new applications loading during this time.

    The second point to note is that from an end user perspective they shouldn't care if an application is running or not.  When they click on the application icon it should always go to where they were in the application the last time they used it, regardless of whether the application has had to open or just show itself.  In fact this is one of the reasons that currently Windows Mobile doesn't have a built in Task Manager (other than the Running Programs item under Settings->System as such.

    An example of applications that don't restart well, and is really annoying because it always shutdown when placed into the background, is Google Maps.  This application insists on showing you their disclaimer splash screen every time you run the application - in this case it is particularly bad because while the application is active it prevents the backlight from dimming or the device going into standby (which of course drains battery life very quickly). 

    Customer Service, or lack thereof

    Yesterday I decided to apply for one of the newly released Naked DSL accounts with IInet since I currently don't have, nor do I want a fixed phone line (a point that they seem to forget). After spending an annoyingly long time on the phone with one of their sales representatives they were going to go away and provision the accounts.  For the life of me I can't understand how it can take 10-15 days to provision an account (talking with the guys from Tuscan IT at the Silicon Beach House apparently in some countries this is down to 24 hours - we can but dream!)

    This morning I get an email from the provisioning department stating:

    Service Address Not Found
    The service address you provided does not match Telstra's records or can not be found. Please contact your telephone provider to obtain the correct details. Once you have these details, please re-submit your application.

    Ok, now remembering that I don't have a phone line, how do I contact my telephone provider?  I got on the phone to Telstra only to be railroaded by their voice system, first to their call centre (which apparently is closed, despite it being 8:30am and well within their operating hours) and then to BigPond (which I doubt would have been helpful so I hung up).  I then got back on the phone to IInet and spoke with one of their sales reps, I was promptly put on hold for what felt like hours.  Eventually she came back to me and said that she had spoken with the provisioning department and they were going to "try again" - WHAT - why didn't they "try harder" the first time and save me 30 minutes of my time?

    I'm not sure what the moral of this story is - unfortunately quality of service is not something any of the telcos/isps value particularly highly.  Perhaps it's got to do with the pathetic level of competition in Australia.

    HTC and their Home Screens

    Over the past couple of months I've been using both the HTC Touch and the HTC TyTnII.  The Touch has both the 3 tab HTC Home screen and the 3 faced flow cube (for want of a better name), whilst the TyTnII has a 5 tab HTC Home screen.  I was just investigating whether the 5 tab screen was available for download and noticed that there is now a 6 tab version.  The guys over a Pocket PC Now have the downloads available here.


    This is what the 5 tab home screen looks like.  The additional tab on the 6 tab screen allows you to control media player from the home screen.  I'm really looking forward to where HTC take this home screen (and the flow cube) in future version.  Particularly if they make it more configurable (ie being able to remove unwanted tabs - eg the weather tab when you live in a location that isn't in the list) or open to developers.

    What is interesting about the HTC Home screen is that it is a direct competition for the Windows Live home screen plugin.  The major difference seems to be that the Windows Live plugin screen uses left-right navigation, rather than tabs - it also seems to be over the top in the amount of resources it uses just being there!  I've never taken to the Windows Live plugin but I suspect that is due to lack of useful functionality rather than their navigation construct. 

    I guess the big question is whether Microsoft will extend the default home screen offerings in future versions of Windows Mobile?  More importantly, if they are going to come up with new home screen ideas (such as the Windows Live plugin) then they don't need to be tied to OS versioning - as demonstrated by the HTC Home screen model.

    G-Phone - Why I Do Care!

    If you recall about a week ago I posted about Google's entry into the mobile phone space.  I guess as clarification there is no G-Phone, just a OS stack called Android. After the initial announcement I didn't give it too much thought until my brother pointed me to this YouTube video.  Given he isn't really into technology I was surprised by his reaction, "very cool", and thought I'd better go watch it.  Whilst the video is very Geeks-for-Geeks it does showcase a couple of very cool capabilities.

    • One of the highlights for me was the browser capabilities.  Windows Mobile could learn a huge amount here!  Why have we been stuck with such a retarded browser for so long?
    • The UI for both maps and the world viewer are sensational.  They talk a bit about making use of a full 3D rendering engine - I wonder how this compares to the Direct3D capabilities of Windows Mobile?

    Ok, so the aim of this stack is that it is supposed to make development for a mobile device really easy.  My question is - just how easy?  Are we talking C++ or are we more advanced (such as the .NET Framework or Java)?  What APIs are really available v's having to write your own?

    In the closing part of the video they lay down a significant incentive to mobile developers - they have allocated $10 Million for developers who build the best apps.  Not sure of the details of this but that is a serious amount of investment in order to build a developer following.

    What I want to see before I will even look at this platform is the ability to sync calendar, contacts, email etc with either (or preferably both) an online system (such as Gmail) or Exchange.  The latter is clearly going to be essential for this stack to get enterprise adoption.  If the platform is really as open as they make out then hopefully some clever developer will go ahead and build this functionality - but of course this requires them to cough up the dollars for Activesync technology licensing.

    When Optional isn't so Optional!

    One of the features of VB that has been the point of many a discussion is the use of Optional parameters. Optional parameters allow you to specify a parameter as being just that, you are stating that it is optional and providing a default value.  This quite often gets around defining numerous method overloads that take different combinations of parameters.  The issue with this is that Optional parameters are not supported by all languages despite being in the .NET Framework specs.  

    Personally I like to use optional parameters but there are some limitations that I would love to see removed:

    1) Remove the requirement that the default value be a constant value.  In my opinion optional parameters are really only a half-baked concept if you can't use dynamically created default values.

    2) Remove the (imho) stupid limitation around generic parameters:


    This unfortunately comes down to what nothing, or null, means for a value type.  imho this should always be an effectively empty/zero-initialized value based on the structure of the value type (eg for a point it would be a point with values 0,0). With the constraint how it is currently I have to limit my methods to be class applicable only - even if the parameters is optional!!!!

    Where did SSCE v3.1 go in VS 2008?

    For anyone who has played around with the betas of Visual Studio 2008 you will have noticed that the default engine for SQL Server Compact Edition is version v3.5.  If you attempt to access a v3.1 database you will get prompted to upgrade to the new engine.  Unlike the framework version, which you can now specify which version to use, the SSCE engine version can't be changed. Unfortunately this seems to be a known issue with Visual Studio 2008 that is unlikely to be fixed before RTM.

    What does this mean for you as a developer and why should you care about the SSCE version?  Well the most significant reason for caring about the version is whether the SSCE engine is in ROM on the device.  With Windows Mobile 6 devices version v3.1 of SSCE ships in ROM which means that it is going to be significantly faster and consume less RAM when your application runs. If you then push out an application that uses v3.5 of the engine you will then have two versions of SSCE on the device - depending on your requirements/constraints this may or may not be an issue that you need to consider.

    So what can you do about this?  The developer story is not great at this point in time but so long as you only use functionality that is available in v3.1 of the engine then you should be able to deploy your application (less the SSCE engine) without making any changes.  Of course this doesn't work particularly well if you are deploying an SSCE database (ie an sdf file) out with your application - you will have to manually create this using the v3.1 engine in order for your application to work with it.

    Alternatively you can just live with the penalty of having two SSCE engines on the device.  There are some improvements in the v3.5 engine that you will most likely want to take advantage of so this hit might not be as bad as it would seem initially.

    Google Maps V's Live Search for Windows Mobile

    A week or so ago I got my latest development device, the HTC TyTnII.  Since then I have moved networks from Optus to 3 in order to get economically priced data.  My only complaints about the HTC Touch was that it didn't have either a keypad/keyboard, nor HSDPA support*. Now that I have a data capable device I have started to play with a number of applications that take advantage of mostly-on data.

    Being relatively new to Sydney one of applications I've found to be particularly useful is Google Maps for Mobile. Without a data capable device this application is all but useless as it crashes if the network fails or is not available.  Now that this isn't an issue (well for the most part - except of course if your device starts to roam in which case you either loose the network or loose an arm and a leg when you pay the next bill) I have started to use this application quite a bit.

    The other feature of the TyTnII that (occasionally) is useful in conjunction with Goolge maps is the in-built GPS.  I say occasionally because picking up a signal is a bit of a lucky draw.  Yes, I know you need to have satellite line of sight but honestly to not be able to resolve the location in the middle of Sydney is not a great story! 

    Lets start with looking at how Google maps deals with the GPS:

    image image

    In the first image you can see the currently white dot at the centre of the screen, which is the current location of the unit as determined by the GPS signal and it alternates between white and blue so you can clearly make it out (select "Track Location" from the menu to start GPS tracking). In the top right corner you can see that there are currently 2 active satellites that the unit can communicate with.  Unfortunately if this number goes to 0 for an extended period Google Maps gives you the prompt in the right image. Worse is that if you click cancel it stops looking for the GPS signal and removes the last known location from the maps - OMG who programmed this!

    image image

    The next scenario is getting directions.  Google Maps makes this as easy with a "Directions" menu item.  You then have an option of selecting the GPS location or entering a location (left image). After it has determined the directions it presents a summary (right image) giving the distance and time estimate (which I must admit is quite accurate).

     image image

    When you hit ok you are taken to the map with the starting point selected (green diamond), way-points marked (yellow diamonds) and the route in purple (left image).  You will also not that the on-screen buttons have changed to include a forward and backward arrows.  These will move you between the way-points along the route.  Despite the instructions on the splash screen that you should not operate while driving, this makes the maps very easy to use while you are driving!  Clicking the zoom in/out buttons will give you a visual indicator of the estimated area to be covered by the new zoom size - zooming is always done around the centre of the map.

     image image

    Searching for shops and restaurants is easy with Google Maps - Click the Search soft key, enter the type of food or shop you are looking forward and qualify with a suburb (left image).  The results will be displayed using numbered pins on the map (right image).


    The last feature that is quite neat (albeit not very useful) is the aerial view which can easily be toggled between from the Menu.

    Mid last week I was convinced to give the Live Search for Windows Mobile a try.  Unfortunately my reaction has not been at all positive.  Let me try and articulate why. I suspect most of it comes down to Live Search wanting to be too much and not delivering on anything well. 

    image image

    The opening screen (left image) is very portal like and is not immediately intuitive that you need to enter an address (second line) - otherwise you end up with all your results coming from a random location in the US. Once you have done this half the functions (Traffic, Movies, Gas Prices, Categories, Shop/Restaurant Search) still don't work as they are only enabled for the US.  Luckily the maps and directions both work.  Unfortunately for some reason it always seem to default to an zoomed out view of Sydney (right image).

    image image

    It isn't immediately clear how you can zoom in/out (if you recall Google Maps has a + and - on-screen interface!).  By pressing the d-pad you get a zoom interface (left image).  You can also use the d-pad to scroll the screen whilst in this mode.  In order to accept the new location/zoom you simple stop pressing buttons and after a short timeout it refreshes the screen. From the menu you can also select "Center on GPS" and assuming that a satellite can be connected to you will see the unit's currently location (right image).  Unlike the Google interface this doesn't indicate the number of satellites that it is currently connected to.


    To get directions you need to leave the Map (did anyone really think about how this app would be used???) and select Directions from the Live Search home page.  This presents you with a dialog where you can enter a location (left image).  Well actually you can select a previous location or select new location.  Selecting a new location gives you a number of options as to where to get the location information from - I particularly like the Contacts integration!

     image image

    Once you have determined start and end locations the route information is presented as a summary list but no totals (left image)!  Clicking Map will again take you to a zoomed out image (grrr how annoying!) as shown in the right image.  What I do like is the on-screen prompts saying what to do at the next way-point.  This is much better than the bubbles that obscure the map in Google Maps.  Moving between way-points is also easy - although the left/right arrows are small you can click anywhere on the left/right side of the prompt to move forward/backwards in the way-point list.


    The last point I would like to make is a comparison between the presentation of mapping data.  These two images are at approximately the same zoom and both are centred around the same GPS location.  Personally I find the one on the left (Google Maps) much easier to read than the right image (Live Search).  I think it is a combination of the width of the streets, the colours used, the positioning of street names and numbers.


    * For those interested in HTC Touch I would highly recommend looking out for the HTC Touch Dual that is soon to be released.  This will have HSDPA support and has a slide down keypad! Warning: this model will not work on the Telstra NextG network as it doesn't support their frequency. There is likely to be another model early next year targetting this network explicitly.  Note that this is not an issue for the TyTnII that supports all the frequencies.

    Mobile Directions

    Last night I attend the Sydney Windows Mobile User Group which I can only describe as having the highest device per square metre of any user group I've attended.  With presentations from James McCutcheon (J3Technology), HTC and Fujitsu there was no end of new devices being shown off.  I definitely got the impression that this group was not developer focused with only 3 out of a room of 20+ people admitted to being a developer.  Despite this James did a great job of talking through the new features of Visual Studio 2008 that pertain to mobile developers (to be honest the list is quite short!)

    What really interested me were the new HTC devices, particularly the HTC Touch Dual and the HTC Shift.  The Dual is the next incarnation of the HTC Touch which I have been armed with until recently. Unfortunately there are two limitations to the Touch that make it untenable as a long term device for me 1) There is no keyboard/keypad and 2) There is no HSDPA support.  IMHO the Dual hits the spot as it is still has that slim, sexy look but has both a slide down keypad and HSDPA support (warning: the current model will not work on the Telstra NextG network - there will be another revision next year with this support).  The other device in this space is the HTC Touch II which simply improves on the HTC Touch to include HSDPA support.  There is still no keyboard/keypad however HTC have provided a funky SIP that might mean you can get away without a keypad.

    Now the HTC Shift is a device that caught my attention when they announced it a while ago but until yesterday I hadn't had the opportunity to play with it.  Unfortunately I'm not sure it completely lived up to my expectations.  As with all the other UMPC devices I've seen it seems to have a lot of rim space - space that borders the screen that isn't what I'd classify as useful.  This makes it look and feel like a rounded brick.  However, the screen is awesome and definitely very readable.  This is in contrast to the keyboard that is not only small but imho unusable - I'd prefer the keyboard on the k-jam or my HTC TyTnII which at least is designed for single digit entry.

    The other devices that were on show were from Fujitsu - particularly their offering in the UMPC space looks to rival what HTC are doing.  In fact the Lifebook U1010 (and the next model in this series) look to be a better combination of look and feel than the HTC Shift.  Like the Shift, the next model will incorporate HSDPA support to make it a true data capable device.  What I particularly liked about this device is that the keyboard, although as small as the Shift keyboard, was more usable.  Further Fujitsu have incorporated a nipple (right thumb) with left and right mouse buttons (left thumb) to make it easier to work with the device when you are literally on the move.  As a convertible with full touch aware screen this device is likely to get good adoption from those wanting something that will (almost) fit in your pocket!

    The last point I want to point out is that I attended Mobile Monday where the topic was all about mobile payments.  It's interesting to note that PayPal are doing a lot of work in this space and that there is definitely some mixed thoughts on how this area will pan out.  There seems to be the old school way (using SMS and similar services) v's the mobile web way (ie browser based, similar to what happens on the desktop). As devices move to being more data capable are we likely to see users move towards surfing the web and making payments that way?  Of particular interest to me is the ability to do person-to-person payments - for example to split a restaurant bill. This area is clearly very young but rapidly expanding as the demand for better mobile services grow.

    Will Google's "Me Too" Effort Destroy Phone Usability

    This morning I was asked what I thought about a not so surprising announcement by Google around their push into the mobile phone space. My initial comment was that I couldn't care less what Google does in the mobile space but in hindsight that is a little naive, especially if you take into consideration their already massive user base for their existing products and services.

    I'll pick up on just one line that just reinforces my opinion:

    "Mobile users want the same applications on the phone as they use on the internet."

    This is rubbish.  IMHO consumers hate the web - they use it because there isn't a better alternative.  If you could get the same content using a rich application that doesn't have the request-response penalty then the web would disappear overnight . The reality is that with so many competitors out there we are stuck with the lower common denominator.  With Google entering the mobile space all we will see is more rubbish (eg Google Ad words) being available on the device. 

    How often do I browse the web on my device? - never!

    How many MB do I download a month on my device? - around 500Mb at the moment!

    Why do I download this much? - a combination of email, maps and rss (virtually no browsing cause it is just painful)!

    I think that if Google is going to try to steal the mobile phone market they are underestimating the complexities of the market. Consumers are fickle and will have higher expectations and lower pain tolerance than on the desktop where they are used to having to wait.

    Returning to my original point, if Google does enter this market then the existing players will just play defensive, which will imho stifle innovation rather than encourage it. Just take a look at the Windows Mobile or Blackberry platforms of recent years - has the innovation increased since Apple decided to play in this space?

    Data Synchronization and Sqlite Data Model For Multi-User Scenarios

    Nick's .NET Travels

    Continually looking for the yellow brick road so I can catch me a wizard....

    Data Synchronization and Sqlite Data Model For Multi-User Scenarios

    Most consumer application are built to either run anonymously (ie not captured information about who the user is) or they are designed with a single user in mind (think the Facebook application – whilst you can log out, typically to stay logged in, even across multiple sessions of running the application). Enterprise or Line of Business applications, particularly on slate/tablet devices are often multi-tenanted with users picking up the nearest device to them, running the app, signing in and getting to work. With this in mind the real estate inspector application has been architected so far to allow for login and switching between users. However, the local caching has been to a single Sqlite database which resides in the users application data folder. If users switch Windows profile then there isn’t an issue but this doesn’t work for devices where there isn’t a notion of user specific data folders. In this case all users will access the same database, which will result in synchronization issues or users seeing data that isn’t assigned to them.

    A simple solution would be to simply create a different database for each user. However, if there is data that is common across all users (Eg property types) this will be synchronized into each database. An alternatively approach is to have a common or master database which is used to synchronise data that is common across all users, then to have individual user databases that just contain the user specific data.

    Comments are closed