Wednesday, October 13, 2010

Windows Phone 7

One Thought: Welcome to a new Era of mobile development.

I'm going to keep this short and sweet. About 6 months ago I blogged for Macadamian that I thought WP7 was the platform to pick once they ironed out some of their SDK problems. Well with the recent launch of the WP7 being a near total success with MS putting many of the critics to bed. I'm calling it now. WP7 is going to rock.

I've gotten a chance to develop on the big two platforms (Android and iPhone) as well as WP7 and I know that WP7 is a pleasure, esspecially compared to iPhone dev. Hardcore dev's might not like that it's Silverlight only... However, it works. And it works well. MS areeven giving away their tools to build WP7 apps for free.

But what I really want to talk about is why WP7 is going to rock. A few reasons:

The Dev Tools rock, Silverlight and XNA as dev/game frameworks is brilliant and easy.

Expression Blend 4 is great at getting designers into the solution (see my cross canada presentation for Tech Days on this subject). Seriously, my Android developers wish that something like Blend existed for Android.

Yet there is another key piece.

The Hub. Yup - the panarama control. This is a game changer. It brings a level of navigation that UX people have been only dreaming would find it's way into a mobile platform. The hub officially brings to WP7 two ways to navigate the phone that map easily to UX information architecture patterns.

I don't think that MS knows where designers and UX teams are going take these concepts. But I'm excited to find out. You should be too.

Wednesday, September 8, 2010

Microsoft Tech Days 2010

It's official (well it has been for a while, but it's been published by MS now), I'll be putting on two presentations at MS Tech Days. The key one will be Expression Blend - Putting it into Practice which myself and a colleague Francis created and will be putting on across all of the Canadian TechDays events.

Right now I'm just finishing off my demo(s) code. Next week I will be in Vancouver presenting this material. I really think Expression Blend will change the Designer and Developer relationship. If you come out to my presentation I'll explain how!

But I've been into web development for the nearly the last 15 years of my life. I started early as a graphic/web designer, team lead, project lead, technical lead and eventually a web architect and now a dev manager specializing in web technologies. What does this mean? I've seen designers and developers interact a lot. Heck, I've seen good designers and bad designers, I've seen designers that have bridged the gap significantly and I've worked with designers who have just handed you a colour printout (and an emailed PSD file) and said 'go'. This is where expression blend will change how we do things... It will change your dev process if you do it right.

On a side note, I was also asked last minute to do a quick 30 minute 'turbo talk' on IE9.

Friday, August 27, 2010

Droided...

I almost ordered an iPhone 4 the night my beloved iPhone 3G died. But fate shone down on me and a spare Droid at the office was found and I'm glad I never placed that order. I've been using an unlocked Motorola Milestone for the last few days and my suspicions have been confirmed.

I recently blogged for Macadamian about 'iPhone vs Android vs Windows Phone 7 from a development managers point of view', and, well, now I can at least do the Android vs iPhone comparison from a user's perspective.

First impressions so far:

UI - it's good - not great. Reminds me still of an early 2000s BMW. They look good, but... you certainly don't go 'oooooohhhhh' like you do when an <insert Italian car manufacturer here> drives by.

User Experience Consistency - Submitting an application to Apple and following their UI guidlines might be as enjoyable as getting teeth pulled, but it works, iPhone apps are usually consistently usable. By contrast, the user experience from a droid application to another just isn't as polished compared to the iPhone. Once again it works - but this time it reminds me of sitting down in a corvette. WTF are the grand am radio controls doing in here??? Seriously sometimes things just feel out of place.

Creativity/Out of the box thinking - a side effect of not having a dictator-like grip on the UI/UX... well everything to do with getting your application to market, is there is a positive side effect. Some of the application have some pretty neat and intuitive ways to get about them, and they don't necessarily follow all the rules. For example, I really like the use of press and hold menu's. They just make sense. Apple - do more of this.

