Showing posts with label Adobe. Show all posts
Showing posts with label Adobe. Show all posts

July 15, 2008

Merapi is Live!!!

Yesterday afternoon I had the chance to do a final pass on the Merapi code that Adam Flater has been working so hard to wrap up, and after a "thumbs up", was able to post it to the Merapi Project Web site and finally approve/enable the 300 or so alpha users that we selected to participate in the program.

This is a pretty great milestone for the Merapi Project team, and (as we see it) the RIA development community as a whole. By bridging Java and Flex/AIR we are enabling developers to connect the two, allowing them to build more experiential user interfaces for their Java Applications and by allowing them to access the power of Java and Java libraries in thier Flex/AIR applications.

Much thanks to the rest of the folks on the Merapi Project team, especially Adam Flater. Without Adam's hard work, bright mind and determination Merapi would not exist... so thanks man!

While Merapi was created to help extend the functionality of Adobe AIR applications, it is the hope of the Merapi Project team (and the community as a whole) that future versions of Adobe AIR will not need Merapi to build more robust AIR applications.

You can sign up for the Merapi Alpha and download the code at the Merapi Project Web site.

June 16, 2008

Adobe Flex Architecture & Frameworks Overview plus Merapi Preview at Chicago Flex / AIR Developers Group

Last week I teamed up with Rhazes Spell to give a talk to the Chicago Flex and Adobe AIR Developers Group. First off, it is great to finally see a user group in Chicago dedicated to Adobe-based RIA technology... It's been a long time in the coming!

I've been involved in the Adobe RIA community for quite some time, and have always been a little dissapointed in my own fair city's lack of organization around an RIA development community (and I suppose by saying that, I am equally at fault!) Granted Chicago isn't a total Flex community virgin... I do recognize the unparalleled efforts of Igor Ilyinsky who's been running the Chicago Cold Fusion and Flex User Group for several years. It probably makes a lot of sense for these guys to gang up and unify in some way, as there is strength in numbers and a solid community of developers should have as much representation as possible.

Anyway, I was asked to give a presentation to the Flex & AIR Group at an event that was hosted at our Roundarch offices. The week leading up to this presentation was pretty jam packed with client obligations and a trip to our New York office, so to get a little help, I asked Rhazes to join me and contribute his thoughts.

Because the Chicago group is quite new, and we anticipated there to be a wide array of folks in the audience, we decided to generalize our presentation and cover some basics on Flex RIA application architecture and an overview of Flex frameworks. After all, when you are new to a technology, getting started on the right foot makes all the difference in the world, and we thought this topic would help the group adopt Flex with fewer introductory frustrations and development dead-ends.

Borrowing some insight from Ali Mills and Luke Bayes's great presentation (and research) on the various Flex frameworks floating around the Internet, Rhazes and I broke things down and gave a "What are frameworks 101" along with an overview of items to consider when defining the architecture your Adobe Flex application(s).

We wrapped up the presentation in about 40 minutes and then I took about 10 minutes to talk about The Merapi Project. It was also great to have some of our friends from Digital Primates at the event, including Louie Penafor who is also on the Merapi team. Louie's created the coolest AIR/Merapi example (I think) to date, which is an AIR application that allows you to acquire images from a scanner using TWAIN. Good stuff, big brain, and a really nice guy at that.
It was also nice to see Mike Nimer, who I consider to be one of the longest-standing members of the Flex community and now one of the primary brains over at Digital Primates.

I gave an overview of Merapi, showed off our pretty nifty MacBook Pro "Gyro" example, also known as "Merapi and Physics". People were interested in the project, and it looks like some of the attendees will come and sign up for the Alpha program for Merapi.

It was great to be able to talk about pretty deep technology with this group, and finish up making the point that all of the bits and bytes would be for nothing if it weren't for the user's that we need to design for.

I can't help but to share my enthusiasm for creative technology and my thoughts around design thinking as it applies to technology and how "we" use technology in our daily lives.

It is the people that make up these local community groups that are going to be the ones that build the applications of the future, and it really is important to help foster the community so that it incubates innovation benefits all of us.

Here is a copy of our presentation slides




View the Video of our Presentation

March 31, 2008

Adobe AIR on Linux! More Cross-Platform Goodness...

For years, one of the decisions every team embarking on a mission to create desktop software has been faced with a common challenge: Determining which operating system(s) should be targeted for their application.

Remember the early promise of Java?: "Write once, deploy cross platform". The thought at the time was that applications written in Java, including Java Applets would be the holy grail of software deployment, finally eliminating the need for businesses to choose Mac or Windows or Unix/Linux. In theory, Java is a solution to this problem, however time has shown that Java applications are far better suited to run cross-platform "on the back end" than as end-user GUI applications.

