Mar 05

Microsoft’s recent announcements around Windows Phone 7 Series and first details regarding application development for the platform have made me take pause to think about those of us out in the world of mobile device application development. More specifically, I’ve been thinking about things from the perspective of a developer who supports mobile device platforms in general, not just one in particular. I know I am anything but alone in this situation. An increasing number of independent developers and commercial development companies are in this situation. Additionally, the number of enterprises supporting Line of Business applications to an increasing variety of users and phones fall into this same group. For everyone involved, the dizzying array of hardware types, operating systems, development platforms and programming languages are a challenge, to say the least. That is why I am becoming increasing convinced that for many, the only real hope in being able to support all mobile device platforms is HTML 5.0.

In order to understand the true scope of the current dilemma for so many people, you simply have to break down the potential target phones from a development perspective. You get something like this…

  • Windows Phone – Currently, you have native development with C++ or managed development with the .NET Compact Framework. Moving forward, you will have Silverlight or XNA. The development platform – Visual Studio (running on the Windows operating system).
  • iPhone – Objective-C is the language, with XCode as the development platform (running on the Apple OSX operating system).
  • RIM – A device-specific subset of the Java language, with different development platform options.
  • Android – A device-specific subset of the Java language, with different development platform options.
  • WebOS – A device-specific subset of HTML standards, with different development platform options.

OK – so what does this mean for a developer trying to build a single application that supports multiple phones using native development tools? Well, for starters…

  • From a development computer, the best-case scenario requires an OSX-based desktop or notebook (think iMac or MacBook) with both the OSX and Windows operating systems installed. I have set up such a computer in the past, and it’s not very pretty (or inexpensive).
  • Again from a best-case perspective, I need to know at least the fundamental aspects of -
    • .NET (then the derivatives for the Compact Framework, Silverlight and XNA)
    • Objective-C (C or C++ for starters, but a whole lot of differences)
    • Java (then the SDK-specific derivatives for each device)
    • HTML (and then the specifics for WebOS)

Folks – that’s one specific computer and FOUR programming languages (with a lot of additional knowledge on top of the language basics) just to get my single application to all the major phone platforms. And remember – these are “best-case” scenarios. I didn’t include those applications that are very hardware-dependent (physical buttons versus  touch screens, screen resolution, etc) or graphics-intensive (using GDI versus OpenGLES versus native, etc). Of course, I left out the biggest challenge of them all regarding development – having to re-create one application many times. Even under the best of circumstances (an application where the bulk of application logic resides in a centralized location accessible via the Internet), there is all the work on the client/device of the application to perform. Even under the best of circumstances (Java to Java, for example), there is still lots of platform-specific work to do).  

With all these challenges in mind, what’s a developer to do? Well, there are several options -

  1. Pick your platform(s) is stick to it/them. For many independent developers, this is the only viable alternative. The time and effort for a single person to develop one application for multiple devices without a guarantee of return on investment makes for a simple decision – choose the platform or platforms I can reasonably manage from a time and cost perspective. For larger development groups, there is still the challenges of identifying and allocating the proper resources (developers) to the development efforts, never mind the challenges of keeping everything in sync to assure that work on Platform X doesn’t break or supersede Platform Y. For enterprises, there’s the cost of development, hiring and training the resources required. 
  2. Leverage multi-platform development platforms. This is primarily an enterprise-focused option that is becoming more popular. There are solutions that allow you to ‘write once, deploy everywhere” when it comes to phones. However, these platforms often come with new challenges. In addition to the sheer cost of such solutions (limiting their consideration to larger enterprises with IT budgets capable of purchase), there are infrastructure and capabilities (think “Jack of all trades, master of none” when it comes to these platforms when compared to native development) to consider.
  3. Develop mobile web application development. As any developer knows, the current state of mobile web application development comes with a number of limitations. First and foremost is the issue of being offline from the Internet and the “red flag” this poses for many applications. Despite all the marketing hype, guaranteed mobile device access to the Internet is still a myth (just think about all the times you’ve had dropped calls on your cell phone). Heck – guaranteed wired Internet access is a myth; just think about your home computer and your ISP. Many application rely on being able to work when no Internet connection exists. These applications not only need to function from a user interface perspective; they also need to be able to safely store enough of a cache of data locally when the the connection is lost to be able to allow the user to perform their work. For the most part, most mobile phones do not implement the capabilities within their respective web browsers to make this a reality.
    The current state of mobile device web browsers also makes for a present-day situation I like to refer to as the “Microsoft/Netscape Syndrome”. Anyone who has been developing web applications can remember the days when the differences between the two most popular web browsers at the time (Internet Explorer 3.x and Netscape Navigator 3.x) were so different in what HTML standards they supported that as a developer you were required to essentially build two versions of a web application if you wanted the widest usage. NOTE:  Yes, I acknowledge that this is STILL going on today in the desktop browser world – I just like to refer to the first time that this became an issue that truly affected the development world in a broader scale ;-) Today’s mobile web browsers mostly suffer this same fate. Their capabilities vary by platform, making even the simplest of application development tasks difficult and requiring a lot of conditional coding and rendering logic based upon browser detection (the term “browser sniffing” is has relevance more than a decade after it’s creation).

