Ted Patrick - Demos & MAX @ Adobe Systems


Note: This is the personal blog of Ted Patrick. The opinions and statements voiced here are my own.



Microsoft uses Flash Player for Vista Launch

DIGG IT!     15 Comments Published Monday, January 29, 2007 at 9:42 AM .

Microsoft launched several Flash applications over the past week in preparation for the launch of Windows Vista. There is some serious irony here folks. Vista provides a "New and Exciting" rich user experience, yet nearly all of the GUI features can be delivered today using Flash Player with Flex or Flash, cross-platform, cross-browser independent of the operating system today to 97% of computers.

ShowUsYourWow.msn.com

Windows Vista

See Windows Vista

Microsoft is again proving that Flash Player is the defacto-standard for delivering great experiences today because it is widely deployable to 97% of computers. Flash provides rich experiences with reach. It will be a very very very long time before Blend/WPF/E has that type of reach and compatibility. I am sure they will get to 50% quickly using Windows Auto-Update but the last 47% is going to be very difficult, if not impossible.

The funny part will be watching Microsoft undo their own Flash sites after Blend ships, if they can do it at all. I think they will have a very difficult time justifying a switch when WPF/E features are not even at the Flash 5 level and deployment compatibility starts at 0% for a version 1.0 MS product. (Personally I think it will be DOA.)

Also if you like the Vista UI, you should check out the skins posted by Juan Sanchez over at scalenine.com for Flex 2. These skins are great as you can make any Flex 2 app look like iTunes, OSX, Windows XP, or Vista.

Vista Skin for Flex 2.0

Skin Swapper with Flex - iTunes, Vista, Obsidian (at runtime)

The fact is that with Flash, "The Wow" started in 1996 some 10 years earlier. It is great that Microsoft is spending Billion to showcase Flash like this and suddenly championing that user experience matters.

ps: MS PR department please comment away! No novels in the comments this time Scott and Co.

Ted :)


Acquisition within Flex

DIGG IT!     12 Comments Published Sunday, January 28, 2007 at 1:13 PM .

Before Flash/Flex, I wrote software in Python. There are several concepts in Zope/Plone/Python that are very relevant to Flex and ActionScript 3. Many people know about Inheritance and Composition but very few know about Acquisition. I am going to introduce the concept of Acquisition and show some examples of it within Flex. Looking back, understanding Acquisition has been a key factor in my personal success with Flash and Flex.

First things first, a warning. We are OOP off-roading here. If you bring your OOP preconceptions along they might get a little shaken up. Acquisition is a bit different but it fits seamlessly with Inheritance and Composition. You have been warned!




So lets start with a definition of Acquisition (Wikipedia doesn't have a good definition, I told ya we are offroading here!):

Acquisition - The ability of any object to acquire data and behavior from surrounding objects.

What the hell does that mean?

In its simplest form, Acquisition allows you to build objects/components that change their behavior depending on where they are located at runtime. These objects "acquire" data and behavior from surrounding objects based on composition. Acquisition takes composition to its logical next step by allowing objects to be created that react to what they are within, next to, or what objects they contain.

Confused? No getting stuck in the mud, keep the peddle down. Here are some concrete examples of Acquisition behavior within Flex:

"Child" Acquisition

TabNavigator - This container defines navigation based on its children. TabNavigator changes behavior purely based on the objects (containers in this case) that are put within it and the order they are put in. TabNavigator reads the 'label' property from its children to define tabs. The Tabs in TabNavigator are obviously part of the TabNavigator component but their data is derived directly from the children within. If you remove a child, the tab is removed, if you add a child, a new tab is created, if you change the 'label' property of a child, the tab label changes.



I like to think of this as "Child" Acquisition as the TabNavigator looks to its children to define its own data and behavior.

"Parent" Acquisition
Take a Button and change its label based on the parent container of the button. Put this Button in a Panel, it looks one way, put it in an Accordion, it looks different.



I like to think of this as "Parent" Acquisition as the component looks to its container/parent to define its data and behavior.

"Sibling" Acquisition
Take a series of buttons all with percentage height and add them into a base Application container set to vertical layout. Depending on the percentage size of each children, it affects the size of other children during measurement and layout. In this case, if the size of one child changes, so do all siblings within a container.



I like to think of this as "Sibling" Acquisition as a component depends on its siblings to define its data and behavior.

I believe that there are many details within Acquisition that can be applied to Flex directly given that both MXML and ActionScript 3 lend themselves to heavy use of Composition. From DOM Events to Constraint-based Layout to States, many Flex concepts depend on the runtime state of components and containers. What is fascinating to me is that we can go deeper and design systems of components that work within Acquisition to make Flex application development simpler, easier, and more reusable. Not that support for Acquisition is pre-defined in Flex per say, but I think there is a foundation in Flash Player 9 and Flex to build upon.

Here is where the rubber meets the road again and we go back to coding. Acquisition is a way to think about programming behavior into the components and objects we create. As objects can inspect parent, children, and siblings, it makes sense to program behavior that reacts to other components.

In classic Zope/Python, Acquisition is a pattern that defines a lookup tree based on composition. If you need a variable, you can lookup the tree of composition to find a definition if one is not defined within the current object. Instead of walking the inheritance chain, you walk up the composition chain of parents to the root. This way objects within another object don't have to define all of their behavior and that behavior can change depending on how the object is composed.

Here is the summary from the Plone Manual:

Acquisition allows behavior to be distributed throughout the system. When you add a new object to Zope, you don't need to specify all its behavior, only the part of its behavior that is unique to it. For the rest of its behavior it relies on other objects. This means that you can change an object's behavior by changing where it is located in the object hierarchy. This is a very powerful function which gives your Zope applications flexibility.

Acquisition is useful for providing objects with behavior that doesn't need to be specified by their own methods or methods found in their inheritance hierarchies. Acquisition is particularly useful for sharing information (such as headers and footers) between objects in different folders as well.


Here are some other resources on Acquisition:

Nature vs Nurture - John Udell

A new inheritance-like abstraction mechanism - Joseph Gil and David H. Lorenz
Abstract:
The class of an object is not necessarily the only determiner of its runtime behaviour. Often it is necessary to have an object behave differently depending upon the other objects to which it is connected. However, as it currently stands, object-oriented programming provides no support for this concept, and little recognition of its role in common, practical programming situations.

To give credit where credit is due, Jim Fulton of Zope deserves much credit for Acquisition, Jim wrote the initial Acquisition logic into Zope. I learned about Acquisition in working with early builds of Zope before working deeply with Flash Player. It helped me think about composition within Flash Player at runtime, defining dynamic behavior into Flash applications, and has been a key factor in my success with Flex. Call it a pattern, a tenet of OOP, environmental hoo-haa, whatever, to me Acquisition just helps me think about creating components that react to how they are organized at runtime.

In many ways Acquisition brings in the element of environment into software development and these patterns are grounded into our everyday life. My car works differently depending on the road it is on and I act differently depending on who I am around, so too with components and software. Shoot, maybe this post will be different because I wrote it on a Sunday in the comfort of my own home. :)

Cheers,

Ted :)


FlexComponents hits 1000 Developers!!!

DIGG IT!     7 Comments Published Friday, January 26, 2007 at 12:43 PM .

I am pleased to announce that FlexComponents Discussion List has cross over 1000 developers subscribed. It has been slow building but the last few months we have been adding 100-200 developers a month. The growth in Nov06, Dec06, and Jan07 really highlight the growth in Flex and the interest in extending Flex.

Ely has a great post today on the extensibility of Flex as a framework vs HTML. It is a great read and he posts a custom SuperImage component that supports caching and simplifies loading images within ItemRenderers.

Join FlexComponents!

Speaking Lists...The other day I got ADOBE GO URLS made for a few lists:

FlexComponents --> http://www.adobe.com/go/flexcomponents
FlexCoders --> http://www.adobe.com/go/flexcoders
FlexJobs --> http://www.adobe.com/go/flexjobs


Anyone interested in another Flex Component Developer Summit? I think we should have another one in 2007.

More to come!

Ted :)


Flex 3 in 2007 plus some clarity...

DIGG IT!     19 Comments Published Thursday, January 25, 2007 at 6:46 AM .

I wanted to clear up some misconceptions about Flex 3. The release is not right around the corner but will arrive in late 2007. The Flex 3 release cycle will be very different, actually it is wildly different than what Adobe has done before. We are working to get the development community involved in the release to assist in shaping features and raising the release quality.

As you will see, we are changing how we make software and how we interact with the development community. To make Flex 3 great, we need your help, it is as simple as that.



More to come,

Ted :)


Meet the Flex Team - Thursday, Jan 25 at Adobe San Francisco

DIGG IT!     6 Comments Published Tuesday, January 23, 2007 at 4:34 PM .

We are all set for a great "Meet the Flex Team" event in San Francisco. We have Free Pizza, Beer, Nintendo Wii (on a 25ft big screen), ready to go. If you want to meet the team that wrote Flex, register for "Meet the Flex Team" today. Also be ready to write down "Talk to me about?" for your badge. Here is mine:

