I suspect Apple will have a good day on 11 July.  I’m pretty sue Apple could release the iGumWrapper and people will camp out 2 days before to be the first to purchase a gum wrapper made out of napkin and far less superior in functionality than what exists today.  It’s the lure of Apple, the marketing engine behind them and the fact that despite that napkin material, it would likely be so beautiful and make you forget some things that you’ve depended on for so long.

But I digress :-).  In all seriousness, Apple excels at the hype and the experience (yes, two distinctions that shouldn’t always be confused as one).  With the release of the iPhone 3G, they’ll sell a lot I’m imagining and it will cause other mobile manufacturers concern…or it should.  The iPhone is being marketed as ‘half the price’ but others have already pointed out that that asterisk on the advertisements is a large asterisk…and in fact the ultimate cost to the consumer is actually higher (including service plans, etc.) than the current model.  But who cares…I’ve seen the cost analyst and it is negligible.  Misleading advertising?  Maybe.  Some have even pointed out that other than the 3G there isn’t much core upgrade to the device.  No camera upgrade, no IM, no Bluetooth support for cars, no cut/paste, no MMS messaging.  Some have even pointed out that despite GPS support there will be no guided turn-by-turn navigation provided.

Regarding Navigation: Some have said that 3rd parties will use the SDK to solve that problem.  Ah, but read the terms of the SDK…no applications can provide navigational guidance using the SDK.  Why?  If you are aware of US carriers in telecom, you may notice that devices equipped with GPS all have an icon for directions – provided by TeleNav – provided as a monthly service fee of approximately USD $10 per month.  I think this is one area where the carriers won against apple in negotiations…to protect their own agreements and cross-revenue opportunities on services.

One thing that has bothered most developer geeks about the SDK is the lack of background processing.  Apple’s keynote has pulled a little of the 'these aren’t the droids you're looking for’ magic by stating battery life, blah blah blah.  Hey guess what…Blackberry does this just fine and has great battery life.  Is this an area of “we couldn’t get it done” for Apple?  How many think this will change?  I do.  If there is any plans for iChat to be on the device, it would have to be.  Rely on an middle messaging server to deliver what is effectively an SMS command and then prompt me to launch the app again?  Seriously?!  Is this another way of retaining the carrier’s service costs for messaging fees?

Have you ever noticed that Visual Voicemail is actually delivered as an SMS command to the phone with information on what that voice mail contains?

Another sore spot for developers was the lack of Flash on the device.  There has been some bickering from Adobe/Apple on this, but it still isn’t there.  Adobe has said in their last company call their execs have noted they have it working via SDK but would hope the software would eventually be a part of the iPhone software.  A similar request has been made to me by developers of ‘when will Silverlight be on the iPhone’?  Hey guess what, no plugins are allowed on the iPhone – let’s wait for Apple to change that first, then let’s talk…you can’t complain when the platform doesn’t allow it first!

And then comes Android.  When I first saw the video demonstration of this I was impressed.  It incorporates a lot of what modern devices have as well as what people like in the iPhone from a usability standpoint.  Oh, and it will be free and open source.  Some of the Open Handset Alliance have already announced devices with Android that might be available as soon as the end of this year!

Will Android be successful in mainstream?  That is a big question.  Why would I ask that?  Tim, it’s Google, they do everything right, how could you be so stupid?  But consider this.  What makes Apple so successful in their software implementations?  Their ad campaigns shed some light on this when they jab Windows.  They control everything…the entire channel from hardware design to implementation.  There are no other (legal) hardware providers creating iPods, iPhones or MacBooks.  What does this have to do with Android?  Well Android is an open source project that will directly affect consumers.  Most of the time I think we see open source projects that are hiding behind consumer services.  Take, for example, any web server running their site on Linux.  Sure that affects consumers visiting the site, but not directly…the HTML/rendering is what affects me…not the implications of the hardware.

Android will be literally in peoples’ hands.  There have been others that have done this successfully…like Sansa running Mono on their MP3 devices.  But how is this different?  Google isn’t providing the handset.  Will Android feel the same pains of the distribution channel that Windows does?  That being that you are providing an OS and don’t control the hardware that it resides on?  Android will be picked up by handset manufacturers and modified and tweaked and installed on various chipsets and handsets with differing peripherals that may not always comply to the specs or to what Android may expect.  Will that give Android a bad name when someone wants to put it on a device that is ‘minimum requirements’ (I hate minimum requirements---ever try anything on a min req machine…it never is a good experience)?  That remains to be seen.  Perhaps Google may have to do what they said they never would: the Google phone – to ensure that Android has one place where it can be guaranteed.

And when it does come out, will it beat iPhone even though it shares some similarities?  I’m not convinced.  Apple (and iPhone) have a culture behind it.  iPhone itself has become somewhat of a mnemonic.  If you have an iPhone, when you tell someone that you just took a picture, do you say “I took it with my phone” or do you say “I took it with my iPhone”?  I hear this all the time…I <fill-in-the-function> with my iPhone.  I never walk around saying “I took this with my Blackjack.”  This is an advantage Apple has over the market…the brand strength.  I took it with my Android.  Still doesn’t sound right.  Even the newest devices like the Samsung Instinct, HTC Diamond, etc. will not gain that level of brand recognition.

