on flash on the iPhone / iPod Touch

There’s much wringing of hands about the announcement from Apple that the iPhone (and iPod Touch) would not be getting Flash in the foreseeable future. I’m actually pretty happy that Flash isn’t on the way. Don’t get me wrong, I enjoy a good Flash website or video as much as the next guy.

But try this: on your Mac, open Activity Monitor. Let it process for a few seconds to get a baseline reading. Then, open a Flash website. Watch the change in Activity Monitor. On my 8-core Xeon Mac Pro system, a Flash website easily chews through 50% of a 3 GHz core – over a gigahertz of CPU without breaking a sweat.

That’s more CPU than is available on my iPod Touch, which only sports an embedded 400MHz Arm chip and 128MB of RAM. And, even if the Touch could muster up the horsepower to run a Flash site, it would suck the battery dry pretty quickly, and crank out more heat than would be healthy for the little device.

No Flash? No big deal. I don’t think it’s an evil conspiracy, nor a ploy to force Adobe to cater to Apple. It’s a decision based on something very simple and pragmatic: adding Flash would detract from the overall iPhone / iPod Touch user experience. People would start complaining about crappy battery performance, overheating iPhones, and sluggish UI responses. Better to just say no to Flash (at least in the current incarnation) and find a better way. For video, the iPhone chipset can handily decode higher quality (but non-Flash) video without breaking a sweat.

I’m hopeful that tomorrow’s SDK announcement is going to bring some very cool stuff. I’m also hopeful that whatever apps are made available (even if Flash is one of them) that I won’t have to worry about battery life when running them.

Social Network Mapping with Kartoo

Every now and then, I remember about the great search application called Kartoo. It’s a flash UI on top of a bunch of search engines, and does some really interesting things with the aggregated search results. The coolest (and most visible) thing is the “concept map” view of search results – and this display doubles as an on-the-fly social network diagram.

For example, I just did a quick ego search (don’t laugh – you do it too. fess up!) for “darcynorman.net” to see what kind of diagram came up. I was surprised by how on the mark it is. The diagram is a good starting point (although far from comprehensive) for getting an idea about what interesting bits I published (since only those will be linked to by others), and you get a rough idea of my immediate social network. The display is paged, which is unfortunate and counterintuitive (since you can zoom and pan the diagram, and pagination only makes sense for text lists…). Here’s a screenshot of the second “page” of results mapped out:

Kartoo Social Network and Concept Map

Every now and then, I remember about the great search application called Kartoo. It’s a flash UI on top of a bunch of search engines, and does some really interesting things with the aggregated search results. The coolest (and most visible) thing is the “concept map” view of search results – and this display doubles as an on-the-fly social network diagram.

For example, I just did a quick ego search (don’t laugh – you do it too. fess up!) for “darcynorman.net” to see what kind of diagram came up. I was surprised by how on the mark it is. The diagram is a good starting point (although far from comprehensive) for getting an idea about what interesting bits I published (since only those will be linked to by others), and you get a rough idea of my immediate social network. The display is paged, which is unfortunate and counterintuitive (since you can zoom and pan the diagram, and pagination only makes sense for text lists…). Here’s a screenshot of the second “page” of results mapped out:

Kartoo Social Network and Concept Map

JSwiff and Flash File Generation

We had a great hacking session today, with Josh piped in over iChat and VNC from California, and King and I hunkered around his collection of Cinema Displays. We managed to replace our krufty jGenerator-powered flash file wrapper class with one based on JSwiff, in under a day.

JSwiff takes care of the nastiness of dealing with the .swf file format, and provides an extremely helpful XML intermediary – you can convert any .swf file to this xml format, modify the xml, then render back as .swf. Very handy for what we need to do.

Basically, all we do is a fancy search-and-replace for some custom tags (for things like the image – encoded in Base64 – and the tombstone fields for display on screen) in this intermediate xml file, then pass it into JSwiff and ask it to transform that xml into a swf that we can use in our finished presentation. It’s fast, and so far very reliable. As an added bonus, it appears to handle accented characters and such, which totally borked in jGenerator. Mavericks will look better now, once I regenerate all transformed assets.

And JSwiff doesn’t look like it will be affected by the scary deadlocks that made jGenerator basically useless for us. Yay, JSwiff! 🙂

