<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Shebanation</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.adobe.com/shebanation/atom.xml" />
   <id>tag:blogs.adobe.com,2007:/shebanation//97</id>
    <link rel="service.post" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97" title="Shebanation" />
    <updated>2007-04-19T00:04:22Z</updated>
    <subtitle>Discussions of: collaboration; dynamic media; Microsoft technologies; dynamic languages; and anything else that captures my eye.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2</generator>
 
<entry>
    <title>This blog has moved to shebanation.com</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/04/this_blog_is_over.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=3016" title="This blog has moved to shebanation.com" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.3016</id>
    
    <published>2007-04-18T19:44:07Z</published>
    <updated>2007-04-19T00:04:22Z</updated>
    
    <summary>Administration and spam handling of this blog was taking up too much of my time, so I&amp;#8217;ve moved over to a blog hosted at wordpress.com. The transition was very smooth, since both MovableType and WordPress have excellent import/export functionality. All...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Administrative" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>Administration and spam handling of this blog was taking up too much of my time, so I&#8217;ve moved over to a blog hosted at wordpress.com. The transition was very smooth, since both MovableType and WordPress have excellent import/export functionality. All comments have moved as well.</p>

<p>The new URL is http://shebanation.com</p>

<p>You can subscribe to my RSS feed at:</p>

<p><a href="http://shebanation.com/feed/"><img src="http://faq.files.wordpress.com/2006/11/g28.png" border="0" />Full RSS Feed</a></p>

<p>Also, as a bonus of moving to wordpress, you can subscribe to my comments feed:</p>

<p><a href="http://shebanation.com/comments/feed/"><img src="http://faq.files.wordpress.com/2006/11/g28.png" border="0" />Comments Feed</a></p>

<p>I&#8217;ve turned off commenting on all existing posts on this blog, and will not be updating this blog any further.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Joyent fires their Slingshot at me...</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/04/joyent_fires_their_slingshot_a.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=3006" title="Joyent fires their Slingshot at me..." />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.3006</id>
    
    <published>2007-04-18T01:11:21Z</published>
    <updated>2007-04-18T22:56:38Z</updated>
    
    <summary>So the folks over at Joyent have announced that Slingshot will be released under a dual licensing model: GPL and a commercial paid license. The surprising thing about their announcement is that they went out of their way to call...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Rich Internet Applications" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>So the folks over at Joyent have announced that Slingshot will be released under a dual licensing model: GPL and a commercial paid license. The surprising thing about their announcement is that they went out of their way to call me out over the licensing issues:</p>

<blockquote>
  <p>When we announced Slingshot, Andrew Shebanow at Adobe posted about Apollo, Competition, and Openness.</p>
  
  <blockquote>
    <p>Next is SlingShot from Joyent and Magnetk. I love Ruby on Rails, so this product is very interesting to me. They basically have taken the all-in-one desktop server approach of Locomotive and turned it into an application runtime. Its a great idea, and one that opens up a lot more power to the local application than Apollo. Downsides are a lot of potential security issues (no sandbox?), the fact that the entire source of your application is distributed to the world whether you like it or not, and the fact that it is limited to Ruby on Rails applications. More disturbing, though, is that it sounds like Joyent will be charging a royalty for distributing applications based on their runtime unless you are a customer for their hosting service. Maybe they just plan on charging a flat fee for the SDK. Either way, this is much less open than the Apollo model where the SDK and runtime are both free of charge.</p>
  </blockquote>
  
  <p>We are charging a license fee to people using Slingshot for commercial purposes. I believe Adobe does this for content producing tools, too. Joyent would like to invite Adobe to open source Apollo and the ecosystem around it (Flex, Flash). Don’t just make it free, free it.</p>
  
  <p>And by way of response. Sandbox? What’s the sandbox Adobe Photoshop runs in? Entire source? More on that, later. Limited to Rails? Yes. Focus.</p>
</blockquote>

<p>I have to admit that I&#8217;m a little mystified by their hostility. I thought I was pretty evenhanded and positive about their product. David Young, the CEO of Joyent did respond to the post accusing me of FUD, we had some back and forth on it, and I thought it was resolved. Heck, when I posted a while later about DHH&#8217;s post, David commented again to <b>thank me</b>. Why the change in attitude now? Beats me.</p>

<p>Anyhow, I tried to respond to the post on Joyent&#8217;s blog, but my post disappeared shortly after I submitted it. I thought it might have been a glitch so I posted the comment again. Again it disappeared. This <em>might</em> be a server problem on their end, but it also might be outright censorship, and it feels more like the latter to me since other people&#8217;s comments show up. In any event, the net has a way of routing around that sort of thing. Here&#8217;s my comment as I wrote it in their blog, unedited. I think my comments were critical but not inflammatory so I&#8217;m again at a loss to explain why they&#8217;d delete what I said, if that is in fact what happened. Are they really that incapable of dealing with criticism? I hope not.</p>

<blockquote>
  <p>Wow, holding a grudge, are we?</p>
  
  <p>I addressed your sandbox comment on my original post, but you clearly don’t appreciate the trust model differences between small apps that are downloaded from the internet and large-scale traditional desktop applications. Or maybe you do appreciate the difference but are only targeting the latter. Or you just don’t care. I personally think you are making a big mistake ignoring the security issue but its certainly your right to do so.</p>
  
  <p>I’m happy you’re releasing source under GPL. Duel licensing is an interesting choice, and I look forward to seeing how it works out for you business-wise. There is no question that monetizing a runtime framework is a tricky business.</p>
  
  <p>Can’t really speak to the whole “free vs. free” thing. I’d certainly welcome such a thing but it isn’t something I have any control over. I do want to point out that even though Apollo isn’t fully open source, pieces of it are, like WebKit and Tamarin. That obviously won’t be enough to satisfy everyone, but we expect great things.</p>
  
  <p>Bottom line is I wish you all the success in the world, and I hope you get over your hard feelings.</p>
</blockquote>]]>
        
    </content>
