HP Print Studio RIA live, Pronto! AIR beta

HP Print Studio, a flex application I was technical lead on, went live. It was a pretty cool project, with a rather large group of developers. There was a significant amount of flex/flash integration, which you will be able to imagine once you see the amount and level of animation in the site. We utilized Cairngorm and Flex 2.01, though I believe there will be a lot to be gained from Flex 3 in the upcoming stages (that’s right, this is just ‘phase 1′ – there’s a lot more to come). On the back end we used .Net and WebOrb for .Net to Flex communication. I was pretty surprised and impressed to have the CEO of WebOrb respond directly to our tech support requests from them.

Pronto!Also, there is now a demo of Pronto! at Communigate’s web site. There is also a Beta download at O2 Apps but unfortunately not only does it not work with the latest release of AIR, but Communigate’s official stance is there will not be another Beta release – the next release will be the ‘fully baked’ version. For those of you who missed it, Kevin Lynch, Chief Software architect for Adobe did a demo where he dragged financial data from another AIR application into an email message he was composing in Pronto! The CEO of XIF also did a demo of Pronto! on Day 3 of MAX last year, alongside another demo by the guys at Cynergy. I think there were a total of three such demos that day, so two of them being from companies in D.C. is a pretty cool market indicator, I think. Then again, I’m biased as this is my area I suppose. Anyway, Pronto! was the first Flex application I ever worked on; we started on it when Flex 2 was still in the first alpha release…

A Fighter’s Heart

A Fighter’s HeartI’m over half-way done reading A Fighter’s Heart: One Man’s Journey Through the World of Fighting by Sam Sheridan, a Harvard grad who decided to try his hand at MMA. I thought I would try to google up the video of his fight in Thailand that was shot by National Geographic, and came across an interview of him on The Daily Show. It was hilarious…

Also found this interview of him, but no luck on the National Geographic Show (A Fighting Chance).

Still no sign of the martial arts video (or any MAX related video, for that matter) from the guys at the Yahoo! Developers Network. No wonder they wanted me to go kick the Google! guys in the head…I guess they realize they can’t compete with them. :P

sony ericsson s500i flash lite, leopard, After Effects

Sony Ericsson s500iOK, I just got a Sony Ericsson s500i yesterday, I got it because it seemed like a really decent phone, had no idea it’s OS was Flash Lite until I just happened to see Scott Janosek’s blog post on MXNA, about Mark Doherty’s post on the phone. As far as I can tell, the UI is identical to the UI on my 790a, which as far as I know is NOT Flash Lite. Also the two games that came on the phone are Java applications, not Flash Lite apps. Mark’s post was interesting, though, especially since he mentioned that Sony is making the phone open to third party developers. Hmm…I was never too enthusiastic about developing flash lite apps, because there weren’t many phones in the U.S. supporting it, on top of that, the main vendor, Verizon (Chocolate phone, which doesn’t even come close to the s500i) apparently has made it such a headache to get applications published that doesn’t really seem worth the effort. In the face of that all the hype a while back on Adobe’s site about “make money – build mobile apps for Verizon” seemed like just that – hype. But hey, if in theory I could publish a flash lite app and just load it onto the phone…that does seem interesting, even if just for tinkering.

Which is yet another reason in my list of reasons NOT to get an iPhone…no Flash support (yet). How can you make a phone that can run Safari but doesn’t support the Flash plug in? Completely kills the whole ‘it’s just like a regular web browser on your phone!’ theme in my eyes. What is the web without the flash platform? Gasp-!

There was also a lot of hype and excitement over the release of Leopard, as everyone knows, but I recommend developers and post production people download and read through the PDF Adobe has released on compatibility with Leopard before upgrading. I use Acrobat 8 but honestly could live without it for a few months until the update is released (one of the awesome things I realized when I switched to Mac was how easy it was to create PDFs without Acrobat) but After Effects won’t be updated until December and that could put a stint in my post production workflow potentially. Hm…guess I won’t be upgrading my main work Mac for a while nor the Mac that the s500i syncs with…

