Thursday, October 4th, 2007
Craigslist Tibco GI Remix
Luke Birdeau has remixed Craigslist to produce a desktop-esque Ajax application view on the data that adds features such as being able to save your favorites, add notes to them, and even use the app offline (e.g. take your laptop on the road to go see the stuff for sale of meet that blind date). The app combines aspects of 3 libraries – TIBCO GI 3.5 for the interface, plus Dojo (for offline) and Google Maps.
To get started you first pick a locale, then a category, then do a search. You can also add multiple regions and categories too.
Here is a quick demonstration of the app in action:












Okay, I’m not really one to bash stuff (at least publicly) but this app runs horribly slow, to the point of being unusable, on every browser I tried. I figured Safari or Opera might do better than FF but it was still frustrating. As an avid Craigslist user, I was excited to check this out. The UI design and idea are great but it suffers from performance issues at this point…
for me it’s quite snappy for the amount of parsing thats being done. FF on winxp here.
maybe there was still a bug in there when you tried it.
Very nice - runs very snappily for me on FF2 on Win XP and Ubuntu. There seems to be some problems with viewing the images for houses, but besides that I’m very impressed.
Maybe that assessment was a bit harsh… It is usable in Safari and still much faster than using the actual Craigslist site I suppose. Nice job.
GI is not a markup-replacement framework that tries to modify portions of an existing Web page. It does use HTML and JavaScript like other Ajax toolkits, but the approach is different. It’s like the difference between JSP and Swing. They’re both Java, but while the former is more appropriate to Web pages, the latter is more appropriate to applications. As such, GI “installs” itself the first time you go to the given Web site by downloading the JavaScript libraries to your temporary internet files directory. Depending upon your connection (and because I use a cheap Web host), the first time you visit the site it will take between 9 and 20 seconds to “install”. Thereafter (e.g., the next time you visit the site), it will typically load in around 2 seconds. That’s simply how GI works. It makes sense for designing applications, but makes less sense for doing a bit of markup replacement on an HTML-centric site (I think jQuery does a good job at that). Will’s experience is pretty common (complaining and then backing down). The same thing happened last time we posted an application on Ajaxian (http://tibco.xignite.com). As far as Safari support is concerned, the WebKit nightly builds are coming along well. They’ve cleaned up most of the issues that GI needs to run well. Supported browsers include: IE, Firefox, and Safari.
Nice, but proxying the Craig’s List content may in fact violate article 12 of the CL terms of use. (http://www.craigslist.org/about/terms.of.use.html)
My hope is that since this site is educational (an example) and not some thing for sale (I have no intent to make money off this), that it will not be an issue. I just thought it would be an interesting example of using Ajax to resurface a well-known site (I actually built this site for my wife). I did talk to craigslist directly regarding this and showed them the site several months back (some of us went to their offices in the Sunset). My intent is merely to show the conceptual difference between a traditional Web site (click/refresh) and an Ajax-enabled site.
I happen to proxy their content simply to allow me to read the address in each posting and update the map location. The application was also written to use RSS (their syndicated content), so if it is offensive to them, I can also use their RSS feed and simply present a shortened list (only 25 results when its rss). It’s just a lot more interesting to show the integration between the positing content and the google map widget.
Performance is definitely something to look at, although this is an interesting mix of technologies - it’s clear the browser is doing a lot of grinding.
Date sorting seems broken.. It isn’t sorting the months in their actual order. When sorting descending, September comes before October.
Otherwise this is sort of neat. I’d prefer the ability to view each category by itself, but whatever.
How long did it take to build this? Just curious about the productivity using Tibco GI.
It took about 6 weeks. That includes design, planning, and figuring out how craigslit works and how to integrate dojo, google, and skype. I use IntelliJ for my JavaScript editor and GI Builder to create the components and the UI. It’s really easy to drag/drop assemble the UI in General Interface, so most of my time is spent doing the app-specific logic.
Of course I work on GI itself (the core product), so feel free to double my time estimate if this is your first GI project. If you want a more accurate sense of what’s involved, the entire code base is kept in the googlecode respository. For example, here is the main controller for the application.
Scott…I was wondering if you could provide your hardware/os/browser profile? It’s a lot more useful to me if I know where to look. Also, GI provides performance profiling tools, so perhaps you wouldn’t mind viewing the app through this lens. Just click the ‘Run’ button to start the performance profiler.
Just a quick note; this uses Dojo 0.4 plus the Flash Dojo Storage Provider. It’s not using Dojo 0.9 with the new Dojo Offline+Google Gears combo.
Great work Luke!
Best,
Brad
I am sure some people will find this very useful.
Craigslist Proxy
Thanks.Good article
Interesting Article. Armenian Genocide
Craigslist Auto Poster Very interesting.
Have you try CLPicView firefox extension?
You can do craigslist multiple city search with picture previews thru my site at http://www.craigslist-search.com
You can also download CLPicView firefox extension and other free craigslist tools from http://www.craigslistcompanion.com
Let me what you guys think of these tools.