Dec 13

‘Tis the season! In place of our normal Boston/New England Windows Mobile User and Developer Group meeting, we will be having a casual holiday get-together. We will be meeting at the Bison County BBQ and Grille, located at 275 Moody Street in Waltham, MA.

Map picture

We will plan on being there starting at 6:00 PM on Wednesday, December 16th. No formal agenda; just good food, good conversation and friends!

We hope to see you there!

Tags:
Dec 11

I thought I would pass along a “good news/bad news” experience I recently had with regards to Windows Mobile 6.5, the .NET Compact Framework 3.5 and ActiveSync. Hopefully, it might serve to help someone in avoiding some coding and testing frustration.

I have been working on a project that requires responding to new incoming messages on Windows Mobile 6.5 devices. Fortunately, the State and Notification Broker API (“SNAPI”) made this simple enough. Now, my C# code needed to play a sound if certain conditions were met. Simple enough – the System.Media.SoundPlayer class in the .NET CF 3.5 would do the trick. Once the code was written, it was time to test.

The first test went according to plan. Use an emulator, deploy in debugging mode, set a breakpoint to ensure that I was hitting the correct branches in application logic and run with it. Sure enough, everything performed as expected. The next test was essentially the same, with the exception being connecting an actual Windows Mobile 6.5 device for testing. Again, there were no problems.

For the next test, I decided to remove the breakpoint in Visual Studio. I run the code and… no sound. My intellectual response - “WTF?!?!?” ;-)

I’ll keep the story brief here, omitting all the second-guessing and testing that went on up until my finally figuring out the root cause of the problem. The issue, as it turns out, is that -

  • SNAPI and the .NET Compact Framework 3.5 work very well. By “well”, I mean “fast”, especially when running on the latest hardware with Windows Mobile 6.5.
  • ActiveSync runs… well… about as fast as it always has on Windows Mobile, despite OS and hardware improvements.

Keeping in mind that ActiveSync and my application run on different threads, here is what I was able to determine:

  • ActiveSync begins a synchronization operation. As part of this sync, a new email arrives. Based upon device settings, ActiveSync prepares to play a sound and grabs resources.
  • At around the same time, my application receives the notification from the broker about a change in the unread email count changing. My logic has to do quite a bit of processing, but still managed to get to the point of playing a sound while ActiveSync still had a hold on resources. Result – my sound wouldn’t play.

“Fine”, I thought, “This is strictly a timing issue.” When I was in debugging mode, the stepping through the code and the latency associated with running in debug mode gave enough time for ActiveSync to complete. As a result, I decided to add code to pause my code to give time for ActiveSync to release resources. Here is where the real surprise came into play.

I spent quite a bit of time tinkering with the amount of time my application had to sleep in order to be able to play my sound. It took upwards of ten seconds for ActiveSync to release the resource I needed. When you consider the fact that ActiveSync had a “head start” on my code (AS was the cause of the SNAPI event firing, mind you), the amount of time from start to finish for AS was, well, A LOT. Ten seconds?!? Needless to say, I was very surprised and disappointed. This wouldn’t have surprised me a few years back, when slower hardware and slower network speeds could be the culprits. But today? With faster hardware and networks?

I guess the moral of this story is… If you are coding for Windows Mobile with a dependency on ActiveSync, NEVER assume performance. Code for the worst case and hope to be pleasantly surprised.

Nov 18

As someone who spends a great deal of time writing and speaking about technology, I am regularly asked by technology companies to write or speak about their products. Over the years, I have established a number of relationships with companies as a result. While I have generally had good relationships with these companies, I am finding more frequently that the relationship between companies and myself with regards to my role as a “technology communicator” is becoming strained. In some cases, the relationships are strained to the proverbial “breaking point”. This is why I have decided to write what follows.

In the spirit of openness and communication, I think it only fair that I write an Open Letter to all the companies that I currently do work with, as well as though that might wish to work with me. I do this in the hope that we can establish better and more positive interactions that benefit each other as well as (and perhaps more importantly) those in the public who both read and listen to my words about your products.

If you are a current or potential “partner” with me and find yourself taking offense in any way by what follows, please take a sincere moment of pause and honestly ask yourself why you feel this way. I hope that my writing may in some way cause you reflect and react in a positive way for yourselves, your other partners in the community and ultimately those in the general public whose acceptance you hope to gain.

Dear Sirs/Madams,