</entry>
<entry>
    <title>I have seen the Silverlight...</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/04/i_have_seen_the_silverlight.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2992" title="I have seen the Silverlight..." />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2992</id>
    
    <published>2007-04-16T21:27:48Z</published>
    <updated>2007-04-18T22:57:56Z</updated>
    
    <summary>So TechMeme is chock full of news about SilverLight, including the patented Microsoft astro-turf announcement technique, where all the Microsoft WPF/Expression employees post the same links to their blog without actually saying anything new and substantive. The best post is...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Microsoft" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>So <a href="http://techmeme.com/">TechMeme</a> is chock full of news about SilverLight, including the patented Microsoft astro-turf announcement technique, where all the Microsoft WPF/Expression employees post the same links to their blog without actually saying anything new and substantive. The best post is the <a href="http://blogs.msdn.com/tims/archive/2007/04/15/introducing-microsoft-silverlight.aspx">real announcement</a> from Tim Sneath. The other post worth reading is <a href="http://blogs.msdn.com/lokeuei/archive/2007/04/16/microsoft-announces-silverlight.aspx">this one</a> from Loke Uei where he has a handy comparison chart listing Silverlight vs. WPF vs. Flash/Flex. Too bad the column on the Flash/Flex stuff is almost completely incorrect. Every other post from Microsoft&#8217;s folks is pretty much worthless.</p>

<p>But what did they actually annnounce at NAB? A decent new name (by Microsoft standards it is excellent since it only has <em>one</em> compound word) and a really boring new logo.  The runtime downloads have been renamed but the bits themselves are the same pre-alpha stuff from a couple of months ago. No news on actual Expression support for Silverlight either. Some teasing about the miniCLR &#8220;surprise feature&#8221;. Guess they want to save all the real news for MIX. All that&#8217;s left for NAB is hype, hype, hype. The wow is back!</p>

<p>Meanwhile Apple and Adobe actually had new never-before-seen products to talk about, not just new product names.</p>
]]>
        
    </content>
</entry>
<entry>
    <title>Friction(less) Rails</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/04/scaling_rails.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2974" title="Friction(less) Rails" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2974</id>
    
    <published>2007-04-14T12:09:52Z</published>
    <updated>2007-04-18T22:59:37Z</updated>
    
    <summary>I&amp;#8217;ve been thinking quite a bit lately about solving problems at web scale, so I&amp;#8217;ve been following the story of Twitter with quite a bit of interest. There was a bit of a flap recently when Josh Kenzer interviewed Twitter&amp;#8217;s...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Dynamic Languages" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>I&#8217;ve been thinking quite a bit lately about solving problems at web scale, so I&#8217;ve been following the story of Twitter with quite a bit of interest. There was a bit of a flap recently when Josh Kenzer <a href="http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/">interviewed Twitter&#8217;s Alex Payne</a>. Alex made some statements about the pain of doing very large scale scaling with Ruby on Rails that caused a bit of controversy:</p>

<blockquote>
  <p>Running on Rails has forced us to deal with scaling issues -
  issues that any growing site eventually contends with - far sooner
  than I think we would on another framework.</p>
</blockquote>

<p>and:</p>

<blockquote>
  <p>None of these scaling approaches are as fun and easy as developing
  for Rails. All the convenience methods and syntactical sugar that
  makes Rails such a pleasure for coders ends up being absolutely
  punishing, performance-wise. Once you hit a certain threshold of
  traffic, either you need to strip out all the costly neat stuff that
  Rails does for you (RJS, ActiveRecord, ActiveSupport, etc.) or move
  the slow parts of your application out of Rails, or both.</p>
</blockquote>

<p>and:</p>

<blockquote>
  <p>If you’re looking to deploy a big web application
  and you’re language-agnostic, realize that the same operation in Ruby
  will take less time in Python. All of us working on Twitter are big
  Ruby fans, but I think it’s worth being frank that this isn’t one of
  those relativistic language issues. Ruby is slow.</p>
</blockquote>

<p>That is what I&#8217;d call &#8220;tough love&#8221;. Ruby on Rails fans may not want to hear about these things, but that doesn&#8217;t mean they aren&#8217;t real problems when you try to scale at a massive level like Twitter is doing.</p>

<p>Unfortunately but not too surprisedly, the <a href="http://www.loudthinking.com/arc/000608.html">initial reaction</a> to these statements was pretty defensive. Since then, though, there has been a <a href="http://www.tbray.org/ongoing/When/200x/2007/04/13/Twitter-and-Rails">lot</a> of <a href="http://bitworking.org/news/160/Scaling-Matters-Twitter">good</a> <a href="http://rc3.org/2007/04/twitter_develop.php">discussion</a> of what it means to scale in Rails. The best discussion, though, has been from Ryan Tomayko, <a href="http://tomayko.com/weblog/2007/04/13/rails-multiple-connections">who says</a>:</p>

<blockquote>
  <p>I picked up a word from Joe a few years back and find myself using it a lot: &#8220;friction.&#8221; When referring to framework and tooling, &#8220;friction&#8221; is a (subjective) measure of how much the tooling gets in your way when trying to solve a specific-case problem. I&#8217;ve come to evaluate frameworks based on two rough metrics: how far the framework goes in solving the general case problem out of the box and how little friction the framework creates when you have to solve the specific-case problem yourself. When a framework finds a balance between these two areas, we call it &#8220;well designed.&#8221;</p>
  
  <p>Measured along these lines, there <em>are</em> portions of Rails that have a less than perfect balance but I don&#8217;t think multi-database connectivity is one of them. It seems to me that moving too far in one direction on this would cause lots of friction for moving in other directions. There just doesn&#8217;t seem like there&#8217;s a lot of general case to solve here when you dig into the details.</p>
</blockquote>

<p>I love that quote on friction: it really captures the thing I like best about Rails. His entire article is well worth a read, both for the insights into good framework design and for the specific extensions he and his cohorts made to Rails to make it work for what they were doing. Great stuff and I hope the public conversation continues like this.</p>
]]>
        
    </content>
</entry>
<entry>
    <title>The Death of UI Consistency</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/04/the_death_of_ui_consistency.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2950" title="The Death of UI Consistency" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2950</id>
    
    <published>2007-04-12T12:46:05Z</published>
    <updated>2007-04-18T23:00:00Z</updated>
    
    <summary>Yesterday, John Gruber posted a gripe about the new CS3 panels and palettes and how horrible it is that Adobe put the close box on the right side. To John, this seemed horribly un-Mac-like, and in trademark style he concludes...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Rich Internet Applications" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>Yesterday, John Gruber posted a <a href="http://daringfireball.net/linked/2007/april#wed-11-cs3_palettes">gripe</a> about the new CS3 panels and palettes and how horrible it is that Adobe put the close box on the right side. To John, this seemed horribly un-Mac-like, and in trademark style he concludes his gripe with an elitist and unsubstantiated slap at Windows users (but hey, at least it was funny):</p>