A lot of software designers and user experience professionals would probably agree that Java for cross-platform GUIs failed, in part, due to the cumbersome process that end-users had to go through to ensure that their installed Java runtime would allow the application to run. Also, java applications of this nature just didn't, couldn't, wouldn't perform as well as required and weren't stable enough for a real takeover in the consumer market. The latter is most often blamed directly on the decisions made by the folks at Microsoft in their effort to combat the threat posed by Sun and the possibility of a Java-based operating system.

A lot has changed since back then! While Windows is still the dominant operating system for both business and personal users, there has been a huge gain in market share by Apple, as well as with Linux. While it used to be a satisfactory decision to "just make an application for Windows", more and more companies are now thinking about "cross-platform" as a necessity and no longer just a "nice to have".

Today, Adobe jammed their flag in the ground, staking claim to next generation cross-platform desktop applications. They Announced Adobe AIR (Alpha) for Linux!

This announcement means that countless Linux (Ubuntu, Debian, SuSe, etc) users are now able to play along in the "Rich Desktop Client" reindeer games enjoyed by both Mac and PC users since the public release of Adobe AIR.

In addition to the release of the AIR runtime, Adobe also announced that the Adobe Flex Builder IDE was also available for Linux!

So, it seems as if Adobe has defined the first stable, freely available, and truly cross-platform solution for desktop application development. Why is this really a big deal?

(I do realize that technologies like Python also run cross-platform, but we are talking about something much more adoptable by end-users with AIR).


In my opinion, this is interesting for three primary reasons. Reason number one is that this means that software development teams (and business folks that pay them) no longer need to cut Linux users out when bringing applications to market.

Secondly, and less obvious, Adobe's acknowledgement of Linux moves the operating system one step closer to being the preferred OS for many folks that were disappointed by the range of desktop software available that has traditionally been available.

Hardcore Linux users will disagree with me on this point. I am sure that it wouldn't be too hard to find people who'd passionately debate this and stand strong in their belief that Linux is, and has been, the greatest thing since sliced bread (or inkjet printers). I don't disagree with the fact that Linux is a powerhouse of an operating system.

I must point out, however, that after many attempts by different companies pushing Linux distributions (Redhat, SuSe, Mandrake, etc, etc) as well as hardware vendors and retailers trying to sell Linux-based desktops or laptops, that the general public has shied away from the platform.

It isn't only the common everyday users that have found Linux to be less optimal than Windows or Mac's OS X. Even industry insiders and RIA thought leaders like Adobe's Ryan Stuart admit that the reason they haven't made the full-time switch to Linux is due to the lack of quality software applications or choice of applications that they have.

Let's face it, Linux is a wonderful system, however for the untrained user, can be unwieldy to say the least.

I suspect with the newfound popularity of the Ubuntu Linux distribution, and with the new ability for AIR applications to run on the platform, more and more folks will be stimulated to give Linux another shot as their OS of choice.

Now that Adobe is releasing Flex Builder for Linux, is it possible that they will follow suit with their other software tools (Dreamweaver, Flash, CS3, etc?) If that is the case (total speculation), it only adds support to software/web design professionals' desire to take Linux more seriously.

Lastly, having been involved in the strategy, design and development of many different software projects, I can attest how unrealistic it really is to try to develop different instances of a software product to run on different operating systems, while still maintaining quality and brand identity (not to mention plain old usability). The primary OS always gets the funding, and the secondary platform (usually Mac OS) typically suffers.

Need an example? Have you used Microsoft Office on a Mac lately?

Moving on...

One major challenge to this entire argument (and one I am sure I will hear!) is the fact that Adobe AIR still runs inside it's own security sandbox, and that applications developed to run on the AIR platform still don't have the "real power" of traditional desktop applications. In short, to prevent the ability for AIR applications to take over your computer or execute malicious code, they are limited in what they can or can not do.

The primary limitations of AIR applications is that they don't have system-wide file access, can't connect natively to external devices, and rely on the Adobe framework to do what they need to do. Having talked to the folks on the AIR team about this, it is clear to me that they realize this deficiency and leave me with the assumption that down the road, the AIR platform may become more robust, enabling more and more integration directly with the end-user's operating system.

Until then, there is Merapi. As a member of the Merapi project, the release of AIR for Linux is terribly exciting. We've created Merapi in anticipation of this, and because it is developed in Java, Merapi is designed to run cross-platform, alongside the Adobe AIR framework.

The concept is that developers could create their application using the Adobe AIR runtime, and package it up with Merapi, utilizing the Merapi API and plugin architecture to do things that AIR isn't able to do by itself. For more information on Merapi, check out this recent post or hop on over to Adam Flater's blog where he's been making updates until we get the Merapi Web site and SVN repository online.

All in all, it is going to be one very exciting year in the world of next-generation thin-client applications, cross-platform software design and development and the adoption of Linux by users who were previously scared away by its lack of support from major software manufacturers like Adobe.

For more information on this announcement and Adobe AIR/Flex on Linux, check out the following:

March 15, 2008

