| Comments

UPDATE: Michael has posted a comment here and offered himself up to the gauntlet and apologized for his article.  He writes below:

Tim did me a favor with this article, and his comments on Connected Internet. I have left the article up on Connected, because frankly, I deserve the lumps I get over it.

Anyone who has spent more than 5 minutes talking with me, reading this blog, or listening to me on podcasts (Herding Code, Thirsty Developer, Misfit Geek) will know that I LOVE Microsoft.  I’m not ashamed to admit it and I’m not ashamed about my passion for the company or technology it produces.  I’m also not afraid to admit when and where we suck.  I don’t use every Microsoft product…if there are ones that I feel are better for how I use them, then I pick the better tools/technology.  There, bias stated.

I also think that I’m a fair person when it comes to comparisons and reviews and answering questions about competition, etc.  I welcome those conversations.  When I participate in them I do my best to be informed or point out where I’m not informed.  When not informed I try not to make definitive opinions until I have been informed by research or in trying it out for myself.

So you could imagine (like others) that I get frustrated when I see, hear, read things based on bad information, and what seems like no research has been done.  I’ve got thick skin, can usually comment and brush it off.  But today I read something that just triggered a twitch response in me that is making me reply.  It isn’t because of this post only, but because others have written articles on Silverlight that have used the same ill-informed bias.  The one that got me today was from Michael Lankton written for Connected Internet titled 10 Reasons Why Flash is Better than Silverlight.  Michael’s bio talks about him being an AV enthusiast and a corrections officer.  It briefly talks about him having ‘some coder and sysadmin in his history’ – here’s the full bio:

About the Author: Michael was a bass player in a hardcore punk band in the 80's and spent the 90's building and riding custom Harleys. As strange a combination as it may seem, Mike also has some coder and sysadmin in his history as well. At 43 Mike's now a husband and dad, and works as a Corrections Officer in a maximum security lockdown unit by day, and is admin at AV Enthusiast and contributor to Connected Internet when time allows. Mike is also passionate about food and travel.

So, bravo for Connected Internet for picking someone acutely aware of the landscape of the RIA space to do this comparison.  Oh wait.

A few people have commented on the post and JC being first had a lot of good points, refuting most of the bad information but Michael hasn’t corrected anything (despite saying so).  I’ve posted a comment offering to provide accurate information for him (and I’ll extend to anyone) in doing an evaluation.  You should be informed about the capabilities before doing things like this.  In that spirit, since there are some common misconceptions noted in Michael’s post that are incorrect, I had a moment of thought to note them (which others have already added their comments as well).

Michael’s intro paragraph says “you have better options for embedding video and audio content into a web page” than Flash or Silverlight.  Really?  Is this the wondrous HTML5 you speak of?  That isn’t complete, only supported in certain versions of browsers and requires likely a different encoding of the media than you already have?  Yeah, thought so.  Let’s be honest.  Flash and Silverlight are *the* ways to leverage media in mainstream applications today.  Are there alternatives?  Sure.  Are they more pervasive?  No.  On to the article after this little intro correction now.

1. Platform compatibility. 

MYTH: Michael notes the platform where we are supported and on Mac says “only just recently too.” 
FACT: Silverlight has been supported on Mac platforms since it’s incarnation.  The current managed code versions are supported on Intel-based Macs only.  A simple check of the system requirements would have found this.

In the comments Michael states that what he meant by this is that .NET is required.  We’ll get to that in point 9.

MYTH: Windows servers are required for Silverlight.
FACT: You could serve up Silverlight from your Samba share if you want.  Silverlight is a client technology…we don’t care what is on the server.  The only thing we require (for security) is that the XAP must be served with the right content MIME type (application/x-silverlight-app).  That’s it.  And every web server out there can have this MIME type.

2. Market penetration.

Our latest install statistics we see from our downloads, etc. as announced at MIX09 put us around 1/3 market penetration.  This is continuing to grow.  I honestly don’t have daily visibility to this number to give you current stats.  Michael makes a note “Not sure about that, as some independent studies show it as low as 6%” – um, cite the study?  If not, that’s a blatant assumption.  Heck even the much disputed riastats.com shows penetration at 34%.  Again, cite the source, or move along.  I even cite riastats.com here, although that’s not the benchmark that Microsoft uses…but at least I’m citing where I pull the number from (the 34% number, not the 1/3).

3. 64-bit web browser support. 

It’s funny that in the comments Michael says to a commenter not to talk about beta technologies, yet in this point here that’s all the evidence he has: An alpha of Flash for 64-bit.  Silverlight doesn’t have a 64-bit plugin.  Neither does Flash.  Enough said.