Talk to me about: Scuba Diving & flash.net.Socket

I will be doing a demo of Virtual Ubiquity's "Buzzword" document editor which is the first time this app has been demoed publicly. Simply put, it is the best Flex app I have ever seen and makes all other Web 2.0 document editors look like a joke. Basically it is a MS Word quality document editor running in a browser, cross-platform and cross-browser. It is an impressive example of what happens when great engineers get busy with Flex! We will also have a Flex Team Q&A session where you can get your questions answered from the source.

See you at Meet the Flex Team!

Nintendo Wii Tennis on a 25ft screen, priceless!

Ted :)


Flex 3 - The most important feature!

DIGG IT!     29 Comments Published at 4:30 AM .

The Flex team is in full development of the next full release of Flex, Flex 3. The release is looking amazing but I wanted to reveal the most important feature today. Flex 3.0 targets the release version of Flash Player 9 and will be widely deployable to over 90% of computers, well over 1 Billion computers, the day it ships.

The day you download Flex 3.0, you will be able to deploy 100% of the new features to the entire Flash Player 9 installed user base. Given release timing, Flash Player 9 should be installed on well over 90% of computers. This is the first time Adobe or Macromedia has released a development toolset targeting a widely deployed Flash Player and I believe it will have a dramatic effect on the Flex marketplace as a whole. I am seeing a huge surge in Flex development today and the delivery of Flex 3.0 will only accelerate this growth.

Companies moving to Flex for cross-platform web and desktop application development can rest easy investing in Flex today and tomorrow. In choosing Flash Player 9 for the deployment target of Flex 3.0, Adobe is making a larger commitment to supporting a longer application life-cycle. Companies developing Flex applications will be able to utilize more advanced development tools while deploying compatibly to Flash Player 9. As future players arrive, deployed applications will work seamlessly given our fine grained support for SWF backward compatibility.

In many ways, I believe this is the right choice for Flex long term. As our market is by majority business applications, we need to focus on wide deployment and compatibility first and on new player dependent runtime features second. Flex should always deploy into the fat of the Flash Player adoption curve and it is my opinion that we should always target the player that is 90% deployed. If that means that Flex 3,4,5 ship targeting Flash Player 9 all the better for developers and companies. Honestly there are a ton of features that need to be added into Flex independent of the runtime and above the compiler. When Flash Player 10 hits 90%, Flex should target Flash Player 10 in all future releases. The market that Flex is targeting requires us to provide better development tools for productive software development always delivering to widely compatible runtimes.

So what is being added for Flex 3.0?
I will be demoing some Flex 3.0 features at the 360Flex keynote. Hold onto your hat, you ain't seen nothing yet!

Go Flex!

Ted :)

p.s. Dear loyal readers, please pardon the comments from my new MSFT fan club. Since they are trying to catch up to Adobe, I better get used to their comments and spam on my blog.


FlexJobs - Yahoo, Adobe, eBay hiring managers are posting...

DIGG IT!     3 Comments Published Monday, January 22, 2007 at 7:32 PM .

I spoke with hiring managers from Yahoo, Adobe, and eBay about the new FlexJobs list today. All three companies are hiring Flex developers and they will be posting jobs to the FlexJobs list directly. Yes both Yahoo and eBay are both using Flex and within both companies there is a wildfire of development underway.

On Wednesday, I will be teaching an all day class to 30 developers at Yahoo headquarters. The class is part of my 2007 plan to arm great development teams with deep Flex product knowledge directly. I have been slowly building a core curriculum for teaching Flex to developers and having taught 7 Flex classes thus far. Based on the feedback thus far, I am getting into a groove.

At the upcoming 360Flex conference, I will be teaching the first daily session of the Flex101 track. The entire Flex101 track will be repeated each day of 360Flex. My 90 minute session covers the mission critical building blocks of Flex and provides the basic product foundation one needs to be successful with Flex. It has taken some time to put this session material together and each time I give the session I tweak and refine it a bit.

I have to admit I love teaching Flex and ActionScript 3. The language and classes are such an elegant way to write cross-platform software.

Cheers,

Ted :)


FlexJobs - Developer Cloaking Engaged!

DIGG IT!     2 Comments Published at 7:10 AM .

A few developers emailed me over the weekend about the new FlexJob discussion list. The main issue was that members could see other users, so I modified the list settings to hide member information. Feel free to lurk on the FlexJobs list and look for an upgraded career.

FlexJobs Discussion List