<blockquote>
  <p>Ends up the title bar controls for palette windows in CS3 <em>are</em> on the right side, Windows-style. “X” for close, “_” for collapse. God, that just looks so wrong – how did this ever get approved? If Adobe really wanted to put these controls in the same location on both platforms, why not do it the Mac way? If Windows users cared about consistency, they wouldn’t be using Windows.</p>
</blockquote>

<p>I wrote him an email where I explained what I thought the actual motivation for the close box on the right decision was: the desire to save vertical space by putting the close box to the right of the palette tab panel interface.</p>

<p>But thinking about it some more, I realized that this answer didn&#8217;t really satisfy me. First of all, even though putting the close box on the right does make sense from an overall design point of view, the fact remains that the close box doesn&#8217;t <em>look</em> like a Mac-style close box when you run CS3 on a Mac. It doesn&#8217;t really look like a Windows close box, either. Instead, it looks like an &#8220;Adobe close box&#8221;, just as the palettes themselves don&#8217;t really look like those of other, non-Adobe applications. But then I had to think about it some more, because despite this realization I still am not bothered by the problem whatsoever when I actually use CS3, and I like to think I have a pretty well tuned design aesthetic (for an engineer).</p>

<p>The reason, I think, is that the goal of a single, consistent platform look and feel, as espoused by John in the quote above, is dead. Long gone. Apple never really achieved this even in the good old days (remember HyperCard? FileMaker?). And looking at Apple&#8217;s own applications that ship with a new Mac shows that things have only gotten worse. Its always been a case of &#8220;do as I say, not as I do&#8221;, and never more so than today.</p>

<p>But I don&#8217;t blame Apple or Adobe for the death of the goal. What really killed that goal once and for all was the web. Where once there were only a few popular Mac applications that broke with convention, on the web look and feel consistency isn&#8217;t even on the list of things to worry about. YouTube and flickr look and work completely differently. Users today have been trained to expect a different set of UI conventions from every web application they use, and they aren&#8217;t complaining about it.</p>

<p>The trend towards Rich Internet Applications using Apollo and its ilk will further cement this trend, as web applications come down to the desktop with their web UI conventions intact. To me, this is a good thing.</p>

<p><strong>[Update 10:36AM]</strong> Wow, this is getting a lot of traffic and a lot of comments, especially for something I wrote at 4am when I couldn&#8217;t sleep. I want to make a few things clear to people about my intent.</p>

<p>The real thrust of my article isn&#8217;t as a defense of putting the close box on the right vs. the left, or about what the &#8216;x&#8217; looks like. I personally don&#8217;t think that discussion is all that important, although there are clearly a number of commenters who disagree.</p>

<p>What I&#8217;m really talking about here is how the goal of complete UI consistency is a quest for the grail, a quest for a goal that can <em>never</em> be reached. The fact that you call it a holy grail may make the quest seem more noble, but it doesn&#8217;t make the grail any more achievable.</p>

<p>At the end of the article, I talked about how RIAs bringing web conventions to the desktop was a good thing, but I didn&#8217;t explain why (I blame lack of sleep). The reason I think this is that it lets us move the conversation away from the discussion of conformance with a mythical ideal and towards a discussion of what a usable UI should be. I really appreciate the comments from folks pointing out places where Adobe&#8217;s UI isn&#8217;t as usable as it could and should be - they&#8217;re the folks who really understand what I&#8217;m trying to talk about here.</p>

<p>Finally, I want to point out for those who may have missed it that this is my personal blog and that these are my personal opinions. I am an engineer, not a PR mouthpiece or an evangelist (at least not professionally). Furthermore, I don&#8217;t work on CS3, so my opinion shouldn&#8217;t be taken as that of the CS3 team or of Adobe as a whole. I never cease to be amazed at how many people seem to confuse this issue.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Volkswagens and Porsches</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/04/volkswagens_and_porsches.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2896" title="Volkswagens and Porsches" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2896</id>
    
    <published>2007-04-05T01:35:33Z</published>
    <updated>2007-04-18T23:03:59Z</updated>
    
    <summary>Ray Ozzie has done an interview with the always excellent Knowledge@Wharton folks, and its a great read. Its nice that Ozzie is coming out of hiding a bit. In the article, he talks quite a bit about Adobe. Not surprisingly,...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Rich Internet Applications" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>Ray Ozzie has done an <a href="http://knowledge.wharton.upenn.edu/article.cfm?articleid=1698">interview</a> with the always excellent Knowledge@Wharton folks, and its a great read. Its nice that Ozzie is coming out of hiding a bit. In the article, he talks quite a bit about Adobe. Not surprisingly, <a href="http://blogs.zdnet.com/BTL/?p=4790">Dan Farber</a> and <a href="http://blogs.zdnet.com/Stewart/?p=332">Ryan Stewart</a> are talking about it.</p>

<p>I think Dan pullled the most interesting quote out of the article, though he didn&#8217;t include the whole thing. Here it is:</p>

<blockquote>
  <p>Well let me just start by saying that, in my view, we only have one shared future as a software industry. And that is centrally deployed code that has a different lifetime associated with it on the device it&#8217;s deployed to.</p>
  
  <p>So, what is HTML or DHTML? Most web pages have JavaScript in them. That&#8217;s code that is delivered to the client and it has the lifetime of the browser instance you&#8217;re using. Flash &#8212; what is that? Well, it involves enhancing the browser runtime by downloading code. But it tethers those enhancements to the service and the lifetime of those things is still within the browser. With Apollo, maybe you can make the lifetime that of the user on that device. They have increased the lifetime from the browser instance to the PC.</p>
  
  <p>All apps &#8212; whether Win32 code, Flash code, managed WPF [Windows Presentation Foundation] code &#8212; are going to have those lifetime choices and will all be centrally deployed, whether that central deployment is from an enterprise or from a service provider on the web. The concept of CD-based installs, floppy-based installs or USB stick installs are artifacts of a time when we were not fully connected.</p>
  
  <p>I don&#8217;t see radical differences in the approaches that Adobe might be taking, that we&#8217;re taking, or that the web industry in general is taking. The languages and run-times may be different. And we come at it from a history of the desktop coming up to the web. They are coming from a history of being on the web and going down to the desktop, but the endpoint is the same.</p>
