» tagged pages
» logout

sorted by: recent | see : popular
Content Tagged with Adobe + page

ExtPlayer: Ext AIR classes get an update

Aaron Conran has created a new set of AIR classes, as well as an example called ExtPlayer to show them off.

Ext.air.MusicPlayer

Ext 2.0.2 introduced an Ext.air.Sound class, which is useful for playing small sounds such as beep and chimes. In contrast, Ext.air.MusicPlayer is meant for long running sounds such as music and podcasts which you would never want multiple files playing at the same time. MusicPlayer supports all of the basic operations, stop, pause, play and skipTo along with supporting events. The MusicPlayer enables the developer to add music and podcasts to their AIR-enabled Ext application very quickly.

JAVASCRIPT:
  1.  
  2. var mp = new Ext.air.MusicPlayer();
  3. mp.adjustVolume(0.5);
  4. mp.play(url);
  5.  

Ext.air.Notify

The new notification class allows you to notify your users with toast or growl-like messages from the operating system. This allows you to notify users that something important has occurred even when your application may not be visible. By displaying these notifications at the operating system level it is sure to get the users attention without being lost within a browser tab.

JAVASCRIPT:
  1.  
  2. var msg = 'Title: {0}<br />Artist: {1}';
  3. var sample = new Ext.air.Notify({
  4.     msg: String.format(msg, id3info.songName, id3info.artist),
  5.     icon: '../famfamfam/music.png'
  6. });
  7.  

Ext.air.Clipboard

Ext.air.Clipboard allows you to interact with the system’s clipboard. Developers can determine if a particular format has data, set the data and get the data. At this point, this is largely a pass through to an existing class from Adobe air.Clipboard.generalClipboard. There may be enhancements or workarounds which Ext will add in the future including integration with drag and drop.

JAVASCRIPT:
  1.  
  2. Ext.air.Clipboard.setData('air:text', 'Sample set on the clipboard');
  3. var data = Ext.air.Clipboard.getData('air:text');
  4.  

Ext.air.VideoPanel

xt.air.VideoPanel enables you to embed flash based video while maintaining the same functionality as an Ext.Panel. VideoPanel’s can also take part in Ext layout management. This means that you can nest your Video’s in a border layout, add toolbars, buttons, just as you have become accustomed to. You just need to provide the recorded FLV to playback or provide a camera connected to the PC. You can even watch the video fullscreen in high definittion!

JAVASCRIPT:
  1.  
  2. var vp = new Ext.Viewport({
  3.     layout: 'fit',
  4.     items: [{
  5.         id: 'video',
  6.         xtype: 'videopanel'
  7.     }]
  8. });
  9. Ext.getCmp('video').loadVideo('sample.flv');
  10.  

Ajax: Ajaxian

Meer Meer: Cross browser testing all through your one browser!

The most exciting part of Adobe MAX last week was a service that was announced by Paul Gubbay at the "Sneaks" session that shows cool tech that Adobe folk are working on. His (very early stage) service is called Meer Meer and it is genuinely useful.

You can plugin a URL and the system will render that page on a server farm (many browsers, cross OS) and show you the results. It can visually layer these results so you can see the differences. It was awesome.

I pinged Paul and had a nice conversation with him about the project:

Can you explain what Meer Meer is, and where you got the inspiration?

Meer Meer is the code name for a new hosted service that allows Web Pros to view their content on a variety of different browsers and operating systems without requiring them to install anything other than the standard Flash Player. The inspiration is easy. We spend a lot of time with our customers and cross-browser compatibility consistently comes up as the #1 issue unprompted. It’s a real pain and we wanted to help solve it.

What browsers and OSes are supported? This means I don't have to kick up VMWare to test in IE 6 now right? ;)

IE6 is covered :) We haven’t finalized the complete set yet but we’re committed to supporting the top browsers for Windows and Mac. We expect that mix to change over time as new browsers/versions gain market share.

What are the various views and features?

We’ve really focused on how users tweak/debug their CSS today and engineered the service to fit into that workflow. One of the unique features for Meer Meer is that it can work directly with your local content if you are using Dreamweaver. This is a big benefit as users can tweak CSS and hit the refresh button to get an immediate representation of the page on their target browsers. No need to save, publish to a public location and then view. In addition, we’ve focused on several views (1-up, side by side and onion skin).

Onion skin is the most interesting as it overlays two browser shots over each other and provides the user with complete control over the transparency. This view typically gets the big oohs and aahs :)

Can you talk about the high level implementation? I assume you have a server farm on the back end and you are rendering and sending back images of the rendered image?

That’s correct. In addition we’re using a Flex application as the client. This makes the application feel very snappy and respond like a desktop application without the need to install anything. The team has also done some great work to establish a local connection with Dreamweaver to work with local content. When you make a change to your code and switch back to Meer Meer it knows you’ve made a change and prompts you to refresh. You can choose to refresh from within Dreamweaver and a panel will update and show you the status of the screenshot retrieval in real time.

In Dreamweaver CS4 you showed taking an Ajax app, clicking around to change state, freezing the page and then sending it to Meer Meer. Can you talk more about the freezing feature and other things that you can do?