Overall I like it. It sync's beautifully with gmail and Google Enterprise (duh!) it really would have been tragic had it not. It's not as sexy as the iPhone, but being a creative enginmaneer that likes functionality that works beautifully, I will sacrifice some sex appeal for practicality and versatility. Will I switch? Not for a Milestone, the slide out keyboard sucks but I am seriously thinking about a Samsung Galaxy. Yup - Droid you've won me over, for now. Bring on the WP7.

Tuesday, August 24, 2010

The Love is Lost...

I've lost my love... my iPhone is dead. That's right dead. I'm not the first to post about their beloved iPhone coming to it's premature end by kissing asphalt.


But it's not all that bad. I've been falling out of love with my old 3G for a while now. I have to say that Apple deciding to support the 3G with iOS4.0 was a huge mistake. The OS was unresponsive, slow, bulky and offered very few reasons to upgrade for the 3G audience and resulted in a crowd of my colleagues and friends complaining of how their 'old' (1,2 year old) phones were crap. The performance was so bad that answering a phone call would take 2-3 rings for 'answer' to be acknowledged. To make it worse the speaker was going and I could only use it with a headset or in speakerphone mode.

But my iPhone was a beloved device. The iPhone changed the Smart Phone landscape in Canada (and I believe North America) popularizing the use of data and creating a change of lifestyle of information when you want it. Not just email like the RIM BlackBerry did, but the good stuff - the web. That intoxicating content streamed everywhere and anywhere you wanted. Who needs to choose a restaurant - pick a location, we'll read reviews when we get there and decide. But will my lifestyle be re-enabled with another iPhone 4? Should I?

This brings me to why I don't want the iPhone 4. Yup I said it. I love the iPhone, but I don't want the iPhone 4. Yeah it's nice looking, has a great screen and is very quick and slick. Yeah it's another bigger better sexier iPhone. But I'm a software engineer. I create software for a living and creating software for the iPhone, to me at least, seems like trying to print a book with an old mechanical press - it can produce beautiful work, but damn it's a pain in the ass to get there. Having built applications on Google's Android or the upcoming Windows Phone 7 - those two get my bet - I can quickly create a personal application to facilitate anything I want to create.

The only questions left is: Can I wait until MS comes to market? I'd love to. The metro OS is sexy, the collaborative Office tools are compelling. But I might just need to settle with an Android phone for now. Oh the choices - let the journey of choice begin, but sorry Apple - you are not included on my wishlist.

Saturday, June 12, 2010

Day 5 - MS Tech Ed - App Fabric, specifically the Service Bus

Final day of Tech, the line up isn't that spectacular for someone looking for high level, architectural approaches. But Joval Lowy and Clemence Vasters (MS Tech Lead on Azure App Fabric) showed up to bat and didn't disappoint.

What App Fabric brings to the cloud is an Enterprise Message Bus that enables some pretty impressive functionality. They focused on four elements that make up the service bus: Eventing, Tunneling, Service Remoting, and Discovery.

The details of these four elements are pretty impressive. Instead of getting into the details and paraphrasing these guys, let me talk about some of the cool application of this 4 point attack.

Eventing - Handles multi-cast subscriber message relaying. Imagine sending a single message to an Event hub and having all subscribers informed instantaneously. Think of how this changes your pub/sub models. Furthermore, there are message buffers here (Note - they are not MSMQ and are not durable queues).

Remoting - Nothing super impressive here except app fabric will leverage SOA and WCF services/investments.

Discovery - Default is an ATOM feed. However, with a little majic from Joval's utility classes, you can have a fully programmatic discovery of services being broadcast (currently not enabled in app fabric from my understanding of Joval and Clemens back and forth). Joval has extended discovery to include announcements - something that is currently not available out of the box. Very cool.