EMPLOYERS - Post jobs to FlexJobs for free.
PROJECTS - Find Consultants for your Flex Projects.
DEVELOPERS - Find your dream job.

FlexJobs is easy to get started, just subscribe to the list and review the great jobs as they are posted.

Fun for all, great for the Flex ecosystem!

Cheers,

Ted :)


FlexJobs - Get a Flex Job at Playboy?

DIGG IT!     5 Comments Published Saturday, January 20, 2007 at 3:00 PM .

I get 30+ new Flex jobs emailed to me a week, and so I just created FlexJobs. If you want a Flex job or if you are hiring developers, FlexJobs is the place. To kick things off the first job posted to FlexJobs is for Playboy, yup you read that right, Playboy is using Adobe Flex!

FlexJobs Discussion List

Recently I have been contacted by Lexis/Nexis, Hurst Publishing, Allurent, Yahoo, eBay, Virtual Ubiquity, ESRIA, PlayBoy, Cynergy Systems, and Behr Paint about hiring Flex developers and will be recommending all HR and job requests post to the FlexJobs discussion list. I will be posting the jewels to this list so I would keep a close eye on the discussion list.



I am going to be automating some RSS feeds posting to the list from the major job portals.

So want to go build Flex apps for Playboy?

Cheers,

Ted :)

ps. BunnyFUG meeting at the mansion? Anyone? Sure glad I am single now!


Mashup Camp - Teaching Flex 2

DIGG IT!     2 Comments Published Wednesday, January 17, 2007 at 2:27 AM .

Today I am teaching Flex 2.0 at Mashup Camp. The 60 minute session is just me writing sample apps from scratch with Flex. I will be mashing up Shakespeare in XML pulled from the Internet using E4X. The app is simple to build but it covers all the keys to writing Flex apps in terms of MXML, Components, ActionScript, Bindings, Events, Loading data over HTTP, XML parsing, and CSS Styling.

I will post the application after my session at 9:45 EST.

Cheers,

Ted :)


KAPOW - Create APIS from HTML Sites

DIGG IT!     2 Comments Published Tuesday, January 16, 2007 at 12:45 PM .

Easily one of the coolest technologies that I saw this morning at MashupU was Kapow. I sat down and wrote a Flex app with Andreas Krohn of Kapow and I walked away impressed. This is a really great resource for Flex/Flash developers.

Kapow is a combination of service and a desktop IDE that lets you build and deploy robots(agents) that run on OpenKapow.com. See there are about 400 sites with APIS but with kapow, every site becomes an API. You simply write an robot to do stuff when it is called and it returns async as a REST/JSON result set. In Andreas's talk he made a Robot to retrieve addresses from Whois website and mapped the results into google maps. Considering the data was pulled live from a public website was killer.

I will be working with Andreas to make sure that Flash Player can talk to this API seamlessly via crossdomain.xml from any domain and that we have some higher level Flex components to work with Kapow.

THE ROBOTS ARE COMING! THE ROBOTS ARE COMING!

Ted :)


Mashup University - Introducing Apollo

DIGG IT!     33 Comments Published at 11:23 AM .

I presented Apollo at Mashup University at MIT today. I covered a mindmap that I made on Apollo, created simple apps in Flex and Apollo live, and ran some demos apps in 40 minutes. My presentation went well and I got some great feedback. If you have not attended a Mash-up camp or Mashup university, these events are great. Every time I go, I learn a ton. The key is that the quality of developers here is very high and the content presented is great.

Apollo Mind Map PDF

What I thought was really interesting was the parallel presentation from Microsoft who spoke after me. They were presenting on the MS 3D Mapping project at http://maps.live.com. The solution presented was IE7 only and required the installation of .NET 2.0 runtime in addition to IE7. It was classic Microsoft pitching a Windows-only solution to developers. The technology was good looking but it was intended to force end users toward Windows.

I talked about the defacto requirement that applications support a wide range of platforms and browsers compatibly. Gone are the days of delivering platform specific solutions and porting applications later. The AJAX revolution is really about making the most of what is available today in a compatible way. With Apollo developers can deliver desktop applications on all versions on Windows, OSX, and Linux and with Flash Player developers can deliver to all browsers cross platform. When you compare WPF and Apollo, what becomes very clear is that WPF is intended to drive Vista adoption and Apollo is designed to deliver compatible cross-platform applications. These goals could not be farther apart and are almost polar opposite.

