My 3 Day Evaluation and Review of Microsoft Surface

Being a Microsoft advocate and a tablet geek, I couldn’t wait for the long overdue Microsoft Surface to come out.  I was hesitant, but pre-ordered my 32GB version with touch keyboard and patiently awaited it’s arrival.

Well, actually, I wasn’t overly excited, and didn’t wait by the door for it to be dropped off, because for once, I thought the better products were already released, prior to Microsoft coming to market.

When Microsoft stopped development of the courier years ago, I thought all was lost for Microsoft to enter this space.  So I reluctantly jumped on the bandwagon of Android.  Bought my first Android phone and tablet.  They were “ok” at best, but better than defecting to Apple in my opinion.  (not that there is anything wrong with Apple, but it’s not for me.)

Over the next 6 months, I switched to the Motorola Xoom, but to be honest, was a tad thick, heavy, and cumbersome.  The OS was good, responsive, better than my old Samsung tablet.  But still not for me.  When the Motorola XYBOARD came out, 10.1”, it was thin, good looking, lightweight, and very responsive.  I had already grown used to many Android apps on both my previous tablets and my phone, so staying in one account and using the same apps was nice and easy.

Enter the Microsoft Surface.  At my original post, I gave some plus/minus notes on the system.  Heavy, thick, weird edges, not easy to hold, but it had a keyboard, familiar ctrl key’s for copy/paste, a familiar Microsoft environment, and a good screen; and that was in the first hours.  I’ve since used it through the weekend and here is what I have to say…

I equate the new surface to be like the first generation Android tablets.  I expect that in the next 6 months, we will see HUGE improvement.  (Do you hear me Microsoft?!?)  The apps are ok, I actually love the tile affect and how easy the hand gestures are.  (although, not as zippy as on the Android or Ipad.)  But where I see much room for improvement is in the transition and loading of apps.  One of the things I’ve become accustomed to on the Android tablets is that things load quick!  I find that I spend time waiting for an app to load with the all too familiar loading dots…   I also found that there is lag in video play, choppiness, and distortion from time to time.   One of the biggest kick in the teeth for this enterprise user, is the mail program.  I would have expected, for the business community, they would have had an outlook version to release at time of launch, but they stuck with generic, core mail and calendar apps.   I need to be able to select multiple emails and delete or move them.

I DO like that I can have more than one application on the screen at a time, and I like the quick shoot of recent application from the left edge to be thrown on the desktop quickly (no load lag).

So…  In short.  I understand this is  a first generation tablet.  I understand at some point, you have to pick a release date and get it out for the general populace.  Then you can update the heck out of it.  That is what I see here.  Nice first attempt.  I can use and work with it.  I look forward to the thinner, zippier and above all else, 4G version to come out.  I have to carry my Android tablet still, because they don’t have Wireless at the Real Food Cafe, and I love to read while there.  I also look forward to the slew of other hardware to be released, now that Microsoft released theirs.  I believe it will drive an overall, better tablet competition between Android, Microsoft and Apple.  I believe we should see some huge improvements and cool things over the next 2-3 years!

Responsive Web Design – Why it could be as important as SEO?

Until recently, if you wanted a public website to be easily viewed on a mobile device, software developers would need to spend additional time writing code to specifically meet the varying standards on devices such as the Apple family of products (iPhone, iPad, etc.), the Android platform, the Windows Mobile platform or others. In essence, to make a “mobile version” of your website, repetitive coding activities would need to be completed to ensure correct sizing, navigation, content, etc. was available across these various mobile platforms. estimates that more than 1 Billion mobile devices will be online by 2013, which poses the question of how well does your company’s public facing website render on the leading Android, Apple and Windows Mobile platforms. A poorly rendered website (on a mobile device) could equate to lost business and lost revenues.

Clients, today, understand the importance of Search Engine Optimization (SEO) when planning the creation of a customer facing website, but they should also be giving attention to the concept of Responsive Web Design. Responsive Web Design (RWD) is a coding practice whereby a software developer/designer can design a website to dynamically adapt to the screen sizes of devices by automatically resizing and reformatting the various elements of the site. In layman’s terms, your website content is the “liquid,” and the device you are using to view the content is the “container” – the liquid automatically takes the shape of the container when being viewed. For an example of Responsive Web Design in operation, visit (click the link, then resize your browser window, watch everything rearrange).  Responsive Web Design utilizes one base of code (along with other elements such as CSS3, HTML5, etc.) to eliminate the need for developers and designers to code to specific devices.

So, your question might be why isn’t every website written with RWD, in mind. Well, similar to design decisions needing to be made regarding SEO, developing a site to RWD standards might increase the amount of work a developer/designer needs to do during the coding process (i.e., it might cost more on the front end to develop), however it can also lead to a much better experience for the end-user, and therefore the cost justifies the strategic benefit on the back-end.

