Archive for March, 2006

Open Source Flash Case Study for TradingPost.com.au

Open Source Flash case study: PlaceAd RIAAndrew Edwards just posted a case study on his team's experience in using open source Flash tools as part of their development process on the PlaceAd RIA for TradingPost.com.au last year.

In the study, Edwards mentions how their use of open source tools saved them over 110 hours in compile time and allowed them to integrate better with their overall .Net development process. He also relates how it resulted in fewer bugs, "better code" and a "better development environment".

Andrew and his team were using the FAMES system, which is not fully open source. In the case study he recommends that developers today use the fully open-source AMES system instead (a call that I support fully!) :) You can find out more information on AMES and other open source Flash projects from OSFlash.org.

Although Andrew doesn't mention it in his case study, there is also a new solution emerging for using the Flash IDE as your primary development tool while reaping the benefits of a faster compile time and improved workflow. The two recently released open source projects that make this possible are John Grden's Flasc, for compiling in the Flash IDE using MTASC and Xavi Beumala's Alf (Advanced Library for Flash), a library panel extension that allows for filter-as-you-type and the editing of multiple symbol properties. This Alf + Flash IDE + Flasc suite (AFF) allows you to stay in the Flash IDE and yet take advantage of the workflow improvements provided by MTASC and Alf. Add to this setup the non-open source (but non-the-less excellent) gProject by Grant Skinner and you may just GAFF your next project in your favor :)

Read the full text of Andrew's case study here.

Are Flash’s Days Numbered? (or “Is Microsoft a threat to Adobe?”)

Mix '06I was recently at Mix '06 in Las Vegas, courtesy of Lynda.com, along with a group of fellow Flash developers as part of a Microsoft-sponsored initiative to both expose some of us in the Flash world to Microsoft's new Expression line of products and to get our feedback on them.

The Expression line includes the incorrectly-named Expression Graphic Designer and Expression Interactive Designer as well as the Dreamweaver-clone Expression Web Designer.

I say "incorrectly named" because Expression Graphic Designer is actually an Interaction Design tool. During one of the sessions, it was used to create a site mock up that was later imported into Expression Interactive Designer to be developed. Which brings me to the fallacy in the naming of the second product: Expression Interaction Designer is actually a development tool. Confused yet? I sure was.

Beyond demonstrating a lack of understanding of the workflow and specialized roles involved in team-based RIA development, the misnaming of the products (if it remains unchanged in the final release versions) will actually harm the industry by perpetuating a less-than-ideal prescribed workflow wherein "graphic designers" will carry out the interaction and usability design of an application, hand it to "interaction designers" who will carry out the user interface *development* function and pass it over to programmers/developers who will carry out the heavy-lifting and back-end integration work in Visual Studio.

The correct workflow, of course, would include *interaction/usability designers* carrying out the design function (based on an iterative process that involves usability testing throughout) and user interface *developers* carrying out the UI development function. As such, Expression Graphic Designer should really be called Expression Interface Designer and Expression Interaction Designer should be called Expression Interface Developer.

(Things are complicated by the fact that you can also use Expression Graphic Designer to carry out traditional graphic design tasks such as creating skins for components. This is why it is better not to prescribe user roles in the names of the products themselves.)

As Branden Hall mentioned in his overview of Mix '06, Microsoft is also making the same mistake Macromedia did when it named all things Flash under the "Shockwave" umbrella. There was confusion even at the conference about what someone was talking about when they talked about "Expression". The answer to this would be to drop the Expression name from the products themselves and perhaps have an Expression Suite that would include all the products (similar to the Adobe bundles.)