Even better, if this works out (it’s still being tested), then Pachyderm 2 is fully usable again, and on track for the October release!

We had a great hacking session today, with Josh piped in over iChat and VNC from California, and King and I hunkered around his collection of Cinema Displays. We managed to replace our krufty jGenerator-powered flash file wrapper class with one based on JSwiff, in under a day.

JSwiff takes care of the nastiness of dealing with the .swf file format, and provides an extremely helpful XML intermediary – you can convert any .swf file to this xml format, modify the xml, then render back as .swf. Very handy for what we need to do.

Basically, all we do is a fancy search-and-replace for some custom tags (for things like the image – encoded in Base64 – and the tombstone fields for display on screen) in this intermediate xml file, then pass it into JSwiff and ask it to transform that xml into a swf that we can use in our finished presentation. It’s fast, and so far very reliable. As an added bonus, it appears to handle accented characters and such, which totally borked in jGenerator. Mavericks will look better now, once I regenerate all transformed assets.

And JSwiff doesn’t look like it will be affected by the scary deadlocks that made jGenerator basically useless for us. Yay, JSwiff! 🙂

Even better, if this works out (it’s still being tested), then Pachyderm 2 is fully usable again, and on track for the October release!

New theme etc…

I just switched the default theme of this blog to the latest K2 theme by Michael Heilemann at binarybonsai.com. Michael created the Kubrick theme that I was using before (and which was also adopted as the default for all new WordPress installations).

K2 is a really nice design, with some great thought to functional layout. It supports a boatload of useful plugins, and displays their magic if they are installed.

Check out the cool ajax-powered search dealie – just start typing a query, and out pops a list of matches. Pretty cool. Comment submission also uses some ajax juju, but it’s a bit funky at the moment, and isn’t quite fully baked yet. Still, quite cool.

So far, I’ve lost my fancy schmancy banner image rotator, but that’s not such a bad thing. I’ll work on adding it back in when I get a chance – I have to recreate the images for the new wider design anyway).

Also, while having another less-than-fully-productive day staying at home with The Boy™ while Janice is sick in bed, I was able to download (but not yet compile successfully) the Ming library for creating .swf files. King suggested this during the Pachyderm developer’s conference call (which I missed because I am out today), and it looks like a much nicer solution than Josh and I were thinking of – Ming would provide a nice happy medium, where we just alter how we generate our .swf-wrapped images, and the dozen flash template files don’t need to be any the wiser. The other option is JSwiff, but it’s a much lower-level library, meaning we’d have to be messing with the icky details of the flash file format. With Ming, we just create objects, and tell it to do stuff. Much nicer 🙂

I just switched the default theme of this blog to the latest K2 theme by Michael Heilemann at binarybonsai.com. Michael created the Kubrick theme that I was using before (and which was also adopted as the default for all new WordPress installations).

K2 is a really nice design, with some great thought to functional layout. It supports a boatload of useful plugins, and displays their magic if they are installed.

Check out the cool ajax-powered search dealie – just start typing a query, and out pops a list of matches. Pretty cool. Comment submission also uses some ajax juju, but it’s a bit funky at the moment, and isn’t quite fully baked yet. Still, quite cool.

So far, I’ve lost my fancy schmancy banner image rotator, but that’s not such a bad thing. I’ll work on adding it back in when I get a chance – I have to recreate the images for the new wider design anyway).

Also, while having another less-than-fully-productive day staying at home with The Boy™ while Janice is sick in bed, I was able to download (but not yet compile successfully) the Ming library for creating .swf files. King suggested this during the Pachyderm developer’s conference call (which I missed because I am out today), and it looks like a much nicer solution than Josh and I were thinking of – Ming would provide a nice happy medium, where we just alter how we generate our .swf-wrapped images, and the dozen flash template files don’t need to be any the wiser. The other option is JSwiff, but it’s a much lower-level library, meaning we’d have to be messing with the icky details of the flash file format. With Ming, we just create objects, and tell it to do stuff. Much nicer 🙂

Flash Player 8 Public Beta

I’d seen somewhere on the blogosphere (perhaps on John Dowdell’s blog?) that Macromedia was running a public beta of the Flash 8 player, and that it apparently kicked some serious performance ass over the current version.