As a customer, you need to ask your web development team about their knowledge and experience in utilizing Responsive Web Design. With the onslaught of mobile devices in coming years, you do not want to be stuck offering up a website that cannot be properly viewed by a user.

CodeMash Blog 7 of 10

In our continuing series documenting sessions conducted at the recent CodeMash Summit, following is our Codemash Installment #8 of 10. Codemash is an annual event drawing software developers from throughout the United States to meet up and discuss current practices, methodologies, and technology trends across a variety of platforms and development languages such as Java, .Net, Ruby, Python and PHP, as well as infrastructure and mobile development areas.

Async Outside and Inside

This pair of presentations was very informative.  The presenters (Jon Skeet for the “Inside” and Bill Wagner for the “Outside”) are both very knowledgeable about the C# language, and their presentation was fairly well put together for having such a short amount of time to merge the two (these presentations were supposed to be two separate activities). Instead, they combined their presentations with Bill handling talk about the outside, and Jon handling talk about the inside).  I’m very excited about this new feature that we’ll be getting soon, even though its biggest use is in desktop type applications, there will definitely be advantages on the web.  For those of you who haven’t heard of it, the “async” keyword will be something that you can add to a method, and then inside the method you can use the “await” keyword (similar to “yield return” in an IEnumerable) to make the code immediately return to the caller while still eventually running whatever it is that you awaited.  This is not a multi-threaded thing (though it can be — it is up to your implementation, however).  Windows 8 is going to have a time limit on the UI, if a method takes more than some (very small) number of milliseconds, Windows will kill the app.  Async/await is how we will write apps that are more responsive since the methods will immediately return rather than waiting on external services.  The internals of async are very fascinating, and if anyone wants a second hand attempt at explaining it, respond to this blog post, and I will be happy to help (though I would first recommend checking out Jon Skeet’s blog series on the subject here:  Luckily, how it works is one of those things that are interesting to know, but will not be required for us to use them (much like how foreach works in C#; We all use it all the time, but you don’t often think about the state machine that the compiler builds behind the scenes in order to support it).

Android: Data