</blockquote>

<p>Cool. Ray Ozzie gets the key benefit of Apollo - bringing the web down to the desktop. His key message here is that bits is bits, and that it doesn&#8217;t really matter whether its .NET code or Flash or HTML/Javascript that gets deployed on the web - they all end up just being code that runs on the local machine. There is truth to that, but I think he is either being a bit disingenuous or missing the larger point - it isn&#8217;t just about the bits, its also about the APIs and tools used to create those bits. Does Ozzie really believe these things are irrelevant? I doubt it.</p>

<p>I&#8217;ve written about how I see our vision differing from Microsoft&#8217;s in this key area previously, but instead of repeating myself, I&#8217;ll instead point to the work of Peter Fisk. He is working on an amazing project to create a complete Smalltalk environment from the ground up, built on a lisp base. Now this is a pretty ambitious project, you have to admit. He <a href="http://vistasmalltalk.wordpress.com/2006/07/04/about-this-blog/">started off using .NET and WPF</a>, back in July 2006. After making steady progress for six months, he <a href="http://vistasmalltalk.wordpress.com/2007/01/31/adobes-actionscript-flex-and-mxml/">heard about Flex 2.0</a> at the end of January 2007. <em>Two days later</em> he had posted his first proof-of-concept tests of lisp implemented in Flex. Within a month, he had <a href="http://vistasmalltalk.wordpress.com/2007/03/03/first-flash-smalltalk-test/">significant functionality</a> in place. A month later, he had <a href="http://vistasmalltalk.wordpress.com/2007/04/03/animation-canvas/">animation working in Smalltalk</a>. He&#8217;s made incredible progress in the last two months, way more than he did in six months with WPF, and I&#8217;ve had a blast watching his progress. Now he has had a chance to reflect on the two worlds, and I <a href="http://vistasmalltalk.wordpress.com/2007/04/04/more-thoughts-on-c-versus-actionscript/">love what he has to say</a>. Here it is in its entirety:</p>

<blockquote>
  <p>I have been coding almost exclusively in ActionScript for the past two months, and I am beginning to like it.</p>
  
  <p>The entire Adobe way of doing things is a lot simpler than Microsoft and it seems to produce results that are just as good. So far, I haven’t found anything that I could do in C#/.Net that I can’t do in ActionScript/Flash - in fact, I am finding some capabilities in Flash that aren’t available in .Net.</p>
  
  <p>Here is a car analogy:</p>
  
  <p>Microsoft has built a sports car and Adobe has built a Volkswagen (a <em>real</em> Volkswagen, not the new imitation ones).</p>
  
  <p>So while Microsoft is preparing their latest rocket-powered turbocharger which will be available “real soon now”, you can actually build and deploy stuff in Flash.</p>
  
  <p>A Volkswagen on the road goes a lot faster than a sports car in the repair shop.</p>
</blockquote>

<p>Now, a lesser man could take that analogy and run it into a telephone pole, but I won&#8217;t go there. :-)</p>]]>
        
    </content>
</entry>
<entry>
    <title>Elephant Still In The Room</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/04/elephant_still_in_the_room.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2869" title="Elephant Still In The Room" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2869</id>
    
    <published>2007-04-03T02:57:30Z</published>
    <updated>2007-04-18T23:04:40Z</updated>
    
    <summary>A couple of months ago, Steve Jobs posted his open letter on DRM to the web and I posted Jobs on DRM: The Elephant in the Room in response. It got me my very first set of Apple fanboy comments,...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Dynamic Media" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>A couple of months ago, Steve Jobs posted his open letter on DRM to the web and I posted <a href="http://blogs.adobe.com/shebanation/2007/02/jobs_drm_elephant.html">Jobs on DRM: The Elephant in the Room</a> in response. It got me my very first set of Apple fanboy comments, which was exciting. Today, of course, Apple and EMI announced that they would start selling DRM-free tracks at a 30% markup. I want to congratulate Apple and EMI for taking this step. As someone who has purchased a fair amount of music through the iTunes Store, I&#8217;m happy to get the DRM-free tracks and the higher resolution, and I will undoubtedly be upgrading my existing purchases to the new format.</p>

<p>Going back and rereading my post, I&#8217;m really glad I focused on the video issue. Otherwise I too might have gotten hit with the dreaded <a href="http://daringfireball.net/linked/2007/april#mon-02-boing">John Gruber &#8220;Jackass of the Week&#8221; title</a>. I thought it worth noting that Jobs did in fact address the video DRM issue <a href="http://www.infoworld.com/article/07/04/02/HNjobsnotpushingliftvideodrm_1.html">at the announcement</a>, and his point of view won&#8217;t please the anti-DRM forces in the world. Here&#8217;s one choice quote from Jobs:</p>

<blockquote>
  <p>Video is pretty different from music right now because the video industry does not distribute 90 percent of their content DRM free. Never has. So I think they are in a pretty different situation, and I wouldn&#8217;t hold it to a parallel at all.</p>
</blockquote>

<p>He is basically saying that video DRM is OK because people are used to from DVDs. Not a very compelling argument, as it completely ignores all the questions about fair use.</p>

<p>Finally for the conspiracy theorists out there, could the timing of the Apple/EMI announcement be related to <a href="http://www.iht.com/articles/2007/04/02/business/music.5.php">this news</a> that came out the same day and got buried? (Tip of the hat to Paul for sending me the link&#8230;)</p>
]]>
        
    </content>
