Ted Patrick > { Events & Community } > Adobe Systems


Flex Directory 250 Firms / Full Update / FXD 2.0

One of my projects for Q1/2008 is a very large expansion of the Flex Directory. Today I updated the directory and added 85 new firms developing with Flex. The Flex Directory now lists over 250 companies who can build Flex applications. Before we take a look at what is next, lets take a look back at what worked and what did not.

What worked:

What didn't work:
  • No Database, just 1 XML file. It worked but it needs a backend. :)
  • Updating a listing required submitting a listing again. This needs to be self-maintained and easy.
  • Management tools - Currently the site lacks any management tools other than TextMate editing XML.
  • Company detail: ScreenShots, Logo, Description, Contact Details, Location Details
  • No support for developer listings or alternate types.
  • Just Flex - No support for Flash, AIR, or other.
FXD 2.0 - Architecture
To start, the new architecture is a Structured XML/Flex WIKI. Basically there is a simple API for updating the URL listings and all XML stored is rendered through a Flex template. In this case I can update 1 SWF file and change the look and feel of the entire site while supporting variable schemas for all types of listings. The model is quite powerful and allows for clean SEO support, an XML API , clean urls, and compatibility with 95%+ of browsers. This architecture is something I have been working on quietly for over a year and this will be the first large scale use of it outside of the internal demo apps.

My favorite feature is that the UI is completely separate from the data and this creates some powerful side effects for managing the site. This allows me to add features to the template and have them optionally shown based on the model data. If a developer adds a <screenshot src="ImageURL" title="App Screen Shot"/> tags to their profile, the template will add a screenshot tab to the profile and load the image url in the UI. Allowing this sort of feature extensibility is really great and it makes the whole system really easy to maintain and extend. If you like someone elses profile, you can simple view source on the XML to find out the template's capabilities.

This solution is also very scalable, allowing the Flex Directory to support a larger number of page types and millions of pages. In the first edition I only listed companies and had to reject individual developers due to scale. With the new architecture the site will support many different types and allow cross-linking between the pages with clean URLs.

FXD 2.0 types:
  • Companies
  • Developers
  • Projects
  • Components
  • Services
  • Jobs
The cross-linking is key to allowing visitors to see relationships visually and navigate the site across the networks within.

Here are some example relationships that can be shown:

Developer "at" Company
Developer "recommends" Developer
Project "by" Company/Developer
Company "has" Projects/Component/Service/Jobs
Jobs "at" Company
Components/Services "by" Company/Developer
And more...

The cross-linking is one directional, optional within the profile, and tied into the URLs. Ideally it adds a ton of value and allows the developer network to become visible creating more value for everyone. For the market to grow we need this level of transparency. Ideally it will drive a lot of business to companies, raise leading developer rates, and allow projects to find the resources they need to become successful.

What is cool is that all these various types of information can be listed without a single change to the backend. As this is done WIKI style using just an XML model, the view can be wildly different atop the same model. A regular WIKI would embed markup with the model and result in an inconstant UI, this is not the case with a Structure Wiki. The system can display wildly different views of the same information and extend features of the UI should certain model information be present. From my initial tests the architecture supports the rapid creation of a large number of accounts supporting millions of entries. What is interesting is that this methodology is also very bandwidth efficient. As the UI is a single SWF file, it is downloaded and cached once per site visit and the base XML page data is really small (5K or less). This results in creating millions of pages where the UI is 100% cached after the first page and contray to popular belief it actually is far faster and more interactive than an HTML/JS/AJAX based methodology.

The goal of the FXD 2.0 is to make the market for Flex/Flash/AIR much more transparent. Currently many developers and firms build great projects but have no visibility in the larger marketplace. Components and Services for Flex/Flash are also not very visible. Ideally FXD 2.0 will make the market much more visible, help developers find projects, projects find the right developers, and developers find components and services to build their applications upon. It will be a great big social experiment atop the Adobe technology platform and should be a blast to build. If you have been following my blog for the past year you have seen slices of this in development (FXT, Flex Search, FX over XML, URL Matters ) but this will put the whole picture together.

I will also be building this transparently online and all work will be released open source and including the WIKI backend and all SWF/Flex projects within. Hopefully the architecture can be reused for your own projects.

Flex Directory

More to come!

Ted :)



5 Responses to “ Flex Directory 250 Firms / Full Update / FXD 2.0 ”

  1. # Anonymous Doug McCune

    Ted, I wonder if in the underlying XML you switched from using attribute="value" to using <attribute>value</attribute> maybe the search engines would pick up the text better. And maybe even stick in something like an extra h1 html tag around name or something, to let google know it's an important field.  

  2. # Blogger Ted Patrick

    Doug,

    HTML schema masking is a good tactic as the engines are looking for data along these paths. The html-head-title path trick worked like a charm and I imagine others would as well.

    A popular engine for scraping is Beautiful Soup (python) and it provides several simple patterns. One is to simply remove all tag content and retain just the text not the markup. Assuming the engines are looking for data content outside of the tags would rank higher unless the tags were in an expected schema.

    My 2 cents,

    Ted :)  

  3. # Anonymous Shawn Makinson

    Ted,

    Just wanted to say thanks for taking the time to build things like this for us all. Its appreciated!  

  4. # Anonymous Eric

    Although the Flex Directory is ranking #1 (in part due to many incoming links), none of the content inside the directory (other than the HTML meta) is indexed by Google or Yahoo.

    You can prove this by searching across the directory.onflex.org domain:
    http://www.google.com/search?q=site%3Adirectory.onflex.org

    Or search for one of the companies listed in the directory content ("IBM Centers" for instance):
    http://search.yahoo.com/search;_ylt=A0geu5UcJ45HFWYARi5XNyoA?p=directory.onflex.org+%22IBM+centers%22&y=Search&fr=sfp&ei=UTF-8

    Neither returns any information about the companies in the Flex Directory, because the search engines are not parsing the XML.

    There's an easy fix though: use XHTML instead. This technique (progressive enhancement of XHTML using Flash) was outlined in our Faust article last spring:
    http://blog.space150.com/2007/1/11/faust-flash-augmenting-standards.

    The directory could use the hCard (http://microformats.org/wiki/hcard) XHTML Microformat, which would make it possible to re-use the data in other systems that understand hCard.

    And taking it a step further, you could style the XHTML with CSS to make it more usable for devices without Flash. The iPhone for instance, which will actually create dial-able links out of any phone numbers it finds in an hCard (http://www.alistapart.com/articles/putyourcontentinmypocket).

    e  

  5. # Blogger Jeremiah

    Thanks very much for maintaining this. Slight gripe that is more of a general Flash Player gripe is that the mouse wheel is not supported on Macs (as is to be expected). The lack of mouase wheel support in Flash Player drives me absolutely nuts. I wish they would fix that. In the mean time, there are after market patches made with javascript to create Mac mouse wheel support in Flex apps. Here's an example. From the comments, it looks like it needs some help before using with Flex 3:

    http://hasseg.org/blog/?p=3  

Post a Comment



Jobs


Flex Jobs
city, state, zip


© 2008 Ted On Flash