Where does all this leave developers?  Let’s see:

    • Apple – closed platform; closed hardware; Objective-C/Cocoa dev platform (OSX only for best tools); controlled distribution channel for apps;
    • Android – open platform; Java dev platform; tools everywhere; available for any hardware
    • Windows Mobile – open/closed platform; C++/.NET dev platform; tools everywhere (best tools on Windows); available for any licensed hardware vendor

What a minute, Windows Mobile an ‘open’ platform?!  Tim, you lie.  Well, I’m not sure the marketing teams would agree with my statement, but consider the facts.  Windows Mobile provides an operating system to device manufacturers to leverage.  We actually provide what we call “platform builder” and those who license Windows Mobile can customize and pick and choose what “Windows Mobile'” means to them.  Is it completely open to alter the base code of WinMo?  No.  But if you have ever picked up a phone that had WinMo from T-Mobile and one from AT&T and one from Verizon, you’ll see that it is not the exact replication across the board.  Those carriers have done some of their own customizations and added/altered some of the applications that exist.

Basically developers will have a choice…not a consistent choice by any means because each choice has a specific skill set.  I don’t know Java well enough that Android will be my choice, for example.  But if it is compelling enough, will that cause me to want to learn?  Who knows…

So what’s with my rant.  Who knows…just had some thoughts on mobile that I wanted to get out.  Carry on.

Related Blog Posts:

For those of you who use my RSS FeedReader Web Part for SharePoint, it has been updated into an ‘official’ release for the project.  Version 3.0.0.2 is now the latest release.  It incorporates all the changes from our team’s contributor, Ryan – thanks Ryan!!!  You can read the checkin on the Codeplex site or review this previous post for Ryan’s checkin notes.

As always, the source code is included on the site, licensed under the Ms-Pl.

There has been some emails/work items/debate over the installer.  The installation is two parts:

    • Installation of binaries
    • Deployment to SharePoint servers

It has been much debated with me in private emails about that the MSI installer should automatically deploy to the server.  Initially this is how feedreader did it.  And I was flooded with email complaints.  Why?  Well, turns out people don’t always install to the same locations, have SharePoint in the same locations, want to deploy only certain web parts to certain SharePoint site collections, etc., etc. – I could go on.  The bottom line is that every configuration was different enough that it didn’t make sense to me to put effort into the installer to either a) guess or b) ask configuration questions.

SharePoint already provides a tool to do this: stsadm.exe.  The readme (yes, there is a readme file) provides instructions for deploying the web part to your specific configurations.  I also received notes that the sample script should be more explicit.  Again, people haven’t always been installing the binaries to the same location so if I was explicit, I’d be wrong in some instances.  I can’t please everyone :-)

The first step (after running the MSI which installs the binaries to your machine) is to run the stsadm tool to add the web part solution:

stsadm -o addsolution -filename %YOUR_INSTALL_DIR%\SharePoint.WebParts.Rss.wsp

Note the %YOUR_INSTALL_DIR% is not a literal you should be typing.  This refers to where you installed the binaries.  If you didn’t change any settings it would be this:

stsadm -o addsolution -filename "C:\Program Files\Tim Heuer\RSS feedreader Web Part\SharePoint.WebParts.Rss.wsp"

Notice that if you have spaces in your path you must put them in quotes.

If you have problems/suggestions log them as a bug/work item on the Codeplex site please.  If you have an idea and would like to contribute, the source is available!

The web part package you may have noticed is not packaged in a WSP file for easier deployment to Windows SharePoint Services v3 and in fact, that is a new requirement (WSS v3) for this update.

Yes, this is one of those posts where you reflect on ‘life’ and how precious it is.  Today was a weird day for me because of two things that caused me pause.  Allow me a little history…

Just over 5 years ago now I received a call that my father was in the hospital as a result of a massive heart attack and was unconscious.  Those are things you never want to hear…ever.  Needless to say it was going to get worse.  In fact my father was in immediate need of a heart transplant to live.  In the interim, they would equip him with an artificial heart.  Sounds logical right?  Unfortunately, ‘artificial hear’ in my father’s situation (due to his body size, chest cavity, etc.) translated to a massive piece of equipment.  Literally my father was hooked up to a pressure device that was on wheels and was about the size of a machine washer.  He had these HUGE tubes connected into his chest and external pumps that served as ventricles.  EVERYTHING was external to his body – yes you could see blood pumping in and out…it was disgusting and amazing at the same time.

After about 7 months of this and a false start on a heart transplant we got the call that a heart was coming and it was local (a donated heart has about a 4hr ideal life span to transplantation).  Hours of surgery later my father had a new heart.  It was a long road to recovery but he is alive today with a donor heart.  My family is eternally grateful for this gift.  My children would have not known their grandfather otherwise (my wife was 9months pregnant when this was all happening).