I’m really proud to be associated with this release of DW CS4. We’ve definitely pushed the envelope. Our new Live View leverages the WebKit rendering engine to provide users with a true browser experience directly within the product. This means that you can see and interact with dynamic content such as Ajax UI widgets. Furthermore, we’ve included the ability to see the Live Code that the browser generates as you interact with the page. Users can freeze JavaScript to get the page into different states and then use the new Code Navigator to jump directly to the CSS that effects the element they select. This is an added bonus for Meer Meer because we can place the page into different states, such as selecting the second pane of an Accordion widget, and then view the page in that state within Meer Meer. Other browser compatibility services simply can’t do this.

Any final thoughts on Meer Meer or other Web Pro services coming from Adobe?

We’re really excited about the future of desktop + services at Adobe. Meer Meer is a great example of what we can accomplish when we take a holistic view to solving a user challenge. We’re also very interested in extending the capabilities of our users by providing them with turn-key hosted solutions that allow them to grow their business. Content maintenance follows very closely on the heels of browser compatibility as a top challenge that our users face today. Our new InContext Editing service that is now in free preview on Adobe labs allows Web Pros to provide content editing capabilities directly within the browser to their end user. No programming required.

We look forward to hearing feedback from the community on these services to help guide our future direction.


This is an exciting server from Adobe, and shows that focusing on the Flash issue isn't the entire story. They have a lot to offer the Open Web if we look to the right places and we can continue to fight for more too :) If we support projects like Meer Meer we can make our voice heard.

Of course, this is just the beginning. I would love to see an API to the service which would allow any developer tools to mashup nicely with the service. You can also imagine actively analyzing the code to not only point out the diff in the image, but the issue in the code. When we get there, we will be in a very good place indeed :)

There were some other cool things from MAX that showed up in Labs:

  • Alchemy: A research project that allows users to compile C and C++ code into ActionScript libraries (AVM2).
  • Durango: Mashup tool for AIR

And for more in-browser tools, check out this nice roundup on
15 Helpful In-Browser Web Development Tools.

Ajax: Ajaxian

The Ajax side of AIR

AIR 1.5 has been released at MAX this week.

For the folks that like to write AIR apps that at least have some JavaScript, you will be happy to see that WebKit has been updated:

The version of WebKit included in AIR has been updated to a newer version. The updated version includes Squirrelfish, a new bytecode interpreter that improves the execution speed of JavaScript for common actions. Our internal tests show that HTML-based AIR applications run as much as 35% faster for many types of operations. We have also added support for interactive debuggin fo Ajax-based AIR applications.

There is also a nice sample app that uses jQuery called BlackbookSafe.

Aptana is also helping you out with their new Studio plugin for AIR debugging:

Today's release of the Adobe AIR Development Plug-in for Aptana Studio (beta) features, you guessed it — JavaScript debugging for Adobe AIR apps along with support for Adobe AIR 1.5 which Adobe announced earlier this week.

Ajax: Ajaxian

Dojo Extensions for AIR

SitePen has built an interesting set of APIs to enable you to create better JavaScript applications that run in the AIR platform:

This new effort creates a new namespace, dair, making it even easier to
create rich desktop apps using the Dojo Toolkit and Adobe AIR like the
Dojo Toolbox.

The extensions offer convenience methods for your application, wrapping
many common AIR Patterns in Dojo-like constructors and providing an
entire framework from which to grow. Built-in persistent storage,
granular window control from creation to destruction, Window FX,
Audio/Video helpers, and extra console debugging facilities are just the
beginning.

This work was greatly inspired by our efforts working on the Dojo
Toolbox, and greatly improves and simplifies Ajax development on the AIR
platform for not only Dojo users, but anyone creating an Ajax
application inside AIR. And thanks again to Adobe for helping make this
possible.

The new namespace gives you:

  • dair.AIR
  • dair.Console
  • dair.Window
  • dair.Application
  • dair.fx
  • dair.Sound
  • dair.Video
  • dair.Icon
  • dair.File

Ajax: Ajaxian

FancyUpload for Flash 10 to fix your uploader

This is the week of the plugin. First we had the launch of Silverlight 2, and then, quickly on the back of that we get Adobe Flash 10 at the same time as the entire Creative Suite 4 (which has great Flash authoring tools of course).

One of the security features in Flash 10 is the requirement for the user to act on a Flash movie to be able to access certain APIs. This has caused some Flash upload components to break (ones that use a hidden Flash movie, such as SWFUpload Flickrs FancyUpoad). The solution is quite simple, you need to make the button that launches the upload a Flash control itself (versus an HTML button for example).

Harald Kirschner has jumped on it and created a FancyUpload for Flash 10.

You can check out the showcase and do a view source to see that the link is not a link :)

What else is in Flash 10? Here are the top features that Adobe mentions:

3D effects

Create more intuitive, engaging interfaces using built-in support for 3D effects. Get started quickly without being a 3D master by designing in 2D and easily transforming and animating in 3D. Fast, extremely lightweight, and simple-to-use APIs, along with 3D tools in Adobe® Flash® CS4 Professional software, make motion that was previously accessible only to expert users via ActionScript® language or custom third-party libraries available to everyone.

Custom filters and effects

Create high-performance, real-time effects for cinematic experiences that quickly engage users. With new Adobe Pixel Bender™, the same technology behind many filters and effects in Adobe After Effects® software, these dynamic and interactive effects can be used both in production with After Effects CS4 and live with Flash Player 10. The Pixel Bender just-in- time (JIT) compiler can also be used to process other types of data, such as sound or mathematical functions, asynchronously in a separate thread.