Tunnelling - This is where things got above my head. Ultimately the built in tunnelling ability of app fabric can tunnel down into any on premis asset that isn't plugged into WCF. Think about how you might move an application to the cloud yet many of the tight coupling hooks are back to non-cloud non-internet accessible links.

The real interesting part of all this was a small backhanded statement by Joval to Clemense. Clemense remarked that it was 'taking a while for an demo to start and Joval should upgrade his notebook'. Joval responded - 'This is Gods notebook, 8 cores, 8 gigs of ram - what does that say of your software Clemense?'. I think this highlights perhaps a chink in the azure app fabric armour. How computationally intense is it for some of these services to initiate? Time and examples will tell.

The second presentation of the day before packing it in for the week was put on by Karen Forster. Trying my hand at understanding the full cost or even hidden costs of rolling out a solution. This presentation's key nugget was the idea of: Spaghetti Infrastructure (not just code). Clean, linear vertical IT stack:


Finally there was the MS Tech Ed Party - this was an interesting event. Showing up to Mardi Gras world was a little... peculiar. This is where they store a ton of the Mardi Gras floats, I was met with what looked like the Burger King mascot that left me feeling like I should turn around and find bourbon street. But the lure of free beer kept me strong. That was about the only good thing about the party - free beer, but even then, they ran out of good free beer quickly and people started leaving when only Bud Light was left. What does that tell you about bud light that people who make a decent living are willing to go buy their own booze on Bourbon street then take it for free. I felt sorry for anyone who paid the $125 sticker value to get in.

Regardless of the lack luster final party the conference was stellar. The energy was great and the set up was awesome. There were a few glitches with the wifi/internet dying for a complete afternoon - rendering some demo's useless (especially cloud computing ones... take now - perhaps another 'chink' in the armour).

Wednesday, June 9, 2010

Day 3, 4 - MS Tech Ed - Deep dive into WP7 to the Entity Framework/LINQ to SQL/Stored Proc what's best? argument

The last two days of tech ed for me haven't been nearly as great from a sessions perspective. Maybe it's because I got pulled out of the conference to deal with some work related issues, but I also think the content wasn't as powerful. Or mabye it's that the sessions are getting more and more technical focused and I'm a big picture kinda technologies.

There was a quick overview of the WP7 architecture, the building blocks of how WP7 came to be. Some amazing nuggets that came out of the presentation:
  • State Model of WP7 runtime enables applications to be suspended. However, suspended application that take up too many resources with Shell will kill. So assume suspended aps will be killed when programming. Aka save your state!
  • Always store the last request locally (isolated storage) it's a best practice and with the use of the back button helps user's navigate to and from your app.

Joval was back with his Zen of Architecture sesison - He nearly filled an auditorium with developers and architects. I'm not sure they were ready for what he was going to say. What he's done here is very ingenious. He's continuing his argument about the evolution of Software Engineering and feeding off the Civil, Mechanical, and Electrical Engineering fields to come up with a notation and a mechanism for designing software systems. The key to his design is WCF as it encapulates his layers. The notation is pretty enginious and he brings up a good argument about the death/decay of UML - UML was invented to teach C dinosaurs how to do C++ (Object Oriented). Furthermore, for those of us who did some form of electrical engineering courses, we all know that the notation for electrical circuits are simple and to the point. This is the basis of his notation/technique which he calls the Method.


This tiny picture from iDesign's website actually is a small rendering of his method's notation. It's simple, smart, and looks very effective. I plan on sharing this with the architecture team at Macadamian very soon.

Finally, this morning an excellent session was put on by Bob Beauchemin aptly named: "A Database Developer and DBA Perspective: LINQ to SQL and Entity Framework vs. Stored Procedures". I think that summarizes it well. He went over some of the fundamental (and I think little known) issues of LINQ2SQL and Entity Framework (he calls these the 'frameworks' which I like and will now steal). He showed real world examples of how LINQ2SQL uses parameterized queries and how it's just about as fast as Stored Procs, persist in cache like stored procs etc... The only major downside to either - Direct Table Access. DBA's hate giving up this kind of control and for good reason - it's the fundamental rule for locking down a DB and securing it. His final say - the frameworks work well, use them were they make sense, but with the latest releases of the frameworks it's even easier then before to tie them into stored procs, meaning both camps can be happy.

