Hacking around AIR's shortcomings

James Robertson: "Today's Smalltalk Daily looks at Glare, a library for enabling communication between Flex/Air front ends and Smalltalk backends." - James demonstrates how to create a Flex/AIR based frontend to a backend Smalltalk service, which is cool. Folks do this sort of stuff every day with other languages. But, what if I want to create a Flex/AIR application that runs on the client and lives inside my app, or maybe hosts code I've already written, that does awesomeness AIR can't do? The only way around that limitation today is to open a socket and send "commands" to another application, just like you're doing when you're communicating with a web service. Great for web services, crummy on the desktop.

Adobe could have a killer scripting environment for inclusion into a host application, think VBA, if they would consider moving that direction. Until then it'll fall just a bit short for doing real applications.

For writing real desktop applications today, with cool UI's, in a nice garbage collected, stop the developer from hanging himself, and allows you to use your existing code bases, the choice is clear, Microsoft .NET with WPF.

Adobe I love you, I really, really love you. You're so close, why not go the extra mile and allow existing code to run within your runtime, or allow us to host the AIR runtime within our applications?

Labels: , , ,

Posted by Rob at 1:46 PM | 0 comments | Click here for a permalink to this entry.

Flex visited by a Smalltalker

James Robertson: "Flex development takes place using XML. I'm sure that some developer somewhere thought this was a good idea - but he needs to be taken out behind the woodshed, stat." - I had a rant about XML a little while back. James and I are in total agreement on this point.

Labels: , , , ,

Posted by Rob at 3:37 PM | 0 comments | Click here for a permalink to this entry.

A question for AIR/Flex/Flash experts

First question. Let's say I work for a company that does video security systems and I want to be able to drop my video into an AIR/Flash application, how does one do that?

Second question. Let's now say I have to be in complete control of said video stream? Let's also assume I have a high quality media framework, or pipeline, that does this very thing. It's highly flexible and optimized for receiving, decoding, and displaying video, and audio, and meta-data for that matter. It's crucial to use this existing framework. AIR/Flash video won't do, period.

So, the big question is how do we marry our media pipeline to AIR/Flash? I've asked numerous folks and the answers are always the same. You cannot do that. I'm cool with that answer, but there's always a skeptic among the crowd that believes there's a way to "hack" around things when you're told you can't do it. :-)

One answer may be creating our own video codec? We could write that on top of our framework and do whatever is necessary to insert our video into the runtime as we see fit. Could this be one possible solution?

If you're an AIR/Flash expert that has done this sort of work, I'd like to hear from you. We've gone through so many options that won't work, including Alchemy, I don't believe this is possible to do the way we'd like to do it, but someone may have a way.


Labels: , , , , ,

Posted by Rob at 9:57 AM | 0 comments | Click here for a permalink to this entry.

The web is not anywhere near the desktop

Duct Tape, fixer of all things!Ted Patrick: "Today MindJet launched MindManager Web, the online version of the popular mind mapping software. What is cool about it is that it has an identical look and feel to the original MindManager. Actually it makes me wonder when they replace the desktop version with an AIR app." - I don't get it when people think they can fully replace desktop apps with web apps, even if they're written in Flash/AIR, which is kind of cheating because you're running in a runtime, inside the browser, on the desktop. There are certain things the web is good for, there are other things it cannot replace. A drawing application, especially a really good one, is going to be tough to replace.

Having said that I think the web is great for services and it's super nice when the desktop application can be enhanced by a web service. We did this at Visio with the Find Shape feature. A web service for locating, and downloading, shapes from the web, into the desktop application. It worked quite well and gave you all the power and control of the desktop application.

Web only apps are still not there as a 100% replacement for the desktop, or client applications. Why do you think we have an iPhone SDK? Folks just couldn't do everything they wanted in the browser.

From what I know about AIR it has extreme limitations, some will see those limitations as a feature, which is true in some senses. If you have a HUGE investment in reusable frameworks, you cannot easily reuse those frameworks inside the AIR sandbox. That, for me, is a show stopper, which is quite unfortunate because it could be a great competitor to Microsoft's .NET if only you could reuse code more easily. Love or hate 'em, Microsoft has always done a great job of bringing old code into their new worlds. We've been able to bring critical frameworks into .NET very easily, and they behave like great .NET citizens.

Labels: , , , , , ,

Posted by Rob at 11:30 AM | 1 comments | Click here for a permalink to this entry.

Rendering on top of Adobe AIR?

I have a question for the Adobe AIR team, and I certainly hope you can do what I'd like to do.

Help WantedWe have a highly optimized media pipeline we use to display live and playback video. It's highly configurable and adaptable. Pretty obvious given we're a company that develops digital video surveillance systems. We have our own because we need to be in charge of that pipeline. We need to know what's happening and how so we can give our users the best possible experience. The bottom line. It's critical to the success of the product.

Now that we've laid the foundation for the question, here it is. How can I render into an AIR based application and not degrade performance? In a recent release of .NET 3.5 we can do this very thing in WPF, although I'd call it a bit of a hack, it works as expected, and, in general it gives us the performance we're after and makes us a nice WPF citizen.

Are there any technical articles floating around that...
A) Describe how AIR renders.
B) Describes a technique for painting on an AIR surface in a way that doesn't effect AIR performance?

Now, I'm no wilting flower when it comes to rolling up my sleeves and getting dirty. If it means using some Adobe provided API's for rendering, great, point me in the right direction!

My bottom line. I need to be able to render our video into an Adobe AIR application, the way I want, with the performance I expect, otherwise AIR is useless to me for this application.

Thanks for any, and all, feedback.

P.S. - Dear Adobe, don't take that the wrong way. I think AIR is an awesome technology. It just may not be useful for what we want to do. Thanks.

Labels: , , , ,

Posted by Rob at 10:32 AM | 0 comments | Click here for a permalink to this entry.


Rob Fahrni has been a Software Developer for 20 years. He's developed DOS, Windows, Linux, iPhone, and Palm based applications in C, C++, Objective-C/Cocoa, C#/ASP.Net, and, yes, even BASIC...
About >>

CrabApples.NET Home Kim Fahrni, Hacker Widow Haileigh Fahrni, My Culinary Journey Taylor Fahrni, Goin' Buggy Jerry Fahrni, Pharmacy Informatics and Technology

Apple Core Labs, LLC RxCalc - A Pharmacokinetic Calculator for iPhone


I work at Pelco. The opinions expressed here are my own, and neither Pelco nor any other party necessarily agrees with them.

Subscribe to ATC Send e-mail to Rob Follow me on Twitter. My Profile on LinkedIn.