Advanced text support

Take advantage of a new, flexible text layout engine that brings print-quality publishing to the web, building on more than 25 years of Adobe expertise in typography. Gain more control over text layout using an extensible library of ActionScript 3.0 text components to flow text and sophisticated typographic elements such as ligatures across multiple columns, around inline images, bidirectionally, vertically, or chained together. Create multilingual rich Internet applications (RIAs) using device fonts that can now be anti-aliased, rotated, and styled, or build your own unique text components.

Dynamic sound generation

Use enhanced sound APIs to dynamically generate audio and create new types of audio applications such as music mixers and sequencers, real-time audio for games, and even audio visualizers. Work with loaded MP3 audio at a lower level by extracting audio data and supplying it to the sound buffer. Process, filter, and mix audio in real time through the Pixel Bender JIT compiler to extend creative freedom beyond the visual experience.

Drawing API

Perform runtime drawing more easily with restyleable properties, 3D APIs, and a new way of drawing sophisticated shapes without having to code them line by line. Developers can tweak parts of curves, change styling, replace parts, and use custom filters and effects, delivering improved throughput, creative control, and greater productivity. Enhancements to the Drawing API add the z dimension, real perspective, textured meshes in 3D space, a retained graphics model, read/write rendering, and triangle drawing with UV coordinates, while adding memory and improving performance.

Hardware acceleration

Use the hardware processing power of the graphics card to paint SWF files into the browser and accelerate compositing calculations of bitmaps, filters, blend modes, and video overlays faster than would be performed in software.

Vector data type

Use the new typed array class for better performance, efficiency, and error checking of data.

Dynamic Streaming

Show exceptional video with streams that automatically adjust to changing network conditions. Leverage new quality-of-service metrics to provide a better streaming experience.

Speex audio codec

Take advantage of the new, high-fidelity and open source Speex voice codec, which offers a low-latency alternative for voice encoding. Flash Player also supports ADPCM, HE-AAC, MP3, and Nellymoser audio.

File upload and download APIs

Bring users into the experience by letting them load and save files from your web application. New file reference runtime access allows local processing of data without roundtripping to the server.

Ajax: Ajaxian

Open Web Podcast - Episode 5: Ryan Stewart of Adobe

Ryan Stewart of Adobe joined us for episode 5 of the Open Web Podcast. We really want to be pragmatic Open Web citizens, so thought it would be good to hear from Ryan and get his point of view on what Adobe, and he, are thinking with respect to the Web as a-whole.

You can download the podcast directly (OGG format too), or subscribe to the series, including via iTunes).

We had a really fun chat, which had us discussing:

  • Adobe's view of the Web
  • Silverlight, and Alex's quote of the show: "Microsoft can't write JavaScript." Ah, come on, what about Scott Isaacs!
  • Ctrl/Cmd-R is the "Make All" of the Web, and Flex
  • ECMAScript, ActionScript, and the path forward
  • Video: A huge Flash advantage. Where does the video tag fit in? John pointed us to the experimental vorbis support via haXe
  • AIR: Ryan talked about how he sees AIR fitting into the landscape, and how he personally would love to see Geolocation APIs added
  • Open Source: Ryan shares his insight on the experience Adobe has gotten from their Open Source projects (Tamarin, Flex, ...)

It was a real pleasure to have Ryan come into the lions den. He is very honest with what he does and doesn't know from within, and doesn't hold back on his own thoughts.

What would you like to ask Adobe?

Ajax: Ajaxian

Linux Users Are Closer to Building AIR Apps

Adobe continues to update the AIR runtime and SDK to make it a strong cross-platform candidate for building desktop apps. Support for the Linux operating system has been a bit of a sore spot for the AIR team but they're working hard to address that as evidenced with their release yesterday of Adobe AIR for Linux Beta.

The AIR for Linux FAQ goes into a lot of detail to explain what is being provided in this beta and it does state that this version is feature compatible with both the Windows and OS X versions of the runtime & SDK.

AIR on Linux officially supports the following distributions:

  • Fedora Core 8
  • Ubuntu 7.10
  • Open Suse 10.3

If you're interested in providing feedback about this release, Adobe has the AIR Support Center available to discuss any quirks or comments.

Ajax: Ajaxian

Want to Use AIR? Read About the Dojo Toolbox Development Effort First

If you've ever been curious as to what goes into building a Adobe AIR application, then read Kevin Dangoor's account of how the Dojo Toolbox was built:

Building the Dojo Toolbox allowed us to dive into Adobe® AIR™, and to create a blended toolchain of JavaScript, PHP, Python and Rhino (JavaScript on the Java Virtual Machine) for developing an amazing desktop application using open web technologies. Read about how we built the Toolbox and what we really think of AIR.

His explanation provides a nice high-level view of some of the challenges but blends in some granular details to such topics as SQLlite querying and file management.

The second challenge was moving to AIR’s security model. AIR provides two different kinds of sandboxes that code can execute in: the “application” sandbox and the “non-application” sandbox. The windows that you see in the Dojo Toolbox all execute their code in the application sandbox. By AIR’s rules, that means that they’re allowed to access any site on the internet and any files on disk. What that code isn’t allowed to do is dynamically evaluate more JavaScript code.