Oh and Bob's final note - LINQ is SQL, just written ever so slightly differently.

Finally I spent 3 hours in the Hands On Labs - this is a great idea that MS has. Right smack dab in the middle of the conference are labs with instructors around to help you. They have set up coding examples (you can cut and paste them until you feel you've actually programmed something) or experiment with the code a wee bit like I did and have a final product that doesn't really match the course material but still captures the spirit of it. What did I learn? That Push Notification Services for WP7 are actually fairly straight forward minus the byte streaming and a few deligates/event handlers here and there, rely heavily on WCF and are consumed pretty easily.

Final thoughts - After spending a little more time in expression blend, I really think this tool makes Silverlight/WPF that much more compelling. If you haven't started to learn expression blend, start now. That and azure or some kind of cloud computing!!!

Monday, June 7, 2010

Day 2 - MS Tech Ed - From Keynote to Bootcamp in about 10 hours

Today was a little dizzying.  It started with running late to the keynote - apparently the trolley service (though very very cheap @ $1.25) doesn't really run on time - and when I say doesn't really, I mean doesn't AT ALL run on time - it just kinda shows up sometime... but there is a nifty schedule online, which is apparently useless.  Missed the breakfast, decided on a Dr. Pepper as a means of caloric injection.  It wasn't very satisfying.  Neither was the keynote.  It lacked energy, the speakers were ok.  The keynote certainly wasn't a Steve Balmer typical energizing pick up a gun and blow up Google either.  What it was, was a conservative statement about the coming of the cloud, how it will enable your business to be smarter, and how Microsoft is now eating it's own dog food.  Meaning, many of these products have been in use within Microsoft for years and they've been making them better for us before we had to live with them.

Something that has a significant push, something that's been a quiet peice of software for a while, is the UC - Communication Server.  There are some very neat elements built into it and it's collaboration with all of the MS suite of tools.  I'm not really sold because you need to be running Sharepoint, Comm. Server, etc... etc... to have the majic work.

A few emergine technologies that I think are worth looking into that was shown VERY fast are:

Codename Dallas - An open data information look up and provisioning service that is tightly coupled to the .Net dev tools.

MS Excel, specifically Power Pivot - Seriously.  This looks intense.  Though I got into a very good discussion over lunch with a fellow techy about if they can make some of this work SOOO well with the Excel application, why can't they get it into SQL Server?  Seriously, Pivot on 100,000,000 records would be devistating.  This has brought back memories of building SQL queries and connection into Excel and allowing it to do most of the hard work.  Seems that just might be the way to do it again.

Intelli Trace (great msdn article on it) - I mentioned this yesterday, but forgot to mention the actual tool name.  It's getting close to being a DVR for the .Net plateform.  Unfortunatly, you need VS 2010 Ultimate to use it.  Get this - it's $11,899 if you want to buy this thing... yeah I tuck a little poop as well.  Too bad they don't have a SAAS model for it.  Wow... seriously? Maybe I should just hit backspace on this paragraph since 12K is a little steep.

Once again, lots of hype about WP7 - I got verbal confirmation from a few people who shall remain nameless that the BETA SDK should be delivered within 30 days.  Can you say AWESOME?  I saw some pretty impressive feats with Expression Blend and WP7/Silverlight today... I'm just saying.

Finally I went to an Azure bootcamp, signed up for an Azure account (7 free days!) and walked through the steps nessisary to deploy my first Azure Web App.  It's not nearly as intuitive as you might think for a Microsoft Tool.

Anyhoo - time to get some work done and try and get enough sleep to pack in 10-12 more hours of this tomorrow.