Flash Player 10 at 56% in two months!!

People are probably getting tired of me saying that Flash Player 10 is my favorite version of Flash Player ever (even though I keep wanting to tell Flash Player 8 to cover its ears when I say that). Today though, I can really see that a lot more people agree with me. After releasing Flash Player 10 on October 15th, we started seeing a great adoption of Flash Player 10.

When it came time to run our December study, which runs for two weeks at the beginning of December, we were at only a month and a half of deployment. By the end of the study it was a nice round two months. Until Flash Player 9, the normal expectation would be a report of about 20-30%. In the Flash Player 9 days that would be in the 30-40%.

For Flash Player 10, the new number is 56%. That means that over half of the Internet connected world installed a new technology within 6-8 weeks! I’m really just floored. I’m also pleased to say that in the month and a half since the study was run, we are still deploying Flash Players like crazy, so we are really way past 56% as of today. How far past? I have my guesses, but I’d rather wait for the March wave of the study.

What I do think is a safe bet is to start developing for the Flash Player 10 profile whether you use Flash Professional or Flex. Go forth and transform the web with 3D transformations, custom filters and effects, dynamic sound, and all of the other features it takes me about an hour to list off. ;)

WIWTW: ActionScript on which core?

In the last couple of months, I’ve gotten a lot of questions around multi-core support. Most of that has been around PixelBender, but there have also been questions around the rendering support added in 2007, and about ActionScript, which still runs on a single thread.

In a much belated continuation of my series “Why it works that way,” I wanted to share with you a quick question I was asking Flash Player engineering. The question was: “Why does ActionScript always run on the first core?” This was really getting at: “Why can’t we spread the love around and round-robin ActionScript to a different core based on how many Flash Players are running at once?”

I figured that if ActionScript were running on processor core A for one SWF and processor core B for the second SWF, the general performance of both SWFs would be better right? Well, it turns out I had a incorrect assumption here, and by clearing that up showed something interesting (at least to my naive self). It turns out that it isn’t always the first core. ActionScript runs on the same core as the HTML page that hosts it.

If you happen to have two pages, or two tabs running in different processes that happen to be running on different cores, the ActionScript will be running on different cores. While there isn’t much (anything) you can do to get people to run Flash instances on different processors, I found the reason for why it runs on the same processor as the browser is both interesting and sort of “duh” at the same time.

The reason for both the browser and Flash Player running on the same processor is to specifically keep ActionScript synchronized with the page. This allows for the SWF and the page to interact through ExternalInterface. By having the two systems on the same core you won’t run into lots of strange errors where an application that relies on both AS and JS works one time, but not the next on the same machine because a slight difference in timing.

Flash Player 10 experiment #1: Cloth Texture Mapping

Cloth Demo

This demo is a combination of the new drawing API features like drawTriangles combined with an object made from APE (ActionScript Physics Engine). The texture that is mapped across the shape in this demo can be an image, video, pixel bender or simple color.

In the color demo you can see that the cloth has two sides. This is done with the concept of backface culling. When drawing triangles, you can specify if positive or negative triangles should be bypassed in rendering. This means that for a 3D app, you don’t need to double render, but for this far simpler example you can draw the negative triangles with a different texture by doinga second fill process where you don’t draw the positive triangles.

more to come!

Cloth demo detail images

BTW, if you are using APE and want to export to for Flash Player 10, you will need to go through and rename the Vector Class to something else since it will conflict with the new Vector data type.

Flash Player 10 is now live!!

This evening, Flash Player 10 went live on Adobe.com. With it comes a new definition of what Rich Internet Applications will look like on the web.

Flash Player 10 introduces creative expression features like 3D Effects, Pixel Bender filters and effects, enhanced drawing API, a new text engine, new sound APIs and color management. While each feature is impressive on its own, it is really the combination of the features with each other and with the existing capabilities in Flash Player that show the range of the Flash platform.

When we add new functionality to Flash Player, we add it in two ways. First, we want to make features easy to use, so people at different levels of technical or design expertise can make use of them. The next step though is to also provide low-level APIs that allow developers the flexibility to create their own functionality. We’ve done this in numerous ways throughout the player.