I write to you today with regards to your desire to have me write and/or speak about your product(s). I thank you for your consideration in this manner. In order to affect a more positive and effective relationship with your company, I ask that you take a moment to review the following information regarding our current and potential future business relationship into account before we proceed any further in the process.

  1. Please get to know me before seriously engaging me. I hope that the reason that you have chosen to engage with me is because of my reputation and the belief that I can be an effective partner. If you are considering me as someone to work with you, please perform due diligence in advance of establishing contact. I have always been an “open book” with regards to who I am, what I do and what I can provide to your company. I have always made my life around technology writing and speaking very transparent. Google me. Ask me questions. Ask yourself if I am a “fit” for your goals. Those few minutes of research will prevent yourself from trying to persuade me to look at, work with or review something that simply makes no sense based upon my interests. I expect that you value your time greatly; please respect the fact that I value my time as well.
  2. Please honor (in legality and sprit) any agreements we undertake. I am often asked to sign Non-Disclosure Agreements (“NDAs”) as part of your processes. I have yet to encounter an NDA that does not have some stipulations for the company I am working with. I have and always will treat NDAs with the greatest level of respect; it is something that makes up my “professional integrity”. While you may perceive me as something less, please remember that by requiring a contractual agreement such as an NDA, you are treating me as a business partner. Not only are you legally bound to the contract, your own integrity is at stake in this agreement.
  3. Please do not expect me to work with you on “blind faith”. I take the greatest pride in being able to communicate with the public based upon real and tangible knowledge based upon first-hand experience. I consider any sentence that includes “trust us” to be an affront to my professionalism. If you cannot explain why something is or provide me with information, do not expect me to accept that and then pass it along as personally-acquired fact. Furthermore – if we are under an NDA and you feel that you still cannot trust me to honor our agreements, I question whether we should have a relationship in the first place. Furthermore, I find such an attitude professionally and personally insulting and fear that it will introduce emotions into my perceptions of your products that would be unfair to you and (more importantly) those who read and listen to my words expecting an unbiased assessment.
  4. Please do not ask me to speak to something when you will not provide the information I need to speak properly. In relation to item #3, please do not ask me to speak or write about something about your product based solely on your word. I am more than happy to post press releases at my web site, but to ask me to advocate or endorse any product without first having experience with the product is a waste of time. Also – please do not ask me to appear at a product launch with your product without first having access to your product. I take my role as a speaker and writer very seriously; the word “credible” means everything to me. There is other form of communication where credibility is more at stake than when in a face-to-face scenario. I will not put my reputation on the line as “knowledgeable”, an “expert” or anything else without being personally comfortable in knowing that I am speaking from direct knowledge and experience.
  5. Please refrain from double-standards or “levels of confidentiality” with regards to talking about your product. I respect all legalities surrounding NDAs. I also understand and respect the need for such things as “press embargoes” until specific dates and times. However, please do not put me in a position where others considered as peers are allowed to talk about your product, but not myself. This jeopardizes my relationship with the community-at-large and therefore hurts you as much as me with regards to credibility and effective communication regarding your product. I consider this type of activity to be hypocritical with regards to you as a business partner and will question any further relationship when it happens.
  6. Please acknowledge my input/feedback regarding your product. I am intelligent enough to understand that I am but one person of many who may be providing input or feedback regarding your product. Please understand that, after years of being a product tester, I only provide such input in the context of making of improving your product (from my perspective). While I do not expect this input or feedback to necessarily be incorporated, I *do* expect that some acknowledgement of your company at least looking at or considering my input. Non-responsiveness to my communication (which involved taking the time and effort to test/research) delivers a message that the effort is not worthwhile and diminishes our relationship.
    Also – please do not ask for input for a specific release of your product under the guise that the input could be incorporated into your product when this is not the case in reality. I am intelligent enough to figure out when this is the case (and I do quite regularly) and consider this to be disingenuous at best. Once again, this diminishes my trust in your company. If you would like input on a product release but know it cannot be incorporated into the product before release, simply state that fact. I will respect your honesty and be glad to oblige you in any way that I can.
  7. Please respect my time. My goal is to always speak to any product or technology based upon real experience. This takes time, often at the expense of other items (personal or professional). Please do not ask me to review or speak to your product in an unreasonable amount of time.
  8. Please refrain from asking for “editorial review”. I have not and never will sign any legal agreement that allows you to have editorial review of my written or spoken content. I expect that our relationship (both professional and legal) would allow for us to work in an environment where we can work without the need for censorship. I regularly have offered companies the opportunity to read or hear what I will deliver to the community in advance of the delivery itself. I do so with the hope that anything that is truly inaccurate is caught, as well as providing the professional courtesy of a “heads-up”. While I am a partner, I am not an employee. My credibility is based in large part on my ability to speak freely on subjects. As an side – I will never speak negatively of any product issues in public without first communicating with the company responsible for the product. I believe it is my obligation to first address issues like bugs, features or defects with the company to understand if these items have been already identified and, if so, are they being addressed.

