Monthly Archives: November 2006

Flex Search Working Group


I have been talking with Clint Modien, Andrew Trice, Aaron King, Tom Ortega, Chuck Freedman, Darron Schall, Ray Camden, Matt Chotin, and others about Flex search and we have decided to create a working group. The goal is to create the best solution to aggregate and search the resources of the Flex community. To start the Flex Search Working Group we have established a Yahoo Group here:

http://groups.yahoo.com/groups/flexsearch/

If you would like to help in the Flex Search Working Group. Please join the discussion list.

Flex has so many resources across many domains, blogs, discussion lists, forums and many of the best resources are completely hidden from view. I know were things are but for many new to Flex things are just plan hidden and hard to find. Ideally in working through the community we can solve this problem as a group.

As part of the working group, I will be putting all the work I have created on Flex Search at Flex.org into the mix. The spiders, db schema, caching logic, lucene code will all be available to view, change, and ultimately improve. Additionally Clint Modien has agreed to help by through the contribution of flexsearch.org and the existing logic that went into the Custom Google Search engine.

It should be an interesting exploration and I think we can make a lot of progress toward creating a great search resource for the Flex community.

Still searching…

Cheers,

ted :)

FabChannel Music Addiction


There are few things that make me stop using Apple iTunes but FabChannel seems to be an amazing place to watch live music. I have found 6 new bands that I would have never found otherwise and the Flash video interface is great. The ability to deep link into a concert video by track is really a great feature. This would be a killer Apollo app especially if I could purchase/download the music videos/mp3 files locally.

I was a huge fan of Napster during the day. The funny part is that I focused on finding live music and bootlegs that I could not find elsewhere. If one considers quantity of music outside of the recording industry, the market and value in what FabChannel is doing is impressive. FabChannel is packaging the music archive of 600 concerts at the Paradiso in Amsterdam allowing anyone to enjoy the music online. The service has some really unique content features and the Flash based UI makes navigation of this app really easy. The backend of this application is done using Flash Media Server FLV streaming and the video quality is amazing. The mix of deep linking into concerts is a new medium and if I had the chance to purchase tracks from this system I would spend money here.

Hats off to Owen Van Dijk for turning me onto this great site, he is also responsible for some of the magic of the service development. It has extended my music collection in a new direction. Check out the FabChannel when you get a chance.

Cheers,

Ted :)

Mashup University at MIT Jan 15-16


I will be speaking at Mashup University at MIT Jan 15-16 and will be talking about Apollo and Flex in detail. I have started development of a new mash-up game using Flex and Apollo that merges mapping, strategy, and real-time messaging. I spoke at Mashup University earlier this year and had a blast, David Berlind recently posted this photo of me to his blog on ZDNET (Honestly, the fish was this big!)

If you have never attended a Mashup Camp or Mashup University, I strongly encourage you to join in and register. The unconference revolution is an amazing change allowing for rapid learning and sharing of new ideas on software development. The format and size of these venues is ideal for real learning.

Mash-up University Registration

Mashups are becoming increasingly important as they deliver distributed computing applications to the mainstream. As the web transitions from a pages to applications, we are seeing mashups integrate various services and components into applications that were not possible before. There are many developers exploring the mashup space and gluing together distributed components and services to make something new.

I believe that Flash Player 9 will quickly evolve to be the dominant mashup client as more developers realize productivity of Flex development tools and the feature capabilities of Flash Player 9. Here are a few of my favorite features and trends that Flash Player 9 and Apollo deliver for mashup developers:

1. Distributed components – Load visual or data components directly into your application with a local API. We are starting to see many services deliver SWF components, YouTube, MotionBox and BrightCove are delivering video players to expose their streaming media APIs to end users and application providers.

2. Distributed Real-Time Data Services – Exposing Messaging and Data Synchonization as an API. Flash Player supports push based messaging allowing clients to be developed without poll based logic. This allows a group of users to synchronize data independently, and enables solutions for scheduling, workflow, inventory, and collaboration.

3. Direct Protocol Integration – flash.net.Socket allows protocol development for direct communication with SVN, FTP, NNTP, XMPP from the mashup application client.

4. Offline use – Applications that provide behavior offline. I am not alwasy online and supporting this behavior is a natural fit for Flash Player and Apollo. With local persistence and network detection, you can queue data up when offline and sync when online.

5. Rich Media – Integrated audio, video, images in both read and write formats.

6. File Literacy – The ability to read and write data to the local file system enables all sorts of new mashup use cases with Apollo.

I look forward to seeing everyone at Mashup University at MIT early next year.

Ted :)

Goodbye Blogger, Goodbye Google!!!


I have been with Blogger for 365 posts. Today they decided to upgrade the service and killed off support for RSS, RDF forcing everyone to ATOM whether you like it or not. This screwed up 100% of my syndication and left me with no choice but to undo Blogger.

For Goggle to screw up Blogger this badly shows where that entire company is headed, it is just a big experiment on the verge of implosion. I depended on their service, they screwed up, and lost a customer. Quality matters and this sort of thing shouldn’t have happened.

Goodbye Blogger, Goodbye Google.

argggggg!!!!

ted :)

2 Flex Search Mashups


It has been less than 24 hours and there are already 2 Flex Search mashups out there. Kudos to Renaun Erickson and Andrew Trice for their work mashing up the Flex Search API. Its pretty cool that mash-ups would occur so quickly but publishing an open API has made me see the benefits in a way I hadn’t before.

Flex Search by Renaun Erickson
Flex Search by Andrew Trice
Flex Search by Me!

Mashups and Flex were made for one another. Taking components and distributed data sources and blending them into distributed applications takes seconds in Flex. Regardless if you are talking to REST XML, SOAP Web Services, AMF Remoting, FDS Messaging, FDS Data Management the presentation layer development is very simple to merge data across domains. This integration simplicity gives developers the freedom to experiment and explore without wasting time. My focus in the search app was the data API not the presentation tier.

So why did 2 mash-ups appear in less than 24 hours?

1. Flex is productive. Working at the component level lets you be more productive and deliver real apps in far less time. Dare I say it but Flex is Rapid Application Development, RAD.

2. Data integration is a snap. Simply call the search component like it is local and data is returned with data typing. Here is the tag that is used to talk to Flex Search:

<mx:RemoteObject
id=”ds”
destination=”ColdFusion”
endpoint=”http://www.flex.org/flex2gateway/&#8221;
showBusyCursor=”true”
source=”api.search”>

To call this with a Button in MXML you would do this:

3. Clean API in AMF Remoting – AMF exchanges data in a binary format with typing information. When data returns you can use the data directly as the model for controls through the dataProvider property with binding. In my code I simply bind the DataGrid.dataprovider property to the ‘lastResult’ of the method called. When data arrives, the DataGrid is automatically filled.

What is interesting is that an open API allows developers to scratch an itch. If a UI doesn’t work for them they can change it independently and move it into any format. From the API creators perspective it is free R&D to see what users want from the application. Who knows maybe the right choice is to encourage the community to innovate atop the API. Either way it solves the problem in finding thing in the world of Flex.

I have been working on a “Flex and Mashups” white paper for a long time. Jeremy Chone jokes with me about it everyday encouraging me to finish it. He stops my desk every single day and asks: “White Paper?” (deep french accent) and when I return from travelling he repeats: “White Paper?””White Paper?””White Paper?””White Paper?””White Paper?””White Paper?””White Paper?””White Paper?””White Paper?””White Paper?” for every day I was gone. Ok, I will finish the White Paper soon!

Keep posting Mashups of Flex Search!

Cheers,

Ted :)

Flex Search Alpha 1 – CFC’s


Here are the CFC’s that drive the Flex search engine output. This was my first ColdFusion project and I wanted to post the CFC’s in use. The current engine is using MYSQL’s freetext search via AMF remoting. It went through 2 major revisions, one without caching and one with caching via wddx. The current plan is to move this app to ColdFusion Scorpio and implement java serialization direct from CFQuery to the DB.

Here are the CFC’s:

Search CFC Stage 1

Search CFC Stage 2 (caching wddx)

All the other work on this effort was handled in the DB and the spider. Considering what is occuring in these CFC’s it is a very small amount of code. The key value in CF for me is that it allows you to focus on the logic and deliver at a higher level. Getting the basic search output was easy and then it got into tuning the DB. Considering that I am learning CF, it will be interesting to see how this evolves over time. Easy to create, easy to maintain, simple. Go CF!

Cheers,

Ted :)

Flex Search Alpha 1


Flex Search is an optimized search for Flex across all content both within Adobe, discussion lists, and the development community. The focus of development has been the search logic and content aggregation. The user interface (flex development) was limited to 30 minutes here. The current engine contains the collective history of Flexcoders, FlexComponents, Flex Developer Center articles, Flex documentation, AS3 documentation, and soon blogs from the flex community.


Flex Search Alpha 1 – http://www.flex.org/api/FlexSearch/Alpha1/

The Flex Search Alpha contains a base remoting API. The details of the API can be located within the source code of this application located here: http://www.flex.org/api/FlexSearch/Alpha1/srcview/index.html. This Search API and RemoteObject component in the source are configured to allow any domain search access. You can host Flex Search on your site and modify the UI as needed.

Features:

1. Search Flexcoders, FlexComponents, Flex Dev Center, Flex Documentation, AS3 Documentation and soon blog posts on flex.

2. Boolean Search syntax:

Cairngorm –> Search for Cairngorm
+Cairngorm -flexcoders –> Require ‘Cairngorm’, remove ‘flexcoders’
flash.net.* –> Wildcards supported

3. AMF Remoting API with server caching logic. Only unique requests hit the database as a search. 2nd request is cached. Also when the index is rebuilt, the URL’s can be replayed caching prior content.

4. Search reporting and metrics for tuning. All searches are stored.

In development:

1. User rating and Exit ratings in results.

2. Search limited to source or category > Just search FlexCoders or just discussion lists.

3. Blog aggregation – Simply add a link to this image to your page to get indexed!

4. Previews and Abstracts

5. Restful urls (bookmark and back button support).

The think that is key to understand is that only 30 minutes was spent on the user interface in flex. The interface is not a good example of Flex use and as I invest more in the UI, the evolution will become clear. This was also my first real ColdFusion application. The spider, parser, search engine are all running on ColdFusion with a MYSQL database.

I want the development of this project to be wide open in plain view. Ideally everyone can see the evolution of this application from the very beginning to the finished site. The evolution will explore how best implement search leveraging HTML/Flex/Coldfusion. Also if I were to release this as a more finished project, I think we would also miss out on an opportunity to tune this towards the community. Your feedback is important and will guide the development choices moving forward. It should be a great journey but this release is the first step of many.

Please post your feedback in the post comments.

Release early, Release often!

Cheers,

Ted :)