This is a good read for anyone looking to explore Adobe AIR further and leverage the platform in the future.

Ajax: Ajaxian

Tombs of Asciiroth: GWT, Gears, and AIR enabled RPG Game

Alx Dark has created The Tombs of Asciiroth a fully functional roguelike-meets-puzzle-arcade game.

Asciiroth is a a complete, functional, open source game, written using GWT, and distributed either as an Adobe AIR application, or as a game you can play over the web. In the latter case, it uses Gears to provide saved game support. (So bottom line is you can play it using AIR or Firefox... IE is too slow, Opera/Safari aren't supported by Gears.) It also has a map editor that is distributed as an Adobe AIR application.

It is very cool to see applications written using Ajax, and then using both Gears for in-browser functionality, and AIR for desktop deployment.

Ajax: Ajaxian

AIRing out your Lingerie; Running applications for the articles

I was wary about posting on this one, as it does involve scantily clad women. If that offends you, skip now, and please accept my apologies, and I know that this probably fits better for a Friday Fun posting, but let's get to it:

Ok, so when I was on the Adobe AIR tour, some folks showed me an AIR app that The Sun, a gossip rag / newspaper in the UK was working on. Sure you can get the news from the website, and through RSS feeds, but how about a branded experience? (as Ryan Stewart would say!)

This newspaper puts aside the third page to introduce you to a "lovely lass" each day. This is part of their brand, and probably is a reason why it is the most read newspaper in the world (a little sad but true?).

Thus, they decided to try writing an article alert application with a twist... that being one of the lasses would walk onto your screen when there is news and show it to you. I had to admit, that I didn't think that Ajax would be able to do that.

The question is, do these brand experiences take off? Is this a gimmick? Do people really just liking their RSS feeds with as little disruption as possible.... or do they cling to certain brands and enjoy that extra touch. I somehow doubt that anyone would want a "Desktop Ajaxian" where Ben and I come out to give you the news ;)

One little annoyance that I saw after running it, is the dock icon coming and going as they poll the AIR app. I hope that is fixed in the next version of AIR (Mike Chambers just put out a call for requests).

Ajax: Ajaxian

Building a better ActionScript

Colin Moock has been creating some buzz in the Flash community with his article on the charges against ActionScript 3.0:

  1. The removal of on()/onClipEvent() from Flash CS3 makes creating simple interactivity hard.
  2. Getting rid of loaded .swf files is hard.
  3. Casting DisplayObject.parent makes controlling parent movie clips hard.
  4. The removal of getURL() makes linking hard.
  5. The removal of loadMovie() makes loading .swf files and images hard.
  6. ActionScript 3.0's additional errors make coding cumbersome.
  7. Referring to library symbols dynamically is unintuitive.
  8. Adding custom functionality to manually created text fields, to all movie clips, or to all buttons is cumbersome.
  9. The removal of duplicateMovieClip() makes cloning a MovieClip instance (really) hard.

Despite all the talk of GPU blitting, pixel shading, and ligatures, a non-negligible percentage of the Flash community is rightfully asking: is Adobe still committed to the simple, agile authoring practices on which Flash was founded? It's a rational enough concern. After all, Flash built its success on "ease of use." Some 11 years ago, the tagline on the Flash 2 box read: "The Easiest Way to Create Fast Web Multimedia." Originally, Flash was purpose-built for people who wanted to make things move without years of animation training, or who wanted to create interactivity and programmatic behavior without a degree in computer science. A decade of loyalty later, those same people—call them the "everyday Flashers"—are now wondering how, or even if, they fit into Adobe's new platform strategy.

Although the general concern over Flash's ease of use is natural, much of it is based on fear, not facts.

I am sure Adobe is watching. For one, Francis Cheng posted about it too, and asked for input.

Ajax: Ajaxian

Free copies available of the Adobe AIR for JavaScript Developers Pocketguide

If you have an interest in Adobe AIR, Mike Chambers has 100 free copies of the Adobe AIR for JavaScript Developers Pocketguide, and one of them could have your name on it.

All you have to do is email him with your name, shipping address, and phone number if you are outside of the US. The information will only be used to ship the book.

First come, first served.

UPDATE: After receiving 500 requests, Adobe has run out of copies. They tell us the books will go out next week.

Ajax: Ajaxian

OpenLaszlo 4.1: DHTML ready for primetime

OpenLaszlo is a fascinating project, and got even more interesting when they went meta, and allowed you to general Ajax applications as well as SWF ones. The 4.1 release is a big one, as it brings full parity to the Ajax side of the house:

OpenLaszlo 4.1 is a major release bringing full support for both the DHTML/Ajax and the SWF/Flash platforms. It also includes over 800 bug fixes and a significantly improved documentation suite.

OpenLaszlo 4.1 has been fully-qualified across the following browser/platform combinations: Safari3/OSX, Firefox2/OSX, Internet Explorer 7/WinXP, Firefox 2/WinXP, and Firefox 2/Linux. We have tested the full suite of demos, samplers, and example applications with the requirement that, when possible, DHTML applications behave the same as their SWF counterparts.

OpenLaszlo 4.1 is now the recommended release for all developers on all platforms, and current users of OL 3.x and 4.0 should investigate upgrading to this new release.

Preliminary support for SWF9 is included in this release but has not been enabled in the developer console.

At the same time, the team announced 500,000 downloads. Congrats!

