Asual

Wednesday,
22 Nov 2006

SWFAddress 1.0

As of today SWFAddress 1.0 is available for download. It took me about a month to prepare the first final release and it definitely exceeded my own expectations in terms of new features and improvements. Here is the full changelog:

  • Improved folder structure.
  • Build procedure based on Apache Ant.
  • Optimized version that utilizes the dojo compressor.
  • Support for GET style parameters with the corresponding getPath, getQueryString, getParameter methods.
  • SEO support via PHP/mod_rewrite for Apache HTTPD and JSP/UrlRewrite for Apache Tomcat. It uses values like '/portfolio/' instead of '/portfolio' or '/portfolio/?desc=true' instead of '/portfolio?desc=true'.
  • Detection of supported browsers.
  • Improved Safari support that relies on a cached form and cookies. The method is not bulletproof, but will work in the majority of cases.
  • SWFAddress.setValue() can be called from JavaScript.
  • Support for manual address changes in IE.
  • Fix for '#' title in IE.

Two weeks ago I moved SWFAddress to Sourceforge.net in order to reduce the traffic on our site and provide nice facilities like Subversion, mailing list, forums and more.

Learn more about SWFAddress or go straight to the download.

Tuesday,
21 Nov 2006

SEO for SWFAddress

I would like to introduce you to the most interesting feature of the upcoming SWFAddress 1.0. It enables generation of real links that expose the appropriate content to search engines. The magic happens with some interesting URL rewriting and some trivial serverside code. Here is an example how it works for a website located at http://www.domain.com that contains a portfolio section:

SWFAddress uses http://www.domain.com/#/portfolio/. The URL that can get indexed is http://www.domain.com/portfolio/ and therefore it should exist as a link in the HTML code of the page. When someone visits the indexed address the rewriting functionality makes a redirect to the URL that SWFAddress expects. Everything happens transparently for the end used and further navigation through the website correctly changes the Address bar value. The situation is different when the same link is followed by a search engine bot. In this case the address is just rewritten without any redirection to http://www.domain.com/?swfaddress=/portfolio/. The page that handles all this should use a serverside technology in order to generate the appropriate content depending on the "swfaddress" parameter value.

Requests containing GET parameters like http://www.domain.com/#/portfolio/?desc=true&year=2001 are handled similarly. The search engines will index http://www.domain.com/portfolio/?desc=true&year=2001 and the script will expect http://www.domain.com/?swfaddress=/portfolio/&desc=true&year=2001.

The result is a fully indexed Flash website with deep linking support. To see it in action you can try on of the following search queries:

While this approach improves the usability of Flash content over the web, it also requires an additional effort. This means some manual work for static websites and some smart code for dynamic ones. The best case will be a Flash CMS that automates the whole process.

I haven't seen something similar created for Ajax heavy websites although a part of it is documented in the Unique URLs pattern. It will be great for both Flash and Ajax if a technique like this gets adopted and improved over the time.

SWFAddress 1.0 ships tomorrow, stay tuned.

Monday,
23 Oct 2006

SWFAddress - Deep linking for Flash®

I'm glad to introduce you to our new project that aims to improve the way people use Flash websites and applications. It's been a long time since Kevin Lynch outlined the problem and provided some proof of concept code, but two years later there's still no a solid standard solution.

A few weeks ago we started working on a typical Flash website for a fellow photographer and I thought that it will be great if it supported deep linking. I had some JavaScript code that enables such behaviour for Ajax calls and it was fairly easy to connect it to the Flash movie using ExternalInterface. I also extended the SWFObject initialization in order to simplify the usage of the script as much as possible. This is how SWFAddress was born. As of yesterday it's available under the MIT license.

I'll be happy to hear your comments, suggestions and bug reports. My list for the final release include detection of unsupported browsers, improved Safari support and probably a sample that works with the default Flex 2 templates.

Future improvements may include support for query parameters and custom events for specific URLs.

Learn more and download at the SWFAddress homepage.

Tuesday,
17 Oct 2006

SyntaxHighlighter by DreamProjections

Since we've started this website I'm looking for a syntax highlighting tool that can be used for code samples. Geshi seems to be great, but since I'm using Tomcat I cannot run PHP scripts that easily. The same applies to the well-known Beautifier highlighter and it hasn't been updated for long time. Flash Text Formatter is a good one, but to me it seems more appropriate for full Flash websites. So one day while I was browsing at the YUI examples I saw another engine that uses pure JavaScript to highlight most of the languages that I need. This is how I've chosen the dp.SyntaxHighlighter and below you can see some samples of it:

CSS:

JavaScript:

ActionScript:

This showcase uses a custom copy of dp.SyntaxHighlighter that matches the look and feel of our website. It also includes improved CSS highlighting, ActionScript support and a minor Ruby related fix. I'm providing my version for download and I hope that one day I'll find some time to convert it to a blojsom plugin.

Friday,
30 Jun 2006

Charts, excanvas and printing

A few months ago I was exited to see the new Canvas based JavaScript Chart engine created by Emil of WebFX. Canvas emulation in Internet Explorer using VML is really challenging, so we can't be more than happy that Google has an open source project that does this job for us.

Yesterday I started evaluating various charting components for a large e-health application and my first choice was the WebFX Chart. Of course Flash is always an option, but we still don't need it that badly and we're trying to avoid it when possible. Everything went smooth, I was able to customize the background and legend suffixes, but then I got stucked: it doesn't print in Internet Explorer. Such issues can be problematic if you want to promote such evolving new technologies.

I had the time to dive into the issue and the VML docs available on the net. It's a powerful technology that in fact has no problem with printing. After some digging I found the problem and here are the two possible solutions:

Using the original excanvas.js you need to add the following CSS to your documents:

You can also hack the library by changing line 56 with the one below:

This is also the bug fix I've proposed to the excanvas team.

Plotkit is also a good charting framework that suffers from the same printing issue.

Opera 9 has good support for the Canvas tag, but looks like it doesn't print it at all. I still haven't the possibility to check the situation with Safari 2.

Update: The fix was accepted and this functionality will be available in the next excanvas release.

« Previous Entries | Next Entries »

Projects

Syndication

Blog Search

Blog Categories

Blog posts

Recommended sites