I will be talking about Microsoft more and more in the following year. They really haven't changed a bit and are up to the same old platform lock-in tricks with their new technologies. What I did find inspiring was that over 50% of the laptops at Mashup University were running OSX and from the podium I was staring at a bunch of glowing apple logos. I have seen this over and over as I speak at more conferences but this time it was ever present. As Apple, Linux, Safari, and Firefox rise in market share, the need for cross-platform solutions is growing.

Really it comes down to a simple question:

How many users do you want to reach?


Cheers,

Ted :)


360Flex Conference SOLD OUT in 50 days!

DIGG IT!     8 Comments Published at 7:26 AM .

Having been involved in 360Flex from inception, it is really to see the conference is now officially SOLD OUT! 360Flex is a pretty clear sign of a groundswell of interest in Flex 2 and Apollo. My take is that 2007 is the year of Flex and that the Flex marketplace is set to explode later this year when the Flash Player hits 80% market share.

Tom, John, and myself are meeting in San Jose next Monday for a walkthrough of eBay Town Hall and the party location at Adobe San Jose. Now that the event is sold out we are laser focused on making the content sessions top notch. As both a speaker and organizer, I am really looking forward to 360Flex.

Cheers,

Ted :)


360Flex 95% Sold - Last chance...

DIGG IT!     0 Comments Published Sunday, January 14, 2007 at 10:29 PM .

The past few days have seen sales jump for 360Flex. We moved from 80% to 95% sold in a matter of days. With only 5% remaining we will sell out tickets next week. If you want to go, purchase a ticket now.

See you at 360Flex!

ted :)


"Close Projects" to improve compilation performance in Flex Builder

DIGG IT!     3 Comments Published at 11:43 AM .

In Flex Builder if you leave projects open, the incremental compiler will compile "Open Projects" in the background at start-up and save. I keep seeing developers complain of slow start-up/compilation of Flex Builder and 95% of the time they have 10+ projects open. Ahhhhhhhhhhh......

Here is what to do:

In "Navigator" panel, Right-click on the Project Folder and "Close Project"

Close the Flex projects that you are not working on and you will see Flex Builder performance take off! Otherwise when you press save on any project, Flex will check each project to see if compilation is required. By having a project open, you are making Eclipse do a ton of work in the background and use a ton of resources.

If someone complains about Flex Builder start-up or compilation:

Ask them "How many Projects do you have open?"

Cheers,

ted :)


Meet the Flex Team in San Francisco!!!

DIGG IT!     1 Comments Published Saturday, January 13, 2007 at 9:32 AM .

Come meet the Flex Team at Adobe offices in San Francisco. Come mingle with the team that wrote Flex and the local SF development community. The event should be a lot of fun (I am organizing it!). We will have lots of the 'infamous' Flex API Posters to give away and a drawing for registered attendees.






We look forward to having you join us!

Cheers,

Ted :)


Top 5 Resource for Learning Flex

DIGG IT!     6 Comments Published Friday, January 12, 2007 at 7:08 AM .

There are several locations that developers need to visit when starting out with Flex. Visit these to quickly get started:

1. Flex.org - The single location for everything Flex. We are working on a major update the Flex.org site but this single page of links has a ton of value. Listings of the top blogs, urls for all Flex downloads, Links to Support, Lists and other goodness.

2. Flex Start Page in Flex Builder ( HELP > FLEX START PAGE )
This screen was designed to provide the basics for anyone getting started using Flex. It includes "How Flex Works", Samples, and Tutorials and Help. Here are the jewels:

a. Component Explorer - I still use this when I need a snippet of MXML for a specific component. It is handy and easy to use. You can see component working and the code that created then. Copy, Paste, Next!

b. Flex Style Explorer - There is now a link to the Flex Style Explorer. This app is invaluable for learning the details of skinning. Simply select the component you want to style, edit the properties and CSS is generated. Copy, Paste, Next!

3. Discussion Lists and Forums:

a. FlexCoders - This discussion list is the heart and soul of Flex. All the best developers frequent this list and many engineers are there. Joining FlexCoders is a rite of passage for anyone learning Flex. The list will flood your inbox so be ready, but when you have a question this is the first place to go. Search the archives of FlexCoders first, 99% of the time the answer has already been discussed.

b. FlexComponents - This discussion list is for developers writing components to extend Flex. The list was started after the component developer summit to kick start extending Flex with new components.

c. Adobe Support Forums - The forums are very handy for getting specifics on product details. There are categories for Flex Builder and Data Services so it is a bit more organized than FlexCoders or raw discussion lists. Many of the Flex engineers monitor and participate in these forums.

4. Flex Developer Center - There are fresh articles on Flex here and there are always new articles being posted to this section of the Adobe.com website.

