Adobe and the GPU – A Minority Report Future?

Minority ReportI just presented a bunch of the new hardware-accelerated features of Flash Player 10 to RIA Meeting here in China and so it was kind of fortuitous that there’s a story on Techmeme about Adobe’s experiments with the GPU in Photoshop (make sure to read John Nack’s post for all of the disclaimers). Regardless of when/if some of these Photoshop GPU experiments make it into the final product, Adobe is starting to focus a lot more on the GPU – something that bodes well for applications on the desktop as well as the browser I think.

We’ve got a bunch of smart folks at Adobe doing innovative things with imaging, video, art, and development. Since Adobe bought Macromedia we’ve started to slowly (and in some cases quickly) see the worlds come together. We’re at the point now that teams are collaborating across products and mediums. The GPU folks in Photoshop can talk to the people working on hardware acceleration in Flash. So now we get that forward thinking filtering down in a lot of different places to a number of products, like the Flash Player, that hadn’t really tackled heavy GPU acceleration before.

I don’t think we’re anywhere close to where we could be. Doing things like enabling the heavy duty features in Photoshop and After Effects to be exported directly to the Flash Player would be fantastic. But I think the Flash Player 10 release, and examples like Pixel Bender, show that the Adobe side and the Macromedia side are starting to move in lock-step. I can’t wait until that workflow lets us do some crazy Minority Report stuff. You just can’t do that without great tools and a great platform – Adobe has both.

Running Flash Player 10 beta and Flash Player 9 Side By Side

Running Flash Player 10 beta and Flash Player 9 Side By Side

I have a confession to make. I didn’t install the Flash Player 10 beta until about 5 minutes ago. I’m always afraid to install the beta stuff because I do a ton of demos and if something goes wrong on stage I’m SOL. But tomorrow I’m giving a talk on Flash Player 10 so I had to install it. But I didn’t want to convert my entire system to Flash Player 10. Luckily, Alessandro Crugnola is the man and has the Flash Switcher extension for Firefox.

The plugin has been around for a while but now that we’ve got a beta version of the Flash Player, I thought it was a great time to mention it. It’s an extension for Firefox that lets you switch between different versions of the Flash Player. That way you don’t have to have a beta version on all of your browsers. You can just use the Flash Player 10 beta in Firefox when you need to.

The current version of the extension works with Firefox 3.0 RC1 and includes the 9.0.115 and 9.0.124 player versions (but not the Flash Player 10 beta). On the mac, here are the steps I went through to get it all set up. Your milage may vary:

  • Install the Flash Switcher Extension
  • Install Flash Player 10 Beta
  • Create a folder called “10.0 beta” inside your Flash Switcher Extension directory where it stores plugins for your OS (usually /Users/{username}/Library/Application Support/Firefox/Profiles/{some random string}/extensions/flash_switcher@sephiroth.it/plugins/mac/).
  • Copy “Flash Player.plugin” and “flashplayer.xpt” from the /Library/Internet Plug-Ins/ directory into that 10.0 beta that you just created.
  • Delete “Flash Player.plugin” and “flashplayer.xpt” from the /Library/Internet Plug-Ins/ directory
  • Go into the 9.0.124 directory inside your Flash Switcher plugin directory (it’s at the same level you created the 10.0 beta folder) and copy the “Flash Player.plugin” and “flashplayer.xpt” from that folder into the /Library/Internet Plug-Ins/ directory

Update: I realized this will mess up those of us that have debug players. Here’s a better step by step:

There’s got to be an easier way, but that’s what I did. Now I’ve still got Flash Player 9 for all of my other browsers and I can choose between Flash 9 or Flash 10 inside of Firefox.

Flash Player 10 API Documentation Available

I’m still in China so I’m not sure if this has been mentioned before but we’ve got the API Docs for Flash Player 10 available for download on labs. I don’t see any kind of LiveDocs available yet, though Manfred has some docs that he’s created and posted.

Update: The download link on labs is wrong at the moment. You can grab the docs here: http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_as3langref_052008.zip

Hope this helps those of you wanting to dig into the new Flash Player 10 features.