Now after saying all of this (including the current challenges around mobile web development), you may be wondering why I think that yet another HTML specification may provide some relief for multi-platform mobile device developers. Well, there are a couple of things around HTML 5.0 that can address these issues -

  1. Reducing fragmentation that has occurred in the years since HTML 4.0 was ratified. A lot of time has past in the years since HTML 4.0. During this time, a lot has changed with regards to the Internet and how we use web applications. We’ve seen fragmentation in addressing these issues as a result. Don’t get me wrong here; I’m not saying that HTML 5.0 will solve all the issues. However, we are already seeing some vendors in the mobile space betting in some way, shape or form on HTML 5.0 and moving away from their own individualized solutions to problems, instead building in HTML 5.0 support in their own mobile web browsers. Heck – Palm has practically bet everything on HTML 5.0 with development for WebOS. As I mentioned earlier, WebOS application development is grounded in HTML standards – HTML, JavaScript, CSS, etc. If that makes you wonder how you could possibly develop applications that work offline, then you need to consider…
  2. The HTML 5.0 Database specification. I will leave the details to this specification to the W3C. However, if you care to look at the HTML 5.0 specification, you will find a great deal of changes dealing with application caches, application sandboxing and databases. All of these changes account for offline HTML applications as well as traditional online access. In essence, the W3C is, with the HTML 5.0 specification, finally officially addressing the use of native HTML as an application language, rather than simply a connected web application language.
    Palm is not alone in moving toward HTML 5.0 for mobile technology. Google (via Android’s browser) and Apple (starting with the iPhone 3.0 and Safari) have started implementing HTML 5.0 standards. One example is with the HTML 5.0 support for location. If you’d like to see this in action and have either an Android or iPhone handy, check out Microsoft Device Application Development MVP Richard Jones’ example (complete with source listing). Bottom line – if the HTML 5.0 as currently written is ratified and if the mobile device platform players implement the standard, it will be much more possible to develop cross-platform applications that meet offline requirements than ever before. While I am certain there will always be platform-specific APIs (likely exposed via JavaScript) to deal with, I think that learning one base language and device-specific extensions is certainly more manageable than four languages that exist today.

Of course, HTML 5.0 cannot solve all multi-platform development problems. There will almost always be application scenarios that require using a development model and language that is “closer” to the device. Gaming applications, for example, commonly require complex graphics processing. While HTML 5.0 is making strides even in this arena, it is likely that it will not supplant the need for more native development solutions that are optimized for and tailored to a specific device. For many other applications, however, HTML 5.0 provides the potential to enable development of applications that can meet the challenges of modern mobile applications, and all under a single development language umbrella.

I applaud those device and mobile operating system manufacturers that are embracing HTML 5.0 as “early adopters”. To those that are not, I strongly urge them to consider not embracing this standard might mean. Early on, I mentioned the “pick your platforms approach”. If HTML 5.0 is adopted by everyone but you, it is more likely that you will be the “odd man out” for a potential audience of thousands of developers. Here’s to hoping that is not the case for any one manufacturer. Here’s also to looking forward to HTML 5.0 final ratification. And finally – here’s to hoping that HTML 5.0 really can live up to addressing one of the greatest challenges posed to mobile device developers today.    

Jan 30