It's a volcano! It's a framework! It's amazing! It's MERAPI

I have to credit my good friend Adam Flater for giving me the opportunity to write this post. He's the brainchild of my topic, and the reason that I've gotten myself fully involved with the Open Source project for Mirapi.

Some Background

To understand why Mirapi has the potential to impact the development (and user-value) of hybrid web/desktop applications. We've all been struggling for a while to think of a new buzzword that is the 2008 equivalent to earlier "client-server" or "thin client" applications.

Adobe has made the first move to really have an impact in this space with the release of the Adobe Integrated Runtime (AIR), giving less-technical "web" developers a solid platform to create desktop software applications using the technologies and tools that they are familiar with. (It isn't that designers and developers that build for the Web are a bunch of dummies, quite the contrary!) Desktop software development just takes different skills to do well, including the download, install, update and removal processes required to get your Warez out to market and onto users' computers.

The benefits of this new generation of application are varied, and when most industry folks talk about why take this approach, you typically get the following:

  • Can work online or offline
  • Can store data locally
  • "Feels" like software
  • Allows you to store assets locally so you can re-use them in the user experience (video for example)
  • Provides for local file system access
  • Easy installs and upgrades for users
  • Some OS Integration (Via AIR API)
This is all great, and having worked on a variety of well known publically available AIR applications, I am sold on recommending the whole concept for projects that would benefit from it.

Solving the Problem of Adobe AIR and OS Integration

There is, however, one thing that I (and many others including my pal Adam) think is missing is the ability for the AIR application to access the operating system and utilize it the way that a desktop application "should" be able to. I don't blame Adobe for not cooking full OS integration into the platform. They would be crazy to do so. It is all about security. While AIR doesn't have the limited sandbox that the flashplayer has, it still has pretty strict boundaries around what you can or can't do. When you compare it to a pure desktop application, AIR seems a bit limited.

What are these things you speak of?

Allowing your AIR application to:
  • Integrate with external devices (such as a plugged in cell phone, or any other USB or serial device)
  • Offload data crunching to the Operating System
  • Integration with other software applications (plugins, etc)
  • Did I say integration with external devices? :)
To really be used for serious desktop software, AIR applications need to be able to do these thing (or things like them).

Now that we've gone this far, let's back up to "pre-AIR" times, when Adobe first launched the "Apollo" platform. Apollo was, of course, the code name for AIR when it was in development (and a greek god... get to that in a minute)

At the time Apollo was released, I was part of the team working on a project with Adobe and the folks at eBay. This project was the first iteration of what is now publicly available as "eBay Desktop." As with all projects, when kicking around strategy talk, you start thinking about the future and "out there" user scenarios. With the promise of Apollo and with an interesting model like eBay's you can imagine the thoughts flying around and landing on white-boards.

Also at the time of Adobe's release of the first alphas of Apollo, the community started talking about other potential uses for AIR. This is where Adam nailed a pretty cool concept.

Adobe "Apollo" needed a helping hand. In mythology, Apollo's twin sister was named Artemis. Adam got to work, pulled in the help of some friends and an open source project named Artemis was born.

With the release of Adobe AIR, the same folks behind Artemis have started a new branch that is designed to work with the release of the fully-baked Adobe Integrated Runtime. This evolution takes on the name Mirapi. In true geek fashion, the name comes from a powerful volcano on the island of Java.

Mirapi: So, what the hell is it?

Mirapi is a java companion to the Adobe Integrated Runtime. It runs in tandem on a user's machine, providing a direct bridge between applications built to run in AIR and the power of the underlying operating system. At it's root, it's the ability to make AIR apps that run like desktop applications.

Based on a very flexible plugin architecture, developers can leverage the OS by writing java plugins to Mirapi, and build their Flex, Flash and AJAX applications for Adobe AIR, and utilizing Mirapi to make them do things that AIR just can't do by itself.

We are working to get the first public development release out the door, as well as putting up a Web site, FAQ, and all that other good stuff. I wish the whole Mirapi team had more time right now, but we are all working on projects of one kind or another and up to our ears in existing stuff. No fear though! Mirapi will be available soon, and with the excitement created by the announcement at the On AIR event in Atlanta, it looks as if the community is going to get behind the project and really help us mix up the Rich client desktop battle!

Some of the current projects that members of the Mirapi project are working on:

  • USB device connectivity: Using a Web Service-Connected AIR Application to connect to, communicate with, dignose and repair mobile devices

  • "Piano Hero" - The title says it all. Piano battling over the Web using USB keyboards

  • Connecting a line of Robot Toys via bluetooth or USB to send and recieve data in order to connect physical toy robots with the online game environment (this one's patented folks!)
I am sure that once the site is up and online (meaning that the Mirapi team gets a couple days of free time over the next couple of weeks), we will have more information and details to share.


For more information, check Adam's post announcing the birth of Mirapi and this post about the death of Artemis and rise of Mirapi.