Online/Offline Synchronization with Adobe AIR

One of the biggest problems I think we have when dealing with the offline/online problem is synchronization. Doing conflict resolution for data when you get back online is a big pain in the ass. With AIR, more Adobe developers are starting to think about the problem and luckily we have a good solution with LiveCycle Data Services 2.6. I’m going to be talking about Online/Offline Synchronizaton with AIR and LCDS at 360|Flex San Jose, but Christophe Coenraets just published a wicked example of how it works called InSync. Well worth checking out.

Come Learn JavaScript and HTML on the On AIR Tour Europe

In a couple of weeks we’ll be back in Europe for the on AIR Tour. This time we’re hitting northern and eastern Europe, a part of the country that I’ve never been in that part of the continent before so I’m pretty excited. We’re also going to be bringing some new goodies that should appeal to HTML and JavaScript developers. You’ll get a copy of our AIR for JavaScript developers pocket guide at every stop.

In order to add to the local flare, I wanted to provide some encouragement in the local languages. I got every stop except for Prague. If you know any Czech, let me know:

Stockholm – “Vi ser verkligen fram emot att komma till Stockholm med on AIR tour. Om du är HTML- eller Flash-/Flexutvecklare så är detta ett utmärkt tillfälle att lära dig utveckla desktopapplikationer och träffa andra utvecklare. Vi är också mycket intresserade av att höra dina åsikter om du redan har använt AIR.” – Thanks to Nisse Bryngfors for the translation.

Berlin and Munich – “Die Adobe AIR Tour kommt am 4. Juni nach Berlin und am 11. Juni nach München. Du bist ein HTML- oder Flash/Flex Entwickler? Dann ist dies eine großartige Gelegenheit zu lernen, wie Du mit AIR Desktop-Anwendungen entwickeln kannst und Dich mit anderen Entwicklern auszutauschen. Uns interessiert auch Dein Meinung zu AIR falls Du damit bereits Anwendungen entwickelst.” – Thanks to Craig Cmehil and Gregor Wolf for the translation.

Warsaw – “”Naprawd? czekamy z niecierpliwo?ci? na on AIR Tour w Warszawie. Je?eli jeste? develorepem HTML lub Flash/Flex, b?dzie to ?wietny sposób, aby nauczy? si? wi?cej o budowaniu aplikacji i porozmawia? z innymi developerami. Oczywi?cie my te? jeste?my zainteresowani Twoj? opini?, je?eli ju? u?ywasz AIR.”" – Thanks to Lukasz from the Flex Adobe User Group in Poland.

Prague – ???

 

 

Milan – “Siamo davvero lieti di poter essere a Milano con l’onAIR Tour. Se sviluppi in HTML o in Flash/Flex questa è una grande occasione per imparare come creare applicazioni desktop e scambiare quattro chiacchiere con i colleghi. Siamo anche interessati a sentire il tuo parere ed avere il tuo feedback se già stai utilizzando AIR.” – Thanks to Marco Casario for the translation

Flags from 3DFlags.com

.

Fixing the Open Office File Association .ODS in Adobe AIR Linux

It was pointed out to me that on Linux ad Adobe AIR we sometimes take over the .ODS extension which is usually associated with Open Office. I didn’t see it on my installation so I wasn’t exactly sure what the deal was or WHY we would do that. Luckily we didn’t mean to, it’s just a bug. In the next public version we’ll have it fixed. In the mean time, if you’re having the issue you can fix it with the following instructions:

===========================
1. Run the following command as root (use “xdg-mime” at “/opt/Adobe AIR/Versions/1.0/xdg-utils/xdg-mime”) -

xdg-mime uninstall --novendor “/opt/Adobe AIR/Versions/1.0/support/AdobeAIR.xml”

2. Remove the following three lines from “/opt/Adobe AIR/Versions/1.0/support/AdobeAIR.xml” -

<magic priority=”100″>
<match type=”string” value=”PK\003\004″ offset=”0″/>
</magic>

3. Run the following command as root (use “xdg-mime” at “/opt/Adobe AIR/Versions/1.0/xdg-utils/xdg-mime”) -