Back in the “good ol’ days” of late 2000, I started writing regularly on the Internet. Back in those days, I was mostly writing software reviews for a relatively new gadget – the Pocket PC. There were a few web sites around that focused on the technology, but not a ton. In January 2002, I launched BostonPocketPC.com. The idea was to use the Internet to communicate about Pocket PC, then Smartphone, then Windows Mobile and now Windows Phone technologies. News and reviews was the name of the game.

BostonPocketPC.com has always been an enjoyable experience for me. It has given me the chance to meet new people and write about technology I love. A lot has changed in the last 8 years, but it is what has occurred in the last year that has really changed by interaction with the Internet – the emergence of social media.

I’ve always enjoyed writing. I’ve also enjoyed interacting. While traditional “blogging” on the Internet is a great way to speak to an audience, it’s never been a great way to “communicate”. Even longer than my Internet writing career, my professional career has been focused on dialog rather than monologue. Blogging does have it’s ability to invoke conversation, but it is not it’s default nature. The advent of technologies like RSS have moved traditional Internet writing even more towards a more uni-directional nature. That’s never really been my “cup of tea”. The emergence and acceptance of social media technologies has proven to be the media I truly crave.

Whether it be Twitter or Facebook, Yelp or FourSquare, social media is all about interaction. Tweets are replied to, either in replies, retweets or direct messages. Facebook posts result in comments or “likes'”. All very much and very easily in real time. Sure, we’ve had email, forums and newsgroups. None, though, have encouraged the widespread and rapid response to thoughts, opinions and statements than these social media tools do. For me, the result has been quite obvious – I’ve found myself spending far more time in the social media world. This has come at the expense of the traditional Internet mediums. I’ve been thinking a lot about this recently, and I’ve come to some conclusions.

I’ve come to realize that there still is a place for both the traditional and “new” ways of communicating on the ‘Net. I have come to realize I still find enjoyment in blogging. I’ve also come to realize that it is most enjoyable when I want to communicate a message that can’t be conveyed in 140 characters or a “quickie” paragraph. While social media has some strengths (as I described above), it does has it drawbacks. I also realized that by being a little too immersed in social media, I sort of rationalized myself  out of writing more. You have to admit it; Twitter and Facebook do make us a bit lazy when it comes to writing. That is going to change.

My plan moving forward is to try to start doing a healthier mixture of both social media and blogging. I really don’t need to change my social media habits to accomplish this; social media only takes a matter of seconds at a time to communicate. I will start to take the time to identify those things worthy of more complex communication (read - “more words”) and bring them to my blogs/sites. While I might not get the interaction I would like, I still hope that they can either inform or invoke thought. In the end, that is why I have always really enjoyed my writing on the Internet, and what I had somewhat lost sight of – until now.

Jan 30

I’ve decided to capture some thoughts and observations around this past week’s announcement and subsequent hoopla over Apple’s newest product – the iPad

iPad .

I write this for 2 reasons -

  1. I would feel left out if I was not one of the BAZILLION bloggers on the Internet who had not posted thoughts on the iPad. If you were following me on Twitter, however, you might have picked up some of my thoughts.
  2. Ever since the announcement, I have been asked by any number of people what I thought about it. Easier to write once and point than to write over and over again, I always say.

Now before I go on, a few “ground rules” -

  1. Anything that I say that appears to be a criticism of the iPad should not result in the instantaneous response of “you’re just a Microsoft fanboi” (the tech intellectual equivalent of “I know you are, but what am i?”) Remember that I regularly use a MacBook (BootCamp’ed with both Snow Leopard and Windows 7) and have an iPhone in my fleet of mobile devices (the MacBook allows for iPhone development). I see and know from my personal perspective both the pros and cons of these products, and objectively understand them.
  2. Anything that I say that appears to be a positive of the iPad should not result in the instantaneous response of “Ha! Your abandoning Microsoft! How could you!” or the likes. For rationale, see #1 above.

(It’s not like I haven’t been in this position before, mind you. Long before the Microsoft/Apple thing, I dealt with the Windows/Unix thing. When you try to be objective, someone always gets pissed off. Simple fact of life.)

Finally – What is contained here are my personal thoughts and speculation on the subject. Nothing “etched in stone”…