4. Supported image formats.

I couldn’t find a definitive source on what image formats Flash officially supports with no extensibility, but I think it is JPG, PNG and GIF (someone cite a source if you have better data).  True, Silverlight doesn’t support GIF.  I’m not upset about it.  Guess what though…we have an extensible platform and if you absolutely need to support your GIFs from 1997, you can.

5. Package Delivery.

MYTH: Silverlight files are loose and uncompressed.
FACT: Silverlight files are packaged into a XAP file which is a standard compressed/archive format.

In fact, just rename to .zip and use your favorite tool to see the contents.  If you think your favorite tool can get even better compression…feel free to recompress again.  We think we have decent improved compression. 

Oh and we also support cached assemblies, partitioning applications, and other techniques to minimize the size of your application base file.  This point tells me he’s evaluating on Silverlight 1.0 (which didn’t leverage the XAP package and was in fact loose files – which could be gzip/deflate compressed by the server btw).

6. Audio.

MYTH: Silverlight does not support APIs for generating and controlling audio.
FACT: Silverlight has a MediaElement control for controlling audio/video, MediaStreamSource API for providing your own decode/logic and APIs for RAW audio, video stream. 

Again, do your research.  Samples available for this here (extensible media format support sample) and here.

7.  Portability.

I’m not sure his description of Flash’s abilities here are even accurate.  I *think* he may be talking about just running a SWF file using the standalone Flash player, but I wonder if he also means AIR here as well.  I’m just not sure (and he doesn’t indicate).  Silverlight has the capability to run out-of-browser.  Is it a full-trust application like AIR?  No.  But again, he doesn’t clarify here what he’s referring to.  Sure Flash has a standalone player, but I can’t remember the last time I played only a SWF.  If referring to AIR, there are some comparisons that could be drawn, but bottom line is you can run Silverlight applications out of the browser.

8.  Accessibility.

MYTH: Silverlight is not an accessible technology.
FACT: Silverlight can be developed with accessibility in mind.

Michael points out “changing color schemes” and I think is referring to high-contrast mode.  Yes we have that.  But we also have caption support for media files and have the ability to integrate with other accessible technologies.  Here’s some resources:

  • Accessible Media Project (full open source implementation of an accessible media player).  Note: that this is built upon *existing* APIs that are built-in to the product.
  • Accessibility in Silverlight with Mark Rideout here and here.
  • Buttercup Reader – an implementation of an accessible application in Silverlight.

9.  Client-server communication.

MYTH: You must use .NET server technologies for service communication on Silverlight.
FACT: Silverlight can communicate with ASP.NET web services, WCF, SOAP services and REST APIs. ASP.NET on the server is not required for client-server communication.

Michael’s assertion here is simply incorrect.  Silverlight has a network stack available to developers to communicate with servers/services of all kinds and also includes a Socket implementation if you so desire.  This is just completely false what Michael notes here.

There are some technologies we are developing (.NET RIA Services) that do require .NET on the server and provide a better experience for developers using Microsoft technologies front-to-back.  This, however, is not a requirement of Silverlight.  Use your Ruby REST api if you’d like.

10.  3D rendering.

I’m definitely not an expert in 3D.  I have to admit I don’t know the capabilities of Flash in this regard.  Silverlight does, however, support perspective 3D (taking a 2D object and putting it in 3D space).  Do we have full on support for 3D meshes, etc.  No, we don’t right now.  I *think* (again, Flashers correct me if I’m wrong) that Flash’s implementation is similar based on some quick search research.  I’m willing to admit I’m wrong here on their implementation.

We do have several ways to extend 3D type models though:

  • Kit3D – an open source 3D graphics engine for Silverlight.
  • Balder – a managed game engine with 2D and 3D support.
  • Zam3D – a commercial product for exporting 3D environments to XAML

As for game development.  Sigh.  Yes it can be done.  In fact how about a platform that lets you reuse technology to develop a game for desktop, browser, XBOX and Zune?  Check out Silver Arcade for some casual games that people are developing.  We’ve also got a thriving ecosystem around physics engines that are open source as well!  Casual games not your thing?  How about Quake in Silverlight?

Michael ends his article with these words (emphasis mine):

I have a platform to express my opinions, and they are generally backed up with solid experience or data to justify them. I am not always right, and I welcome anyone who disagrees with my thoughts on Microsoft’s Silverlight to begin that discussion in the comments section.

Michael – you have been engaged in the comment section and haven’t corrected where you are wrong.  Your opinion, this time, is not backed up with solid experience or data.  Period.

This work is licensed under a Creative Commons Attribution By license.

| Comments

