TamsWMS – the Windows Mobile Smartphone Blog

The Windows Mobile Smartphone news and opinion source

June 30th, 2009

Declaring delegates on a single line

Microsoft’s C# programming language sometimes reminds me of a pinata – it is full of surprises. The latest one comes in the form of the two delegate definitons below:

//DELEGATES
public delegate void doneSearchingDlg();
public delegate void newResultDumbDlg();

doneSearchingDlg doneSearching;
newResultDumbDlg newResultDumb;

In case anybody is new to C#: a delegate is a function pointer which can accumulate multiple functions, which are then called at once with a single call. But this is not the reason for this little rant – instead, I am pissed about why the declarations cannot look like this:

//DELEGATES - CAN NOT COMPILE AS OF VS2005
public delegate void doneSearchingDlg() doneSearching;
public delegate void newResultDumbDlg() newResultDumb;

In plain-old vanilla C, almost every language primitive can be animated while it is being declared – why this feature was omitted from Delegates is a mystery to me.

Ideas, anyone?

June 28th, 2009

Microsoft Marketplace for Mobile: 600 apps at launch

 Microsoft Marketplace for Mobile: 600 apps at launchMicrosoft France’s product manager for all things mobile has made a very interesting quote in a recent MobiFrance interview:

Audrey Zolghadr: 20,000 applications are now available for Windows Mobile. For the launch of MarketPlace, 600 applications will be available. It will be possible to retrieve the software from the search engine. Only software compatible with the screen resolution, touch or not touch will be visible to the user.

600 applications is might not be too much – but is nevertheless impressive especially of compared to what other manufacturers have unleashed upon their customers (Palm: less than 50 apps, Nokia Ovi: full of crap)…

June 15th, 2009

.NET CF 3.7 – CAB leaked

Microsoft’s .NET Compact Framework is slowly but surely picking up speed all over the world. The current version 3.5 generally seems to be pretty ok…but, in time, a successor will come (anyone recognize this quote?).

A PPCGeeks user has posted a CAB file containing version 3.7 of the .NET CF. As of now, nothing is known about improvements or changes – as the new language features will likely require a new version of Visual Studio, there is little to gain here for developers.

Either way, hit the link below for the download:
http://forum.ppcgeeks.com/showthread.php?t=71466

June 5th, 2009

Windows Mobile 6.5 SDK released

Microsoft has just unleashed the Windows Mobile 6.5 SDK upon the masses:
 Windows Mobile 6.5 SDK released

Surprisingly, the SDK is based on the Windows Mobile 6 SDK and even goes as far as to require it installed. This gives us system requirements of at least Windows XP SP3 (no Windows 2000) and Visual Studio 2005…

Hit the link below for further info (and be pprepared for a 300MB download if you wish to develop for Standard and Professional)!

Windows Mobile 6.5 SDK

May 21st, 2009

Marketplace could allow five devices/purchase

Microsoft has recently opened its Marketplace to developers interested in registering. As of now, customers and the press are not allowed in – the quote below hits us via ComputerWorld:

In a potentially market-changing move, Microsoft Corp. plans to let customers of its upcoming Windows Marketplace for Mobile run purchased applications on as many as five Windows Mobile phones at the same time.
This would primarily benefit individuals who own multiple smartphones running the Windows Mobile 6.5 operating system, which is needed to access Microsoft’s online store.

Marketplace customers will also be able to get a no-questions-asked refund on an application, provided they request it within 24 hours of their purchase

Even though this sounds extremely developer-unfriendly, my personal experience tells me that these issues are very rare. I have been selling applications for the Palm OS for about five years now, and have to say that less than 5% of customers ever demand a second unlock code or a refund (even though ESDs have offered this for quite some time).

I see the problem somewhere else: Microsoft lets customers know about these possibilities. Austrians say that opportunity creates theft…which is what we are likely to see here…

Ideas, anyone?

April 12th, 2009

Seth Godin on Design