With all this now “on the table”, here are my random thoughts, in no particular order…

  • For aesthetic industrial design, the iPad is a winner. Then again, when isn’t Apple a winner in this category? As a matter of fact, the day Apple releases a hardware product that isn’t aesthetically pleasing is the day they should shutter their doors (and you should beware of it raining frogs). I like the size and weight. I’ve heard complaints about the size of the bezel, but folks – you have to have some area to hold the device without interfering with both the touch screen and the viewing area.
  • I get the hardware specs for processor, memory and storage. Apple sees this as being in the “netbook” segment (more on that later), and for the use cases they associate with this segment, a more energy-efficient processor with longer battery life is a good move.
  • First criticism – choosing the iPhone OS for this device. While I know this opens the door instantly to hundreds of thousands of Apple AppStore applications, it brings with it some limitations. I really thought that the iPad could have solved a major and long-standing problem for Apple if this was one differently. Follow along with me on this one…

    Since I can remember, OSX has always been held back by the lack or quality of applications in a lot of market spaces. The iPhone was the first time Apple truly had widespread developer adoption of their tools and development platform. However, this jump to the Apple development platform hasn’t really equated to developing for ALL Apple hardware. Now, if Apple had chosen OSX for the iPad, they might have had a compelling OSX story. Something like “iPhone developers – here’s a device that is similar in many ways to what you are familiar with in the iPhone. With some work, you can now bring your applications to the next level, and not just with the iPad!” If the rumors of touch screen enablement in other Apple hardware is true, all the more for a compelling case to lure an army of iPhone developers to the OSX world, bringing scores of applications with them. Apple, I really think you missed the boat here.
  • Still on the iPhone OS choice – this time, it’s the lack of multitasking. Apple really needs to bring something, even in limited form, in the way of multitasking to the iPad. While I might not agree with it, I can see some of Apple’s arguments against multitasking in the iPhone. However, Apple made a point to position the iPad in the segment of a netbook replacement. I believe that either Apple is WAY off here or simply isn’t serious about that representation. It all comes down to use cases here, folks.

    A netbook is a more traditional computing platform in the way of use cases (unlike a mobile phone). Even under the most restrictive of situations, people expect some ability to move between applications, or to leave one application open while working on another. Even the most basic of end-users will find themselves working with or using an application downloaded from the AppStore and expect to be able to leave it for a minute when a new email arrives. This is what any computer user has come to expect these days. While users may initially be willing to accept this limitation, I will expect it to become an annoyance over time.
  • iPad and eBooks – I strongly suspect that THIS (not a netbook competitor) is the real motivation for the creation of the iPad. Just look at Apple’s recent history in consumer devices. iPod, iPhone – it’s all really about creating and controlling a media-based ecosystem (read iTunes and the AppStore). I suspect that if Apple were really going after the netbook market, they would have gone a different way. Create an “eReader+” with all the apps and additional capabilities and a closed delivery system like iTunes and you have the potential to control a rapidly-expanding market segment.

    I think Amazon should be in a state of “heightened awareness”, but not alarm (at least for the moment). They have an incredibly established base in the Kindle today. They shouldn’t rest on their laurels, though. As for Barnes & Nobile (Nook), Sony (eReader) and the others that haven’t really established a foothold in the eBook Reader market – things aren’t looking so good for you. Apple has already proven a closed system can be successful, so the “indy” eReader hardware makers have to worry. As for the Nook; I’m not so sure there’s room for 3 closed systems in this market.
  • The '”iPad” naming – this is incredibly uncharacteristic of Apple. Not so much the “open to feminine hygiene jokes” thing, but the fact that the name “iPad” was trademarked years ago. This leads me to believe things were a little rushed here, especially when combined with…
  • No immediate availability? If there’s one thing Apple is great at, it’s generating interest, generating demand and then launching with immediate (or near-immediate, i.e. – a few days) availability. This time – 60 days? 90 days? When you combine this with the naming, I can’t help but believe something more was in play here.

    Was Apple afraid of  too many product leaks? Probably not. There were far more “guesses” relating to the iPad than anything else. I do think Apple might have been concerned about losing even more ground in the “eBook Wars”, though. Consider CES early in the month, were literally hundreds of eBook readers were on display. Combine that with continuing growth in sales of the “big guys” (Amazon, B&N and Sony) and you had the potential of losing a lot of potential customers in 3 months time. How many people would be willing to spend $500 for an iPad  after just plunking down $250+ for a Kindle? By at least announcing a “coming soon” to the iPad, I think Apple was hoping for a pre-emptive strike that will get people to hold off  on another eBook reader purchase. Of course, all of this also goes to reinforcing my thoughts that the real market Apple is targeting is not a traditional computing platform (netbook), but a consumer market segment (eBooks).
  • The whole “closed ecosystem” thing. While you may not like it, you can’t argue that it works for Apple. They’re still making boatloads of cash with iTunes and the AppStore, aren’t they? I don’t see people casting their iPods and iPhone in the trash en masse screaming “I want freedom!”. While I have always had an issue with this, I’m not foolish or egotistical enough to believe that this is wrong for everyone; the numbers don’t lie. Apple obviously believes the same formula applied to the eBook space will work as well.
  • The iPad / Tablet PC debate. Lots of “stuff” being flung back and forth here. My take – it’s all about use cases and usability. It’s a variation of the iPad/netbook discussion. Listen, if Apple’s intent to focus on eBook reading and basic applications, the UI they’ve created for this is hard to beat. No one (STILL after all this time) does user experience (UX) like Apple. Just watch the demos from Apple’s press conference. If, however, you are looking for the ability to multitask and have more robust applications, the Tablet PC wins.
    NOTE: A bit of advice to those in the fervent Tablet PC and iPad camps – you’re not going to convince those that simply don’t need what your selling that your side is right. Tablet PC folks – a Tablet PC isn’t better to an iPad for someone that doesn’t need office suites and powerful applications all running side-by-side. iPad folks – an iPad isn’t going to work for someone who needs the things mentioned above. I suggest this debate end and folks move along :-)
  • Finally – how do I think the iPad will do? That’s a really good question. Overall, I think it will do just fine… initially. One caveat here – I think the long delay between announcement and availability might actually hurt Apple in some target audiences. When you lose the “impulse buy”, it gives people the opportunity to research and think a bit more. I have already talked to a lot of folks who typically buy “the next big thing” from Apple the day it arrives. For those that already own a MacBook and an iPhone, I’m hearing more “no’s” than “yes’”. Just nothing compelling enough. I do think, however, that Apple can once again find a consumer “sweet spot” with users, similar to how they did with the iPhone. Long term success, however, will likely rely on how satisfied those consumers will be with just a powerful but narrowly-defined device versus a full-blown computer. Of course, Apple has lots of room to work with here, and lots of time to evolve (something else Apple is very good at historically). We’ll just wait and see…