In conclusion, please note that I consider all of the items listed above as proper professional courtesy for any successful business relationship of this nature. I have always taken pride in addressing these types of relationships with the greatest amount of professionalism. All I am asking in return is to be treated with that same level of respect. If you feel that our relationship is anything less than a professional one because of the nature of what I do, I kindly ask you to refrain from any future engagement as such a relationship will never be beneficial to either one of us.       

Sincerely,
Don Sorcinelli

Nov 15

It’s time once again for our monthly Boston/New England Windows Mobile User/Developer Group meeting! This month, our meeting will be held on Wednesday, November 18th starting at 6:30PM at the Microsoft offices in Waltham, MA (201 Jones Road, 6th floor).

Map picture

This month’s topic -

It’s Off To The Market (place)
Coinciding with the launch of Windows Mobile 6.5, Microsoft has also launched the Windows Marketplace for Mobile. This “one-stop shop” for Windows Phones allows you to browse, purchase and download applications for your device – right from your device!

In this presentation, we will look at the Windows Marketplace for Mobile from both the end-user and developer perspective. We will talk about how to get started, what to consider and what the Windows Marketplace brings to the table.

Oct 20

It’s meeting time again, all! The next meeting of the Boston/New England Windows Mobile User and Developer Groups will be held this Wednesday (October 21, 2009) starting at 6:30 PM at the Microsoft offices in Waltham, MA (201 Jones Road, 6th Floor).

Map picture

Our featured presentation - “Back ‘Dat Thang Up!: Windows Mobile Backup Strategies”
While the title may sound humorous, there is nothing funny when it comes to the loss of personal data. With the high percentage of breakage, loss and theft of cellular phones the need to preserve critical information is always a concern. Microsoft has officially released it’s official cloud-based backup solution for Windows Mobile 6.5 devices in the My Phone service, but that may not be the right solution for all your needs.

In this presentation, we will talk about creating your own (or your business’) backup strategy and finding the right tools to meet your needs.

Aug 25

… he’d:

  1. Demand it for his Halloween costume;
  2. Wear it 24/7 until it disintegrated.
Aug 21

During our Boston/New England Windows Mobile User/Developer Group meeting this past Wednesday, we had a wonderfully interactive discussion during my presentation “State of The Union: Mobile Device Application Development”. A common theme/concern during the presentation revolved around the effort involved in creating a single logical application that runs on multiple devices across platforms like Windows Mobile, iPhone, Android, WebOS… and on and on. We talked in great length about development tools, programming languages, learning curves and the like. During the presentation, one consistent message I tried to impart the audience with was simple…

Don’t dismiss the possibility of leveraging the mobile web for your application.

I think the greatest example of this came from one of our attendees, Jim Travis (thanks, Jim!). He gave an example of an iPhone application currently available in the iTunes App Store (and a quite popular app as well). This application, focused on mobile banking, is quite nice and has the visual appeal expected when using iPhone applications. Jim then pointed out that by using this bank’s mobile web application, you received a similar visual appeal with similar functionality. No application download required. It is this very example that brought me to writing on this subject.

Any seasoned application developer will tell you that there are times when a web-based application simply will not work. Usually, it is business-critical requirements like offline access to the application, detailed interaction with hardware and/or system resources or local storage of information that becomes a “show-stopper”. I understand this entirely, having experienced this far too many times myself over the years. I believe, however, that when it comes to mobile application development, we have become conditioned in an almost Pavlovian way to assume mobile application equates to native application.

Part of our conditioning when it comes to mobile application development comes from the evolution of mobile devices themselves. For so many years, mobile web browsers were well behind there desktop counterparts in capabilities. In fact, it was not that long ago that the only “safe bet” when developing for mobile browsers was to keep it as simple as possible, falling back to WAP standards to guarantee that the application would work. Times have changed in this regard; today’s mobile browsers are quickly gaining the ability to render desktop web sites with near-desktop fidelity. Unfortunately, these capabilities have led to yet another aspect of our turning away from mobile web application development.