banner Seth Godin on DesignSeth Godin is the man behind a very interesting marketing blog, a bunch of top-selling business books and – last but not least – the concept of permission marketing. I thus was somewhat surprised to see him talk about graphics design…but felt that his list could be useful nevertheless.

Seth listed a variety of books and web sites which could be helpful for people wanting to become decent graphic designers – further information can be had here:
http://www.squidoo.com/become-a-really-good-graphic-designer

March 31st, 2009

MobiHand lowers minimum prices

MobiHand has just informed me of an important change in company policy which will allow their developers to compete more effectively in ultra-low-price markets. Their move comes at a crucial time as credit crunch and iPhone push application prices down – enjoy:

We are happy to announce a change of price limits intended to allow you greater pricing flexibility.

The current $3.95 minimum product price in the MobiHand Catalog is changed to a minimum selling price of $0.99 in MobiHand network stores and $2.95 in developer shopping carts.

Please do not set any product price less than $0.99 for sale in any MobiHand store.

If you use a MobiHand shopping cart in your website or application, please do not offer any price or discount that results in a net selling price in the shopping cart that is less than $2.95. If you need to sell any product for less than this amount, please contact us to arrange a modified shopping cart fee that allows us to meet your needs without incurring losses on individual transactions.

Even though I am not too motivated to lower my products prices as of this writing, the added flexibility definitely is nice to have. Congratulations to MobiHand…

March 21st, 2009

Fatal error LNK1112: module machine type ‘THUMB’ conflicts with target machine type ‘ARM’

Mr. Kaar (of mSports fame) and yours truly spent quite a few minutes of our lives scratching our heads recently – the Setup.dll contained in one of our projects kept failing with the error message found in the title of this post.

Fortunately, the solution is easy. Open the linker preferences via right clicking on the affected project, then click command line and change the displayed values to /subsystem:windowsce,** (the ** are the numbers which are already there, just remove the appendix).

The image below shows a Windows Mobile 5.0 project (sorry for German IDE):
 Fatal error LNK1112: module machine type THUMB conflicts with target machine type ARM

Then, do a clean recompile, and the “Fatal error LNK1112: module machine type ‘THUMB’ conflicts with target machine type ‘ARM’” eekers should be over.

P.S. For all those of you interested: ARM processors support two different instruction sets going by the names ARM and THUMB. ARM is 32 bit wide, while THUMB provides optimal performance on machines with a 16bit data bus.

March 20th, 2009

Developing for Windows Mobile without Visual Studio

Microsoft’s Visual Studio unfortunately is quite expensive…which has caused small developers to look for alternatives. As Microsoft has so far steadfastly refused to unlock Express Editions for Windows Mobile development, an alternative had to be found.

CodeProject’s Joel Ivory Johnson has taken a detailed look at a way to develop Windows Mobile applications via a free third-party IDE – if you want to save some cash, hit the link below:
http://www.codeproject.com/KB/mobile/WiMoSansVS.aspx

March 14th, 2009

Red Five Labs updates Net60

redfive Red Five Labs updates Net60The .NET CF was originally intended to be highly portable: unfortunately no implementations were made available except for the various breeds of Windows Mobile.

Developers who want to extend the reach of their .NET CF apps to the millions of Nokia devices in the market have thus looked to a South African company called Red Five Labs – their Net60 runtime allows .NET developers to target S60-based devices.

Net60 has just received a major update, adding touchscreen support under S60v5 among other changes. The full press release is below:

We’re proud to bring you another improved release of our acclaimed Net60 .NET framework for Symbian.

Our 4th release in as many quarters contains many significant improvements.

Version 2.1 now has a great looking WinForms UI which is much more stable than previously. The look and feel of the controls is more polished, much faster and all known issues related to the UI have been fixed.

The Net60 Version 2.1 UI also supports touch, meaning S60 5th edition devices are now supported!

Cross-platform Mobility Framework
Net60 is compatible with Microsoft’s .NET Compact Framework 2.0 and our 30 day trial now ships with an evaluation version of the Red Five Labs Mobility Framework. The Mobility Framework incorporates a host of managed APIs in a collection of DLLs which make it possible to develop cross platform solutions for both Windows Mobile and S60 using one framework. We’re shipping a great sample application which demonstrates the concept using the messaging layer provided in RedFiveLabs.Mobile.Messaging.DLL.