In addition to the Expression line, I also sat in on sessions on Atlas (Microsoft's Ajax/ASP .Net library), WPF (Windows Presentation Foundation) and WPF/E (Windows Presentation Foundation Everywhere.)

So, what are all these technologies and what do they mean for us as Flash developers? Are any of them a threat to Flash or to Adobe in the near future? Let me cover each in turn and tell you what I think of them, starting with the Expression suite.

Expression Graphic Designer (previously code-named "Acrylic")

Acrylic is a tool for creating vector and raster graphics. It is, in this sense, a mix between Photoshop and Illustrator. The common technology that ties all of the various Expression tools together is the XAML language that the various tools can output to.

XAML is an XML-based language for declarative user-interface design. Yes, you guessed it, it is very similar to Adobe's MXML, but with some important differences.

The biggest difference for me between XAML and MXML is that while MXML is high-level language that deals mostly with the layout of components, XAML can be much lower level, detailing the drawing of primitive shapes, fills, gradients, etc., in a manner similar to SVG. Although this allows tools like Acrylic to output their graphics in XAML, it suffers from the same readability problems as SVG. Of course, Microsoft doesn't expect you to hand edit complex graphics in XAML, that's what Acrylic and Expression Interaction Designer are for but, unless you're careful, it is possible to end up with single XAML files that are an unreadable hodge-podge mix of high-level UI layout and low-level graphics definitions. Finally, I'm not entirely sure about the bandwidth implications of having complex graphics in XML format. There's a reason (ok, quite a few) that SVG never caught on…

Acrylic as a graphics tool appears to be coming along nicely and will no doubt be more than adequate if you are going to be developing for the WPF platform. It is by no means an alternative to Photoshop or Illustrator, however, and it would be naïve to expect a version one tool to in any way match the capabilities of either of these mature products.

Expression Interaction Designer (previously code-named "Sparkle")

Sparkle, which has widely been reported as a "Flash-killer" is nothing of the sort. It is an uneasy cross between the Flash IDE and Flex Builder; a tool that appears aimed primarily at interface design but complicated by the ability to draw primitive shapes (lines, shapes, paths, etc.) and create timeline-based animations (or perhaps it's a vice-versa: a design/animation tool complicated by UI layout features.) Regardless, the key word here is "complicated."

As a Flash and After Effects veteran, I was confused by the non-standard timeline and use of keyframes during the demos. It looks like instead of taking a lean and mean approach (and perhaps even creating two different tools), Microsoft took a "everything but the kitchen sink" approach, using the Flash IDE and Flex (or the Flash IDE and perhaps parts of Visual Studio) as influences. I'm not sure if they realized at the time that the Flash IDE is the product of many years of iterations, resulting in a lot of excess baggage – some of which we will hopefully be able to shed as Flex becomes the primary tool for RIA development. Sparkle appears to be starting life with all that baggage and I don't see that as a good sign. Then again, Microsoft's never one to be accused of bloat in their applications! :)

Sparkle will no doubt be an important part of the workflow for developing WPF applications but it is by no means a Flash killer. For one thing, it is not a tool for creating Flash applications and thus doesn't compete directly with the Flash IDE. If anything, WPF as a platform will be competing with Flex on the enterprise front and choice of platform (WPF vs. Flash) will determine the tools used for any given enterprise in the future. (Note the word "future" as none of this stuff is shipping at the moment.)

Expression Web Designer (previously code-named "Quartz")

Quartz is, unabashedly, a Dreamweaver clone. Beyond being a clone, it actually improves upon Dreamweaver in certain aspects such as its handling of CSS, which is definitely far superior to what's in the current release version of Dreamweaver. While sitting through the presentation on Quartz, I actually found myself itching to install it when I got back. I had visions of it replacing Dreamweaver as my main HTML editor when, half-way through, I realized that there was a *big* showstopper: It only supports ASP .Net. Oops!

Bottom line: If you're already a Microsoft house and don't mind ASP. Net lock-in, Quartz is the tool for you. If, however, you like to work with other technologies like PHP, CF, etc., stick to Dreamweaver. (And I'm sure that the Dreamweaver team are not sitting on their butts and will be implementing CSS-handling features that match or exceed those in Quartz for the next release.)

Windows Presentation Foundation (WPF; previously code-named "Avalon")

Avalon is the framework for building applications using XAML alongside C#, VB, etc. It is Windows-only and thus not a direct competitor to Flash/Flex in the consumer market but a definite competitor in the enterprise market where a lot of firms are already Microsoft/.Net houses. Flash applications do not currently match the 3D capabilities found in WPF and the Expression line, coupled with Visual Studio, does provide a very competitive suite of tools/workflow. This is one area in which I hope that competition will be beneficial to Adobe.

For one thing, Adobe has to make the creation of data-rich applications much easier in Flex and support this complete workflow instead of focusing mainly on the client-side UI design/development.

In the Microsoft tools, for example, binding to a dataset is as easy as drag-and-drop. No need to install and configure a separate package with a complicated pricing structure that makes me think far too long (like Flex Enterprise Services). This is how simple Flex Builder should make it. I should be able to introspect my services from Flex Builder and drag and drop to create bindings *straight out of the box*. Until we reach this level of support for the complete app-development workflow in Flex, we will be lacking behind not only WPF/Visual Studio but also other full-stack frameworks like Ruby on Rails.

There is no doubt that Microsoft has a very mature product on their hands in Visual Studio and serious up-and-coming competitors in the Expression suite. Competition on this front should be a very positive factor in getting Adobe to improve both Flex and Flash. Furthermore, as Adobe is far more agile than Microsoft (ok, I know, practically *anyone* is far more agile than Microsoft – perhaps with the exception of Quark!) we will hopefully see Adobe pull an OS-X on Microsoft with incremental improvements to Flex that increase its competitiveness in certain key areas.

(I did have one technical issue with Avalon: The templates system for skinning applications appears to be a gross violation of encapsulation, exposing way too much detail about the internal structure of components in the name of allowing them to be skinned. Flex/MXML's use of item renderers – each of which is a black-box MXML component -- IMHO, offers a much more elegant workflow that doesn't violate encapsulation, resulting in applications that are much easier to maintain and scale.)

Windows Presentation Foundation Everywhere (WPF/E)

Ah, finally, we get to the only technology that is a direct competitor to Flash: WPF/E.

WPF/E is a cross-browser subset of WPF that lacks the cooler features of WPF like 3D and hardware acceleration.

WPF/E applications run in the WPF/E runtime (think Microsoft Flash player/plugin) and can interpret pure XAML as well as Intermediate Language (IL) from any .Net language (I don't believe this capability was in the plugin at the time of the demo.) For scripting, it relies on the browser's JavaScript – which makes me queasy: How are they going to *ensure* complete cross-platform compatibility as long as they're relying on browser JS?

Bottom line: I was not impressed by WPF/E at all. Apart from currently being mostly vaporware, I think that Microsoft is so far behind on this front that they might as well give up now. They mentioned that WPF/E will not be ready to ship until 2007. When I asked about how quickly they expected penetration of the plugin, they couldn't give me any sort of a reply. I'm assuming that the best-case scenario would be in at least one year. So we're looking at something that won't even be worth developing for until 2008, if then. Unless Microsoft manages to pull a ridiculously large rabbit from their sleeves, I see WPF/E going the way of the dodo.

Atlas

If anything had me worried about the future of Flash, it was Atlas, a free framework for building ASP.Net/AJAX applications. This may have something to do with my seeing Ajax as the main competition to Flash/Flex for consumer-facing rich web applications.

Atlas makes the creation of Ajax applications a piece of cake and it isn't purely limited to ASP.Net (although you get some nifty features if you do use ASP.Net.)

Microsoft appears to be covering all its bases with the inclusion of WPF/E and Atlas in its upcoming product matrix.

Vista

During the conference, I got to play with Vista a little and, again, I wasn't really impressed at all.

My Microsoft guide told me that the build they were running was the first feature-complete build and thus was buggier than previous ones but there were certain issues that ran deeper, the most obvious one being the glaring usability issue with the new Start menu.

The Vista start menu has been reorganized so that the initial view shows you your recently used applications. You then have to click on All Programs to get to a separate view that contains a list of all your programs. The problem is that there are no landmarks to let you know that you are now in "All Programs" view. In fact, this relationship is usually one that you would model using a tab control, with the first tab's label being "Recent Programs" and the second tab's label, "All Programs". Instead, Vista hides these landmarks from us, leading to a confusing experience. This is unforgivable in such a key, frequently-used feature.

Apart from my views on the various individual technologies, I came away from the conference with two general feelings. These were:

1. Microsoft does not get simplicity

If there's one overarching feeling I got from the event, it's this: Microsoft does not understand simplicity. Bloat appears to be the dish of the day, with simplicity taking a back seat to a philosophy of "features, features, features!" If there's one thing we have too much of in software today, it's features. We're suffering from feature overload and guess what? We don't use a great number of them! (Remember the 20/80 rule.)

Microsoft and Adobe are both targeting mainstream developers and designers for their tools and the unique selling point for this market is simplicity. I think Adobe gets this better than Microsoft but there's room for improvement on all fronts. Possibly the rarest commodity in our field currently is developer time (it definitely isn't development tools or competing technologies, which we're flooded in). Find a way make it easier for developers to do things ("don't make me think") and you'll get more developers. And I don't just mean in the applications themselves: You have to take a holistic approach to simplicity. Time spent navigating complex licenses and installation/configuration options is still time wasted. Remember, KISS, KISS often and KISS with a passion :)

2. Microsoft is playing catch-up

Most of the conference felt like a history lesson.

I repeatedly watched as Microsoft engineers excitedly told me about these amazing new features they had developed but there really wasn't anything that I hadn't seen before.

Hoss Gifford was telling me after the conference how the session by Microsoft's R&D department showcased a project that consisted of having a looping video as the Windows wallpaper. Apparently the R&D folks were very excited by the fact the video looped perfectly. Excuse me? Surely, the R&D department of the world's richest technology firm is not getting its kicks playing with looped video to create something that I threw together with Flash the day Active Desktop first came out? (I had to abandon my plans for world domination through my "Smart Wallpapers" after I realized they consumed a ridiculous amount of CPU!)

I don't think this is a matter that can be resolved merely by picking up the ball. It will probably require the organization of a state-wide manhunt because not only has the ball been dropped but it appears to have been kidnapped and is probably being held hostage in an underground bunker somewhere.

Basically, the feeling I got was that Microsoft was playing catch-up on multiple fronts. That's not to mean *all* fronts – I believe they've got a very serious competitor in the enterprise market with WPF, for example, and Expression Web Designer and Atlas are looking good. In general though, there was very little innovation and lots of imitation. But, hey, this was my first Microsoft conference so I can't comment as to whether or not this is the norm or not.

Summary

Expression suite: Naming issues on two of the products, otherwise coming along nicely. Interfaces/workflow could be simpler, especially in Interaction Designer which aims to do too much in one place. Web Designer would be a formidable alternative to Dreamweaver if it wasn't ASP.Net-only.

WPF: Powerful alternative to Flash for enterprise applications. Would be a hard-sell to pitch Flex over WPF to a Microsoft house (once it's ready, of course.)

WPF/E Vaporware. Can't see it threatening Flash in any real way in the next five years.

Atlas Ajax is the greatest competition Flash has at the moment and Atlas makes Ajax easy. 'Nuff said.

Vista Fix that darn start menu, people!

Technologies and products aside, I got to meet a lot of very cool people from Microsoft and really enjoyed talking with them and learning about this whole different world. The various teams appeared to be very open to suggestions and feedback and I hope that their various products will benefit from it.

At the end of the day, I am very excited that Microsoft is moving into this field because I am sure that it will spur Adobe on to create even greater tools in the future.

DRM is CRAP

David Berlind, executive editor of ZDNet, tells it like it is and I couldn't agree more: DRM is CRAP. (Via Digg.com)

Back from Mix’06

I just got back to the UK from Mix '06 (and was lucky enough to catch one of the fast trains from Gatwick, where I'm seated at the moment writing this entry.) Apologies for not posting more updates during the event after the initial two posts from the first day but the wifi at the convention center was very unreliable and I took the opportunity to rest my wrists a little. Ironically, the conference ended up being a welcome break from the computer :) I'm going to be posting a summary of my thoughts once I've caught up with my list of chores that has been steadily building up over the course of the last week. Suffice to say, the event was very interesting and I'm definitely glad I got to attend.

IE7

Sitting at a session on IE7 at Mix '06 and the quick tabs view looks cool. The new Print Preview is also very neat (allowing you to change the margins and see multiple pages). It's definitely looking good. The word that comes to mind is "finally!"

Still, though, I'm so happy that, working with Flash, I haven't had to worry about browser compatibility issues for the longest time.

That said, it looks like IE7 is definitely a step in the right direction for Microsoft.

Mix’06 Keynote: So far a history lesson

I've been sitting through Bill Gate's keynote for the last 45 minutes and, so far, it's somewhat of a history lesson.

It appears that they're really excited about the Yahoo Widgets-style tool that will be available in Vista. But... umm... Yahoo Widgets! :)

They had the CTO of MySpace on to praise their experiences using ASP.Net and SQL Server on their site with over 65m users.

At the moment, we have the head of the BBC's new media department talking about how they're going to be making their TV shows available online for free for a week after a show airs and how their video streaming service integrates with Vista. (The videos will be full-screen.) He was talking about DRM (yes, that term makes my hair stand on end too.) He was talking about how they're very serious about protecting "their content". Somewhat ironic given that we in the UK pay them to create that content via an annual license fee! He did mention the one-week free period as a sort of compromise. I really don't think that the BBC is serious about opening things up though -- not when they're singing such high praises of DRM (I was not much impressed with how they're embracing Web 2.0 either -- the restrictions they've placed on the use of their data are very, well, limiting.)

Right now, Tim O'Reilly is taking the stage. I actually bumped into Tim this morning in the elevator and didn't initially recognize him (he's now sporting a neat new beard that he didn't have when I originally met him a couple of years ago during his London MMUG presentation.) They're having a conversation with Bill at the moment on Web 2.0 and mashups, etc. Tim's asking Bill about the evolution of the Internet as an operating system: Does he see it as disparate systems communicating or a large behemoth system? Bill thinks it'll be a combination of both, though all the examples he's giving as he details his answer involve Microsoft technologies (passport, etc.) Tim's basic question is: Is your vision for the Internet OS similar to Win32? ("one ring to rule them all"). According to Bill, they're going to provide a "comprehensive framework" so you can create "Live Applications" (Bill's term for Rich Internet Applications) using just Microsoft technologies but sure, you'll be able to use other "vendors" too. Bill sounds like a salesman but not a particularly good one.

It's interesting to watch their body language too. Tim's relaxed, laid back, open. Bill's guarded, arms crossed, uneasy.

Tim asks: "You guys have a history of knocking competitors out of the ring – but they had the same business model as Microsoft… You're facing competition from people who have very different business models… how do you see that changing the software business?"

Bill mentions that Microsoft has done more to bring software prices down than any other company… he concedes they didn't realize how important the advertising model would be. He concedes that you'll always have smarter competitors. He's talking about how Microsoft has to be user-centric not device-centric in order to compete. He says this will require easy authentication across devices so that you can use a friends cell-phone, for example, with your data, by authenticating.

But authenticating through what? I'm afraid it will involve a central Passport-like service owned by Microsoft.

Tim: "How do you see the competition shaping up with Adobe?"

(Bill basically goes off on tangent and doesn't really answer the question… they move onto talking about mobile devices.)

By the way, I think I'm only blogging this because I'm not really interested in the content. Which says something… I mean, it's supposed to be speaking to me but I'm having a hard time staying connected. (And, looking around, I'm not the only one.)

Could Microsoft be out of touch?

I look forward to the rest of the conference and seeing Expression and their other tools. I tried to install Expression the other day when I had a free hour or so but had to give up as it would have probably taken half a day with downloading all the dependencies, etc. I thought it was just me but I was talking to Branden Hall this morning and he apparently had the same issue. They definitely have to make this easier if they want people – especially those less geekier than I -- to play with this.

In Las Vegas for Mix’06

I flew into Las Vegas yesterday to attend Mix '06. Sitting at the keynote, listening to Bill Gates at the moment.

Flash Player Critical Security Update

This made the rounds recently but in case you missed it, Adobe is recommending that all users upgrade to the 8.0.24 player. It fixes a critical security issue in players 8.0.22 and lower that could allow the use of a malicious SWF (don't you just love that phrase?) to take control of the affected computer.

Update to Flash Player 8.0.24 today!

FlashObject (or The Cobble’s Children Revisited)

I just updated the blog to use Geoff Stearns' excellent FlashObject system. I decided this morning that I had put off the five minutes it would take to implement the change for far too long.

FlashObject is the neatest way I know of embedding Flash in a web page. Why? Here's why :)

If you're not using it, you should start to!

Meet your new best friend: Alf

Alf (Advanced Library for Flash) gives to real-time filtering/search on your library as well as other great productivity features.

How many times have you wished you could filter as you type in the Library? How much time would it save you, especially on larger projects with lots of assets, if you could type "dog" and see all asset names (or a subset, depending on symbol type) that contain the word "dog" in it? What if you weren't limited by the asset name but could search by Linkage ID and linked Class Name too? And, when you'd found a number of assets, how cool would it be if you could select a number of them and change the classes they were linked in one go? Pipe dream? It used to be, but no longer, thanks to Xavi Beumala's Advanced Library for Flash (Alf) -- an open source Flash IDE extension that lets you do all these things and more.

The ability to change the linked classes on multiple movie clips in one go is a real time saver!

If you use Arp or otherwise use a workflow that relies on the linking of movie clips to classes, you will find the ability to change the linked classes of multiple assets to be a huge productivity feature while refactoring your Flash application. The coolest thing is that Xavi added this feature just yesterday, almost immediately after I mentioned how useful it would be to have it. Something tells me that Xavi is going to be doing a great job of supporting and enhancing Alf in the future and, since it's open source and JSFL, there's no reason why we can't all join in on the effort and help him out! :)

Alf comes in an easy to install MXP. Once you've installed it, go to Commands -> Alf to display the UI and Bob's your uncle.

For more information and to download Alf, see Xavi's blog post.






Bad Behavior has blocked 0 access attempts in the last 7 days.