With today’s mobile browsers supporting near-desktop browser capabilities, many have come to assume that there simply is not a need to mobile web equivalents. I frequently hear people say “let the user go to the ‘regular’ web site if they want <fill in the blank>.” Sadly, simplistic statements like this forget an oh-so important principle of software design – accessibility and/or readability do not equate to usability. While I can see my bank’s web site on my mobile browser, the process of using my bank’s web site to manage my finances is fraught with challenges zooming in and zooming out of a page, panning, scrolling, doing data entry, etc. All this typically leads to frustration and (inevitably) abandonment. If the banking site is optimized for my mobile browser, however, I can perform the tasks I require with improved readability, navigation and data entry. Result – a workable application that, when crafted correctly, can support a user base using different devices.

The techniques for supporting mobile mobile web browsers have existed for a long time. In fact, those who have developed web applications long enough can recall having to use the same techniques for desktop browsers (remember the first “Browser Wars”, with IE 4 and Netscape 4?). Interestingly enough, desktop web application developers are finding themselves in a similar situation today with IE 8, Firefox, Safari and Opera. To best provide rich web application functionality using “browser sniffing” (the web application determining the browser being used) and appropriate rendering of the web page, one can leverage a single base of common business application logic and customization only for the user interface. If you are developing using this technique today for your desktop experience, why not simply extend it for your mobile experience? While this approach requires a greater development effort, I think it is safe to say that it is usually far less effort than the alternative of learning multiple programming languages, investing in multiple toolsets and trying to keep everything “in sync” from a feature/functionality standpoint.

Another major challenge with native mobile applications lies in the process of distribution. How do you get your application to your users? Every mobile platform currently has one or more ways to deal with software distribution, but managing this when complicated by one logical application having multiple device-specific implementations is complex, to say the least. One compelling reason for the explosion of web applications in the past decade has been around this challenge. Simply put, web applications have no distribution issues to address, at least from a mechanical standpoint. New features? No problem. Bug fixes? No problem. Simply update the web site and voila! Bottom line – distribution of software is almost always a major complication for any type of application; web applications practically trivialize this issue.

All of this may sound like I am minimizing the importance of native device applications. I most certainly am not. I recognize their importance as well as scenarios where they are the only option. What I want to make clear, however, is that they are far from the only alternative for building solutions that support disparate multiple device platforms. When the idea for developing a mobile application first arises, you should be asking yourself some simple questions…

  1. Is there a compelling business and/or technical reason why I cannot design the application for the mobile web? Sometimes, a legitimate business reason may trump technical reasons. An example – the exposure of a native application to the public through a distribution channel provides more marketing ROI than a web application would. I think the mobile banking example mentioned previously could support this scenario.
  2. Can I provide the functionality for the user that meets the business and/or technical requirements with a mobile web application? While this used to be a blocking factor for the mobile web, it is increasingly becoming less so. Remember – the same mobile browser functionality that allows for the rendering and interaction with desktop web sites can be leveraged with a mobile web site; it is the design for usability on mobile devices that makes the extra development effort worth while.
  3. Is the extra cost associated with multiple versions of the same application for different devices worth it? Back to the ROI discussion. If there are no blocking factors for a mobile web application, it is crucial to address the costs and benefits of going the native application route to make sure that there is a very real reason to “go native” (held off using that phrase up until now ;-) ).

As a presenter, I love discussions that make me think in the same way that I hope to get my audience to think. This past Wednesday’s meeting/presentation was one such discussion. I really believe that the diversity of mobile devices and associated platforms may in fact be a greater driver to mobile web application adoption than anything else prior. By simply being open to the idea of cross-platform mobile web applications, we can potentially see a new world of opportunities for all mobile device users.  

Aug 18

In case you haven’t heard, the first of the WinMoDevCamps is occurring tomorrow (8/19/2009) in Seattle. Just what is WinMoDevCamp, you ask?. Well, here is the answer, direct from the WinMoDevCamp web site -

WMDC004-background

“WinMoDevCamp is a series of upcoming not-for-profit gatherings to develop applications for the upcoming release of the Microsoft Windows Mobile 6.5 O/S. The event is currently being planned in 7 cities around the world. Our first Windows Mobile Developer Camp event has been scheduled for August 19 in Redmond, Washington at the Microsoft Campus. You can register now on the form below. Dates will soon be announced for the following additional cities: Austin, London, New York, San Francisco, Singapore, and Toronto. We will also encourage other mobile developers to host their own events on the same dates. This website will have facilities for local events to organize as well.”

The last sentence in this paragraph is the reason for this post. While a New York City event is planned, there is nothing set for Boston. This begs to ask the question -

If a WinMoDevCamp event was planned for the Boston area, would you attend?