ah, yeah, turns out the s500i isn’t natively supported by iSync on the Mac. That was a momentary bummer as a prior Motorola, Nokia, and Samsung user, I had been ecstatic at the performance of my 790a and also how well it sync’d with my Mac. Moments (and $6) later though that issue was in the past, with a plug-in from feisar.com. However another cool feature I had no idea about previously – apparently you can dial numbers on the phone straight from Address Book – won’t work with Leopard since Apple has disabled that feature in the latest Mac OS release. Not that I would likely ever use the feature, but just the thought of it…

Ah, and apparently Lightroom is not certified to work with Leopard, either – photographers beware!  btw anyone know how to move folders of images around and keep the Lightroom develop settings with the images?  In Bridge there’s an option to keep the Bridge settings in the same folder as the images.  I didn’t find something similiar in Lightroom.  Kind of a major pain since I don’t always lug around my external drive where I keep my images long-term; on a shoot I store and develop on the laptop local drive and then move them over later.  I also would really like to see more integration between Lightroom and Bridge…

Best Quote from MAX

If there is one sentence that I would want to quote from MAX, it would be when Kevin Lynch, Adobe’s senior vice president and chief software architect, having just shown the Halo 3 “Believe” interactive flash site in his keynote address, noted,

“…a great job by Microsoft using Flash on their website!”

Halo 3: Believe

(an obvious and well deserved jab at Microsoft’s Silverlight)

:D

Optimizing Compile Times in Flex Builder – Gems from MAX

The background: we’re working on a huge application with .Net on the back end, WebOrb in the middle, and Flex front end. We are also using Cairngorm, which actually I’ve used on EVERY flex project since I first started developement using the Flex 2 Alpha release, but that’s pretty irrelevant to this post beyond the fact that it was cool to actually meet and discuss with Steven Webster. There’s also quite a bit of animation and cool fx – i.e. Flash/Flex integration. There are a few things that are different on this project than any of my previous flex projects:

  • first time using WebOrb (we had some issues getting certain classes to come through properly over the WebOrb wire…when we put in a tech support request none-other than the CEO of WebOrb responded…)
  • first time using .Net back end
  • first time the dev server environment wasn’t on the developers’ local machines – we code locally but when FB builds the equivalent of the bin directory is on a remote machine, where WebOrb and .Net are also running. Each developer has his own dev machine setup like this. The reason for doing this was so that .Net developers could push out updates to their code to all dev machines easily, but it also caused build/compile issues on the flex development side
  • first time using FileSync plugin for Eclipse – this was mandatory to overcome the initial brick wall caused by the previous point; without FileSync flex builder refused to build out to a remote location
  • We’re developing using Flex 2.01 – we were specifically told not to use Flex 3 – because they didnt’ want to develop using ‘Beta-ware’

So that’s the background – while at MAX I got to interact directly with various folks from Adobe, like Steven Webster who I mentioned above, the entire Adobe Consulting group, Matt Chotin, and the Flex Builder QA team. Below are some of the gems I gleamed from them:

“Day 1 @ MAX”

I spent over an hour tonight with Steven Webster and the entire Adobe Consulting team having a very candid discussion. I also spoke with the CEO of WebOrb who had emailed back and forth a bit with us back when we were struggling with the .Net to Flex class issue.

I mentioned that we were having very long build times. First of all, they said to speak to Matt Chotin, who I also spent time with today but prior to speaking to Adobe Consulting team. Apparently Matt is heavily looking into compile time issues in Flex.

Secondly, AC mentioned that there is a known issue using embedded fonts, which I know we are using in our app. Apparently using embedded fonts increases build times quite a bit. They are looking into resolving this.

Tomorrow I will try to discuss with Matt to see what other ideas he might have.

Also, after several sessions with the flex team and talks by the flex team members, it has become apparent that Flex 3 is offering MAJOR performance improvements. Also, and invaluable feature in Flex 3 is the new profiler – which allows you to see exactly what classes are taking up CPU resources and to what extent, etc. Also a pet peeve I’ve had with Flex all along has been replaced by another awesome feature – code refactoring – now if you change a function name, it will refactor all your code for you – no more find/replace to do it manually. It’s all very, very cool…

“Day 3 @ MAX”

OK, Matt Chotin told me to speak with the FlexBuilder QA guys, which I did. They had several bits of advice, but the biggest one was -

switch to FlexBuilder 3. After the sessions I attended, I came to realize a few things more about FB3. Most pertinent to us – it ships with multiple SDKs. So you can open and edit you FB2 project and KEEP it a FB2 project – just as if you were working in FlexBuilder 2.01 – but you get added benefits like the profiler and huge performance increases during development.