Ajax: Ajaxian

SEO and RIA get closer together with Flash indexing news

Google and Adobe have been working on improving the indexing of Flash applications. In the past we could simply look at the SWF files and try to grab strings out of them, but there was zero context.

To go further Google uses the SWF Searchable work from Adobe to be more of a 'human' actor on the application.

This is what it doesn't do:

  1. Googlebot does not execute some types of JavaScript. So if your web page loads a Flash file via JavaScript, Google may not be aware of that Flash file, in which case it will not be indexed.
  2. We currently do not attach content from external resources that are loaded by your Flash files. If your Flash file loads an HTML file, an XML file, another SWF file, etc., Google will separately index that resource, but it will not yet be considered to be part of the content in your Flash file.
  3. While we are able to index Flash in almost all of the languages found on the web, currently there are difficulties with Flash content written in bidirectional languages. Until this is fixed, we will be unable to index Hebrew language or Arabic language content from Flash files.

This is good news for all rich applications. One of the common worries when it comes to richer application development is "what do search engines see" and we sometimes see people go back to the simpler world just to make that happier. With the search engines stepping up themselves, we can go back to writing applications that make sense for our human users, and hope that the computers catch up. Of course, we always have to do so in a practical way.

Ajax: Ajaxian

Adobe AIR v1.1 Released, Enhanced Support for Internationalization

Adobe AIR, the SDK & runtime which has become the popular choice for building desktop-enabled web applications, has been updated with enhanced support for internationalization. With AIR v1.1, Adobe has bumped the number of supported languages to ten including Japanese, Chinese, Russian, Spanish & Brazilian Portuguese and included support for double-byte keyboard input.

Other notable enhancements include:

  • Support for 64-bit editions of Microsoft Vista
  • API enhancements to report disk space availability
  • Ability to determine if the OS can support transparent windows

The full release notes for Adobe AIR v1.1 provide more details about the features and changes in this update.

Adobe AIR 1.1 FAQ (includes new features and sample bug fixes)
http://www.adobe.com/go/air1-1faq

Article: Building a multilingual HTML-based application
http://www.adobe.com/devnet/air/ajax/quickstart/multilingual_air_apps.html?devcon=f3b

Fresh RSS Reader Sample Application & Source Code
Localized to 11 languages
http://www.adobe.com/devnet/air/ajax/samples.html

Adobe AIR 1.1 SDK
http://www.adobe.com/go/getairsdk

Ajax: Ajaxian

Flash 10 “Astro” prerelease

With Silverlight 2 aimed square at Flash, many of us were interested to see what Flash 10 would have in store for us. We get our first glimpse with the Flash 10 prerelease, code named "Astro".

I installed the prerelease and recorded the demos so you can take a quick peak:


The biggest feature in my mind, is true 3D:

3D Effects - Easily transform and animate any display object through 3D space while retaining full interactivity. Fast, lightweight, and native 3D effects make motion that was previously reserved for expert users available to everyone. Complex effects are simple with APIs that extend what you already know.

There are other new features too. At a high level:

Custom Filters and Effects - Create your own portable filters, blend modes, and fills using Adobe Pixel Bender, the same technology used for many After Effects CS3 filters. Shaders in Flash Player are about 1KB and can be scripted and animated at runtime.

Advanced Text Layout - A new, highly flexible text layout engine, co-existing with TextField, enables innovation in creating new text controls by providing low-level access to text offering right-to-left and vertical text layout, plus support for typographic elements like ligatures.

Enhanced Drawing API - Runtime drawing is easier and more powerful with re-styleable properties, 3D APIs, and a new way of drawing sophisticated shapes without having to code them line by line.

Visual Performance Improvements – Applications and videos will run smoother and faster with expanded use of hardware acceleration.  By moving several visual processing tasks to the video card, the CPU is free to do more.

If you delve into the release notes you see features such as:

  • Context Menu — Developers now have more control over what can be displayed in the context menu through the use of ActionScript APIs for common text field context menu items, supporting plain and rich text. The clipboard menu provides access to the clipboard in a safe and controlled way, and you can write handlers to paste text.
  • File Reference runtime access — Bring users into the experience by letting them load files into your RIA. You can work with the content at runtime and even save it back when you are done through the browse dialog box. Files can be accessed as a byteArray or text using a convenient API in ActionScript without round-tripping to the server. You no longer have to know a server language or have access to a server to load or save files at runtime.
  • Dynamic Streaming — Always show the best video possible with streams that can automatically adjust to changing network conditions. By changing bitrates, you can keep your user engaged and avoid start-and-stop video. Dynamic streaming provides the best possible experience to the video consumer based on their bandwidth environment. Video streams over RTMP from intended future releases of Flash Media Server can dynamically change bitrate as network conditions change. Quality of Service metrics, exposed via ActionScript and providing real-time network or CPU information, allow developers to take control of the video playback and adjust the streaming experience accordingly. This feature is part of Flash Player 10 but will only be available with intended future releases of Flash Media Server.
  • Text Layout Components — An extensible library of ActionScript 3.0 text components, coming in future to Adobe Labs, provides advanced, easy-to-integrate layout functionality that enables typographic creative expression. Layout and style text with tables, inline images, and column flow through components that are compatible with both Flash and Flex, all while getting the benefits of the new text engine. Rich text components allow designers and developers to flow text and complex scripts, such as Arabic, Hebrew, and Thai, across multiple columns like a newspaper, around tables and inline images, from right-to-left, left-to-right, bi-directionally, or vertically. Selection, editing, and wrapping of text are handled as would be expected for the different layouts.

