Showing posts with label RIA. Show all posts
Showing posts with label RIA. 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

June 02, 2008

RIAPalooza Recap - Thoughts, Photos & My Presentation Slides

The inaugural RIAPalooza event turned out to be quite successful and interesting for everyone who attended. For photos, check out the stream on Flickr and also view the Twitter stream.

I find that a lot of conferences become clouded with sales pitches disguised as presentations and force-fed information that is designed to push agendas of one form or another. This is why RIAPalooza was such a refreshing difference.

As an event that was conceived, planned, and put on by members of the Chicago development community, RIAPalooza was really focused on honest expert opinions and group discussions about the various platforms available for RIA design and development.

I was honored to be able to give the conference opening presentation on Friday evening. As usual, I couldn't help but to talk abou the Me: Dave Meeker giving the conference kick-off talkimportance of user experience and about how the technologies that we now have as part of our design and development toolkits are much less about technology and more about enabling people to take creative ideas and bring them to fruition.

In my presentation, I gave an overview of the last 13 years of user interface technologies that we've had at our disposal and how they've evolved to the fantastic tools that we have today. In addition, I shared some concepts with the audience that I believe will be instrumental in the next 3 or so years as we continue to work as creative problem solvers with a flair for digital end-products and both online and off-line user experiences.

Here is a copy of my presentation




After my talk, all of the speakers that were in attendance joined me in front of the conference attendees for a rather lively panel discussion. There was no topic for the panel, rather "just ask what you want to ask". This format lead to some rather interesting and unexpected topics. One would think that most of the questions would be related to specific technologies or "the how" of Rich Internet Application development. Instead, the audience seemed to focus their questions on other topics, all of much more interest to a guy like me! Some of the items that were touched on:

  • What business factors go into deciding which RIA platform would be best for me?
  • How can I convince my upper management that user experience matters and that we need to build more experiential software?
  • How do you convince large corporations to adopt new creative technologies? What is the justification?
  • Are plugins an issue? Whether it be Adobe Flex or Microsoft Silverlight, users need a plugin. How do we justify this?
  • How is the process of designing and building a Rich Internet Application different than the Web sites or software that we have been building?

As you can imagine, the panel of experts had a lot to say! The information that was shared with the audience was spot on and extremely useful and I am sure that the panel discussion added a lot of value for those in attendance. The panel, which was supposed to only run for a bit and end prior to 9:00 PM went over and we were still taking questions when the facility started turning off lights and kicking us all out. That doesn't happen often, and was a sign for me that the presentations for this conference were going to be really valuable and interesting.

The rest of the conference (on Saturday) was filled with back-to-back knowledge sharing and expert insight into RIA design and development and because of the mix of presenters, covered the range of tools and technologies available in the market.

I spent the majority of my time speaking with Josh Holmes and Mike Labriola. Josh is a new Silverlight/RIA evangelist from Microsoft and Mike is a friend, fellow Chicagoan and perhaps one of the most wicked Adobe Flex architects on the planet. Mike is the founder of Digital Primates and works with Jeff Tapper and Mike Nimer... some of the brightest minds in the Adobe enterprise development community.


Josh Holmes and Mike Labriola - RIA Best PracticesJosh and Mike teamed up to give a co-presentation on RIA best practices from both a MS and Adobe technology perspective and didn't only provide some great information, were great together and highly entertaining. I really hope to do some more talks with these guys and would love to seem them tag-team again at some larger events.

Personally, I found that the information presented by the handful of Microsoft staffers at the conference to be really valuable. As the guy who manages Roundarch's relationship inside Microsoft's "Mercury Agency Professional Program" I am often more focused on strategy and creative idea generation than "how to build" things. For someone who is generally a bit further away from the code than I sometimes should be, the information that was presented was worthwhile to say the least.

I learned a lot from Corey Miller and Anthony Hendley, clearly experts in MS Silverlight, WPF and XAML and was blown away by the expertise that both Corrina Barber and Tim Heuer showed (and shared) regarding Silverlight development and designer-developer collaboration and workflow. Very valuable and eye-opening stuff, and critical to anyone that is going to embark on a Silverlight-based project.

I was also really pleased to hear some of the ideas that have been brewed in my fair city of Chicago as Ka Wai Cheung (From We Are Mammoth) talked about his project that combines .NET with Flex and is essentially an online application built in .NET that builds Adobe Flex applications. It is innovation like this that really inspires me (and should inspire everyone!)