Also they strongly suggested keeping FB building locally and having the swf run on the local machine. They said to use a trust file on each dev server (I’m assuming they mean a cross domain policy file) in order to let the swf communicate from the developers local machine with the server on the dev machine.

They mentioned the same thing Adobe Consulting mentioned earlier about embedded fonts increasing build times. But they said, if you have a number of fonts and graphic assets that aren’t changing constantly, then we should stuff those assets into a swc file. That way they won’t keep getting recompiled every time we do a build.

They also said to move parts of the application that the user wouldn’t necessarily always use, into modules. This has multiple benefits:

  • the application will load much faster, as its not trying to load the entire app at one time
  • the application will start faster
  • the application will download faster
  • the application won’t have to re-compile the modules, which again will save build time during development

Again, they kept emphasizing to use Flex 3, because they have really put a lot into performance enhancements.

One of the Adobe guys gave a talk on using the profiler, the profiler itself is documented but the walk-through was helpful. BTW Adobe Connect is getting replaced by a much more powerful app built in Flex. With the profiler you can pinpoint both memory and performance issues.

Another thing they said with relation to fonts that would increase performance, was that if the fonts we’re using aren’t really small then we should turn off FlashType (FlashType is deprecated and is now called AntiAlias, but since we would likely be using the Flex 2.01 SDK rather than Flex 3 SDK, we would use “FlashType”).

Finally, Daniel Rinehart from Allurent gave a talk describing how they work in groups of similar size to ours at their company (he also gave another talk on Continuous Integration in Flex the day before that). There were a couple of critical differences in the way they organize themselves and our situation, which seems to give them much better development and testing time frames. Like us, they have multiple developers on large teams working on different parts of a large application. However, in our case each developer creates a demo application file to test his or her own task. They have a different approach, though. They employ unit testing to verify that each developer’s sub-piece of the application works appropriately, and continuous integration to ensure that one developer’s changes don’t break something somewhere else int the application. And then here’s the stickler – the part that ensures their build times are not huge. They employ the [source] attribute in the application to reference relative paths…so that when a developer builds his flex builder isn’t pulling down the entire application to build, just his parts. Honestly the whole concept is a bit abstract for me and hard to follow, but I plan to contact him later to see if I can get some more details. I did take pictures though so here are some shots of his screen, maybe it will make more sense to you, the reader.

Allurent Flex Environment Setup

Allurent Flex Environment Setup Allurent Flex Environment SetupAllurent Flex Environment Setup

I also typed up notes during the Flex Boot Camp on Wednesday, which includes the notes from Daniel’s talk…I may share those later, but for now, here is the excerpt from Allurent (their Antrolpologie AIR app, developed in Flex, was shown off during the Keynote). Sorry, these notes are in their original form – i.e. quick notes taken during the session, not exactly verbose or even complete sentences. I will also be uploading pictures later which include the slides, etc. from the boot camp and all the other sessions I attended at MAX.

Allurent Notes:

Allurent (Anthropologie application)

Flex Development in Teams
20 Developers on number of projects…

-make heavy use of source control
–really like SVN – great plugin for eclipse, do diffs within eclipse
-peer reviews…adopt some Agile techniques without going pure XP
-have a team member review code before check-in

-integrate everything into a bug system – they use Bugzilla, JIRA is another great choice
-code organization – break project up into chunks
-use Wikis to share information
–design ideas, problems that they don’t want to fix right now, but let rest of team know
-do a lot with Unit Testing – great way to make sure that changes that one developer makes to one part of the system, don’t unintentionally break another part

-flex builder use perspective: check in all of .project and .settings files
–make use of linked resources settings
–can make __ links

Questions from me:
-why not pure agile?
-do they have big projects w/many demo files for the ‘pieces’ of the system – does it affect compile times of FB?
-no – they use unit testing. use SOURCE paths so don’t have to – compiles much faster, and can test parts of application independent of each other

[source path] motor-flex2

-which eclipse plugins do they find useful during flex development?

–subclipse plug-in

-a flex project is flex only, a java project is java only – mixing can get buggy

props – flex project nature – add flex project nature – allow you to build both flex and java pieces in same project

No-one else I spoke to is using the FileSync plugin for flex development…but also no-one is building their flex apps non locally.

So anyway, I hope some of the tips above prove useful to other flex development teams out there…

New AIR Video on Labs

this reminds me of the videos on the Apple web site…I mean that as a complement.

http://labs.adobe.com/technologies/air/

I actually went looking for a newer version of AirPress since the one from AIRApps doesn’t work with the new AIR beta 2.

Yahoo! Developer Network blog mentions me…

haha…I swear I asked them what they meant by ’show me your kung fu’ and they said ‘a roundhouse kick to the head’.  Amazing how the media skews things…just like the CEO of Adobe said at the Keynote.  Here’s the link (I’m the ‘one developer’ they mention).  They said the video will be on their site in one to two weeks.

MAX Day 2 | Sneak Peeks – ‘Mind Blowing’

Sneak PeeksOK today’s Sneak peek session was simply AMAZING. Changes and new stuff like we never imagined…like using C++ in FLASH! Here is my summary (full photo slideshow URL to follow):

Visual CommunicatorVisual Communicator

Video editing for the non-video professional. They said they had third graders use this software to create ‘professional looking video’. It actually has some really cool features you don’t even see in Premiere or Final Cut – features I saw in third party software years ago made specifically for shooting live video with a text reader…but way cooler. There is no timeline. It is made to work similiar to the way live TV is shot. It has Flash Media Encoder embedded within the application. It also communicates directly with Flash Media Server and can be used with streaming video / for live broadcasting. It can be used to switch between up to three live cameras. They gave every MAX attendee a free copy of Adobe Visual Communicator 3 in their conference bags from the beginning of MAX. The thing is, I noticed right away that the disc is labelled “Windows” – so I’m guessing there is no Mac version. Sucks, my kids will have to run Parallels, or worse, Boot Camp, to utilize this software. Personally I will never use it – I use Final Cut Studio 2, and the Adobe tools I use for post are After Effects, Audition, and Encore, although after getting FCP2 I have to debate getting the Mac versions of Audition and Encore. Won’t know until I learn DVD Studio Pro and Soundtrack Pro better. One thing for sure, the Adobe tools are easier to use and more intuitive. Then again, I have a lot more experience using the Adobe tools, too (used Audition since it was Cool Edit, Encore since it came out). OK, sorry, I diverge…

VOIP in the Flash Player (Pacifica)

This was more on Pacifica and a clarification that it was indeed VOIP although Daniel Diebler didn’t specifically mention that term this morning in the keynote. She demonstrated an application called CoCoNiki – a flex application, and then demonstrated an AIR application. (see slideshow – url in upcoming post). Oh, btw – in the keynote this morning (I haven’t posted those notes yet!) she mentioned they are having a PRIVATE beta screening of Pacifica. If you want the Beta let her know…they are especially interested in people who have existing AIR applications in which they want to leverage Pacifica.

Ken Sundermeyer presented Flash Home Flash Home running on mobile phoneThis is one AWESOME technology, to say the very least, especially if what I saw and heard is what I think I saw and heard…

Flash Home lets you completely replace the interface of your phone. Now, you’re thinking…hm…Flash Lite? NO! This replaces the OS of the phone…you boot your phone into Flash Home. Furthermore…it LOOKS like its supposed to be for ANY phone – even phones that aren’t ‘flash enabled’ (so very few of those in the U.S.!). It looked like Ken was doing his demo on one of the newer Motorola Razr phones. Man! That’s not a flash enabled phone as far as I know…at least my Razr wasnt’ before it konked out completely. And the interface in flash was a zillion fold improvement over the motorola phone’s native interface…Moto never looked so good before.

He said the mobile phone personalization market is a $2.7 BILLION dollar industry – NOT including ringtones. Imagine if ANY phone on the market could be now booted with Flash Home – our audience is suddenly way bigger…I imagine Flash Home would catch on as fast or faster than the Flash player on the Internet, if for no other reason than it simply makes your phone so much better.

Move over, iPhone.

Flash Home can access web data AND it is completely integrated with the phone – there is not sandbox – its like an AIR app on your phone. Or rather AIR OS. It can access your address book, SMS, system info, etc. I already had no plans to buy an iPhone – it doesn’t even support Flash and I have my Macbook everywhere I go…so who needs a smaller, less able MacOS? And why would I watch movies on that tiny screen over my 17″ Macbook Pro? I guess its a paradigm I just don’t understand… But now there is even less incentive with Flash Home potentially available a year from now

Unlike WAP, which is very slow – Flash Home is ‘instant on’. Data can be downloaded and still available when you drive into that tunnel and have no signal.

Jeff Baum presented PhotoShop Express.

This is a lightweight, consumer-oriented, web-based version of photoshop. They demonstrated some awesome features that I have never even seen in Photoshop, but I highly suspect it has to do with some amazing imaging algorithms from a new Adobe hire (see below).

It is built with Flex. It has suspiciously similiar (identical) tools to LightRoom, such as rotation and crop, vibrance, etc.

Amazing and new: blemish removal, timeline based, non-linear history, astoundingly intelligent, one-click color replacement and distortion effects. See the slideshow (url to be posted) for more details.

Fireworks CS4

Fireworks CS4 embodies the workflow between Flex, AIR, and Fireworks. You can design an application in Fireworks and preview directly in AIR. Together with Thermo these tools are going to seriously redefine application and web development! They said a Beta version should be available in the next few months.

Indesign / Flex

New web enabled version of Indesign leveraging the power of Flex. They showed a demo application of a restaurant menu that was updated daily with the special of the day, and different layout templates used depending on the type of food being served.

Flash CS4

The new version of flash has a new stage rendering core built around Flash Player 10. That’s right – this is the second presentation where they have explicitly been referring to Flash Player 10. What happened to sticking with Flash Player 9 through and through? Guess it wasn’t cutting it for all the new features they are leveraging in the next generation of flash platform, like VOIP and more.

  • In the new version of the Flash authoring tool you can preview live video on stage at development time, and the video is even interactive; you can use color picker to choose colors from within the video for use throughout the application, etc.
  • It also has new graphics tools for working with 3D space.
  • Tweening can be done directly on an object now, not on the timeline.
  • No more keyframes.
  • Tween path can be modified with a bezier.
  • Wireframing
  • Run time reverse kinematics
  • All that in less than twenty lines of code

Acrobat CS4

  • Flash player is now inside of Acrobat.
  • The UI is written in Flex.
  • CoCoMo client running inside of Acrobat
  • Real time document collaboration within Acrobat

Building Flex on Linux

  • Early Alpha is on Labs NOW
  • No design view

C++ on Flash

  • can approximate multi-threading
  • can utilize existing C++ code
  • can leverage for PhP, Ruby, etc. all from within Flash
  • further enabling AIR applications built in Flash
  • Demo: He ported Quake III to Flash!!!

iSeam Image Application

Seam Carving for Content-Aware Image ResizingSeam Carving for Content-Aware Image Resizing

by Shai Avidan

This guy is a genius. Lucky for Adobe to hire him. Quite frankly, I have never seen anything like it…and he claims the imaging algorithms are actually quite simple. I can’t even begin to describe this. See the slideshow (url to be posted) for before/after/traditional resizing comparisons, and look out for a video of his demo…(let me know if you find one! Hope Adobe posts it!). The future potential for his impact on every image-related technology in Adobe is just plain mind blowing.

Flex on Linux is OUT!

ok, everyone who’s been griping…go to Labs now and get it…it was just in sneak peeks at MAX and they announced they released it to Labs an hour ago.  No design view yet…early alpha.  Ofcourse, you could always just develop on BSD (MAC)! :P

MAX 2007 DAY 2 KEYNOTE – top items

Ok, some urgent/time sensitive things from the keynote, you might like to know, while I sit here waiting for the SNEAK PEEKS to get started….

First of all, Adobe has a Beta application called SHARE…they are only taking a few hundred more beta participants…so this may already be filled up by the time you read this, but doesn’t hurt to try:

 adobe.com/go/share

I’m importing the Keynote Pics into lightroom as I type, so I will post later with the URL for that…

Next, the hightlight of the entire keynote, and the most awesome, most needed addition to our workflow for iterative development -

Adobe THERMO.  It’s basically flex for designers – heck, I would want to use Thermo for some things even as a Flex Developer.  It was just amazing…

It’s Eclipse based…Flex and Thermo can open and edit the same file.  Imagine what Dreamweaver is to HTML…is Thermo to MXML.

OK…sessions starting…more later..