It is also interesting to put this into context with JavaFX, which was hyped last week at JavaOne (without a release yet). There were some nice demos, such as 3D video globes, and a few people said "Flash couldn't do that. No decent 3D or hardware acceleration." The bar keeps rising for all.

Ajax: Ajaxian

Adobe lifts SWF/FLV restrictions and creates Open Screen Project

I start with an aside; This must be the most un-Adobe website I have ever seen. Below is the entire website for the Open Screen Project:

Open Screen Project

As the site says, the details are in the press release which says:

The Open Screen Project is working to enable a consistent runtime environment -- taking advantage of Adobe Flash Player and, in the future, Adobe AIR -- that will remove barriers for developers and designers as they publish content and applications across desktops and devices, including phones, mobile Internet devices (MIDs), and set top boxes. The Open Screen Project will address potential technology fragmentation by enabling the runtime technology to be updated seamlessly over the air on mobile devices. The consistent runtime environment is intended to provide optimal performance across a variety of operating systems and devices, and ultimately provide the best experience to consumers.

The cool part of all of this, is the fact that the old restrictions on the SWF and FLV specifications are now in the past. The restrictions used to say that if you read the SWF spec, you couldn't build something that would run SWF files. So, could build an editor, a tool, but not a runtime in anyway.

This has just changed by:

  • Removing restrictions on use of the SWF and FLV/F4V specifications
  • Publishing the device porting layer APIs for Adobe Flash Player
  • Publishing the Adobe Flash Cast protocol and the AMF protocol for robust data services
  • Removing licensing fees - making next major releases of Adobe Flash Player and Adobe AIR for devices free

With news of OpenJDK coming at JavaOne next week, we will see changes with the most deployed runtimes out there. Just the beginning of the path towards an open source Flash.

I keep thinking of the JVM playing FLV/SWF, and the Flash player grokking .class files!

Ajax: Ajaxian

Taking Web Applications Offline, to the Desktop, and beyond

Ryan Stewart of Adobe and I got to give a joint talk this morning that covered Adobe AIR, Gears, and how you can build offline and desktop applications right now.

Obviously, Ryan gave an overview of AIR, and I did the same for Gears. We also discussed reasons to be excited about Web development, some of the ideas that are out there in the community, and how AIR and Gears can be seen as complementary.

We had some requests to put the slides online, so here they are below. I know it is hard to peruse slides without the talk over, but just think of it as a fun exercise to wonder what we said :)

If you are at Web 2.0 Expo, give me a shout on twitter.


Ajax: Ajaxian

Adobe AIR for JavaScript Developers Pocketguide

AIR for JavaScript Developers Book Cover

Adobe AIR for JavaScript developers provides an introduction to Adobe AIR for developers using interested in building AIR applications using JavaScript, HTML and CSS. The book has been updated for the latest and greatest, and is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Yup, the book is free.

You can download it first on Ajaxian here, or you can order on Amazon for a dead-tree version.

The book has several pieces:

  • Introduction to Adobe AIR
  • Getting started with Adobe AIR
  • Working with JavaScript and HTML Within Adobe AIR
  • Adobe AIR Mini-Cookbook

It is written by members of the AIR team itself, so you know that the information will be correct. Very smart of them to release it to the public like this. Congrats on finishing it guys!

Ajax: Ajaxian

Adobe Releases AIR for Linux, Joins LSF

Adobe continues to expand its support for the Linux platofrm by announcing the release of the Adobe AIR runtime for Linux. This expands the ability to deploy AIR desktop applications to the three major operating systems (Windows, OS X & Linux) while still using the standard web technologies developers have become accustomed to.

This release of AIR for Linux will be supported on the following distributions:

  • RedHat Desktop Linux 4
  • RedHat Enterprise Linux v5
  • Novell Desktop Linux 9
  • SUSE Linux Enterprise Desktop 10
  • Ubuntu 6.06

and the following features are available with this release:

  • Runtime/Application Install/Update and Uninstall.
  • HTML Loader with JS support to render HTML within AIR applications.
  • Local Database APIs
  • File system support with support for user folders like Desktop/Documents etc.
  • Desktop Integration with Drag and drop, clipboard support
  • Windowing support with System chrome none/standard
  • Basic transparency
  • Menu support with context menu, menu bar, pop up menus and menu events.
  • Networking
  • Network change detection (Event.NETWORK_CHANGE )
  • System wide idle detection (userIdle Event)
  • NativeApplication APIs
  • Capabilities (OS) API
  • Mouse events
  • Detection of running application (InvokeEvent.INVOKE)

Adobe has posted a FAQ to provide detailed information about this new product release.

Adobe Joins Linux Foundation

In addition to releasing AIR for Linux, Adobe has also joined the Linux Foundation to "collaborate on the advancement of Linux as a leading platform for rich Internet applications (RIA) and Web 2.0 technologies.

“Adobe’s decision to join the LF is a natural extension of its commitment to open standards and open source, which demonstrates its leadership and foresight in the software industry,” said Jim Zemlin, executive director at The Linux Foundation. “Adobe’s membership will contribute to our goal of increasing even more application development on Linux with a specific emphasis on Web 2.0 applications.”