I just finished up a day attending the Chicago RIApalooza event in, well, Chicago.  First, I must say that I love cities with great mass transit systems.  I’ve said this before and I keep threatening myself to move to one.

IMG_0276For this event I paired up with a super designer Corrina Barber.  Corrina works as a user experience designer at Microsoft, is wicked smart and was a perfect compliment to this event.  Most of the attendees at RIApalooza I believed to be interactive developers, so most having a knack for design.  I figured rather than a developer only session it would be better to have more of a design skew on what Silverlight, Visual Studio and Blend bring to the table for developers and designers.  Corrina and I set off to demonstrate that designer/developer workflow that Microsoft talks about so much.  To set the stage, basically we started with a concept and then Corrina used Expression Blend to create a wire-frame mock-up using unstyled controls.  I then jumped in as the developer and modified only code, keeping the design in tact while my designer counterpart continued on fit-n-finish and polishing the design.  It is really great to see this separation and see how a developer can work on a project, keep the design integrity 100% and allow this separation.  In the end we had a final product that demonstrated this concept as well as some aspects with Silverlight such as IsolatedStorage, WebClient, LINQ to XML, data binding, etc.  I hope it was well received.  Corrina held court in the lounge afterwards gathering feedback from designers on what we (MSFT) are doing right with our tools/platform and what could be improved.  I listened in a few times and it was great feedback and I think the attendees really appreciated hearing stuff straight from a designer!

Dave MeekerThe rest of the day’s sessions were great.  Back up.  The night before was a social mixer where we had a discussion from Dave Meeker of Roundarch.  This guy gets it.  It really was spot-on in my opinion and I sincerely appreciated his perspectives and knowledge brought to the discussion that evening.  We ended with a panel discussion that surprisingly had more to do with discussions around business/marketing aspects than any technology.  It was a good discussion.

Okay, the rest of the day was great.  Presentations from Corey Miller and Anthony Hendley on Silverlight, WPF and XAML.  A look at RIA best practices with Josh Holmes and Michael Labriola.  Some cool framework stuff looking to merge the world of .NET and Flex from Ka Wai Cheung of We Are Mammoth (which ironically describes themselves as a small firm).

I also personally had some great conversations, particularly with Stanton Ware, Donald Burnett and Michael Labriola.  Nearing the end of the day I caught Michael in a resting moment and decided not to let him rest.  What started with a simple question of “do you think you can show me Flex for a few minutes” led to an hour or so demonstration of Flex Builder, the platform and some concepts in software design of Flex applications.  Honestly it was time very well spent and I have a much better perspective of Flex, what is good, what is bad, etc.  We also philosophized (bushism term, deal with it) about evangelism, organizational growth, etc.  Good conversation.  He’s a really smart dude.

I also was able to sit down with Larry Clarkin and Dave Bost with The Thirsty Developer.  I had a good time on the podcast and hope it turns out okay for the guys.  Thanks to them for asking me to participate!  The Thirsty Developer is one podcast that I’m subscribed to and I think they have a good balance of fun and conversation with the people they choose to talk with.  I would recommend you take a look and consider subscribing.


I was real pleased with RIApalooza and hope to see more of them sprout up.  The mashup of community and discussion was welcome and refreshing.  Congratulations to the entire planning committee on a job well done.

| Comments

"Competition is dropping prices, increasing quality and making everyone’s internet a better place." (ryan stewart)

flash just did an update to the flash player.  i believe (according to their site) this takes it to v9.0.115.0 (at least for IE on windows).  what's included in this update?  primarily H.264 encoding support in the player.  this has been in beta for a while, but now 'official' from adobe.  the second announcement involves their (adobe) pricing/licensing changes around flash media server products, something that has been somewhat criticized for a while as cost-prohibitive.  the new pricing looks like a real aggressive price drop based on their own admissions.

looks like they listened.  part reaction to competitive heat?  maybe, but as noted above...competition helps end consumers and forces all vendors to think different, increase quality and make it better for us (consumers).  i agree.

i went to the flash site to check out the new features after reading the press release.  since i didn't have the new version of the plugin i thought what a perfect opportunity to see this upgrade experience.  i'm using IE7 on windows vista.  my first thing i see is

great, i know i need it and this links to me an 'express install' which i presume is like an inplace installer similar to silverlight's options.  i click it.

maybe redundant to some (the original flash movie already alerted me to that), it confirms that i want to install that upgrade.  i do, click yes.

at this point i'm presented with this (although a new instance of IE is also opened up as well).  ok, fine i close the browser and now have the ability to check it out as i see a 'Launch' button now.  however, in IE when i click it i get a javascript (null) error and am unable to launch the popups.  seems we all still haven't solved the 'get around the popup blocker problem.' -- out of curiosity i load firefox now and see what i get...here's the first screen (after going to the same page):