This was an interesting session for me. One of the pieces of Android development that I haven’t read much about was what to do with local data.  They presented the four different places you can store data [preferences (which end up as an XML file in the application folder), Content Providers (which is how you access things like Contacts and Media), standard files (using, and a SQLite database (which also ends up as a file in the application folder)].  The talk was primarily about the SQLite database and how to interact with it.  They showed code that I’ve seen before (big ugly strings concatenated with constants like “CREATE TABLE ” + TABLE_NAME + “( ” + ID_COLUMN_NAME + ” int auto increment primary key, ” + NAME_COLUMN_NAME + “…”).  I’ve seen this types of examples before and they leave me wanting a different method, but they sympathized with my pain here and briefly touched on a point about the syntax being very particular and that in their experience deviating from this painful method lead to even more pain.  Oh well.  They also briefly mentioned alternatives including db4o and CouchDB, both of which can be added to your application to allow a non-SQL type of database which can sometimes be easier to work with (db4o is an object database, so it ends up almost like the objects are always available, CouchDB is a NoSQL type DB that can do some very awesome “sync with a server automatically whenever wifi becomes available” type things, if you have a CouchDB server elsewhere.

Pecha Kucha

Lightning talks.  Pecha Kucha is a presentation methodology where you utilize 400 second presentations, made up of 20 slides with 20 seconds per slide about whatever the presenter wants to talk about (e.g., “Love” was a topic by one of the Ruby developers, and Jon Skeet made it seem like Glee (the TV show) was about software development, etc).  I found the format interesting and the presentations were often humorous.  There was one presentation on writing the “urinal rules of etiquette” as a code kata, which was pretty funny.  Another on what we can learn from recent engineering disasters (Fukushima and the French flight that disappeared 2 years ago).  One about how we shouldn’t put all of our effort into avoiding mistakes (he mentioned that he recently accidentally dropped one of their customer’s production databases in the middle of the day) and instead focus on quickly recovering after the inevitable mistakes occur.

Check back for Codemash Installment #8 of 10.

Mobile Monday Grand Rapids January Recap

Last summer, I joined the Mobile Monday of Grand Rapids (MoMoGR) organizing committee because more of our clients want to learn about Mobile development and how it can help their business.  “MoMo” stands for Mobile Monday, and the Grand Rapids location is just one of many chapters that exist, globally. The MoMo organization brings together software developers and designers who practice their skills across many different development platforms. CQL is very engaged in developing custom software solutions across various mobile platforms (e.g., Apple, Android, Windows Mobile, etc.). As devices continue to become smaller and provide greater computing power, our clients find that critical (and non-critical) software applications need to be delivered through these mobile devices.

This week, MoMoGR held their quarterly event at Grand Valley’s Loosemore Auditorium.  This event was focused on Gamification, which according to our keynote speaker, Venu Vasudevan, means the use of game design techniques and mechanics to solve problems and engage audiences.

Venu is the Senior Director at Motorola Mobility and definitely had a lot of insight on where this mobile movement will take us.  He started his presentation covering the past and informing us on why TV, which has had very few changes in the last 10 years, has only been a one-sided media experience.

Example: Visual of a couch potato sitting hours with only the occasional bathroom break, or beer break.   Definitely a one sided exchange because the only entity that is engaging is the TV.

But what if you could engage your TV and were encouraged with Games?   It would revolutionize the way we currently watch TV.  Venu gave his opinion on what works and what doesn’t, explaining that gaming only works when you take it a step further than badges and leader boards.  When gaming truly works, a ‘rewards’ structure must consist of Intrinsic Motivation.

His Examples are:

Stack Overflow

USA Network

Seeking Alpha

Before the keynote, there were three short 4-5 minute talks from local people that have started to use games in either an application or a development practice.   The most unique was a Grand Valley State University grad student presenting what he calls “Pocket PT”; a suite of accessorized theuraputic iOS games being designed to help patients recover from traumatic brain injuries. The goal of this application was to use gaming as an incentive for repetitive exercises.  It is fully customizable and the clinics receive valuable feedback.   Check out the video below.

[sl-playerss background=”transparent” width=”100%” height=”400px” videoUrl=”” autoPlay=”0″ themeColorOne=”726A5D” themeColorTwo=”999285″]

It’s amazing how such a simple concept can change the way we’re engaging patients with traumatic injuries.

The event was great and I’m definitely looking forward to the next one (check out the MeetUp or our blog for updates).  What I realized is that gaming, whether on a Mobile application or not, is going to have a huge impact on how CQL builds applications.   In the future I see users more actively interacting with live televisions shows, advertisers, and much much more. Really the possibilities are endless.


XOOM through the Galaxy with your iPad

As an owner of West Michigan based, CQL (a best of breed software development company), one of the questions I always get asked (especially during gift giving season) is what tablet device is the ‘best’ one to purchase.  My answer to that question is very simple.  Based on what you use daily (for your phone or music device) should help you determine which tablet is best for you.  If you use an Android phone of any kind, then get an Android tablet, if you have an iPhone, get an iPad.

Only in rare cases, should you move into a cross platform technology scenario. The reason for this is basically a matter of timing and resources. Many individuals are finding the hardware feature sets among the different Tablets is becoming hard to distinguish, and most mobile applications (‘mobile apps’) are produced to function across different devices and platforms.  As Chief Information Officer of CQL, I am constantly investigating different devices that are used by my team to develop mobile applications, as well as other server and infrastructure technologies. I personally own a Xoom, Galaxy and iPad2, and I can tell you there are things I like about each one, however not one of them overwhelms the other.

I used to be pro-Microsoft, and am really quite disappointed with their tablet showing.  I strongly believed they were going to be a big player and more strongly compete against the iPad. However, when the first iPad hit the streets, Microsoft seemed to pull back on their model, and to this date they are still not even in the conversation.  Perhaps they will shock me and come out with something we weren’t even looking for, but I won’t hold my breath.

So, I’ve been playing around in the Android camp, lately.  I have both an Android phone and seem to most often use my Android tablet.  Primarily because I believe Apple made a mistake with launching ATT only.  I’m a Verizon person, and so the logical choice two years ago, was an Android phone.  Then, when the Galaxy came out, it was a natural choice.  From the Galaxy, I was quick to adopt the Xoom and now, I am trying out the Xyboard, which is really captivating.  However, I hear there is a new iPad killer coming out in the next month or two, which I am eager to get my hands on, and see if my technology team can benefit in their development of new mobile applications for our clients.

What do all these tablets do for you?  Well, I love reading on mine, in fact, I’ve read more books in 2011 than I have in the last 5 years!  It made it easier to read, carry only one device instead of a book, and it was multi-purpose.  After I get done answering emails and checking various apps, I can easily launch right into a new book. Honestly, it was easier reading about the life of Steve Jobs on my tablet than it would have been lugging around that book. Now, recently, I’ve taken off with this magazine app that allows me to read my favorite magazines quickly and easily.  I don’t have to worry about them in the mail and when I’m done, I don’t feel guilty about wasting all that paper.  (Oh, and the subscription prices are cheaper).  This is where picking and sticking with your platform of choice really is important.  If you buy a mobile app in either the Apple or Android markets, you can transfer it among different devices on that platform, but you cannot transfer it cross platform.  If you cross platforms, you most likely will have to buy it multiple times.

So, there you have it. Don’t stress over the platform choice for your Tablet purchase, but make sure you read reviews to make sure the things that are important to you are a featured offering in that specific device.