“Adobe delivers key RIA technologies for Linux users, such as Adobe® Flash® Player and now Adobe AIR™, to deploy RIAs in the browser and on the desktop,” said David McAllister, director of standards and open source at Adobe. “The Linux Foundation is a valuable resource, providing a forum where we can work with the community to ensure Adobe RIA technologies are compatible across the Linux software platform.”

This announcement further solidifies Adobe's commitment to the linux community, having already released server-side products that work natively on the Linux platform.

Ajax: Ajaxian

Adobe Photoshop Express Launches

The launch of Adobe Photoshop Express has been much anticipated. We are seeing the move of a large software company going from desktop to Web for a major application.

As Erick Schonfeld points out "Photoshop Express is by no means just Photoshop ported onto the web."

I am a big fan of Picnik and for awhile was using it quite regularly, so I wanted to see how they compared.

It seems like Photoshop Express is pretty limited and seems very much focused on taking images, putting them online, and doing little touch-ups. One of the things that I am always doing is taking a picture and adding text and shapes to it, and this isn't available, so I kinda don't know when I would use this other than for simple cropping and resizing.

The interface is sleek and Flash-y but somehow doesn't feel as nice as Picnik to me.... I don't know why.

View Source has some fun though:

HTML:
  1.  
  2. <!--
  3. Smart developers always View Source.
  4. This application was built using Adobe Flex, an open source framework
  5. for building rich Internet applications that get delivered via the
  6. Flash Player or to desktops via Adobe AIR.
  7. Learn more about Flex at http://flex.org
  8. // -->
  9.  

What do you think?

Adobe Photoshop Express

Ajax: Ajaxian

Moo Snippely - Manage Your Code Snippets Locally

We all have bits of reusable code that we store in some fashion. These snippets prove to be invaluable at helping to not "reinvent the wheel" so storing them in a safe and convenient place is important.

The MooTools team wants to make it easy for you to store your snippets easily through the use of their new Adobe AIR application, Snippely. Using the MooTools JavaScript library and the AIR SDK, Valerio Proietti and Tom Occhino created a desktop application that allows easy storage of both code snippets and notes about the code.

When we were thinking about what type of application to make our AIR playground, we tried to think of something that we'd want to use ourselves. Valerio and I are notorious for storing countless bits of code in all sorts of different languages all over our hard drives, and thought it would be nice if we had a central place to store and organize those bits of code. We came up with the idea of 'snippets', and an application called Snippely.

The nice thing about this is that they've designed Snippely so that you can organize snippets by groups and that a snippet entry can consist of multiple snips or notes.

Finally, those looking to get into AIR development will certainly benefit from the fact that the Moo team has released the app as an open source project under an MIT license. The code for Snippely is hosted on Google Code and is available for you to review.

Ajax: Ajaxian

Silverlight Offline and AIR

A couple of articles from the press came out at the same time. Darryl Taft reported on his conversation with Kevin Lynch and Martin LaMonica published Microsoft to take Silverlight offline eventually.

The intersection is where Kevin answers about Silverlight going offline:

Well, what about an offline Silverlight capability? Would that do it?

In order to do it well, your heart has to be in it. And if you look at what we're doing right now with our technologies like Flash and AIR, we're making sure they work reliably across operating systems. So that means Mac and Windows, but also Linux. We're releasing Flash Player now simultaneous for Mac and Windows. It took us a while to get their and now we're doing that, and it's the same core code.

If you look at what Microsoft is doing with Silverlight, they're not actually building the Linux version off the same code base. It's a new code base, which is unlikely to be compatible with the other code bases because it's just not built the same way. So there'll be different idiosyncrasies and we know that will be a problem. So we're really taking a passionate approach to reliability across OSes. And you really have to have that as the core essence of what you're doing or it won't really work that well.

Microsoft says it is coming:

Microsoft does not currently have specific plans to bring offline capabilities to Silverlight, but it's something it will eventually do, said John Case, general manager in Microsoft's developer division.

"It's something that we will want to do," Case said in an interview on Monday. "Eventually, customers will expect us to do it."

Darryl has a lot more meat in his article which asks:

  • As far as AIR deployment, why not just put it in Flash?
  • But isn't the Flash Player only about a 500K download? Couldn't you just up that a little, as you said bandwidth is increasing?
  • When are you planning to, or are you in fact planning to, open-source Flash?
  • So you said Tamarin was a first step. Does that mean you're going to do a second, third, fourth step and so on until Flash is fully open source?
  • I've watched this ongoing competition between Adobe and Microsoft. What do you think they need to do if they want to one-up AIR?
  • Well, what about an offline Silverlight capability? Would that do it?
  • So how do you address the criticisms about security with AIR?
  • You mentioned support for Linux with AIR. Can you expand on the importance of Linux for you guys and where you're headed with it?
  • Who is better at designer/developer workflow, Microsoft or Adobe? Do you concede that to them?
  • What's the status of the Adobe relationship with Google about Google Gears?
  • Do you have any plans to do an AIR-based browser?

NOTE: I had a couple of opinions on the issue of open source wrt Gears and AIR

Ajax: Ajaxian

Dojo on AIR shows detail on AIR itself