5. Flex Cookbook - The Flex Cookbook is a place to get code and examples for Flex. The site is a mega-wiki to add articles and code from developers. It is a great resource and is growing very fast.

I am often suprised that many people do not know about these great resources for learning flex.

Cheers,

Ted :)


Flex 2.0.1 - Understand Runtime CSS

DIGG IT!     22 Comments Published Monday, January 08, 2007 at 6:55 AM .

So lets take a look at runtime CSS in Flex 2.0.1. This is a killer feature for me because in allows for reusable skinning across Flex applications as simple as a URL. Now your expecting CSS to be text based but in Flex's case to support custom fonts, custom component skins, and graphics embedding the runtime format of CSS in Flex is SWF.

Runtime CSS Example

In Flex 2.0.1 there is a new compiler option for MXMLC to directly compile CSS into SWF. These style SWF files can then be loaded at runtime by any Flex 2.0.1 application. This is very handy because it allows you to externalize all graphical elements within the style of your application into a URL for reuse across applications. Why embed the style N times when you can externalize it and just load it in? Typically you are not just making 1 Flex application, you may be making 5-6 for the intranet at your company and externalizing style in this format is very handy.

First you need to create a CSS file. I typically go to the Flex 2 Style Explorer to style my applications. It presents all the style options for Flex components and generates CSS for you. It is one of my secret weapons.

Flex 2 Style Explorer

Download Flex Style Explorer ZIP

So now for the hard part, compilation. Assume I have a style sheet called 'style1CSS.css' and all assets required are located adjacent to the 'style1CSS.css' file. With mxmlc in your path, simply write this on the command line.

mxmlc style1CSS.css

This creates the SWF file 'style1CSS.swf'.

If you are using Flex Builder 2.0.1 just right-click on the CSS file and press "Compile CSS to SWF". The swf file will be put into the 'bin' directory.

Now from within your application, you need to load this SWF via the Style Manager like so. Here is the application source for the example below:

<mx:Application 
 xmlns:mx="http://www.adobe.com/2006/mxml" 
 layout="absolute"
 initialize="StyleManager.loadStyleDeclarations( 'style1CSS.swf' )" 
 viewSourceURL="srcview/index.html">
 
 <mx:ComboBox 
  id="styleCombo"
  top="10" left="10" right="10"
  dataProvider="['style1CSS','style2CSS','style3CSS']"
  change="StyleManager.loadStyleDeclarations( styleCombo.selectedItem + '.swf' )">
 
</mx:Application>


In this case, the StyleManager loads the style1CSS.swf on the initialize event. I also provided a comboBox that will load CSS Style SWF files when the change event occurs.

Runtime CSS Example

So that is runtime CSS in a nutshell. What I think would be great is for everyone to create styles CSS SWF files and share them publicly. It would allow anyone to create a styled application without any style data in the core application. Simply map the components to the style classes in the CSS SWF, and they will all update when the CSS Style SWF file loads.

Cheers,

Ted :)


360Flex Conference - March 5-7 at Ebay in San Jose

DIGG IT!     0 Comments Published Friday, January 05, 2007 at 7:20 AM .

Want to learn the deeper side of Flex 2.0.1? Want the low-down on Apollo? Learning Flex? Making custom components? Got $100 to spare for a 3 day conference at Ebay on Adobe Flex?

360Flex Conference

There is a great 3 day developer conference coming in March to San Jose at Ebay town hall. Now don't let the $100 price fool you. We got sponsorship from some amazing companies who are using Flex extensively. The conference is a who's-who of the best developers in Flex and the conference will sell-out in Jan. We are currently 70% sold and the remaining spots will go very fast.

360Flex Conference

See you at 360Flex in March 5-7 in San Jose, it will be an amazing event.

Ted :)


1 - One Solid Flex Release 2.0.1

DIGG IT!     31 Comments Published Thursday, January 04, 2007 at 9:06 PM .


One Solid Flex Release 2.0.1...
No more numbers or cryptic blog posts!
Let's talk about Flex Builder 2.0.1, the best release of Flex ever. If you are making Flex applications, this release is a must have on many levels. 2.0.1 is 80% quality and 20% key features in support for runtime CSS, modules, and support for OSX. There are lots of engineers and beta customers that worked hard to make this release of Flex the very best.

So let's back up a bit and look back over the past release. The Flex 2.0.0 release was massive. The release saw simultaneous release of Flex SDK, Flex Builder, Flex Data Services, MXML and ActionScript 3 compilers, Flash Player 9 including a JIT compiler, completely new player APIS, DOM Events, an E4X implementation, Binary Sockets, an entire suite of re-written components, and amazing documentation and examples. 2.0.0 release was serious and very large. But there were things we missed, things that could only be found when larger scale development started atop Flex in the real world. As hard as you try, software is a science of imperfection and only with lots of eyes and real-world use can quality be improved. Software does not get better in a vacuum, it improves because people use it and find issues and report them. The nature of 2.0.1 was to remove barriers holding developers back and delivery a hardened and polished release ready for serious development. I believe that with 2.0.1 Flex has really arrived. This is why I did a countdown and why I am very excited about the release.

We didn't stop at quality though, we added some new things to Flex. We added features that development teams need to be successful on large projects cross-platform. These features push things beyond a dot release in my mind, the #1 in 2.0.1 really means something. So lets talk about the features that I am excited about:

1. Runtime CSS - Load CSS and style your application on the fly. Before this CSS was baked into apps at compile time. Many developers requested runtime style support and flex team delivered.

2. Modules - Thanks Roger! Modules allow Flex applications and logic to be broken into smaller chunks and loaded at runtime. This is really the addition of distributed components into Flex. Modules support a high and low level interface in that they can be as simple as loading an SWF, or as complex implementing the Factory pattern. In a nutshell, they rock and get my vote for the coolest feature.

3. Ready for Apollo - Flex 2.0.1 was modified in preparation for Apollo in several ways. The team looked at several features needed for Apollo's success and these were added to Flex 2.0.1. The 2.0.1 release supports (not included) the Apollo development plug-in that makes creation of Apollo apps easy. Duane has some photos of this on his blog. Best way to put it, 2.0.1 paves the way for the Apollo preview release later this year.

If you are looking to create Apollo applications, then Flex 2.0.1 is ready to support you today. If you download the Flex 2.0.1 SDK or Builder you will have access to what I believe is the primary development toolset for Apollo. Want to leverage Apollo? Then it is time to learn Flex.

4. OSX - I switched to OSX 3 months ago because I got access to Flex Builder on the MAC. I have zero need for Windows now and the only remaining winXP machine is my presentation laptop. Java on OSX is first class and you will find that Flex Builder is much more stable on Mac than on Windows. The JVM on OSX is dramatically better and with extra RAM and edited JVM settings, OSX Flex Builder is the best IDE I have used. The extensibility of Eclipse, the rock solid performance of OSX on x86 adds up to a great toolset. I am very proud to be attending my first MacWorld next week and I will be demoing on my MacBook Pro with pride. It took Flex Builder going to OSX to allow me to switch platforms and ditch Windows for good.

I am taking the Flex countdown to 1 now and await the final go ahead to post the new Flex badge. I thank you for your patience on the Flex Countdown and I hope the postings have been a pleasant diversion from my normal banter. No more counting, it is time to code some Flex 2.0.1.

Best part about this release? Notice there isn't a new Flash Player? This will be a trend to watch moving forward. Now that the base stack of Flex is rock solid in player/compiler/language it is time to start development of higher level Flex. The plan is to deliver on the same player and make the development model even better. More on this in the near future...

Go Flex!
Kudos to the Flex Team!
Kudos to Flex Developers!
Go Flex!

Ted :)




Flex 2.0.1 Builder two OSX
1+1 . 1-1 . 1-0...

We are really close to go live on the Flex 2.0.1 download. Sorry for the confusion here we are almost ready for go time.

Add the Flex Badge to your site and be the first to download new Flex bits! As soon as bits post the badge will update:



2 - Flex 2.0.1 Builder two OSX

DIGG IT!     1 Comments Published at 3:25 PM .

Flex 2.0.1 Builder two OSX...
Despite being a prime, two is also a highly composite number..
The first Magic Number...
The atomic number of helium...
Two is the DVD region in Europe, South Africa, the Middle East and Japan...


Flex 2.0.1 Builder two OSX
2-0 . 2-2 . 2-1...

It looks like my countdown is a bit off, so I need to wind things forward a few notches. Sorry for the corrections here. I was leaving room for a margin of error but things will arrive earlier than expected!

Add the Flex Badge to your site and be the first to download new Flex bits! As soon as bits post the badge will update:



3 - Less than 3 days to Module support in Flex (Countdown Correction!!)

DIGG IT!     7 Comments Published at 10:10 AM .

Less than 3 days to Module support in Flex
Three is the first odd prime number...
A triangle is the most durable shape possible...
Triceratops had three horns...
Three is the atomic number of lithium...
On computer keyboards, the "3" key may be used to type the pound sign...
Three is the number of performers in a trio...