If there is the interest in this event, we here at BostonPocketPC.com are willing to try and make it happen. However, no one likes having a party where no one shows up ;-) The best way to express your interest – send an email to winmodevcamp at bostonpocketpc dot com. Please don’t delay – the sooner we can gauge interest, the faster we can get the ball rolling!

Aug 04

It’s that time again! The next meeting of the Boston/New England Windows Mobile User and Developer Group will be held on Wednesday, August 19th starting at 6:30 PM at the Microsoft offices in Waltham, MA (201 Jones Road, 6th Floor).

Map picture

Our next meeting will be of interest to anyone who currently is or is looking to develop applications for mobile devices…

“State of the Union: Mobile Application Development”

If you are a mobile device application developer, there has never been a more opportunistic time to leverage your skills. With several established device platforms out there and more gaining traction daily, the decisions as to where to place your development efforts have never been more challenging. 

In this presentation, you will receive an overview of all of the current opportunities for mobile device development. You will learn about the market opportunities (both consumer and enterprise), the technologies needed for success and strategies for leveraging your knowledge to maximize your productivity and skillset.

As always, we will have lots of giveaways for our drawings at the end of the meeting. All you need to do is… be there!

Jul 17

I am among the legions of people who have come to wholly rely on Microsoft Outlook over the years for my day-to-day PIM actions (mail, calendaring, tasks, contacts). As a result, I (like many others) have cheered the improvements and lamented over the issues related to Outlook. Having first observed and now being a part of the netbook world (in my case, an Acer Aspire One), I thought that my long relationship with thee Outlook client might have to come to an end. “There is no way”, I thought, “that Outlook would ever perform reasonably well on a processor- and memory-constrained platform like a netbook. Folks, I am happy to report that this presumption was woefully wrong.

I have been fortunate enough to be a part of the Microsoft Office 2010 Technical Preview. When I first received the invitation, I had to decide where and how I would run the included applications. I couldn’t run it on a “production” computer; it is only a Technical Preview, you know ;-) I could create a Virtual Machine for it to run on a production computer, but I really didn’t think I would give the suite of applications much attention and use if I did that. This left the Aspire One. With just an Intel Atom N270 processor, 1 GB of RAM and the Windows 7 Release Candidate. I shuddered at the thought, but forged ahead.

The first thing you notice when working with the Office 2010 Professional Edition Suite (the default for the Technical Preview) is the size; more importantly, the reduction in size. Clearly a lot smaller install than in recent years. I took this as a hopeful sign, although the skeptic in me knew that executable size is one thing, but performance is another. I went ahead and completed the installation of the Office products (Word, Excel, PowerPoint, Outlook, OneNote).

Outside of a new splash screen, the initial setup process for Outlook is pretty much the same. I immediately set up my personal hosted Exchange account, planning on immediately following that up by trying out a new Outlook feature that is incredibly overdue – running more than one Exchange account within a single Outlook profile. To this this, you have to shut down Outlook and access the “Mail” Control Panel applet. Once completed, I held my breath and fired up Outlook 2010 once again. This is when the wonderment truly began.

When it comes to Outlook 2010 on my netbook, here is what I can safely say -

  1. Outlook 2010 loads as quickly as Outlook 2007 on my other computers. Mind you, I am saying this from an end-user experience perspective (please don’t email me with “I benchmarked and there was a 1.2 second difference; nice to know, but I was more concerned about the experience rather than the raw numbers). Keep in mind that my other computers are far more powerful and only loading 1 Exchange account.
  2. Outlook 2010 is as responsive if not more so than Outlook 2007. Again, when you consider the fact that I am saying this about Outlook running on a netbook…
  3. Outlook 2010’s memory requirements are on a par with Outlook 2007. Considering the fact that I am running 2 Exchange accounts AND all of the new features included in Outlook 2010, that astounds me.

I simply cannot believe I am saying this, but…

I am running Outlook on a netbook and loving it!

Before I wrap up, a few additional initial comments about Outlook 2010 (expect to see more in the coming days and weeks)…

  • I love the ribbon bar. Of course, I’ll need to get used to where everything now is, but I went through the same learning curve with the other Office apps in 2007.
  • Conversation View is great. But Conversation View with the ability to still track the thread even after moving emails to other locations is awesome!
  • Quick Steps are long overdue. Most people use Rules in Outlook, but I always had a fundamental problem with them – the rules did things before you looked at the message. Quick Steps are more like macros; I can look at an email, then click on a Quick Step icon to do processing. Number 1 use – filing messages without have to drag and drop within the labyrinth of folders I have set up.

All in all, I am more than pleased with Outlook 2010 at this point. As a matter of fact, “pleased” is really an understatement.