We’ve also made major advances on our runtime: performance has improved overall with significant improvements in many sub-components of the class libraries. Its a much more stable build.

The development tool chain also contains many improvements. Our debug build of Net60 containing the Net60 Launcher now supports folder navigation and loads wait cursors and icon resource files too.

The Genesis wizard now generates your application’s .pkg file and also allows developers to edit and therefore customise their .SIS file.

March 13th, 2009

Silica: free book with Windows CE platform builder

The folks at Silica’s have just let me know about a promotion which could be very interesting to all these of you wanting to get deeper into the ROM hacking / device building game:

With every purchase of Platform Builder for Windows® Embedded CE 6.0 in March and April, you will receive a copy of the new Windows® Embedded CE 6.0 Fundamentals book – absolutely FREE*!

To claim your FREE book, simply place an order for Platform Builder with SILICA before 30th April and the book will be sent directly to you.

Further information on the promotion can be had here:
http://www.msembedded.biz/

March 6th, 2009

On sensible user interface design

Don’t ask me why a presentation on user interface design made it into the IEEE proceedings schedule of the FH Hagenberg’s NFC Congress. Nevertheless, being the UI fetishist I am, Alice Moroni’s presentation struck my interest. Enjoy:

Alice started out by presenting a few cases of extremely bad design:
0 On sensible user interface design

According to her, catastrophes like the ones above are caused by a wrong approach to design – it does not consider the user:
1 On sensible user interface design

The solution is called user-centric design…which means putting the user at the center of the development process:
2 On sensible user interface design

Understanding users can be difficult – the slide below presents an overview of users needs:
3 On sensible user interface design

Prototypes are very useful when it comes to figuring out how users “tick”:
4 On sensible user interface design

Unfortunately, user tests are not easy. Their experience showed them that users should not be given too many tasks at a time (among other things):
5 On sensible user interface design

Users must be monitored discreetly, as their behavior changes the moment they feel monitored:
6 On sensible user interface design

Point-of-view cameras can be useful:
7 On sensible user interface design

Alternatively, a screencast solution can be used:
8 On sensible user interface design

When it comes to determining the users, a surprising thing pops up: 5 users are usually enough to find 85% of all eekers; whereas 15 are likely to find all of them according to J Nielsen:
9 On sensible user interface design

The next surprise: advanced users loathed their simple application. Some missed core features, while others felt that the program was “too lowly” for their taste:
10 On sensible user interface design

January 26th, 2009

Gamers on mobile gaming

 Gamers on mobile gamingAn old English proverb states that the best way to make horse shoes is straight from the horse’s mouth – while this sounds pretty straightforward to me, finding gamers is not always that easy.

Fortunately, PocketGamer took on the job for us and collected quotes from random mobile phone users who were into gaming – their statements range from the mundane to very interesting things which should affect game design decisions.

So, don’t be left out – hit the link above and see what average gamers have to say!

January 22nd, 2009

Visual Basic 10.0 vs C# 4.0

The topic of VB against C# is as old as the two languages themselves: I am firmly in the VB camp and consider C# a rather useless language which will have a fate similar to Ada. Others feel that VB is a language for idiots and should not be used by anyone (in extreme cases, these boys insist on offering C# to students even though 80% preferred Java when having to pick their subject).

It looks like all of the squabbling is just about syntax, as Microsoft’s team is actively committed to keeping the two languages feature-equal. The chart below comes from the official VB blog and outlines the “new” features found in C# 4.0 and Visual Basic 10.0 (released in VS 2010):
image thumb Visual Basic 10.0 vs C# 4.0

This quote accompanies the post:

One thing you may notice is that the lists look very much the same! That is part of our efforts to ensure that whichever language you are using, you will have the same functionality available to tackle your development tasks.

So: what do you think? C# of VB?