Of course, my musings would not be complete without answering two questions -

  • Don, will YOU buy an iPad for yourself?  Personally, no. For me, adding an iPad would not result in me dropping another device. I need the functionality and size of a netbook when I want to travel light. The iPad just wouldn’t be able to do all that I need it to do. It’s also not a phone, either in functionality or size, so I can’t drop that device.
  • Don, would you recommend an iPad to someone? To the right person, sure. Who might that be? Well, my target demographic includes…
    • Likely not already owning a notebook computer, and definitely not owning a netbook computer.
    • Maybe already owning a smartphone (iPhone or otherwise) and liking the ability “to do more”.
    • Looking at purchasing an eBook reader.
    • Wanting something a bit more in an eBook reader, like surfing the web and checking email.
    • NOT wanting a “small computer”.

I’ll be keenly interested in watching this all play out over the coming months. I’m sure I’ll have more to say over time.

Jan 19

We will be having the next Boston/New England Windows Mobile User and Developer Groups on Wednesday, January 20th beginning at 6:30 PM at the Microsoft offices (201 Jones Road, 6th Floor) in Waltham, MA.

Map picture

Among the topics discussed -

  • A wrap-up of CES 2010. Lots of interesting things going on.
  • Hands-on with the LG eXpo. If you haven’t seen this Windows Phone device in action, you are in for a treat!

See you all there!

Jan 09

I happened to come across a news article out of the Consumer Electronics Show (“CES”) this week. The article from CNN was entitled “What is a tablet, anyway?” and discussed the introduction of several new computers from different manufacturers. The focus of the article was not on the new hardware itself, but the “labeling” of the hardware -

For all the buzz about "tablet computers" in recent weeks, one fundamental question about this supposedly break-through computer category remains unanswered:

What exactly is a tablet?

Computer industry representatives here at the massive and hype-heavy Consumer Electronics Show can't seem to agree.