</entry>
<entry>
    <title>Planes, Trains, and Automobiles</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/04/planes_trains_and_automobiles.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2866" title="Planes, Trains, and Automobiles" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2866</id>
    
    <published>2007-04-02T17:59:06Z</published>
    <updated>2007-04-18T23:05:24Z</updated>
    
    <summary>DHH of Rails fame recently posted to the 37signals blog about not getting the need for &amp;#8220;offline web applications&amp;#8221;. Although he didn&amp;#8217;t mention any one such framework specifically, it seems likely he was talking about Apollo, Slingshot, Firefox 3.0&amp;#8217;s offline...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Rich Internet Applications" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>DHH of Rails fame recently posted to the 37signals blog about <a href="http://www.37signals.com/svn/posts/347-youre-not-on-a-fucking-plane-and-if-you-are-it-doesnt-matter">not getting the need for &#8220;offline web applications&#8221;</a>. Although he didn&#8217;t mention any one such framework specifically, it seems likely he was talking about Apollo, Slingshot, Firefox 3.0&#8217;s offline capabilities, and so forth. The gist of his argument is laid out in his first paragraph:</p>

<blockquote>
  <p>The idea of offline web applications is getting an undue amount of attention. Which is bizarre when you look at how availability of connectivity is ever increasing. EVDO cards, city-wide wifis, iPhones, Blackberry’s. There are so many ways to get online these days that the excitement for offline is truly puzzling. Until you consider the one place that is still largely an island of missing connectivity: The plane!</p>
</blockquote>

<p>Now I have a lot of respect for David and for the products that 37signals has created, but it seems to me like he has made a couple of glaring errors in his analysis.</p>

<p>The first error is his supposition that the plane is the only place where people aren&#8217;t connected these days. I can understand how someone who lives and travels in high tech urban areas could make that mistake, but as many commenters on his blog have pointed out, we are far from universal connectivity in the industrialized world, and much of the world is even farther behind. And even where there is connectivity, hills, tunnels, concrete walls, and interference can wreak havoc on reliability and performance. I have no doubt that the trend worldwide is to more and more wireless access, and someday we may get to the point that David thinks is already here. But I don&#8217;t believe that we&#8217;ll be at the point where we have ubiquitous, <em>reliable</em> access for a long, long time.</p>

<p>The second is the supposition that Apollo, Slingshot, and so forth are all about <em>offline</em> web applications. I don&#8217;t think supporting purely offline applications is something most people are all that interested in. The benefits of the offline support are really about making applications that work in <em>occasionally disconnected</em> mode. The disconnect could be because you are on a plane, but it is more likely because your wireless disconnected for a while do to some sort of reliability glitch.</p>

<p>Furthermore, as David Young of Joyent <a href="http://joyeur.com/2007/04/02/slingshot-apologia-we-didnt-design-slingshot-for-planes">points out</a>, the benefits of RIA frameworks like Apollo and Slingshot aren&#8217;t just about being &#8220;offline&#8221;. They are really about bringing the benefits of web application programming to the desktop. David captures those benefits quite well, though of course his post is very Slingshot-centric. Although there are some huge differences between SlingShot and Apollo, most of what David writes applies equally well to Apollo. (See how I&#8217;m FUDing you again, David?)</p>]]>
        
    </content>
</entry>
<entry>
    <title>Why Apollo?</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/03/why_apollo.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2844" title="Why Apollo?" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2844</id>
    
    <published>2007-03-29T20:56:52Z</published>
    <updated>2007-04-18T23:06:29Z</updated>
    
    <summary><![CDATA[ I normally don't like to do those &quot;me too&quot; sorts of posts Microsoft folks seem to specialize in, where you just say &quot;look at this great article my coworker wrote&quot;. To me, its always seemed like a rather distasteful...]]></summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Rich Internet Applications" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[                           <p>I normally don't like to do those &quot;me too&quot; sorts of posts Microsoft folks seem to specialize in, where you just say &quot;look at this great article my coworker wrote&quot;. To me, its always seemed like a rather distasteful way to do PageRank/TechMeme manipulation. But Mike Chambers has written a <a href="http://weblogs.macromedia.com/mesh/archives/2007/03/why_apollo.html">really good article</a> on the rationale behind Apollo, so here I go emulating bad behavior...</p>
                             <p>While I'm passing on Apollo links, here are a couple of shorter articles I also liked:</p>
                             <ul>
                               <li>Richard McManus and John Milan <a href="http://www.readwriteweb.com/archives/offline_webapps_online_desktop_counterpoint.php">argue about online desktop apps vs. offline web apps</a>. I don't really agree with either side, but its a good read.</li>
                               <li> Pasz.com has an article on <a href="http://www.pasz.com/blog/2007/03/one-thing-im-loving-about-apollo.html">things to like about Apollo from a day-to-day development point of view</a>. <br/>
                               </li>
                             </ul>
                             ]]>
        
    </content>
</entry>
<entry>
    <title>Invasion of the dynamic language weenies?</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/03/invasion_of_the_dynamic_langua.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2806" title="Invasion of the dynamic language weenies?" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2806</id>
    
    <published>2007-03-26T19:50:11Z</published>
    <updated>2007-04-18T23:10:35Z</updated>
    
    <summary>Hacknot has published a contrarian paper on Python, Ruby, and other dynamic languages called &amp;#8220;Invasion Of The Dynamic Language Weenies&amp;#8221;. Its an interesting read, with the central premise being that dynamic language partisans (like me) haven&amp;#8217;t empirically proven any of...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Dynamic Languages" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>Hacknot has published a contrarian paper on Python, Ruby, and other dynamic languages called <a href="http://www.hacknot.info/hacknot/action/showEntry?eid=93">&#8220;Invasion Of The Dynamic Language Weenies&#8221;</a>. Its an interesting read, with the central premise being that dynamic language partisans (like me) haven&#8217;t empirically proven any of the benefits they tout. I think this is a fair criticism, albeit one taken to a ridiculous extreme in this article. I do find it odd that he spends so much time pointing out the lack of empirical evidence and the use of biased and/or anecdotal evidence on the pro-dynamic language side of the debate, but then turns around and makes exactly the same mistakes on the con side of the argument:</p>

<blockquote>
  <p>Actually, I had trouble imagining how it might be true even within limited domains. Though I&#8217;ve principally used Java for the last 10 years or so, and C/C++ for five years preceding that, I have a basic familiarity with Python, having written a few utilities here and there with it. Reflecting on those experiences I could see no basis for such a startling claim to code brevity.</p>
</blockquote>

<p>In other words, &#8220;I can&#8217;t imagine it and haven&#8217;t experienced it, therefore it must be false&#8230;&#8221;</p>