Geoff Cubitt - How RIAs change Software DevelopmentLastly, Geoff Cubitt, President of Roundarch, showed off some of the applications that we've built in both AJAX and Adobe Flex and talked about how application development changes when moving from non-rich to "richer" to "very rich" UI technologies. People really "got it" when he showed off the demo application that we've developed for Fast (enterprise search) with an Adobe Flex UI. Fast was just purchased by Microsoft so it was great to show another example where technology from both Adobe and Microsoft have been leveraged to create a killer user experience.

All in all, it was a great experience and I was fortunate to have met some of the interesting people that I did and have such great conversations. It is a real testament to the will of the "community" that events like this are taking shape across the country (and world). It is thrilling to see that a lot of the ideas that I've been harping on for years becoming accepted by the masses and that the community as a whole is now focusing on technology as a means to create better user experiences.


May 30, 2008

I will be kicking off "RIAPalooza" in Chicago - "Drinking & Thinking"

Last week I was asked to fill in last-minute as a speaker at the RIAPalooza conference here in Chicago. This event, the first of its type, it free for participants and is sponsored by various Chicago firms as well as Microsoft and Adobe.

The kick-off reception, which is tonight, will feature free cocktails and "me" talking about the past, present and future of RIAs and the industry's never-ending quest to create technology that enables better user experiences.

I really hope to be able to get the audience excited for the session that they will be fortunate to participate in tomorrow, and to help shape the overall thinking of those in attendance. I certainly don't intend to shake the earth with any new revelations... but I do intend to drive home a point that design thinking plays a most critical role in the design and development of RIAs, and that user experience is (and should be) the primary motivating factor behind adopting new "rich" technology to build web and desktop software applications.

The focus of RIAPalooza is on three major topics:

  • Designer / Developer Workflow
  • Project Approach for RIAS and using Agile methodologies to get things done
  • Best Practices around building next generation applications
The sessions that will take place tomorrow should really provide a good mix for everyone at the conference. There is a healthy representation of both Adobe and Microsoft platform experts speaking, including Mike Labriola and Geoff Cubitt (President of Roundarch).

The full line up with speakers and topics looks like this:

9:00 AM - RIA for Designers & Developers (Keynote)
Tim Heuer & Corrina Barber

10:00 AM - How RIA Changes In Application Design
Geoff Cubitt, President & CTO - Roundarch

11:00 AM - Best and Worst Practices Building a RIA
Michael Labriola (Digital Primates) & Josh Holmes

12:45 PM - Fast. Smart. Agile. User Experience Driven Agile Development
Matt Nolker, Pathfinder Development

1:45 PM - Better Designer/Developer Collaboration with WFP & XAML
Anthony Handley, Magenic

3:00 PM - Silverlight and RIA
Corey Miller, Magenic

4:00 PM - Agile Flex Application Development: How Mammoths Stay Slim
Ka Wai Cheung, We Are Mammoth

All in all, it should be an interesting day with a lot of smart people sharing ideas and building community around RIAs here in the Midwest.