xdg-mime install --novendor “/opt/Adobe AIR/Versions/1.0/support/AdobeAIR.xml”

===========================

One of My New Favorite Bloggers – Brooks Andrus

I just wanted to give a shout-out to one of my new favorite RIA bloggers – Brooks Andrus. His stuff reminds me of what I used to blog before I got boring and started working for Adobe. Only his is smarter and more interesting. And he’s got an engaging way of breaking down other people’s quotes.

I think he also does a good job of painting the full picture of how the pieces all fit together. When you’re on the inside I think it’s easy to lose the perspective on everything. You get bogged down a little bit in future versions, feature requests, and internal news. So subscribe to Brooks’ blog. I think he gets it.

Using Adobe AIR to Solve the “File Problem”

Unfortunately when explaining AIR I usually fall back on “well you can use it to take your applications offline. People just seem to get offline because they see all of these applications moving to the browser and it’s kind of a pain when you don’t have an internet connection and they don’t work. That’s the easy sell. But for me, the value of AIR has always been much more nuanced. The blending of the web and the desktop opens up some interesting ideas. Scott Karp brings one of those up when he asks “Dear Web Applications: Were Are My Files?” AIR is a perfect use case for this.

Web applications are great. In the browser they’re very, very handy. No install, easy updates, accessible anywhere. Perfect. But there are definite drawbacks. For the most part I don’t think those drawbacks are enough to stop using web applications. They’re just too damn easy. That’s why I want to see AIR help act as a bridge. Think about the file problem. You’re doing all this work online, and as Scott mentioned, you’re generating a bunch of data on a server somewhere. You can’t really extract that in most cases and online the notion of “files” doesn’t fit even though it’s something we expect from most of our applications.

So why not use AIR to create a way to grab those files? You can associate any filetype you want using AIR so you can instantly give your web application some “desktop cred”. What about a .zoho file? A .facebook file that contains your profile info? A .myspace file that contains a link to that crappy music you put on your page? All of these files would contain the important data You can use AIR to actually write them and associate them. You don’t even have to create an offline version of your application; you can run any regular web application inside of AIR using WebKit or create an AIR application that opens up your browser and goes to a site you specify.

The file problem is a perfect example of where you can just use some small features in AIR to create that desktop experience for the web. You don’t need to create an entire offline version or write a bunch of code. You can just create that bridge and tie it back to your normal web application where you can run ads, make money, or give it away for free. But providing functionality that most users expect is very, very important and will be key to getting wider adoption. That’s where AIR shines.

ReadAIR – Google Reader on AIR

It’s getting kind of hard to keep track of all the AIR applications out there. I just saw that there is a new AIR application called ReadAir that lets you take your Google Reader feeds outside of the browser and into a very nice, OS X looking application. It reminds me a lot of NetNewsWire, which I’ve fallen in love with, but isn’t quite as integrated with things like FriendFeed as Google Reader is. And NetNewsWire only runs on a Mac.

ReadAir is pretty good. The newest version supports key shortcuts but I don’t see any way to share from the application. It’s also a bit sluggish with all of my feeds loaded into it. It’s an HTML/JavaScript application but it doesn’t look like it supports offline mode yet unfortunately. It’s a good start though, so it’s one to keep an eye on.

Via Fresh AIR Apps.

No AIR Support for Google Maps Flash API

Well this sucks. I was really excited about the Google Maps Flash API and sat down today to do some work with it inside of AIR. I ran into this security error which prompted a response on the thread linked above:

Error #3207: Application-sandbox content cannot access this feature.
at flash.system::Security$/allowDomain()
at com.google.maps::ClientBootstrap/allowLibraryDomain()
at com.google.maps::ClientBootstrap/loadUrl()
at com.google.maps::ClientBootstrap/internalLoadBootstrap()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

Well it turns out that using the Google Maps Flash API inside of an AIR application is actually against the terms of service. So even if you can hack around it (which you should be able to) you’re breaking the ToS by doing so. If you’re interested in using the Google Maps API inside of AIR, I encourage you to file a feature request (see below). Make the world a better place. ;)

Update: Charles has an issue created, starring this is a good way to show support.