ok, i thought i already did that (common user question), but being a techie i know that some plugins load differently in each browser, i (as a techie) can accept that...i click download.

i'm taken to here to accept the EULA and download.  hey, what happened to 'express install'?

downloaded .exe and done, open it up.

oops, need to close FF before i do that...okay, closed and then installed.

again, out of curiosity i go to my mac.  i'm presented again with a different experience, requiring me to download a .zip file which contains a .dmg and also asks me for what type of mac i have (intel or PPC -- is that a mother-in-law proof question? -- i know does this check for you).  i didn't take screenshots of that upgrade, but it looks identical to this screencast i did of a pure flash install (yes, the upgrade process took the exact same steps).

my point here is to NOT say 'adobe sucks' because of their install process.  my point is that install/upgrade processes aren't as simple as we all make them out to be.  especially in browserville.  there are different platforms, versions, browsers, etc., etc.  mike downey (a pm with adobe) had commented on the silverlight install experience being somewhat cumbersome (on a mac).  it isn't ideal, but that doesn't mean that it doesn't match existing experiences (for the mac).  even given that in IE on windows i was presented with an express install option, but in firefox i wasn't, means there are some things that adobe considers too when creating an install experience.

my point -- it isn't as simple as it looks with all the platforms out there.  my intention isn't so say "see, told you so" -- but rather to point out the similarities and perhaps parity in those experiences.  sure, flash has huge penetration, but does their latest update?  i think there are probably other ways of upgrading the plugin, but i went to the source vendor page and this is how they are doing it, presumably prescribed guidance.

i'm eager to see the first sites who really take advantage of the H.264 encoding (not youtube style, but pushing the edge).

| Comments

sitting in the "product and services" track for apollo.  this really has nothing to do with rails, but hey, adobe is a sponsor, so throw them a bone and give them a few sessions.

the html engine in an apollo app is webkit...interesting -- didn't know that.  the reason was that it is an open project and they wanted something to contribute to...

yawn...these guys don't have enough energy...their jokes aren't working...this is 100 level stuff...walking out now.

ooh, just heard one of them talk about using design mode in flex builder: don't be afraid of it, it works well, doesn't mess things up.  hmm...i remember another ide that has a great design mode implementation now (admittedly not in the past).

okay, now walking out -- this hello world stuff with simply putting html controls on a friggin app isn't sexy to me.

| Comments

Welcome LifeHacker visitors!

[UPDATE: More updated information and alternative download links here: Foxit PDF Previewer.]

UPDATE: If you are experiencing problems with 'white page' PDF previewing, it is likely the PDF has scanned images.  See this post for an update on how to fix: Foxit Previewer Update.

in my daily work i spend a majority of my 'computing' time in outlook.  communicating with peers, team members, customers, etc. is mostly done via communication (sad, i know).  a lot of that time it involves sending information attachments back and forth, using office documents, etc.  i've said a lot about how much i love the preview functionality within vista and office 2007.  i even wrote a code preview handler for .cs, .vb, .sql, .js files.

one of the samples in the msdn article by stephen toub was for pdf files...of which i receive a lot.  i don't use adobe reader because i think it is overkill for reading pdf's personally.  the sample, however, relies on having adobe reader installed...which i didn't like.  i started working with the , because i love their reader product.  after some communication with the team at foxit, we started collaborating.

as a result of that collaboration, and i partnered to create the 'foxit pdf preview handler' which you can download for free!  this is a pdf preview handler for outlook 2007 and windows vista.  the current version requires vista, but we are working on a windows xp version for outlook 2007 on winxp.  what this enables you to do is, well...the following:

Foxit PDF Preview Handler

no need for adobe to be installed, etc.  it's fast, it's furious.

there is no official support included for this add-on, but i'm happy to field questions/suggestions myself.  keep in mind, i'm not going to be (nor will they) altering the pdf renderer...that's their product.  if you need pdf rendering capabilities within your application, i highly suggest looking at integrations using their dll and activex sdk's for your applications.  they are a great company with a great team.  it's a global team and they were very responsive throughout our communication.  i really appreciated their willingness to collaborate on something so simple and helpful to the greater community.  please give them a look-over.

why the 'banner' in the pdf render?  well, it's free :-).  that only shows up there as well...won't be in the printed document or anything...i think it is great to give them credit and a simple, small, unobtrusive banner is entirely appropriate.

please download the foxit pdf preview handler and install today!

Alternate Download Links here.

UPDATE (28-MAR-2008): Windows XP only version here.

file: Foxit PDF Preview Handler