Less than 3 days to Module support in Flex...
3-1 . 3-3 . 3-2...

It looks like my countdown is a bit off, so I need to wind things forward a few notches. Sorry for the corrections here. I was leaving room for a margin of error but things will arrive earlier than expected!

Add the Flex Badge to your site and be the first to download new Flex bits! As soon as bits post the badge will update:



4 - 4 days til Flex is ready four Apollo

DIGG IT!     8 Comments Published at 6:52 AM .

Four days til Flex is ready four Apollo...
Four is the first positive non-Fibonacci number...
The mammalian heart consists of four chambers...
The atomic number of beryllium...
In the Rich Text Format specification, language code 4 is for Chinese...
Four those who speak binary, 0010000100...
"Four", an album by Blues Traveler, "4" is an album by Foreigner...
Yell "FOUR" when you hit towards other golfers...

Four days til Flex is ready four Apollo...
4-2 . 4-4 . 4-3...

Add the Flex Badge to your site and be the first to download new Flex bits! As soon as they post the badge will update:



Singleton in MXML

DIGG IT!     16 Comments Published Wednesday, January 03, 2007 at 10:19 PM .

I am in Edmonton Canada this week working with Grant Skinner and his amazing team teaching them Flex. Today we talked a lot about MXML and AS3 Classes and when to use each. The thing is that they are 100% the same. MXML is translated into an AS3 class during the compilation process. There is really no different between MXML and AS3 Classes and they can be used interchangeably. No really! To show this I wrote a singleton in MXML. I have found this very handy for Settings Dialogs and Pop-ups where you want 1 and only 1 instance.

So here it goes:

<SettingsDialog xmlns:mx="http://www.adobe.com/2006/mxml">

<mx:Script>

private static var singleton:SettingDialog;

public static function getInstance():SettingsDialog
{
if ( SettingsDialog.singleton )
{
return SettingsDialog.singleton;
}else{
SettingsDialog.singleton = new SettingsDialog();
return SettingsDialog.singleton;
}
}

</mx:Script>

<mx:TextInput id="name" width="100">
<mx:TextInput id="age" width="100">
<mx:TextInput id="rank" width="100">
<mx:TextInput id="serial" width="100">
<mx:ColorPicker id="uiColor" >

<SettingsDialog>


Usage:
//call popupmanager with getInstance
mx.managers.PopUpManager.addPopUp( SettingsDialog.getInstance() , basePanel , true );



An AS3 Class and an MXML file are identical. Anything you can do in a Class you can do in MXML and vice versa. Plus this way your Singletons can have a UI too. Plus this way your SettingsDialog will maintain state naturally and you will never need to persist a thing. Anytime you pull up the settings dialog, it will be in the state you left it in last time, plus you can just get an instance and change the data in it without being on the DisplayList.

Cheers,

Ted :)


5 - Five days to Runtime CSS

DIGG IT!     11 Comments Published at 8:02 AM .

Five days to Runtime CSS...
Five is the third smallest prime number...
The atomic number of boron...
Five musicians are called a quintet...
The Pentium is a fifth-generation x86 architecture microprocessor...
The number of oceans in the world...

Five days to Runtime CSS...
5-3 . 5-5 . 5-4...


Add the Flex Badge to your site and countdown to a new Flex:



6 - Sexy Number Six

DIGG IT!     4 Comments Published Tuesday, January 02, 2007 at 7:21 AM .

Sexy number six...
Six is a perfect number as 1+2+3=6...
The atomic number of carbon...
The number of strings on a standard guitar...
The number of cans of soda or beer in a six-pack...
A group of six musicians is called a sextet...
The number of Arsenal's legendary centre back and captain Tony Adams...

Six days to developer bliss...
6-4 . 6-6 . 6-5...


7 - Lucky Number Seven

DIGG IT!     2 Comments Published Monday, January 01, 2007 at 1:09 PM .

Lucky number seven...
Year Two-Thousand and Seven...
Seven is the second lucky prime...
999,999 divided by 7 is exactly 142,857...
The atomic number of nitrogen...
The code for international direct dial phone calls to Russia and Kazakhstan...
A 1983 album by Duran Duran...
James Bond's agent secret number is 007...

Seven days to MacWorld...
7-5 . 7-7 . 7-6...


Where to find me:

Ted on Twitter - @AdobeTed
Ted on Adobe Groups
Ted on LinkedIn
Ted on Facebook
Ted at Adobe


Latest

Lists

Links

Jobs

Flex Jobs
city, state, zip

Archives