Day Three started straight with multiple sessions. I went to "Flash Interacting with The Physical World", which was kind of interesting, but nothing amazing. It was basically a marketing pitch from company called Making Things to promote their system and hardware for controlling various input/output devices, such as light sensors, LEDs etc. through Flash. The whole thing was utilizing XML sockets so basically Flash was just glued on top of the rest of the system and could have been implemented in any other language. They did, however, have some ready-made Flash components that you could use.
The next was Branden Hall. Everybody in the Flash community recognizes his name and I had never before met the guy so I wanted to see him. Branden gave a talk on "ActionScript for Everything Else", a real-world, pragmatic view on working with Flash and Actionscript. From some net discussions I had an image of a guy, who's not really a guru kind of programmer, but just puts a lot of energy in everything he works on and is not afraid to try new things. That image only became somewhat stronger during the talk. I have lots of info on his presentation, but I'll just bring up some highlights for now: Branden's working on a new UI component kit called "Buzz" that's supposedly to be better, faster, lighter etc. than MM's component kit (that's kind of easy to do - the quality of them isn't that great); only runtime matters to users, so ASv1 for some things, ASv2 for others; MX2k4 components often overkill for users and a bitch to skin (I'll second that); some good notes on the use of delegates and event engines; and as a conclusion: there's no one way to do things in Flash and one shouldn't be afraid to break "rules" and to learn new things.
I would have liked to go to Branden's Q & A which was up next, but opted for Comcast's presentation since it was at the same time. Those who don't know, Comcast and Macromedia published a press release some time ago about Comcast licensing Flashcom and starting to use it big time. Obviously, Comcast crew was very impressed of what they had achieved, since a large part of the presentation they were just showing off their Flash-based portal. I talked to several of them and it's really quite remarkable what they have been able to do considering how small their team is. It's another good example of how software teams should be organized to be effective. Also, one thing that makes their life much easier and the experience much more enjoyable is that since they are targeting their own customers only they can fairly well predict what the client bandwidth and target that instead of worrying about providing at least some user experience for really low-bandwidth, such as modem users.
I was late for the next session after lunch, but there wasn't anything too interesting. So I did some session hopping, from Penner's drawingAPI Q & A to Workflow Strategies, then finally ended up in Guy Watson's Q & A (flashguru.co.uk). The poor guy didn't get the equipment working properly and there were only a few of us in the session, but I have a high respect of him. He really seems to know his stuff and has recently been working on Flash JSAPI a lot. I asked if you can access the file system through JSAPI and he answered that he and Burak (another well respected Flash hacker) has been thinking about that too, and Burak had come up with a DLL that will allow just that, so great news!
Last two sessions (or actually three, went to Nazke's presentation in the end, that guy just does amazing things with graphics!) for me were Jobe Makar: Real-time Multiplayer Games in Flash and Mike Chamber's Central presentation. ElectroTank's Electroserver 3 seems to be a fairly well written real-time application server for Flash. They even have their own server-side actionscript interpreter and lots of functionality geared towards real-time gaming. Mesh' presentation on Central was actually somewhat of a disappointment even though it was pretty much what the program promised. It was just a basic demo of features and a simple how-to on Central programming. So I went to see the Nazke's amazing demos before the end.
After the disappoint of the first day, FlashForward delivered: lots of good information, a chance to meet the best of Flash guys in the world, and overall a fun event! Only one thing to rant about the last day, the wireless still wasn't working so the network worked properly only half a day during a three-day conference, which was pretty sad.
Again, you'll find my raw notes for day three below.
---
Flash Interacting with The Physical World:
Branden Hall: ActionScript for Everything Else
- ASv2 is not Java! Doesn't have the performance, libraries etc.
- compiles down to ASv1
- It's runtime that matters to user
- MX2k4 Components
- great for high-end RIAs
- often overkill otherwise, too big too slow
- architecture not documented
- skinning isn't that easy...
- not all source available
- custom components
- v2 style allows you to make everything in code
- they speed development
- they make you think abstractly
- often ripe for reuse
- applying oop can be very different in different languages
- leverage AS in design patterns
- Buzz Component Kit - new component kit Branden is building
- small, fast, modular, flexbile, easy to use
- easy to skin & extended
- easily add features
- core classes open source
- based OSX Cocoa
- includes sequencing code
- initial release replicates v1 set
- for any, and every kind of Flash
- unique object IDs
- time segmentation
- delegates
- going to release it really soon now...
- delegates
- components don't know "outside"
- dleegates = informal protocol
- "will", "should" before an action
- "did" after an action
- can also be used for data sources
- centralized events
- for any object that needs observers
- can track / debug events easily
- can observer per object or per event
- no mix-ins or code replication
- key/value coding
- take getters / setters to new level
- combined with [...] syntax
- allow for any property in any object to be observed
- can be used to easily bind objects
- conclusion
- there is no one way to Flash
- base your way on goal & knowledge
- don't be afraid to break rules
- try new idea!
- learn more outside your normal range
- don't forget to play!
Eric Elia, Comcast: Flash in a 100% Broadband Online Service
- over 5MM broadband customers
- 100% broadband audience - no dial up
- building from scratch
- build fast and always-on applications to differentiate the broadbad experience
- Flash is now the best platform for building broadband applications
- fully-customized user experience
- integrated video
- launched new online service built for 100% broadband audience in fall 2003
- comcast.net is most/used start page among Comcast high/speed internet customers
- flash platform has helped achieve measurable success in less than four months
- over 10x in video usage through comcast.net
- estimated over 100k per month reduction in support costs
- over 5x increase in use of personal customization features
- bradband ue drives true usage
- people watch comcast video for almost 3x as long as other internet video ( 2:53 min vs < 1:00 min)
- from statistically sound ample of third-party CDN data
- average "traditional" video player based on non/Flash video, served in pop/up window, including features such as playlisting
- Comcast video served through "The Fan"
- Jeremy, the Flash guy
- why flash
- flexible and light
- user experience
- large footprint
- easy video integration
- comcast has 97% Flash penetration among customers
- performance issues, but can be overcome by optimizing code
- video usage has doubled every month since the launch last year
- buffering, great because you can fairly well predict users bandwidth
- Kevin, engineering manager
-why Flash?
- single code base
- cross platform compatibility
- low-cost development environment
- rich UI
- less cross platform issues f.ex. compared to Java
- possible solutions for desktop
- central
- out of box projector wrappers:
- screeenweaver
- northcode
- FlashJester
- Custom Flash Client
- VB / C#
- Java/C++
- video about 500K/s, 24 frames /s
- using Sorenson Squeeze
- VitalStream for Flashcom
- live stream coming March 18th
- they are toying with ip-phones
Did some session hopping, from Penner's drawingAPI Q & A to Workflow Strategies, then finally ended up in Guy Watson's Q & A (flashguru.co.uk)
- has to run the IDE so cannot be used as a generator replacement
- Burak wrote a DLL to access the file system from JSAPI. Absolutely great for ant building
- There's a document DOM but cannot be printed out in XML form?
- demo of a pretty cool 3d box component added in the IDE
Jobe Makar: Real-time Multiplayer Games in Flash
- ElectroServer 3
- room variables
- user variables
- user numbering
- exchnaging data objects (between clients)
- server-side actionscript/Java -- plug-ins
- authoritative-cilent game
- reproducable results on the client
- clients don't necessarily agree:
- one thinks the game is over
- the other is patting himslef on the back for amazing evasive maneuvers
- authoritative-server model
- odn't let client make important descisions
- collision detection, grabbing power-ups etc.
- gamasutra.com
- gamedev.com
- ai-depot.com
- books
- game programmming gems 3
- section 5.1 Jim Greer
- section 5.4 - Justin Randall
- remote shared objects in ElectroServer 3?
Mike Chambers: Application Development with Macromedia Central
- you can find other Central applications, pay online
- every Central application has a product XML file
- every Central application has to have a product ID
Hopped in to Eric's session half-way through
Erik Natzke: Inventive Interaction: