Moving to LiveCycle Collaboration Service

We saw an year ago during San Francisco MAX a great project called COCOMO that allowed developers to take all features in Acrobat Connect (chat, webcam and audio streaming…) and to add in your Flex application with few lines of codes and with this “library” pre-built very easy to use.

This year at MAX in L.A. I followed a very interesting seminar about LiveCycle Collaboration Service (LCCS) that is the final name of the project COCOMO.
LCCS is very interesting for many reasons:

  • easy to use
  • very cheap service
  • very well documented
  • customizable and integrable with own desktop application or RIA made with Flex
  • open new opportunities for customer care solutions and other kind of applications

EASY TO USE

Yes, you can create your application with LCCS integrated with few lines of code. An example?
This is a little conference call environment:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" backgroundColor="0xFFFFFF"
minWidth="400" minHeight="600" xmlns:rtc="AfcsNameSpace">
<mx:Script>
<![CDATA[
protected function startTalk():void{
pubAudio.publish()
}
protected function stopTalk():void
{
pubAudio.stop();
}
]]>
</mx:Script>
<rtc:ConnectSessionContainer id="cSession"
roomURL="https://connectnow.acrobat.com/user/room">
<rtc:authenticator>
<rtc:AdobeHSAuthenticator userName="***********" password="************"/>
</rtc:authenticator>
<mx:VBox width="100%" height="100%" horizontalAlign="center">
<rtc:WebCamera width="320" height="240"/>
<mx:HBox width="100%" horizontalCenter="center">
<rtc:AudioPublisher id="pubAudio"/>
<rtc:AudioSubscriber/>
<mx:Button label="talk" click="startTalk()"/>
<mx:Button label="stop talk" click="stopTalk()"/>
</mx:HBox>
<mx:List dataProvider="{cSession.userManager.userCollection}"
labelField="displayName" width="100%"/>
</mx:VBox>
</rtc:ConnectSessionContainer>
</mx:Application>

That’s cool, isn’t it?
You can download the sample from this link.

CHEAP SERVICE

How much does it cost!? this is the question!
It’s cheap, LCCS is totally free you can download LCCS from Adobe site; like developer you have $15  per month to use for your test, applications and so on.
This is the LCCS “menu”1:

  • 1000 push/messages:  $0.10
  • 1GB live streaming: $0.49
  • user per hours: $0.01

No any additional cost and you don’t maintain anything because you use Adobe servers with LCCS.

VERY WELL DOCUMENTED

When you download SDK you have an AIR application that guide you to use LCCS in your Flex application, you can retrieve there API, SWC for Flex and Flash, you can manage your room and your account so you have a real console for your LCCS applications.

CUSTOMIZABLE INTERFACE AND NEW BUSINESS OPPORTUNITIES

LCCS components could be integrable with your application, so you can create an intranet dashboard with a chat or a VOIP service to communicate with others fellows or maybe you can create an interactive catalogue that help users to choose right product for own requirements.
But not only, you can create collaborative solutions with a shared whiteboard and list of users that could chat or share own ideas via VOIP.
I think that a lots of desktop applications and RIAs could become more interesting with those services and also, if you think, there are many opportunities for your business.

Finally, I think that LCCS could help all developers to make own application more fashionable and useful, but also open new doors for services that are so old.
It’s easy, it’s cheap so why don’t use LCCS?! With my company we start to propose LCCS to our customers and they are so interesting about this technology because it solves some problems in particular

Flickr mesh-up with actionscript 3, REST or SWX

Today I spend my afternoon to configure a part of a full Flash website that interact with Flickr and that retrieve data from my account without any appication authentication but only with my Flickr key.

First of all I was really impressed about how many languages you can use to bring Flickr photos and use in own desktop application or website (Real Basic, cUrl, Perl, Delphi, C…).

When you want retrieve photos from Flickr you must have a Flickr key that is totally free and you can activate one directly in the right section of Flickr site.
In the same section you can find whole documentation and lots of services expose to retrieve any kind of data from a photo, from Exif data to user or friends informations.
For AS3 we have a couple of interesting library; first one is as3flickrlib very well documented but it’s so long to start work with it because you must to find a frob ID then a token and finally you can start to work with Flickr API.
The other one is SWX, that is written by Aral Balkan and it’s too easy to mesh up any kind of popular service like Flickr, Twitter and so on.
Aral gives us availability to use SWX Service Explorer to take a look at the data and how to mesh up your application with public API, I really love it on Flash Lite too!

This is very interesting because you can retrieve all API in this library and in few line of code you can work with public services.
This is a simple example to call Flickr services with SWX, you can download source code too:

swx = new SWX();
swx.gateway = GATEWAY_PHP;
swx.encoding = "POST";
var callDetails:Object =
{
serviceClass: "Flickr",
method: "photosSearch",
args: ["", "", "#mart3"],
encoding: "POST",
timeout: 5,
resultHandler: resultPhotos,
faultHandler: faultHandler
};
swx.call(callDetails);

Another interesting way to work with Flickr API without any authentication is using REST API.
REST (Representational state transfer) is a very simple way to request data from a database, update, delete them or to create new record using HTTPHeaders and XML.
You must know that AS3 doesn’t have PUT and DELETE method but there are some libraries that create a workaround to solve this limitation and they work very well with REST (as3httpclientlib for example)
I start to approach REST a couple of months ago with Ruby on Rails and I think is amazing.

Flickr gives us REST API too, and you can see that is so simple create a Flickr gallery with REST and Actionscript 3.

We have some API that works without authentication like photos search and we use this service to retrieve data for our Flickr gallery.
First of all we take a look at service documentation on Flickr, you can see that we have a lots of opportunity to find data on Flickr; we can search photos via userID, tags, text on title or description and so on.

In Actionscript 3 we’ll use URLLoader class and prepare some url to retrieve XML data from REST.

private const FLICKR_SERVICE = "flickr.photos.search";

private const API_FLICKR:String = "c6c31464878505403f9bbbf6214ae413";

private const PATH_SEARCH_FLICKR:String = "http://api.flickr.com/services/rest/";

		

public function FlickrRest(){

			

	var varsFlickr:URLVariables = new URLVariables();

	varsFlickr.method = FLICKR_SERVICE;

	varsFlickr.api_key = API_FLICKR;

	varsFlickr.tags = "#mart3";

			

	var req:URLRequest = new URLRequest();

	req.url = PATH_SEARCH_FLICKR;

	req.method = URLRequestMethod.POST;

	req.data = varsFlickr;

			

	var urlL : URLLoader = new URLLoader();

	urlL.addEventListener(Event.COMPLETE, retrieveImages);

        urlL.load(req);

			

}

You can download source code and final sample from this link.
Finally I’d like to explain how to compose photo’s url to retrieve them on Flickr.
Flickr url is composed by some variables that you can find in REST XML or SWX result object

  1.  set FARM (ex.: http://farm”+flickrXML..photo[i].@farm+”.static.flickr.com/)
  2. set SERVER (ex.: +flickrXML..photo[i].@server+”/”)
  3. set Photo ID with underscore  (ex.: +flickrXML..photo[i].@id+”_”+”)
  4. set Secret code (ex.: flickrXML..photo[i].@secret+)
  5. last parameters is which size you want to get photos, you can use “_s.jpg” for small size, “_m.jpg” for medium, “_l.jpg” for large and so on.

I hope that could be interesting for many developers, if you have any suggestions or idea about mesh up with Flickr, feel free to drop a comment.

Flash Platform, automotive and industrial marketplace

During my last 6 months I take part in a couple of projects that are focused on Flash Platform and “unconventional devices”.
It seems strange, I know, but what I mean with the term “unconventional devices” ?

I mean that I use Flash Platform on embedded system with the purpose to create interface of industrial machine and automotive world.
Solutions based on Flex and AIR have great success for final customer, in particular because client has a great GUI with a cool user experience and he doesn’t lost any features with the hardware.
In fact we mix a couple of technologies to create those software like Python and C++.
Those tehcnologies make dirty work for us and via Socket or JSON, depends on traffic data, we make a bridge with Flex or AIR.
Performance are very cool, CPU processors move from 45% to 70%, optimization task take a great part of our time.

It was so interesting try for the first time AIR 1.5 on linux OS, we use Gentoo and Ubuntu too and I think they are very strong OS in particular development like this one.
Many people was really shocked in front of powerful of Flash Platform GUI from others developers to our clients, they can find from GPS integration until to a VOIP module made with Ribbit, from a wizard that guide user to interact with industrial machine to customization of GUI at runtime; everything in the same application that doesn’t run in a computer! Really awesome!

I saw during MAX that others companies are moving first steps trough automotive world but with Flash Lite, I think that an Intel ATOM processor has more potential and it’s so cheap for industrial market, when will be release new ARM processors (I think ARM 9…), that will be more powerful and cheap too, and Flash Player 10.1 or AIR 2.0 will have more opportunity to approach new marketplaces and also gives to many people great and easy user interface to work with.

Today Adobe releases in Adobe Labs Flash Player 10.1 and AIR 2.0 public beta, it’s a first steps to new opportunity for Flash Platform developers, many devices implements Flash Player and in future I think there will be many more.
So I’d like in a future, to find many “unconventional devices” with a Flash GUI because NOW we could make the history with those technologies.