I was told that the conference would be recording our presentations using Adobe Acrobat Connect, so once that is up and online, I will post a link to my talk (along with everyone else's).

For more information on the conference: http://www.riapalooza.com


March 28, 2008

Searchme = Thrill Me! A quick review of the searchme.com RIA experience

Last weekend I received an email from a good friend, long-time business associate, regarding the launch of a new Web application that he and the team at Adobe Consulting have helped to produce.

This new Web property is called "Searchme". As described on their Web site, "Searchme lets you see what you're searching for. As you start typing, categories appear that relate to your query. Choose a category, and you'll see pictures of web pages that answer your search. You can review these pages quickly to find just the information you're looking for, before you click through."

Clearly this email email stimulated some interest in me, and after reading Searchme's self-description, I was rather interested. After signing up for the public beta, I ended up getting fast-tracked with a user account. Having played with the tool for a week now, I am quite impressed with Searchme's overall experience.

Let's break the Beta down:

When thinking about why I liked the searchme.com experience so much, I decided to break things down into the following high-level categories. I suppose these also apply to "search" in general.

  • Quality of Results
  • Efficiency
  • Enjoyability
Searchme.com scores very well in all three categories, as far as I am concerned. Let's start with the most important topic, being the quality of the search results.

Quality of Results

We all know that Google climbed to the top of the search engine mountain because they learned how to return rock-solid results to users on each and every search. This is no trivial task, and Searchme seems to be doing a fairly good job at it also. There is, however, a difference between Searchme.com's search user scenario and that of Google.

Searchme is visual, playful and enjoyable. Searchme allows the user to type a query, and upon doing so, returns a list of category matches. The user then clicks a the category that most closely relates to the concept that they were searching for, and then the results load on the screen.

This secondary search step could potentially be a very bad experience, however because of the "rich" nature of the user interface and the elegant way in which it is delivered, the potential for annoyance is reduced to a minimum. The fact that this pre-filtering happens means that your actual search results are generally right in line with the type of information you are seeking out.


Efficiency

Even if an online search application were to provide perfect results, I doubt it would gain wide acceptance by the online community if it wasn't fast. For today's search user, speed is almost as important as accuracy.

Searchme.com is blazing fast. This might be what impressed me the most. This thing is speedy!
So fast, in fact, that even with the heavier (than HTML) Flex user interface (Flash player), the application performed search queries and returned results in a split second. This is especially impressive when considering the graphical nature of the user interface.

Without knowing the system's architecture, I can only make assumptions as to what contributes to the speed at which it performs. I have to believe that we are talking about a highly optimized back-end, and a very, very, very tweaked Flex GUI.

I love Flex, but I also know that something that is this sophisticated has had to have gone through a lot of iterations of performance tuning to make it perform this well.

Kudos to both Adobe Labs and Searchme's engineering folks. The reason nobody has been able to launch a search engine with an interface this clever before is most likely due to performance.

Who cares how "cool" the UI is. If it drags your computer down or performs so slowly it is just annoying to use, all of the eye candy associated with the look and feel becomes secondary.


Enjoyability


I know. I know. It's a weird and subjective term. I use it though, and personally that the enjoyability factor behind digital experiences summarizes the overall value that they bring to users. If people "like it", they will use it, they will connect with it, and they will recommend it to others.

Searchme.com is enjoyable. Of course the speed of use and quality of search results lend to the overall enjoyability rating. Searchme, however, takes search to a new level by presenting the search results in a rich, visual and playful way.

Similar to, but not a direct copy of Apple's "Coverflow", this application shows results as page thumbnails and allows the user to page through them.

This was a risky approach, but it paid off.

The challenge from a technology perspective is to make the flipping action as fast and fluid as possible. Dare I say that this needs to exceed the expectations of the user in order to become a real winner. The 3-d pages fly through the interface, and are loaded in batches so the user can immediately begin exploring search results while the entire list of results loads in the background.

It isn't a new concept, but the team at Adobe really pulled it off in the most perfect of ways. It is smooth, fluid, quick, and works better than expected. I can't say that I envy the developer(s) that had to work on this, because it is apparent that a lot of time went into iterating through this until it was perfect.


Let's take a look



Initial Screen: Search Box


Just as you'd expect: A single text input box and a very fitting marketing tagline "You'll know it when you see it". They nailed a complete overview of the application in that single line. The genius behind searchme.com is the visual nature of the search results...


Secondary Action: Select Category

The "rich" experience gets underway! As soon as you type your query into the search box, a list of matching potential category matches is displayed. For this example, I typed in "Roundarch" as the search query. As soon as I did, the following category icons appeared: "software, architecture, work & career, web development, advertising & marketing". In this example, I chose "web development".


View Search Results

Once the user clicks on a category, the user inteface changes to what you see here. It is expanded by default, and provides a very nice, clean and visual way for the end-user to view screen shots of the pages in the search result collection. This initial display shows off the 3-d perspective view of the search results pages, where a user can "flip" through them, much like the ever popular Apple Coverflow UI.


View Search Results (part 2)

In this view, all I've done is grab the "scrubber" below the screen shot and pulled it towards the top of the screen. This shrinks the search result thumbnails and reveals a text-based search result panel that directly correlates to the visual results at the top of the UI.


View Search Results (part 3)

This screen shot shows the UI after the user scrolls into the search results. The UI now displays the screen shots on both the left and right of the selected search result item, along with the corresponding text-based results below. As you move the top of the screen left or right, the bottom area scrolls through results creating a 1-to-1 match between the visual results and the text results.


Launch a Page

Finally, now that the user has chosen an item that looks right to them, they click the captured image of the Web page, or they can click the hyperlink in the text-based list of search results. This loads the new page in the same browser window, bringing the user to the content that they've selected for viewing.


Watch the Searchme.com Demo




User Experience Highlights

Lastly, I wanted to just recap some of the things that Searchme.com has incorporated into the experience that I feel make it such a refined rich internet application:

  1. Capturing the "back" and "forward" buttons within the browser so users can use them to control the experience. Many RIAs forget this, leading to a potentially annoying experience.
  2. Displays search results in both visual and textual forms.
  3. The visual nature of the display allows users to easily seek out, identify and confirm that a "page" in the results contains the content that they are seeking. While not 100% accurate, a user can visually relate the page layout, etc to what they were after when typing the search query.
  4. The screen captures actually display the highlighted search term on top of the image itself. this is fascinating and I don't know how they've accomplished this, but it works.

Here are a handful of other articles and information resources regarding the Searchme.com application:

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.