<blockquote>
  <p>Can dynamic typing result in a reduction in code volume of 80 to 90 percent? It seems highly improbable to me. Suppose I had a piece of Java code and went through it removing all the type qualifications. Would that reduce the code volume by 80 to 90 percent? No, I don&#8217;t think so. Maybe there are other omissions that dynamic typing would make possible, such as obviating adapter-style classes and some interfaces. But even including such omissions, claiming an 80 to 90 percent code saving seems a bit rich.</p>
</blockquote>

<p>He dismisses actual studies where people have compared static and dynamic languages as being overly biased, then does a &#8220;mental exercise&#8221; to prove his own side of the argument.</p>

<blockquote>
  <p>On the whole, no matter how hard I tried, I simply could not convince myself that dynamic typing and runtime code modification, either individually or in concert, could produce a code base that was &#8220;10 to 20 percent&#8221; the size of its static equivalent. Either the quote was inaccurate, had been taken out of context, or Deibel was engaging in some fairly outrageous marketing hyperbolae.</p>
</blockquote>

<p>Again, &#8220;I can&#8217;t imagine it and haven&#8217;t experienced it, therefore it must be false&#8230;&#8221;</p>

<blockquote>
  <p>I recall doing maintenance and extension work on a system written in C containing approximately one million lines of code. To build that entire system from scratch took several hours. But that didn&#8217;t mean that every test/debug cycle we performed was punctuated by that same delay. There were large parts of the code base that we were not involved in changing, and they were built into libraries once at the beginning of the project, and thereafter we just linked against them. The net result was that in each test/debug cycle we were compiling only a small fraction of the code base, then linking against the pre-built libraries. This took seconds, not hours. It&#8217;s part of basic build management when working with a static language that you only recompile what you have to. The DL weenies would like you to believe that a burdensome compile/link time is an unavoidable downside of using static languages when in fact, it is not.</p>
</blockquote>

<p>&#8220;This wasn&#8217;t true on one system I worked on, therefore it is universally untrue&#8221;</p>

<p>I could go on, but you get the idea. So here&#8217;s my challenge to hacknot: you seem awfully certain about things. Why don&#8217;t you back up your side of the argument with some hard and fast empirical data of your own?</p>]]>
        
    </content>
</entry>
<entry>
    <title>PDF Preview Handler from Ryan Gregg</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/03/pdf_preview_handler_from_ryan.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2797" title="PDF Preview Handler from Ryan Gregg" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2797</id>
    
    <published>2007-03-25T17:49:03Z</published>
    <updated>2007-04-18T23:14:12Z</updated>
    
    <summary>Ryan Gregg has done a nice little hack (and I mean hack as a compliment: the program was small, easy to create, and darn useful) to embed Adobe Reader&amp;#8217;s ActiveX control within a Vista/Outlook 2007 Preview Handler. So now you...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Microsoft" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>Ryan Gregg has done a <a href="http://ryangregg.com/PermaLink,guid,a29ee2d7-6863-4b70-9fcb-b7db392f9a74.aspx">nice little hack</a> (and I mean hack as a compliment: the program was small, easy to create, and darn useful) to embed Adobe Reader&#8217;s ActiveX control within a Vista/Outlook 2007 Preview Handler. So now you can see what those PDF attachments in Outlook 2007 look like without all that double-clicking. The nice thing about his handler is that it works with Outlook 2007 on XP unlike the <a href="http://timheuer.com/blog/archive/2007/02/27/14001.aspx">FoxIt Preview Handler from Tim Heuer</a> - very handy for me as I prefer to run XP in Parallels. Plus you don&#8217;t have to deal with all that FoxIt stuff :-)</p>

<p>I should warn people that the ActiveX control&#8217;s UI wasn&#8217;t designed to work with small amounts of screen real estate, so those with smallish laptops might want to wait for a better solution to come along&#8230;</p>
]]>
        
    </content>
</entry>
<entry>
    <title>Apollo, Competition, and Openness</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/03/apollo_competition_and_opennes.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2793" title="Apollo, Competition, and Openness" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2793</id>
    
    <published>2007-03-24T18:55:38Z</published>
    <updated>2007-04-18T23:51:02Z</updated>
    
    <summary>As pretty much everyone who reads this blog knows by now, Adobe recently announced Apollo, our runtime that brings web applications to the desktop. I&amp;#8217;ve been reading a lot of what has been written and I&amp;#8217;m generally happy with the...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Openness" />
            <category term="Rich Internet Applications" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>As pretty much everyone who reads this blog knows by now, Adobe recently announced Apollo, our runtime that brings web applications to the desktop. I&#8217;ve been reading a lot of what has been written and I&#8217;m generally happy with the things people have been saying - most people seem to &#8220;get&#8221; the value of Apollo and are at least intrigued by the prospects it opens up.</p>

<p>The people who write less enthusiastically about Apollo generally bring up a few things I want to talk about:</p>

<ol>
<li>Apollo competes with WPF - this meme is attractive to journalists because its easy to write a sexy story about a war between two large companies. The reality is less confrontational: Apollo is designed to bring web applications to the desktop, and WPF is designed to bring Web-style richness to the Windows programming model. Both approaches have advantages and disadvantages, but they don&#8217;t really compete with each other: you probably aren&#8217;t going to see a lot of HTML/Flash developers adopting WPF, and you probably aren&#8217;t going to see a lot of .NET/Win32 programmers adopting Apollo. Different design centers, different audiences. The only way the &#8220;battle&#8221; metaphor would make sense is if all programmers and all applications had exactly the same set of platform needs. Apollo&#8217;s can succeed even if WPF proves to be extremely popular, and vice versa.</li>
<li>Apollo is no big deal because its &#8220;just a mashup&#8221; of existing technologies. Its true that Apollo does leverage and depend heavily on existing Web technologies: Flash/Flex, HTML/JavaScript/Ajax, and PDF. That is actually Apollo&#8217;s greatest strength: it provides a way to integrate all those technologies into a common programmng model that also leverages the host platform. No one has ever built anything that brings together web technologies in this way, and its a lot harder to do than calling it &#8220;just a mashup&#8221; makes it sound.</li>
<li>Apollo is closed source and proprietary. Its true that a number of the pieces that make up Apollo are closed source, but how important this is will vary from developer to developer, and the story around Apollo alternatives is generally even worse.</li>
</ol>