At first when you hear "FooAjaxLibrary now supports AIR" you think "er, OK, AIR has WebKit so it supports them all doesn't it?". SitePen added support for AIR in Dojo and gave us detailed information about the changes.

The value of this document is that it gives hints to us Ajax folk as we develop applications running on AIR. The main message is that the security sandbox that AIR gives you has subtle side effects that you need to be aware of.

For example, note the function(){} wrapper in the AIR-specific code:

JAVASCRIPT:
if (dojo.isAIR) {
        this._xdTimer = setInterval(function(){dojo._xdWatchInFlight();}, 100);
} else {
        this._xdTimer = setInterval(dojo._scopeName + "._xdWatchInFlight();", 100);
}
 

There are other small issues such as not having eval() available post-load that you can see in the changeset. If you run into something as you develop your Ajax application in AIR, you have another resource to check (as well as the Adobe resources of course).

As well as making changes to get Dojo working in AIR, SitePen also added support for some of the AIR APIs themselves, including:

AirFileStorageProvider

The AirFileStorageProvider store the data in flat files in the app-storage directory. For example, a key of “MyKey”, value of “Hello World!”, and namespace of “MyNamespace” would create the file app-storage:/__DOJO_STORAGE/MyNamespace/MyKey which contains the text “Hello World!”. This storage provider allows for large amounts of data to be stored. Not only can strings be stored, but also objects thanks to AIR's serialize/de-serialize functionality. On the downside, data is not encrypted on disk. It would be trivial however to encrypt the information using dojox.crypto before storing the data.

AirDBStorageProvider

The AirDBStorageProvider leverages AIR's embedded database. When the provider is initialized, a database file is created in the app-storage directory and the Dojo storage table is created. The table holds the namespace, key, and value. This provider is similar to the AirFileStorageProvider in which it can store large amounts, but it cannot store serialized objects because there is no way to de-serialize them due to eval() being unavailable post-onload. The database file is not encrypted, but you could encrypted the data using dojo.crypto prior to storing the data. One advantage of the AirDBStorageProvider is there is only one file written to disk whereas the AirFileStorageProvider writes a file for each key/value.

AirEncryptedLocalStorageProvider

The AirEncryptedLocalStorageProvider uses AIR's encrypted local data store functions. Data, such as passwords, will be encrypted when being stored and decrypted when being retrieved. Similar to the AirEncryptedLocalStorageProvider, objects cannot be stored because they cannot be
de-serialized with an eval(). One limitation of the AIR's encrypted local data store is it does not provide a way to enumerate keys. To solve this, the AirEncryptedLocalStorageProvider creates a registry using AIR's encrypted local data store to track the namespaces and keys.

Dojo adds it's name to the list of Ajax frameworks that are ready for AIR work. Since Dojo has a large coverage of features (especially via the dojox.* components) it can be well suited for larger desktop apps.

Ajax: Ajaxian

Snoto Photo: Snook, Flickr and AIR

After recently installing Snitter, I have to say I've become a bit of a fanboy of Jonathan Snook. The guy just produces some good stuff. So when I saw that he announced a new AIR application, I had to get it installed and checked out.

While Snoto (ya know, Snook, Snitter, Snoto) isn't as polished as Snitter, it's not meant to be. Jonathan has released this as a foundation for those that want to understand how to build AIR applications.

The goal of this is not to create a Flickr client that "does it all". It was put together as a reference application for anybody interested in learning more about Adobe AIR. Snoto has been released under a Creative Commons license, so it's available for you to take and extend how you wish. The link to the source code is included at the bottom of the Snoto page.

This is a great help to many developers as interest in Adobe AIR has skyrocketed since the release of AIR v1.0. MooTools developers should be especially pleased with the fact that Snoto was built using the MooTools JavaScript library, specifically because of the ease with which AIR applications can be developed without jumping through hoops. While other JS libs are now updated to work with AIR's security model, MooTools was the first to be compatible even during the beta process.

Again, the biggest benefit is to those that want to learn about working with the AIR API:

From the AIR API, I haven't gone hogwild but rather kept it simple. You can see use of nativeWindow, context menu and EncryptedLocalStore.

Having access to Webkit made styling the interface very straightforward. Like Snitter, it's a combination of background images, PNG images, and some CSS3/border-radius to round things out.

The Snoto page has been setup with an AIR install badge which should make it easy to check it out.

Ajax: Ajaxian

Adobe extending Flash platform: Run C, C++, Java and more

Paul Krill picked up on Kevin Lynch saying "It's basically a way to take other languages and make them run on top of Flash Player" as he answered a question from the audience at Engage the other night.

Expanding on the project, Ted Patrick, Adobe technical evangelist, said the technology would allow for cross-compiling existing code from C, C++, Java, Python, and Ruby to ActionScript. This would enable components written in those languages to be integrated into a larger project, Patrick said. "That code becomes perfectly portable into our application platform," he said.

For example, an alternative PDF renderer providing a lighter version of PDF could be cross-compiled, and the Flash Player could read it and display PDFs.

"Right now, everything has to be written in ActionScript or our lower level byte code languages," said Patrick.

In Flash Player, everything has to compile down to SWF byte code, Patrick said. The byte code language inside SWF is called ActionScript byte code.

Of course, this has been talked about quite some time ago. As Tamarin grows up and becomes a solid VM, we are likely to see the polyglot come to being in full force.

Ajax: Ajaxian