September Status Update

By Edouard on October 2, 2009

This month I have been releasing only very few new features. I have also been working on the website’s performance.

A few new features

Search

“Search” seems to be such a little feature. It’s actually used a lot, needs to search everything and fast. It has been quite complex to implement.

Given the amount of string entries we are dealing with (we currently have more than 30,000 strings in database without having officially launched), and because we want a full-text search, it becomes quickly inefficient to directly query our database.

The solution for this problem is a search engine. In the background, an indexer look at the database for changes in the strings and well, index these changes. On the front-end, a search server check the index and respond quickly to your queries.

I chose Sphinx because it is fast, lightweight and under active development. It also has awesome plugins for Ruby on Rails, I chose Thinking Sphinx, which has an amazing documentation.

Save all strings in this page and developer comments

Another small improvement is the ability to save all the strings in the page. This has been requested by our beta testers. Furthermore, Web Translate It can now display developer comments. Developers can put there explanations or links to example pages.

Help section

I have also been working on the help section. It actually is a wiki, users will be able to write there tips and tricks.

Better importers

I have been rewriting the Yaml importer and exporter from scratch. The version I had was not capable to handle Rails’s plural forms. Also, more validations are now done before actually triggering the importers, therefore more availability and less failures.

Lastly, since today we also support PHP .ini and Java .properties files.

Performance improvements

API performance improvements

This was also technically thrilling: The API now supports Conditional GET Requests.

If you provide your request with a context (a HTTP header that include the date of last modification of your file), the new API will respond with a sensible HTTP status code.

If there has been changes since your last call, it will respond with the code 200 OK along with your translations. If there aren’t any changes, it will respond with a mere 304 Not Modified without your translations.

Needless to say, respond something empty is blazing fast.

Website performance improvements

To accommodate this feature, I also have been optimising Apache, which now supports Gzip compression, page caching and E-tags. The YSlow plugin for Firefox and Yahoo’s Best Practices for Speeding Up Your Web Site have been inestimable resources for this work. Web Translate It really feels much faster now.

Finally, I upgraded Ruby, the language that powers Web Translate It to a slightly newer version. Because traffic is still quite low, it is hard to notice any improvements on speed, but I noticed a huge drop in memory consumption.

That’s it

That’s it for this month. This is probably the last time I write a monthly status update. I release a new version of Web Translate It weekly, so it is hard for me to compile all my work in a post, and it makes rather long posts. I’d rather post weekly updates or “feature by feature” updates for large features.

Finally, as usual: Web Translate It is currently open for beta testers, so if you want to test Web Translate It for free, send me an email at edouard@atelierconvivialite.com.