<p>Lets go into that last bit a little deeper. In the last few weeks, a <a href="http://www.techcrunch.com/2007/03/23/here-comes-competition-apollo/">number of other companies</a> have been announcing frameworks, runtimes, and/or other products that are also trying to bring the web to the desktop, leveraging the Apollo publicity to their own advantage (more power to them - just good marketing as far as I&#8217;m concerned). I&#8217;ve also been reading the coverage of these tools and find it interesting to compare and contrast the features and openess of these platforms:</p>

<ul>
<li>First up is <a href="http://dekoh.com/">Dekoh</a>, a product that is trying to build a desktop application engine on top of a Java server. Its an <a href="http://www.techcrunch.com/2007/02/23/dekoh-delivering-a-web-desktop-platform-for-applications/">ambitious project</a>, and one that is putting a lot of weight on the fact that it is the open source alternative. I think its great that the source for their runtime is freely available, but how does the company that makes it make money? That isn&#8217;t at all clear right now. But one thing that they have revealed is that the product relies on a centralized &#8220;Dekoh Network Service&#8221; for identity, sharing, and so on. The bottom line is that with Dekoh, you are making your application dependent on a closed source, propietary Dekoh service that will own and leverage information about your users and their data. To me, that doesn&#8217;t really seem &#8216;more open&#8217; than Apollo, where the runtime is free and there are no required dependencies on any web services.</li>
<li>Next is SlingShot from Joyent and <a href="http://blog.magnetk.com/2007/03/22/joyent-slingshot/">Magnetk</a>. I love Ruby on Rails, so this product is very interesting to me. They basically have taken the all-in-one desktop server approach of <a href="http://locomotive.raaum.org/">Locomotive</a> and <a href="http://ajaxian.com/archives/slingshot-desktop-apps-via-rails">turned it into an application runtime</a>. Its a great idea, and one that opens up a lot more power to the local application than Apollo. Downsides are a lot of potential security issues (no sandbox?), the fact that the entire source of your application is distributed to the world whether you like it or not, and the fact that it is limited to Ruby on Rails applications. More disturbing, though, is that it <a href="http://joyeur.com/2007/03/22/joyent-slingshot">sounds like</a> Joyent will be charging a royalty for distributing applications based on their runtime unless you are a customer for their hosting service. Maybe they just plan on charging a flat fee for the SDK. Either way, this is much less open than the Apollo model where the SDK and runtime are both free of charge.</li>
<li>Some have argued that <a href="http://widgets.yahoo.com/">Yahoo! Widgets</a> is also an Apollo competitor. I don&#8217;t really get the comparison, but even if you do think they serve similar needs, the fact is that Yahoo! Widgets is just as closed source and proprietary as Apollo, if not moreso (since Apollo has open source components like WebKit and Tamarin).</li>
<li>Finally we have FireFox 3. Not really in the same category as the others, since its still fundamentally a web browser and it is nothing but vaporware at the moment. The offline mode and local data store features sound nice, and the open source credentials for Firefox are unimpeachable. But at the end of the day the integration with the host platform is going to be very limited compared to the other things being discussed in this context.</li>
</ul>

<p>So there you have it: four Apollo competitors. One truly open but serving a different set of needs, the others with <em>significant</em> openness concerns. In this company, I think Apollo&#8217;s model is pretty darn attractive, but your mileage may vary.</p>]]>
        
    </content>
</entry>
<entry>
    <title>Call PETA: Microsoft doing animal research!!!!</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/03/call_peta_microsoft_doing_anim.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2692" title="Call PETA: Microsoft doing animal research!!!!" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2692</id>
    
    <published>2007-03-07T17:44:30Z</published>
    <updated>2007-04-11T14:28:17Z</updated>
    
    <summary>So I&amp;#8217;m reading Laughing Squid (which I love) and I see an article about the Microsoft Research TechFest that just happened. I&amp;#8217;m scrolling through all the pictures and what do I see: OMG, Microsoft is keeping cats in cages and...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Microsoft" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p>So I&#8217;m reading <em>Laughing Squid</em> (which I love) and I see an article about the <a href="http://laughingsquid.com/microsoft-research-techfest-2007/">Microsoft Research TechFest</a> that just happened. I&#8217;m scrolling through all the pictures and what do I see:</p>

<p><a href="http://laughingsquid.com/"><img src="http://farm1.static.flickr.com/160/413382519_c523d76d41.jpg" alt="Picture of a cat in a cage, from Laughing Squid, released under Creative Commons license" /></a></p>

<p><span class="caps">OMG,</span> Microsoft is keeping cats in cages and doing experiments on them! I always knew they were evil but this is beyond the pale!</p>

<p>Turns out this is really something much more innocuous and rather cool: the <a href="http://research.microsoft.com/asirra/">Assira</a> <span class="caps">CAPTCHA </span>solution.</p>

<p>Not only is it a clever idea, but it actually helps find homes for pets via a partnership with <a href="http://www.petfinder.com/">petfinder.com</a>. Nicely done!</p>]]>
        
    </content>