I just downloaded it on one of my systems, and holy crap is it fast. Why wasn’t flash this fast all along? Loads fast. Almost psychically responsive (things happen instantly, with no lag).

Macromedia – Flash Player : Macromedia Flash Player Public Beta

I’d seen somewhere on the blogosphere (perhaps on John Dowdell’s blog?) that Macromedia was running a public beta of the Flash 8 player, and that it apparently kicked some serious performance ass over the current version.

I just downloaded it on one of my systems, and holy crap is it fast. Why wasn’t flash this fast all along? Loads fast. Almost psychically responsive (things happen instantly, with no lag).

Macromedia – Flash Player : Macromedia Flash Player Public Beta

Laszlo Platform now open source

The Laszlo Platform, which is kinda like Macromedia Flex, was just released as open source (under the Common Public License).

I’d looked at Laszlo Platform a while back, and it was pretty cool, offering dashboard-like stuff, sorta like Macromedia Central meets Sherlock meets Konfabulator. Kinda cool for dynamically generated flash content and widgets.

Open Source announcement here, and thoughts from the company’s CTO here.

It’s kind of like Flex, but without coughing up $12K per CPU on the server. Might come in handy for a Pachy 2.5 (or 3.0) authoring interface…

Thanks to Matt Raible for the link.

The Laszlo Platform, which is kinda like Macromedia Flex, was just released as open source (under the Common Public License).

I’d looked at Laszlo Platform a while back, and it was pretty cool, offering dashboard-like stuff, sorta like Macromedia Central meets Sherlock meets Konfabulator. Kinda cool for dynamically generated flash content and widgets.

Open Source announcement here, and thoughts from the company’s CTO here.

It’s kind of like Flex, but without coughing up $12K per CPU on the server. Might come in handy for a Pachy 2.5 (or 3.0) authoring interface…

Thanks to Matt Raible for the link.

XML in Flash

This is an old Builder.com article (from May 2003), but goes into the guts of how to use XML in Flash. Might come in handy for Pachyderm…

On a side note, wtf is up with builder.com? They have a redundant .com in their address (builder.com.com – I assume that means they’re part of CNet, famous for “news.com.com”), and the URL scheme they use is a huge PITA to type in (I had it open on one machine, and needed to get it to the other… Took way too long, and some apparent numerical dyslexia kept getting in my way. Doh.

This is an old Builder.com article (from May 2003), but goes into the guts of how to use XML in Flash. Might come in handy for Pachyderm…

On a side note, wtf is up with builder.com? They have a redundant .com in their address (builder.com.com – I assume that means they’re part of CNet, famous for “news.com.com”), and the URL scheme they use is a huge PITA to type in (I had it open on one machine, and needed to get it to the other… Took way too long, and some apparent numerical dyslexia kept getting in my way. Doh.

ECMAScript for XML (E4X)

Saw a link to E4X yesterday, but nobody seemed to know what E4X really was, only that they had a very PR-ish PR.

Sean Corfield, over at An Architect’s View, has provided some more info. Basically E4X provides a more complete DOM, with methods to read, create, and query an XML document (including an XQuery implementation).

Also, it appears that E4X has grown from BEA’s scripting extensions, so it’s not a brand new thing – that’s good, in that it’s been in the wild for a while, rather than being restricted to the lab.

Bookmarking this, in case it comes in handy for the Pachyderm flash templates…


var over27inEng = empdoc..employee.(department.@id == 500 && age > 27);

This will return all employee nodes (like //employee in XPath) which have:

  • a department child with an id attribute equal to 500 and
  • an age child with a value greater than 27

Saw a link to E4X yesterday, but nobody seemed to know what E4X really was, only that they had a very PR-ish PR.

Sean Corfield, over at An Architect’s View, has provided some more info. Basically E4X provides a more complete DOM, with methods to read, create, and query an XML document (including an XQuery implementation).

Also, it appears that E4X has grown from BEA’s scripting extensions, so it’s not a brand new thing – that’s good, in that it’s been in the wild for a while, rather than being restricted to the lab.

Bookmarking this, in case it comes in handy for the Pachyderm flash templates…


var over27inEng = empdoc..employee.(department.@id == 500 && age > 27);

This will return all employee nodes (like //employee in XPath) which have:

  • a department child with an id attribute equal to 500 and
  • an age child with a value greater than 27