Some say a computer just needs a touch-sensitive screen to be a tablet. Others say a person should be able to write on it with a pen. Still others say it's screen size that's important -- tablets must fit somewhere between phones and laptops. For Philip McKinney, vice president and chief technology officer at Hewlett-Packard, it's partly the keyboard -- a tablet should have one of those.

Break off the keyboard, leaving only a touch-screen device, he said, and the gadget falls into another buzz-worthy category: the slate.

Others say the terms slate and tablet are synonymous.

The sad part of this is that the creation of buzzwords in the technology industry is nothing new and only seems to get worse as time marches on. Even sadder is the fact that the industry amazingly considers being the first to label an existing technology with a new term outweighs the confusion this causes to consumers.

Another example of this industry fetish with attempting to make something new by labeling occurred when Google announced their new phone, the Nexus One. As someone who has been immersed in the mobile phone space and makes his living off of it, I can tell you the following -

  1. The Nexus One is a very nice phone with advanced capabilities for messaging and application support. Nice hardware and nice “bells and whistles”.
  2. The Nexus One may be better than other similar devices, but it is not a new category of device. Based upon what the industry has come to understand and accept, it is a smartphone; a phone with powerful computing capabilities.
  3. In spite of #’s 1 and 2, Google proudly proclaimed the Nexus One to be a new category of phone – the superphone.

Now, if Google were to only make a passing reference to this label, as in “This is really a great smartphone; in fact, it’s a superphone” and left it at that, things would be OK. However, much like the computer industry that throws out terms like “tablet” and “slate” and all with differing definitions, the average consumer is usually left with the deep thought “Huh?”. By creating brand confusion (with a type of technology being the “brand”), consumers are left to sift through the deeper technical aspects of each company’s offerings in order to make any sense. This is something the average consumer doesn’t want to be bothered with. I can’t tell you how many times I have had to spend time with friends and customers who, after several minutes of explanation, say things like “I just want a phone” or “Why should I have to figure out what type of tablet computer fits my needs”.

I can’t say for certain if the technology industry has become so focused on trying to differentiate via buzzword rather than value. If you’ve been around the computer industry long enough, you know we get a huge endorphin rush from creating acronyms and buzzwords. But they are usually attached to more abstract concepts. For some reason, this need to create new words to describe things has now reached a fevered pitch, and the hubris associated with such branding has killed off the last brain cells associated with good marketing sense. Hasn’t the industry learned from past mistakes of this type? The “Notebook/laptop/portable” naming craze? More recently, the “notebook/netbook” debate? Heck – even this branding confusion around tablet computers is a new and even more confusing version of the “tablet vs. slate” marketing confusion just a few years back. And please – do NOT get me going on the PDA/phone/smartphone confusion that surrounded the mobile industry in the last decade.

While the creation of new terms for existing technologies may please self-indulgent marketing executives and a small segment of the consumer population obsessed with having the “latest and greatest” (even if it is not), all of this naming simply leads to the perception of fragmentation of what is logically a single segment of the industry in the eyes of the consumer.  Fragmentation leads to confusion, and confusion leads to a lack of sales to the very audience that is often the target.

I would suggest that the technology sector take a moment to step back and remember why they exist – to make money. When you are trying to sell a product in a competitive market space, clarity is key. Telling people why your product is good and how it benefits them is what makes the sale. Re-segmenting existing and accepted categories of products does not provide clarity unless everyone agrees to the new segmentation and communicates in the same way. Yes you differentiate yourself, but only by alienating potential customers who look at you and your competitors providing mixed messages. In the end, they will likely not trust either of you. By the way – if your goal with this strategy is to confuse or distract the consumer, I suggest a career with a much greater chance of overall success. Political bodies are always looking for “fresh blood” :-)

I’d like to think that this trend in creating new technology segments and confusion will end, but history shows that just the opposite will happen. For you, the consumer, all I can say is caveat emptor. Don’t take the labeling of a technology to something new as automatically equating to something better. Stick with the tried and true methods of purchasing – determine what you need, what you want and then find the product that meets those needs regardless of the marketing category. Tablet or slate, smartphone or superphone – in the end, they are just products with features and capabilities. When you do make your choice, let your salesperson know that you made your choice by thinking and not by catchphrases and buzzwords. Maybe someday the message will make it back to the appropriate people. Wait – they’re all locked in a room trying to come up with the new hot buzzword ;-)

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.