</entry>
<entry>
    <title>Petzold on WPF Book Structure</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/03/petzold_on_wpf_book_structure.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2679" title="Petzold on WPF Book Structure" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2679</id>
    
    <published>2007-03-05T23:06:04Z</published>
    <updated>2007-04-03T03:01:33Z</updated>
    
    <summary>Interesting post from Charles Petzold about why he structured his book Applications = Code + Markup they way he did: with code-based examples first and then XAML-based examples towards the end. When I read the book, I immediately remarked on...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Microsoft" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p><a href="http://www.charlespetzold.com/blog/2007/03/050139.html">Interesting post</a> from Charles Petzold about why he structured his book <em>Applications = Code + Markup</em> they way he did: with code-based examples first and then <span class="caps">XAML</span>-based examples towards the end.</p>


	<p>When I read the book, I immediately remarked on the structure and wondered several times while reading it whether or not it made sense the way he did it. I found his article very helpful in explaining why:</p>


	<blockquote>
		<p>The more I explored <span class="caps">XAML</span> on my own, the less I seemed to know. How do panels work? Why were some properties bindable but others were not? Why were some properties animatable but others were not? Why do those properties called &#8220;attached properties&#8221; seem to be in the wrong place? Why can you specify an event handler for children in a parent&#8217;s tag? What happens when modifying an existing control with a template isn&#8217;t enough and you need to write a custom control with keyboard and mouse handling and drawing?</p>

		<p>Of course, answering these questions for myself required a lot of exploration. <span class="caps">XAML</span> is not as simple as it first seems. <span class="caps">XAML</span> required a whole intrastructure in <span class="caps">WPF</span> that involves layout mechanisms, dependency properties, routed events, and other features. It became quite obvious that most <span class="caps">WPF</span> programmers would want a familiarity with this infrastructure. Most <span class="caps">WPF</span> programmers would also want to gain a facility for working with this infrastructure. This can only be achieved in code.</p>

		<p>Just one example: If you see an attached property in <span class="caps">XAML</span> — such as Grid.Row=&#8221;2&#8221; — it really doesn&#8217;t make a lot of sense. You&#8217;re specifying a property of the Grid panel within a child element of the Grid. If you look at the syntax in code, however, and you&#8217;re given an explanation of what&#8217;s going on behind the scenes in the context of alternative syntax, then attached properties make perfect sense.</p>

		<p>I made a decision to tackle a lot of the <span class="caps">WPF</span> infrastructure very early in the book. I have an early chapter on dependency properties and a chapter on routed input events. I show how to write custom elements and custom panels comparatively early in the book. Many of my sample programs contain Window constructors that create and intialize elements and controls, which is a job that is eventually taken over by <span class="caps">XAML</span>, but doing it in code is something that every <span class="caps">WPF</span> programmer should know. Some stuff — such as defining a template — is incredibly painful in C#, but my book shows examples of that as well, and I hope the reader later comes to appreciate the relative simplicity of doing it in <span class="caps">XAML</span>.</p>
	</blockquote>


	<p>He also gives a hint at a <span class="caps">WPF</span> feature that never saw the light of day:</p>


	<blockquote>
		<p>I kept a close eye on one very special feature: the ability to embed C# code in a stand-alone <span class="caps">XAML</span> file and have it run in the browser. Although this feature was hinted at a bit, it never became real. If it had become real, I might have gone this route — or at least seriously considered it.</p>
	</blockquote>

<p>Is this where the WPF/E mini-CLR comes in?</p>]]>
        
    </content>
</entry>
<entry>
    <title>Is IM the &quot;Last Desktop App Standing&quot;?</title>
    <link rel="alternate" type="text/html" href="http://blogs.adobe.com/shebanation/2007/03/im_the_last_app.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.adobe.com/cgi-bin/mt-atom.cgi/weblog/blog_id=97/entry_id=2665" title="Is IM the &quot;Last Desktop App Standing&quot;?" />
    <id>tag:blogs.adobe.com,2007:/shebanation//97.2665</id>
    
    <published>2007-03-02T19:42:08Z</published>
    <updated>2007-04-03T03:00:56Z</updated>
    
    <summary>Om Malik and others have reported on Jive CEO David Hersh&amp;#8217;s speech at Etel, where he claimed that IM applications will never migrate off the desktop. I&amp;#8217;m a little mystified by the argument, at least as presented by Om (I...</summary>
    <author>
        <name>Andrew Shebanow</name>
        
    </author>
            <category term="Rich Internet Applications" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.adobe.com/shebanation/">
        <![CDATA[<p><a href="http://gigaom.com/2007/03/02/last-desktop-app-standing-im-client/">Om Malik</a> <a href="http://www.oreillynet.com/etel/blog/2007/02/etel_coverage_launchpad_event.html">and</a> <a href="http://blogs.zdnet.com/BTL/?p=4587">others</a> have reported on Jive <span class="caps">CEO</span> David Hersh&#8217;s speech at Etel, where he claimed that IM applications will never migrate off the desktop.</p>

<p>I&#8217;m a little mystified by the argument, at least as presented by Om (I haven&#8217;t seen an actual transcript or slides for the actual talk):</p>


<ol>
<li><strong>Real Time with IM:</strong><br />
Real time communication and collaboration are great, no doubt about it. But who says you need to be in a desktop application to achieve those things? Is there some special magic in <span class="caps">XMPP, SIP, </span>and Jabber protocols that makes them unimplementable in a VM environment? Of course not, and here is the proof: <a href="http://www.adobe.com/products/acrobatconnect/">Adobe Acrobat Connect</a> lets you chat, do <span class="caps">VOIP, </span>and more all within a web browser, using Flash. Jive&#8217;s own products implement these protocols in Java, which was also a VM environment last time I checked.</li>
<li><strong>And then there is the familiar user interface!:</strong><br />
Again, Flash-based user interfaces are incredibly rich. <span class="caps">AJAX</span>-based experiences have come a long way as well. What exactly is the special sauce in desktop IM programs that makes their UI unamenable to the <span class="caps">RIA </span>experience? As Om himself points out earlier in his article, if you can do <a href="http://gigaom.com/2007/02/28/web-word-processing-gets-upgrade/">Buzzword</a> or <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200702/022107Photobucket.html">Adobe Remix</a> that way, surely the IM experience can be handled in the same manner&#8230;</li>
<li><strong>Future full of features:</strong><br />
Again, what is it about IM as a desktop application that makes it more amenable to new features than an <span class="caps">RIA </span>implementation or an <span class="caps">AJAX </span>one? Many people think that <span class="caps">RIA </span>environments are more productive places to program than the old Win32/Apple worlds. They certainly aren&#8217;t less productive.</li>
<li><strong>Mobile goes the IM:</strong><br />
This is a non-sequitir. How mobile IM clients are written will have little or no effect on whether desktop IM applications survive. Besides, mobile platforms could offer IM services based on Flash Lite or <span class="caps">J2ME.</span></li>
</ol>



<p>I suspect that David Hersh&#8217;s argument may actually be a lot simpler than presented by Om. He may just be saying that IM applications won&#8217;t ever be predominantly browser-based. But if that is what he&#8217;s saying, then my answer is: so what? If the future of IM is as an Apollo app, a Widget/Gadget, or some other such technology, why does it matter <em>how</em> those applications get onto the desktop? They are still going to be built on Web technologies, not on traditional &#8220;desktop&#8221; APIs.</p>]]>
        
    </content>
</entry>

</feed> 