Fast-forward 5 years later.  Today we received a letter from a woman we’d never met.  It was the mother of the donor heart.  My own heart sank as she wrote this letter on father’s day.  She wrote how she had hoped we were able to benefit as she has felt this long for some time.  We had suspected the identity of the donor heart immediately as on the day my father received his, there was a terrible murder in a neighboring city of a young man.  To this day we suspected it was his heart.  Today we received confirmation of such.  To protect his identity I am not revealing details but that isn’t the point anyway.  My father lives today as a result of one man’s unfortunately loss of life and his remarkable decision to be an organ donor.  This letter from the family is a reminder of what a remarkable miracle happened to my father. 

The second thing today that made me slow down is a funeral my wife and I attended.  For the past 6 years we had known an individual and her daughter.  She was from Mexico and trying to make a better life for her and her daughter.  Her daughter meant everything to her.  Last week she was struck by a car and a week later died as a result of head injuries.  She was 16.  We attended her funeral today and it was amazingly sad to see a family have to bury such a young life.  Our friend was overwhelmingly saddened as you could imagine.  Our hearts were broken as we know how much her daughter meant to her…how much she shaped her life around her daughter and made every decision to better their lives together.

UPDATE:
What I forgot to mention is the 16 year old girl donated her heart (received by a 12 year old boy in WA), lungs (60 year old woman in WA), liver (8 year old and 68 year old), pancreas (50 year old) and kidneys (unknown).  What a great gift on such a tragedy.  Donate Life.

So, I guess here’s where the “count your many blessings” part comes in.  Cliche?  Who cares.  I came home and hugged my kids.

Some new videos just got posted to the Silverlight community site.  Topics included:

As always, feedback and ideas are welcome.  Ben’s been leaving some great comments here on suggested topics and I’d love to see more.  I’ll be starting a new ‘series’ soon…more to come on that in a week’s time.

As a reminder, these videos are meant to help jump start some learning.  We try to keep them intermediate initially so they aren’t incredibly simple and aren’t incredibly difficult.  If we are missing the mark, I expect that you’ll leave comments on those videos that do so!

Related topics:

As I patiently awaited, here’s what was presented to my browser:

Build successful image

I’ve made my first official “commit” to an open source project that I didn’t start.  I feel good.  I feel like cracking open a Mt. Dew and going crazy.  Honestly though it does feel good (and fun). 

My blog engine I use is .  It’s the blog engine I’ve used almost exclusively (I actually started with .Text before scottw sold out went to Telligent to make Community Server.  I kid of course, Scott is a great guy, and very smart.  But when .Text was seemingly going to get stale, others stepped in.  Notably Phil Haack started Subtext which was an initial fork of .Text.  I’ve used it ever since and haven’t looked back.

SubText logoSubtext has a great community of developers that communicate regularly, share ideas, get feedback…all the things you’d expect out of an OSS project but don’t always get.  As I mentioned this was the first project I really got dirty in that wasn’t mine in the OSS world.  Over the past year or so I’ve been giving feedback, making some modifications to fit my needs, etc. but hadn’t really contributed much literally beyond “you guys should do this” comments.  Most of that was because of time and because I had fixed things for my own needs.

Until today.  This past week I had been submitting patches to the team with feedback and things that I really felt valuable and used in my custom build.  Yesterday I got an email from Phil asking if I wanted commit rights to the SVN repository.  I admitted my nervousness, but he let me in anyway :-).  I have to admit that the image above wasn’t the first one I received :-).  I was quickly met after my first commit with a failed build.

Sunofa...I broke the build.  Well, I will go to my grave saying that I didn’t, but something did.  I believe the popular thing is to blame Vista…so I do that too.

At any rate, with some hand holding I figured out the error of my way (had one file wrong) and got my changes into Subtext 2.0 trunk.  I'm really excited to be a part of this community with Subext even on the smallest scale compared to all the others who do the real work.  I'd encourage you all to find an OSS project and help out...with feedback and resolutions.

I'm not sure when my stuff will make it into the next Subtext build for release but I've previously written about what modifications I've made, but here's what I committed today:

    • Enhanced MetaWeblog API implementation to support providing a "slug" URL name for the post.  This gives the user the option to use the default URL naming, the "auto-friendly" or now to override that with your own slug name.
    • Fixed a bug in the SiteMap handler for blogs not hosted at root domains.  Would love people to test this out.
    • Added support for WordPress API functions of: newPage, editPage, getPages, newCategory
    • Simple modification to the Windows Live Writer manifest to prevent those who think they can future post :-)
    • Tag-based RSS syndicator

In all honest, most of my submissions were self-motivated.  I think that is really what starts getting people involved in OSS projects...not an interest, but selfishness.  All the changes I made are there to make Subtext+Live Writer the best experience it can be.  With the WordPress API implementation you can now create new "pages" in Writer that are Articles in Subtext.  It also supports adding new categories on the fly within the API.  It may not affect many who use Subtext, but I was happy to contribute and hopefully add some small value to the project!

Related Post: