Currently Browsing: AIR

AIR Screen Capture. Not So Fast.

AIR has all the makings to support the perfect lightweight, cross-platform screen capture application. After all, as the screencast immediately below shows, you can copy all the pixels on the display list that you want and save them to the file system or upload them to the interweb node of your liking.

(more…)

One Small Step For Silverlight


When you take the devil into your mouth, you’re doomed! For he is lying there waiting for you inside that air conditioned chalet at the PGA Championship.

MS Booth at PGA Championship

If the path to a man’s heart lies through his stomach, then golf is the Cour’souvra for his soul. All kidding, aside it was awesome to get the CEO treatment from Microsoft RIA evangelist Josh Holmes. The funny part is I wouldn’t have had the opportunity if I hadn’t run into Josh at the Mid-Michigan FlexCamp last week–its a strange world.

There are a few takeaways from the whole experience:

  • RIA nerds, regardless of their platform of choice, are more alike than different. It’s not a zero sum world and we should dialog / get together more often.
  • After talking to Josh I’m totally stoked to see the Silverlight apps and video MSNBC has put together for the Olympics. I hope its a “shock and awe” effort that propels RIA and web video forward.
  • Michigan is a great place to live and work. We’ve got bright, funny, down to earth people, world-class universities, great quality of life, affordable cost of living and fantastic entertainment options. Through tech connections I’ve been to Major League Baseball, NHL and big time college football games. Yesterday though, was the icing on the cake. There aren’t too many places where you get to see major championship golf tournaments and Oakland Hills is a national treasure worth seeing on its own. The best part is there’s so much still left to do and see (NFL, NBA, auto racing, etc.).
  • We ran into a PGA-IT staff member, Kevin Donahue, at the event and it turns out the PGA is excited about Adobe AIR and is using an AIR app for its POS system (weird how nerdy we managed to make a golf outing). AIR has a ton of potential. In my view, Adobe is riding a big wave in the deep ocean–its going to be interesting to see just how high the crest actually is.

It was a fantastic day and I’d like to once again thank Josh Holmes and Microsoft for their generosity. My expectations for tech evangelism just went sky high. ;-)

For those inclined, there’s a photostream below the fold (pretty much straight from the camera as I haven’t had a chance to weed and color correct).

(more…)

Adding Styles To Custom Flex Components

I’ve been slowly learning custom AS3 Flex component development and finally had the desire to add CSS styling into the mix. Here’s a terse, but graphical tutorial on the simplest implementation I could come up with.

Review Flex CSS basics.

Styles cascade just as they do in the browser. There are 3 different ways you can set styles via MXML.

css_basics.png

Styles show up in Flex code hinting, but in ActionScript you can’t set the style directly as if it were a property.

2008-05-24_0048.png

Instead you have to use the setStyle( [property name], [property value] ) method.

setting_styles_in_as.png

Creating Custom Styles.

Add a style metadata tag outside the class definition. This tells the compiler the name and attributes of your particular style and lets it do its magic.

2008-05-24_0058.png

Initialize a CSSStyleDeclaration if one doesn’t exist already and set default values on its properties if they haven’t been set.

constructStyle_final.png

Override the styleChanged method and determine if the style has been modified. If so, set a dirty flag and tell the display list to redraw itself. (Note: creating “dirty flags” on a per style basis is pretty unwieldy if you have more than a couple of styles. It’s really a tradeoff between readability, tediousness and rendering performance.)

2008-05-24_0051.png

In the updateDisplayList method check the styles dirty flag and draw / update if needed. Make sure to set the dirty flag back to false after updating.

2008-05-24_0055.png

Here’s what the finished masterpiece looks like (sarcasm intended). Context click to view the source of the MXML and ActionScript class file.

RIAs Blur Lines – Add Something New

There’s a great interview with Mitch Grasso, CEO of SlideRocket, over at InsideRIA.

2008-05-20_1245.png

Mitch mentions one of the things that differentiates SlideRocket is presentation analytics . This is actually one example of the tectonic shift content creation software is undergoing. Content creation tools, desktop or otherwise, must leverage the cloud (push and pull). What makes software owners successful is how their audience receives / interacts with their content. The rules of the game are changing. Content creation apps must not only create and deploy content to engaging presentation tiers, they must connect to or provide a great set of web services that bind creators to their audience. The audience is everything — risk losing sight of it at your own peril.

Mitch also notes how he fully expects SlideRocket’s AIR client to dominate the web tier Flex client.

2008-05-20_1247.png

This is the argument Dare Obasanjo was making the other day.
2008-05-20_1428.png

So what is SlideRocket doing? Maybe the web service just expands your audience reach and makes the product more accessible. Maybe the web service will be tiered with a free web client and a premium desktop client. However, the real differentiator between SlideRocket and PowerPoint or Keynote is the presentation, sharing and community building that a killer web service can bring. RIA is software and services packaged together and SlideRocket is schooling us on how it should be done. Wake up Neo.

We Have Ubiquity and Rich Tooling — What’s Next?

I spend a lot of time ‘trawling’ the web, often just getting swept up by the tide and coasting from information island to information island. Yep its a time sink, has a hugely negative impact on how much sleep I get and isn’t terribly efficient. The operant conditioning of link surfing keeps me going long after I should, but the intermittent payoffs are worth it. Tonight I ended up on a Clay Shirky article from 2004 by a circuitous path (Science Channel program on TV mentioned Metcalfe’s Law –> Google –> Wikipedia –> Wikipedia references –> A Group Is Its Own Worst Enemy). Clay’s article covers a lot of ground and is a killer read, but a couple of things popped out at me within the context of RIAs that are worth sharing.

2008-05-19_0100-2.png

Ubiquity is crucial. Clay is obviously talking about the impact of the web’s ubiquity, but it nicely ties into one of the “talking points” every Flash guy has carried around in his bag for the better part of a decade — access is everything. Asking customers to ‘meet you there’ just doesn’t cut it. In fact it’s a big enough barrier to ensure you won’t succeed most of the time. So, when you see Microsoft make claims about imminent ubiquity, Sun talk about tapping into Java’s ubiquity, or Adobe polish its already ubiquitous armor it’s because it’s that critical. So critical in fact that it’s something no one (developers or consumers) should have to think about.

Now in my book ubiquity is a bit passé and it’s definitely not something we can expect to remain exclusive. Today’s ubiquitous client needs to be updatable, persistent (hello AIR) and increasingly capable. In fact, quickly delivering content to the ubiquitous platform is the next evolutionary step, and damn if Shirky wasn’t saying the same thing back in ’04 (shakes fist at Shirky for being so insightful).

2008-05-19_0046.png

All of the would be RIA vendors are chasing a compelling top to bottom stack that includes rich developer tooling (Eclipse, NetBeans, VisualStudio, Blend, Flash, Flex, Thermo). In many ways RAD and integration are already expected and we’ll continue to see workflow and feature improvements as a matter of course. This begs the question of what the next evolutionary steps are? I don’t pretend to be Clay Shirky, but I’d bet on at least two things:

  1. Simplicity is the new “ubiquity”.
  2. Leveraging platforms from outside the traditional “stack” will be critical.

The goal of all software should be to make complex things simple — that’s where the real value for the consumer / group is and “interesting new kinds of things happen” as Shirky notes. Simple tools yield tremendous benefits — it’s a system we humans have been scaling for untold years with each generation standing on the back of the previous (one could argue the pencil — a simple tool — ultimately paved the way for our greatest technical achievements).

It’s the second idea that’s actually more interesting. Leveraging the platform from outside of the traditional stack is what I call the Photoshop strategy. What happens when Photoshop is network aware and can deploy not just static content, but full blown RIA apps? Because of it’s network awareness (feeds / metadata) the app could intelligently suggest or automatically adjust both the content and the deployed RIA (ok maybe we’re still a ways away from this, but it seems plausible in the very near future). Just the fact that Photoshop, land of photographers and decidedly not developers, could create a sophisticated RIA (read not static) deployable to a ubiquitous client would be an evolutionary advancement (a group like photographers has to take the client, the tooling and the development for granted). When you see Adobe aggressively building out Web services to compliment the client and content creation tools (they’re building an open system) the picture gets immediately clearer. New, interesting things are indeed happening.

Page 5 of 7« First...34567