A good example is 3D where you can use simple ActionScript APIs, Flash CS4 Professional 3D transformation tools, or build a sophisticated 3D library on top of the the new drawing API drawTriangles. No matter what level you come to Flash Player from, you can make great experiences and applications.

On a personal note, I joined the Flash Player team almost two years ago, when we were in the early phases of planning Flash Player 10. In going through the requests from the community, the technology we had access to from Adobe, and the great ideas from the Flash Player team, I was blown away by what an amazing release this would be. Throughout the process as we met with customers in large and small groups, as we sneaked features at conferences and finally unveiled the player in May in public beta, I saw with delight the growing positive reaction that our hard work was worthwhile and that this will be the best release of player to date.

I’ve joked with my co-workers that as much as I’ve loved working on Flash, this Flash Player makes me want to go back out in to the community and get back to making games, advertisements, and wacky UIs. While I’m keeping my day job, I hope you enjoy Flash Player 10 as much I have, and I look forward to seeing what you create!

Flash 10 Camp in San Francisco! Register now

Adobe Flash 10 Camp is a free event in the “unconference” style, focused on developers creating rich interactive experiences using the new Flash Player 10 features.

This event is inspired by BarCamp, iPhoneDevCamp, and the Adobe Hackathon, to develop inspiring content and applications using an advance copy of the Flash Professional CS4 authoring tool.

Attendees will include Flash and Flex developers, mobile developers, UI designers, and testers, all working together over the weekend. Development projects will include both solo and team efforts. While some attendees will wish to work solo during the event, we encourage attendees to team up, based on expertise, to work in ad-hoc project development teams. All attendees should be prepared to work on a development project during the event.

Participants will be able to:

  • Learn about new Flash Player features
  • Create Flash Player 10 content and applications
  • Test and optimize content and applications for Flash Player 10

Of course, there will be a Contest, featuring some great prizes including — you guessed it — Adobe Creative Suite 4! In addition to the prizes, winners of our Contest will be featured as part of our subsequent CS4 launch.

We are hoping to accommodate about 200 people at Adobe Town Hall in San Francisco. See our Agenda before you register to attend.

Register early! Spaces are limited.

Compiler available for Astro beta refresh

If you are building SWF10 content and discovered that your SWFs are no longer working with the refresh of Flash Player 10 beta that went live on Adobe Labs last week, you will need to download the latest compiler from the Adobe Open Source site. Build 3.1.0.2148 available on the FlexSDK open source site contains the compiler you will need to do the re-compile.

The reason why the re-compile is necessary is that we are making a change in how we differentiate the APIs for one version of Flash from another. Previously we used namespaces to make that distinction, but we are changing to a system based on metadata. It isn’t something that developers need to be concerned with, I just wanted to provide some insight.

Keep in mind as you do your re-compile that this is a beta, and some of the APIs have changed since the first beta post of Player on labs. A new version of the documentation also was posted last week, so make sure to download that as well.

Also note: There may be a prob or two doing Export Release in Builder with build 3.1.0.2148. the Flex team is looking into it and if needed will make updates in later SDK builds.

FP9@ 97%, Flash Player 9 update 3 at 82%

Adobe just announced the updated Flash Player penetration numbers. This includes the update on Flash Player update 3 (9.0.115.0) which went from 62% in March to 82% in June!

I admit that the 62% number both made me excited and made me nervous. 62% was way out of the norm even though our download and install data suggested the growth. Also, the data was gathered through a time-tested methodology for tracking Flash Player versions. When I got the 82% update I still felt relief followed by elation. This is a number that is consistent with the curve of 62% in 3 months.

But seriously, 82% in six months is fantastic. In our previous penetration models, that is where we expect our 9-month data to be. Besides the excitement this brings to me know that new features and security updates can penetrate fast, it is the knowlege that Flash Player cache, Hardware-scaled FullScreen, multi-core rendering, and H.264 are really out there at the levels that a lot of enterprises can make use of them. If you are developing for Flex 3, you can take full advantage of Flash Player 9 update 3 with 82% of users out there having the player.

Microsoft's response to runtime search

Adobe’s announcement around SWF searchability was about using the power of the runtime as a replacement for the much less useful approach of parsing out static text and links from a SWF file. The parsing approach has been around for years, and if you are wondering if it was successful, ask any SEO expert what their opinion of Flash has been for the last few years.

Microsoft responded to the announcement saying their Silverlight content is searchable “too.” Their solution is the same as our old approach: search for strings in a static file. While I was expecting them to put an admirable spin on the solution that is available to them, I was not expecting them to believe that this approach is superior to runtime-enabled search.

No matter how elegant an application is, with all of its possible interactions and states it is a Rube Goldberg machine compared with the limited simplicity of plain HTML pages. Indexing the static content as Microsoft suggests is like trying to figure out what is going to happen with a Rube Goldberg machine by looking at a photo of all of the parts *before* they’ve been assembled. To really know what happens, you have to assemble the machine and let it run. That is what the version of Flash Player optimized for search engines does.

Indexing an RIA through the runtime means that you get the context of what text and links are being displayed at same point an application as well as knowing how hard or easy it was to get to that state. The real value though is that you get to do other runtime operations like load additional content.

One of the main ideas behind “web 2.0″ is data. Whether that is an RSS blog feed, a REST API query, or loading localized text, applications keep the interesting text separate from the application itself. Indexing the runtime means that you get static content, dynamic content and loaded content, which put another way, the search engine sees what the end-user sees.

While better than nothing, searching static content leaves the search engine with a disjointed view of the content because it lacks the ability to do dynamic operations like assembling a full URL from a base URL variable and a path variable. But as anyone that has done any level of SEO knows, indexing the right URL versus a close URL is the difference between customers finding your content and not.

As a final comment, I disliked Microsoft’s claim that XML makes an application inherently more searchable. For anyone writing a search engine that is parsing the file to find content, the difference between XML and an openly-documented binary tag structure is trivial. I especially dislike the claim since Silverlight 2 is moving to compiled DLLs that will actually obscure a lot of content.

Flash Player 10 beta refresh (10.0.0.525)

Adobe just release a new version of Flash Player 10 beta (10.0.0.525). There are a few new things to talk about! In addition to the primary features, and all of the fixes and improvements requested by the community that made up the first beta, we’ve added a few more items that have repeatedly heard from customers about:

  • limited fullScreen Keyboard support
  • unloadAndStop
  • Wmode support for Linux

Limited FullScreen keyboard access
Whether or not you want to make a game or a video player with keyboard shortcuts, the restriction of keyboard support in fullScreen has been an annoyance to a lot of developers. The restriction was placed there because of heightened possibilities of malicious attacks while in fullScreen mode such as password phishing.

In Flash Player 10 we are easing this restriction to allow non-printing keys to be used while in fullScreen. Non-printing keys are arrows, space, shift, tab and similar keys that can’t be used to provide private information. These keys are very important however to let users do many types of selection and gameplay inputs.

I’m looking forward to a whole new set of immersive games in Flash. I wish I just had more time to play them :)

unloadAndStop
Grant Skinner and several other in the community have rightly pointed out some issues Flash Player 9 has with unloading content where it remains accessible after unload and elements such as audio keep playing until the item is garbage collected. We’ve worked many members of the community to come up with a solution that knocks out the major issue.

Starting with Flash Player 10 you will now be able to use unloadAndStop to unload a loaded SWF and also remove references, stop audio and video and in every way possible just make it go away.

Wmode support for Linux
Starting last December, Adobe started shipping Linux Flash Player at the same time as Windows and Macintosh making it a first-class Flash Player. To continue that we needed to work on some areas of how Flash Player works with its hosting environment so that external factors like WMode support can also be consistent across the supported platforms. For more information on the Linux enhancements, read Mike Melanson’s blog post on the subject.

NOTE
If you have started developing SWF10 content, you will need to re-compile older SWF10 to work with the new player.