The Future of I18n in Ruby on Rails - RailsConf Europe 2008

posted: September 6th, 2008 · by: Sven

in: Globalization, Programming · tagged as: , , ·  138 comments »

This is a wrap-up of my talk about the new Internationalization API that’s included in Rails at the RailsConf Europe 2008 in Berlin.

You can also look the presentation as a Mac OS X Keynote file, HTML (click on the slides, give the images some time to load) and PDF (including notes) format here.

If you are looking for more resources about Rails I18n please refer to our project site and especially the wiki. If you liked my talk or find my work useful please recommend me on working with rails.

So far the ratings evaluations summary says that I’ve received 13 ratings with an average grade of 4.2 (scale is 1-5 stars) … which I guess I can be pretty happy with. If you’ve attended my talk and haven’t rated it, yet, please do so :-) You should find a link for doing that on the session’s details page here.

Also, unfortunately O’Reilly did not take any videos from the sessions apparently and I have missed to ask somebody to take photos myself. If you know of anybody who’s taken some photos please let me know!

Welcome everybody!

I’m very happy to talk about “The future of Internationalization in Ruby on Rails” today.

So, who’s me?

This never occurred to me before but in a recent RailsEnvy podcast I’ve learned that my name could be pronounced like this …

If you want to google me …

… you probably have better luck using this.

I’m currently living in Berlin and I love it :)

I started programming in 1984

I’ve been in business as a developer, mostly as a web developer for some years and switched to working with Ruby and then Ruby on Rails a couple of years ago.

Some of you might know me because I’ve led the Rails I18n group for the last couple of months and did the final touches on the implementation of the new API in Rails recently.

Some people know my blog because of some tutorials I’ve written about Globalize.

And I’m currently working on a CMS application platform called adva_cms.

Of course, as a German developer I’ve always been interested in support for Internationalization so I’m really happy that I’ve able to contribute something in this area to Ruby on Rails.

If there are any questions please try to make a mental note and keep it for the end. I’ve set some time aside for Q&A at the end of the talk.

Ok, by the end of this talk I hope you’ll have a clear picture of what the Rails Internationalization project is, what’s included in the new Rails Internationalization API and what’s not and how you can use it.

I will give a very brief demo. Of course this is a huge topic so I’ll point you to where you can find more resources.

Then we have a short and sweet Interview video prepared with Joshua Harvey the original author of Globalize

And finally I’ll give you some hints about what we’re going to do in the future and how you can contribute to that.

So, to better understand the future of Internationalization in Rails I want to contrast that a bit with the history that we all suffered through. As you know the history of Internationalization in Rails is really, really dark.

These were times of chaos.

They were unclear, unpredictable, unstable and highly adventurous.

You’ll see the reason for that in a minute. Let me first let you show how many different solutions we’ve already seen and how wide their variety is.

We have seen things like …

Ruby Gettext - the dinosaur and grandfather of Internationalization

David’s original Localization plugin as well as …

Thomas Fuchs’ Localization plugin - both very simple

GLoc - one of the first bigger implementations

Globalize - the only solution with solid Model translations

Globalite - a very slick solution by Matt Aimonetti

Simple Localization - also a very interesting solution by Stephan Soller

Both have contributed a lot to the Rails I18n project by the way.

Gibberish - maybe the most recent full solution, came along as the cool kid on the block.

… and many more.

There are solutions for special needs like …

Localizing Rails to like Swedish, Brazilian, Korean and so on.

There are plugins that add functionality to other plugins. For example there is Jibberish that adds a Javascript Layer on top of Gibberish. And things that just adds separate, useful tools.

Stuff like that … of course there’s much more. I just wanted to give you an impression of these things.

So when you take into account how complex our languages are and how many funny problems there are to solve and we have lots of lonely programmers working on this and everybody focusses on the features he actually needs himself …

What do you think will you get?

What you get is a huge mess.

We have lots of isolated, incompatible solutions.

Things like support and documentation just don’t get better with a lonely developer solving their own needs and then - of course - often walking away and focussing on something completely different.

Then, all of our solutions basically were huge Monkeypatches to Rails with the usual problems resulting from that.

And all of us re-implemented the wheel in one way or the other. So, in a way, we wasted lots of resources.

But - on the other hand - this situation was actually necessary for us to experiment with solutions and learn how Rails Internationalization could be done.

Because of this situation last year in September a group of developers from several Rails Internationalization plugins gathered for a chat session. We agreed that we wanted to implemented a Rails core patch which should solve the problems we had with this stuff.

We invited developers from all existing solutions that we knew and started meeting regulary, collected requirements, discussed our ideas …

Actually there was really a lot of discussion and initially it was hard to agree on anything.

You know that sort of situation. Everybody brings their own favorite little features to the table, everybody has different beliefs of what’s good and what’s necessary. So this discussion went on endlessly and in the beginning of 2008 our work slowed down. Apparently we really needed a creative break and some time to rethink everything.

Then, in May 2008 we got back to the drawing board with a fresh approach …

… and now we were able to agree on a very slim and lightweight implementation that covered all of our requirements

It works as a Ruby gem which means it is not only suited for use in Rails but also other frameworks.

We wanted only minimal changes in Rails, we wanted it to add as less load to Rails as possible and of course we still wanted it to implement a common API where everybody could build on.

So, at this point Jeremy Kemper didn’t really know about our work but in a RailsConf Portland RailsEnvy interview he predicted for Rails 2.2 that …

… Internationalization will be solved.

When we asked Jeremy about this he said it was a joke

So we think Jeremy should definitely crack more jokes about things like this.

Because in the end this joke actually got us going to finally propose our work to the core team.

In hindsight there were a few key decisions. Before we managed to agree on these we had not been able to get anything really done. These key decisions were:

We agreed to make the actual implementation of all the logic exchangeable, so you can always plug in something more powerful or more flexible if you need to.

We radically sticked to the principle of “doing the simplest thing that ever could work” for Rails.

And maybe most importantly we just stopped aiming for a solution that did anything else than the bare minimum that’s needed for Rails.

So, what we now ship with Rails is a common API for Internationalization which is basically just a bunch of definitions how things are supposed to work. So this is just a Ruby module with some public methods on that.

These methods delegate to a backend that actually implements the API. The backend that is shipped with Rails is intentionally named the Simple backend because the only requirement for the Implementation in the Simple backend is that it works for American English because that’s what we need for Rails to keep it working like it worked before.

That means: the most important parts that previously were hardcoded right into Rails are now abstracted out of the code and moved to a simplistic backend, accessible through just a few public methods.

So this is true

While this … might work. Maybe you can localize Rails to your favorite language if it is very similar to English. There are quite some resources out there that show how to do this. For everything else we still need to add plugins or other libraries.

For Rails itself we settled with shipping the translations as YAML files and with stock Rails you can also use Ruby files, so you can have lambdas in your translation data.

I’ll run through the main features that this API provides.

As I said the API is provided as a Ruby module with two main methods on it.

These are:

I18n.translate which you can use to look up translations from the backend and for convenience it has an alias #t and you need to pass it at least one parameter which is the key.

So this would look up the translation that’s stored for the key :rails in the current locale, for example, by default American English.

The other method that you’ll use regularly is localize.

This one basically allows you to format Date and Time objects for a certain locale.

Again, for convenience there’s an alias … of course that’s #l and you pass it the object that you want to localize

So the #translate gives you very powerful means to look up translations.

You can look up your translations using a Symbol as a key and this is what we’d generally encourage you to do. But you can also use a String.

Also, you have scopes, so you can namespace your translations and structure them in a reasonable way.

For example in the ActiveRecord translations YAML file there’s a scope activerecord and then there’s a scope errors, a scope messages and finally there’s finally the translation for the key :invalid.

So scopes are basically groups or namespaces of translations. You can think of them as nested Hashes

Consequently there’s a way to look up whole namespaces - or groups - of translations. For example this will look up all error messages in ActiveRecord and return a Hash with all those messages.

Then there’s bulk lookup. That just means that you can pass an Array of keys you want translated and it will return you a corresponding array of translations.

And finally, of course, there’s defaults so you can specify what happens when a translation can not be found.

For example when you give it a String as a default and the translation can not be found it just returns the String.

But when you give it a Symbol it will translate this Symbol and give you that translation as a default.

Finally you can specify an array of Symbols and/or Strings and it will just check everything in that order and return the first value that’s not nil.

Interpolation is another feature.

That means you want to abstract your translations in certain situations. For example you have a translation for the key :message and there’s variable :name in that. Then you can pass the value of that variable to #translate and it will parse the value into the translation.

This looks trivial but it’s actually a very important feature because concatenating translations is kind of an anti-pattern in many situations.

Also, the API provides means to define Singular and Plural translations of course.

For example you could have a Singular and a Plural translations like this. Then you can pass a count option to #translate. So in this case it would pick the Singular translation because count is 1. And when you pass it 2 it would pick the Plural translation.

So that’s it already - all very basic stuff of course. No worries, you can look up everything online :-)

Like I said, the I18n API ships with a Simple backend …

… which implements all of these features for American English only. So for example you can’t use it to do pluralization for Czech because they have different rules for pluralization.

As I just showed you your English translations include something like this.

But in Czech you have two plural forms - one of them is called Paucal. They use the singular just like one does in English. Then they use the Paucal, the second form, for everything between 2 and 4. And the actual plural for everything else.

So the Simple backend can not do that but we can easily swap it and the Internationalization API actually encourages you to do so.

You would just create a class for your custom backend and maybe extend the Simple Backend, implement your custom logic and tell the I18n module to use it.

That’s it.

Basically this is what future plugins will do a lot. For example there definitely will be a backend that stores translations to the database and I’m sure there’s one soon to read and store them from and to Gettext files.

So let’s have a really brief look how you can use this in your application.

So, if you’re actually working on an application today, what can use use?

Of course this really depends on your requirements. So let’s have a look at some scenarios …

Let’s say you just need a few static translations and maybe some date and number formats. Then you can easily reuse the Simple backend that Rails ships with. By now there are a couple of demo applications on GitHub that show how to do that.

Let’s say you have a language that requires different pluralization rules. Then there’s an experimental Pluralizing backend for that where you can hook in pluralization logic as lambdas.

Let’s say you need to translate your application to Russian, or Czech or another language that has some more complex date formats.

For that there’s an experimental Chain backend where you could hook in a custom backend tailored for just these languages’ date formats.

Also there’s already a full plugin solution by Yaroslav Markin from Russia that implements things like these and I think it’s easy to adapt it for other languages.

If you need model translations there’ll be Globalize2. Globalize2 will look completely different to Globalize. It will be pretty lightweight and unobtrusive. Joshua will tell you more about that in the interview.

Also there’s an alternative approach, that’s linked on rails-i18n.org

So, if we still have to rely on external code, like plugins, to localize our applications.

What do we win?

The short answer to that clearly is: we win a lot!

First of all, we don’t need no monkeypatching any more

Well, of course we still will monkeypatch Rails to experiment with new features.

But we definitely won’t need to do probably 99% of what we’ve done before like translating ActiveRecord error messages, translating all the helpers that Rails provides or anything like that.

Also, because we now can build on a common API we expect things to become much better exchangeable.

We will aggregate common locale data over time. So we will build up a Rails specific pool of Localization knowledge.

Also we hope that plugins will be much more focussed on implementing certain atomic features.

This is actually something we encourage everybody to do. You know, so far, you could not possibly combine three, four, five different plugins and expect anything to work. We hope we’re now able to do a better job here in future.

So, of course, with all of this stuff released our next development cycle has started … right now.

Of course we’re all going to implement our stuff next. In fact by now there are already quite some useful things out there. During this time we will try to stay in touch with each other and then, again, collect everything, review it, again, discuss it and finally aim for another core patch.

The reason why we want to first collect everything and look at it as a whole and then move it to Rails as a rather complete package is that many of these things make most sense in context with each other.

We hope this will then result in a landscape of Rails Internationalization solutions where we have a distributed toolbox of focussed plugins rather than those huge solutions trying to solve everything under the sun at once that we had before.

We’ll have more compatible solutions and maybe the most exciting thing is that we will get to have Rails specific, common locale data.

So, let’s see what Joshua Harvey has to say about Globalize 2.

By the way the guitar shop that you can see in the video is actually the shop rashgash and the website at rashgash.com is the reason why Joshua initially wrote Globalize as he mentions in the interview.

So this is a brief overview of features that Globalize 2 will provide.

Of course there’s model translations - kind of Globalize’s USP in the past. For View translations we’ll basically use the Rails I18n API. There will be some useful tools like standards compliance tool for locales which we’ll need for locale fallbacks and stuff like that. A locale load_path tool that helps loading translation data more easily.

Actually the implementation of Globalize 2 is sponsored by the company BESTGroup Consulting & Software from Berlin. So, thank you, BESTGroup for making this possible.

Also, Metaversum, a company also from Berlin will start sponsoring us right after this conference. So, thank you, Metaversum in advance.

And actually we are looking for more sponsors not only for the Globalize project but also for the Rails I18n project because we really want to put this project on a really solid foundation.

For example we want to have somebody working on stuff like documentation on a regular basis and we want to provide better support for newbies on the mailing list and other stuff that is all usually much easier to do when you have a small budget to spend.

So if you’re interested in sponsoring a really cutting edge and high-profile Ruby on Rails Open Source project that already gets tons of attention and definitely will get even more attention in the next couple of months … just catch me afterwards and we can talk about that.

So, how can everybody in this room get involved?

Of course everybody can just start playing with all of this, register to our mailinglist and give feedback. We need tons of that.

You can share your translations. We already have a repository on GitHub for that, so if you’ve done translations for Rails please submit them.

You can build plugins focussed on certain features that are still missing. And please don’t forget to pitch them on the mailinglist and our wiki.

You can help improving the Rails integration. You know Rails helpers are there and they are working. But that doesn’t mean they’re already perfect regarding Internationalization. So you can help to improve that.

And of course, you can sponsor our work so we can invest some money in things that are hard to do otherwise.

So, basically this was my talk. We’ve collected pretty much everything I mentioned in this talk as well as lots of other resources on http://rails-i18n.org. So, look it up.

Thanks to everybody who contributed!

Ok, so what are all those questions you want to ask?

Leave a comment

138 Comments

  1. Luca Guidi said September 9th, 2008 at 04:28 PM  

    Wow man! Your post is very exhaustive. Congrats again for your speech!

  2. Morgan Roderick said September 9th, 2008 at 08:06 PM  

    Best conference to web presentation for a long time.

    Thank you very much for taking all the time to share this!

  3. Felipe Koch said September 10th, 2008 at 12:33 AM  

    Just a small nitpick: Brazil speaks Portuguese, not Brazilian.

  4. Priit Tamboom said September 10th, 2008 at 01:12 PM  

    Wow, thanks for your really nice blog-presentation!

  5. Giorgio Gonnella said September 11th, 2008 at 05:39 PM  

    Very nice presentation and hopefully the current chaotic situation with I18n will finally come to an end!!!

  6. Matthias Marschall said September 18th, 2008 at 12:33 PM  

    Thanks for the great intro to ruby i18n. After patching GLoc myself to make it work with Rails 2.1 I’m really looking forward to a unified solution.

  7. Angela said March 6th, 2009 at 09:47 PM  

    It was the best video conference on the web. Nice work, thanks por share it!

  8. Rolf said May 20th, 2010 at 05:49 PM  

    Thanks, Sven ! You make it sound simple. I’m always a bit suspicious when it comes to change, or to learn something new. Probably some kinfd of paranoïa !!! Thanks anyway.

  9. Paul said July 29th, 2010 at 11:21 AM  

    There not much more to say ! Sounds simple, indeed. Thank you !

  10. Resveratrol said November 20th, 2010 at 02:34 AM  

    Ruby on Rails is a great framework. Ruby on Rails is the future of the Internet thanks so much.

  11. resveratrol said December 19th, 2010 at 10:15 AM  

    Hi! The articles you have on your website are always so enjoyable to read. Good work and I will be returning often. Thanks…

  12. John Moor said February 3rd, 2011 at 12:06 AM  

    I like Rubi. It is good project. It is definitely going to help me some time.


    instant approval payday loan

  13. Magalie said February 5th, 2011 at 11:46 AM  

    Rubi is something which definitely takes time to get a grasp of. I’ve been following a computer programming course but still I have a slight amount of trouble with it.

  14. QQQ said February 7th, 2011 at 06:38 PM  

    Finally we kissed and the passion scale went sky high and I knew I was onto a good thing - sex was a certainty free porn videos. She never hesitated when I began to fondle her breasts and she willingly exposed them for me mobile porn. They were firm and I suspected a breast enhancement but said nothing - they still felt good and I was enjoying them and gradually working my way further south free porn tube. She was a step ahead of me and before I could completely undress her she moved on me atk hairy and I was suddenly having my pants pulled down and I was enjoying one of he best cock sucking hairy pussy experiences I had ever had. ABB728019394

  15. Rodrigez said February 14th, 2011 at 08:56 AM  

    Love these videos, a great collection of interviews, saved and bookmarked it to my streak to look at all of them later.

  16. Jeff said February 19th, 2011 at 07:09 AM  

    Thanks for sharing this excellent post. Keep up the great work here.

  17. average gas price said February 20th, 2011 at 08:28 PM  

    This is actually something we encourage everybody to do. You know, so far, you could not possibly combine three, four, five different plugins and expect anything to work. We hope we’re now able to do a better job here in future.

  18. french translation said February 20th, 2011 at 10:14 PM  

    Thanks for one of the best conference to presentations in a while. Glad you were able to take time to share this. deutsch französisch übersetzungen

  19. Paras said February 21st, 2011 at 08:23 AM  

    Thanks for sharing all post are very nice..This was actually what i was looking for.. Dissertation Help India

  20. Ankita said February 22nd, 2011 at 07:45 AM  

    This is first time i am visiting on your site..And seriously your site is tremendous..All post are very nice and interesting.Thanks for sharing all post.. dsl providers

  21. Übersetzung said February 22nd, 2011 at 01:53 PM  

    Thank You for the post. I learn a lot of!

    spanisch Übersetzer | türkisch Übersetzer

  22. A hot girls website said March 2nd, 2011 at 09:41 AM  

    I’ll see you at the conference next year! Hopefully it won’t be as

  23. hot
  24. as last year!

  25. Übersetzer said March 8th, 2011 at 02:45 PM  

    Thanks for the nice posting.

  26. Vertriebspartnersuche Japan said March 9th, 2011 at 11:06 AM  

    I love your posts - thanks for sharing reliable information.

  27. Traduzione traduttore said March 11th, 2011 at 01:32 PM  

    Thanks for sharing it! nice! :-D

    Traduzione spagnolo Traduzione francese

  28. Traduttore Traduzioni said March 11th, 2011 at 01:41 PM  

    Interesting post! Add more news!

    traduzioni danese

    Traduzioni turco

  29. great tubes said March 12th, 2011 at 05:13 AM  

    wow really great site I have found this site extremely helpful Thanks

  30. Arabisch Übersetzung said March 16th, 2011 at 03:11 PM  

    Rubi is something which definitely takes time to get a grasp of

  31. Übersetzungen Hebräisch Deutsch said March 18th, 2011 at 01:41 PM  

    Can’t wait for news. I appreciate your work very much.

  32. Hospital said March 19th, 2011 at 06:55 PM  

    Thanks for this very useful info you have provided us. I will bookmark this for future reference and refer it to my friends. More power to

    your blog

    Hospital Porn mp3

  33. Hospital said March 19th, 2011 at 07:04 PM  

    Thanks for this very useful info you have provided us. I will bookmark this for future reference and refer it to my friends. More power to

    your blog

    Hospital Porn mp3

  34. Hospital said March 19th, 2011 at 07:15 PM  

    Thanks for this very useful info you have provided us. I will bookmark this for future reference and refer it to my friends. More power to

    your blog

    Hospital Porn mp3

  35. ddsgd said March 21st, 2011 at 06:29 AM  

    How to Convert AVCHD films to AVI

    URL?http://www.wondershare.com/avchd/convert-avchd-to-avi.html Troubles we may possibly have encountered to take satisfaction in and reveal AVCHD films with friends:

    1. You have shot lots of films utilizing AVCHD camcorder, and you also need to upload these films to internet that consist of Youtube to reveal with friends, but you can’t determine the right way to create it.
    2. you could possibly also uncover which you would not possess the ability to available your AVCHD camcorder films on house windows film maker or advertising player.

    That’s true, the AVCHD structure is not accepted by lots of players, and also this kind of structure cannot be uploaded to internet which prevents film sharing. I’ve searched near to some great offer and uncover an simplest alternative finally. The simplest way can be to convert avchd to avi or other standard formats.

    The alternative we are able to consider to solve them: An AVCHD to AVI Converter is needed. Please click to obtain avchd to avi converter, set up and run it. Step one Get AVCHD films from AVCHD Camcorder to PC

    Connect the AVCHD Camcorder for the PC using a USB cable. when attached and powered on, the camcorder should seek out the desktop like a brand brand new disk. It is desirable which you duplicate the films for the PC’s hard-drive earlier to converting avchd to avi or editing it. Step 2. fill AVCHD camcorder videos

    Click “Add Video” or just drag & squirrel away your AVCHD camcorder films using the document checklist directly, you can very easily include AVCHD camcorder videos.

    Load AVCHD camcorder videos Step 3. find AVI as output format

    Select AVI as output structure away from your categorized output formats checklist in “Profile” drop-down checklist and specify the output list to preserve your converted records in “Output” drop-down list.

    Select Convert AVCHD films to AVI output format Step 4. start to convert avchd to avi

    After every little thing is done, strike “Start” key to convert avchd to avi. And all the things can be achieved at quickly demand and higher quality. The conversion demand often is dependent for the genuine film sizing as well as your PC configuration. as well as the output best quality is great.

    After converting avchd to avi, now you can upload these AVI films to internet or view them with house windows advertising Player/Movie Maker to reveal them jointly with your friends. The complete method is easy, and you also can possess a try of the AVCHD to AVI Converter to how to convert avchd to avi and reveal your delighted instant easily.

    Tips: Why we choose AVI format? As we realize that AVI structure is among the probably the most standard formats, that is broadly accepted by the majority of players. as well as the best quality of AVI film is great. using the sake of reputation and compatibility, AVI is regarded as probably the most advantageous choice. Therefore, you only should convert AVCHD to AVI, after which you can very easily reveal your AVCHD camcorder videos.

  36. Dänisch Übersetzungen said March 22nd, 2011 at 02:34 PM  

    Hi! The articles you have on your website are always so enjoyable to read. Good work and I will be returning often. Thanks…

    finnisch deutsch übersetzer | französisch deutsch übersetzer | portgiesisch deutsch übersetzer

  37. Lavan said March 23rd, 2011 at 02:35 AM  

    Congrats Sven. You earned the reviews. You are an inspiration. I love your humor. Sven Fuc*ks. On a more serious note, being a programmer myself, I think you hit the head on the nail as to the future of ruby on rails. Lavan @ the buy Nintendo 3ds site. thanks.

  38. Exportberatung said March 25th, 2011 at 10:41 AM  

    Very good comments!

  39. Sprachkurse said March 25th, 2011 at 10:42 AM  

    Love your articles and the whole site. keep on writing.

    Exportberater | Direktmarketing

  40. Translations English Swedish said March 31st, 2011 at 11:02 AM  

    Great article. thank you!

    Technical Translations | Software Translations

  41. apsinthos said March 31st, 2011 at 01:24 PM  

    I appreciate your work very much.This is first time i am visiting on your site..And seriously your site is tremendous..thanks for your really nice blog-presentation! torrent games

  42. Französisch Deutsch Übersetzung said April 4th, 2011 at 02:48 PM  

    Thank You very much for the usefull information!

    dänisch deutsch übersetzung | finnisch deutsch übersetzung

  43. Custom Portrait said April 5th, 2011 at 08:15 AM  

    Dear Mr. Sven Fuchs,

    I missed the RailsConf Europe 2008 in Berlin, but I am so happy I found your presentation here. You are a master of your topic. Thanks for keeping the zip-files free to download!

    Best, Christina

  44. jamesk said April 10th, 2011 at 06:57 AM  

    There is apparently a lot to know about this. I think you made various good points in features also. haier air conditioner | ge air conditioners | payne air conditioners

  45. Griechisch Übersetzer said April 11th, 2011 at 03:34 PM  

    Thanks for this very useful info you have provided us.

    italienisch deutsch übersetzung | türkisch deutsch übersetzung | englisch deutsch übersetzung | niederländisch deutsch übersetzung

  46. Jack said April 14th, 2011 at 07:43 PM  

    Interesting way of thinking. You are a master of your topic. buy custom essays

  47. Hospital said April 17th, 2011 at 10:51 AM  

    Nice blog having nice information. Definitely believe that which you stated. Your favorite justification seemed to be on the web the simplest thing to be aware of.

  48. side sleeper pillow said April 22nd, 2011 at 07:07 AM  

    Nicely written article, Knowledgeable and informative post. I’m really glad I came my way along your site. Keep posting, I really like the whole topic. Thanks for sharing.

  49. indrie said April 30th, 2011 at 03:45 AM  

    interesting and useful information. iklan

  50. erp software brisbane said May 1st, 2011 at 12:01 PM  

    ruby on rails confuses me to no end. great system but it took my soooo long to get my head around…

  51. Stefaimg said May 1st, 2011 at 08:17 PM  

    Nice blog having nice information. Thanks for this very useful info you have provided us. Stefy - Assicurazioni online

  52. Storage Auctions said May 1st, 2011 at 08:38 PM  

    I think O’Reilly knows someone who took photos. He works at the storage auction and I know him. I will check with and see if he has any photos.

  53. bed bug bites site said May 2nd, 2011 at 08:24 PM  

    Multilanguage support is a must for many European Rails applications. A group of developers from leading Rails I18n/L10n plugin solutions

  54. computer transport said May 3rd, 2011 at 04:02 AM  

    I’d made my mind up on this one – or that I had – after reading about this in a specialist magazine. Now your writer has convinced me otherwise … and in far fewer words! Thanks for sharing an excellent piece. JT Smith, Eastbourne

  55. mensajes claro said May 3rd, 2011 at 06:51 AM  

    it took my soooo long to get my head around

  56. mensajes claro said May 3rd, 2011 at 08:30 AM  

    Nice blog having nice information

  57. Übersetzungsdienst said May 3rd, 2011 at 11:37 AM  

    Thank You very much for share!

  58. Rezepte ohne Kohlenhydrate said May 3rd, 2011 at 02:42 PM  

    I think the best way to travel as a tourist is by hiring a limo company or car service, especially if youre not familiar with the area. Plus, the ride in itself is an experience to enjoy with your party. Rezepte ohne Kohlenhydrate

  59. Finanzierungsrechner Immobilien said May 3rd, 2011 at 02:44 PM  

    Going to see Rank 1 Tonight. Its gonna be excellent. There playing with Cosmic Gate. Then next saturday ill be seeing Tocadisco. stunning nights ahead Finanzierungsrechner Immobilien

  60. Immobilienfinanzierung Rechner said May 3rd, 2011 at 03:33 PM  

    Youve done it once again. Superb post! Immobilienfinanzierung Rechner

  61. Baltimore Restaurants said May 3rd, 2011 at 06:54 PM  

    This is the site that I’ve been searching for how many months. Thanks for telling me about this page it helps me a lot to update and post comments here all day.Baltimore Restaurants

  62. ge appliance repair sacramento said May 3rd, 2011 at 07:55 PM  

    This site was awesome!!WOO!!I really amaze with it!!really impressive with the content I could never ask for more I really found all what I am looking for!! ge appliance repair sacramento

  63. appliance repair sacramento said May 3rd, 2011 at 09:39 PM  

    Very few posts contain relevant information such as yours. appliance repair sacramento

  64. appliance service sacramento said May 3rd, 2011 at 10:55 PM  

    There is a lot to know about this. I think you made several good points in this post also.

  65. World News said May 4th, 2011 at 05:04 AM  

    Thank you for welcoming me to this site and to this project. I really appreciate it so much. This is a very nice blog with nice content and with nice discussions here. Thank you so much for everything.

  66. stained concrete fort worth said May 4th, 2011 at 10:01 PM  

    From the content I read in this site I could really say such an excellent do it have.It has a unique quality that you can rarely found on the other sites..I really need to visit this one of a kind site cause it do have a total package !!EXCELLENT!!!

    stained concrete fort worth

  67. Alka said May 5th, 2011 at 09:15 AM  

    I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? as it is extremely helpful for me.Sell Gold NY

  68. krfina said May 5th, 2011 at 09:15 AM  

    Im glad to have found this post as its such an interesting one! I am always on the lookout for quality posts and articles so i suppose im lucky to have found this! I hope you will be adding more in the future…Sell Gold NY

  69. mario said May 5th, 2011 at 03:33 PM  

    Well, this ist a nice page - Sorry, my english is not so good, so i say it in german: Super Text, lässt sich auch von einem Lesen, der nicht so gut Englisch kann und eigentlich eher Porno anschaut. Egal, einfach weiter so… Well done :)

  70. cellulean said May 5th, 2011 at 04:58 PM  

    I really enjoyed reading this post, big fan. Keep up the good work and please tell me when can you publish more articles or where can I read more on the subject? ::cellulean::

  71. ulasca said May 5th, 2011 at 11:32 PM  

    Interesting way of thinking.
    Warcraft

  72. Storage Unit Auctions said May 6th, 2011 at 05:21 AM  

    That last formula was interesting, but I did not really understand it commpletely.

  73. Cégadatbázis said May 6th, 2011 at 01:11 PM  

    Wow! This article is really informative and it is obvious that you know what you are talking about. Thanks cégadatbázis for share it!

  74. Cayman Islands Reviews said May 6th, 2011 at 10:05 PM  

    I’ve been looking for a way to do that with Rails - thanks for the lead:-)

  75. Best Flat Iron said May 6th, 2011 at 10:29 PM  

    From the content I read in this site I could really say such an excellent do it have.It has a unique quality that you can rarely found on the other sites..I really need to visit this one of a kind site cause it do have a total package !!EXCELLENT!!! best flat iron

  76. harris said May 7th, 2011 at 10:45 AM  

    Nice to read one this is well explained topics

    sharepoint support services

  77. ken said May 7th, 2011 at 10:47 AM  

    Nice to read one this is well explained topics.Thanks to the author

    sharepoint support services

  78. Business Cards said May 7th, 2011 at 12:53 PM  

    Wow! It it a very interesting article. I think you spend some time to make it. Thank you for put it on the web. i colud make a whole presentation from it. Business Cards

  79. Scarica Musica Da Youtube said May 8th, 2011 at 02:24 AM  

    Nicely written article, Knowledgeable and informative post. I’m really glad I came my way along your site. Keep posting, I really like the whole topic. Thanks for sharing.

  80. birthing videos said May 8th, 2011 at 03:25 AM  

    I don’t why but I laugh a little bit reading this, very creative writing! Thanks.

  81. Youtube said May 8th, 2011 at 07:12 AM  

    Nice article, very long information! Thanks!

  82. Peliculas online latino said May 8th, 2011 at 07:19 AM  

    This article could help me to finish my homework!

  83. Aplicaciones para Blackberry said May 8th, 2011 at 06:37 PM  

    I love your images, so creative! Thanks, nice article.

  84. tajweed said May 8th, 2011 at 09:06 PM  

    Interesting,I read in this site I could really say such an excellent do it have.It has a unique quality that you can rarely found on the other sites.

  85. john267 said May 9th, 2011 at 07:20 AM  

    The complete range of New York accommodation from a hostel bed to your own New York town house and everything in between including complete listings for every New York hotel as well as a selection of budget hotels , guest houses and bed and breakfasts and a large selection of vacation rental apartments. New York Apartments

  86. Vance and Hines exhaust said May 9th, 2011 at 04:28 PM  

    It was the best video conference on the web. thanks for sharing this to us. KUDOS!

  87. Nokia N8 Games said May 10th, 2011 at 12:54 AM  

    Interesting,I read in this site I could really say such an excellent do it have.It has a unique quality that you can rarely found on the other sites.

  88. Free Singles said May 10th, 2011 at 09:55 AM  

    It always pays to come to the experts when it comes to information like this.

  89. Spanisch Übersetzer said May 10th, 2011 at 12:08 PM  

    Nice work, thanks por share it!

  90. Audio Books for iPod said May 10th, 2011 at 07:40 PM  

    I build all my sites using ruby on rails including the I link to above. I taught myself ruby and rails using a couple of books and all the good tutorials around the web like peepcasts. I’m glad to see internationalization added because I want to make the audiobook site available in more languages.

    Good summary.

  91. Wedding Photographer Norwich UK said May 10th, 2011 at 09:07 PM  

    Wow man what a long post!but an enjoyable read.

  92. wills935 said May 11th, 2011 at 06:35 AM  

    Solar power systems have experienced a surge in popularity because of the rising cost of conventional energy sources. By adding a solar energy system to your home, you can recoup your investment over a few years and continue to save money on utility bills for the life of your system. Solar Power

  93. Wonderful Spam said May 11th, 2011 at 07:16 AM  

    Excellent conrtibuter yes it was a grand ole bitten of unexasperated whilchele.

  94. pregnancy nausea remedies said May 11th, 2011 at 07:51 AM  

    Thanks for sharing dear buddy you are really doing a wonderful job. So, keep it up and say all is well.

  95. tanu said May 11th, 2011 at 10:58 AM  

    Im glad to see that people are actually writing about this issue in such a smart way, showing us all different sides to it. Youre a great blogger. Please keep it up. I cant wait to read whats next. toronto limousine

  96. obat kuat said May 11th, 2011 at 04:09 PM  

    This is first time i am visiting on your site..And seriously your site is tremendous..All post are very nice and interesting.Thanks for sharing all post.

  97. Okey oyunu said May 12th, 2011 at 03:35 PM  

    Tüm dünya artik okey oyunu oynuyor. Yillardir bir çok oyun programi olmasina ragmen, içlerinden en güzeli olarak nitelendirebilecegimiz tek bir site göze çarpmaktadir. Diger tüm okey oyunu programlarinin aksine ücretsiz olmasi ve 3 boyutlu olarak hizmet vermesi mükemmel bir gelismedir. Sizlerde www. okey-oyunu.com adresinden bu essiz okey oyununu indirebilirsiniz. Kullanimi çok basit ve Türkçe dil seçenegi ile kolaylikla oyuna baslayabilirsiniz. Ister kendi ülkenizden, isterseniz dünyanin tüm farkli bölgelerinden dilediginiz oyun odalarini seçerek, oyuna hemen baslayabilirsiniz. Okey oyunu oynamak için artik arkadas bile aramaniza gerek kalmadan, bilgisayarinizdan 100 binlerce üye ile online olarak okey oyununu oynamanin zevkine varabilirsiniz.

  98. Juegos de Ben 10 said May 13th, 2011 at 06:31 AM  

    Nice pictures, what software did you use? I want to make some similar pictures but with another font. Thanks!

  99. Christian Tees said May 13th, 2011 at 09:48 AM  

    This is such a great share, I think you must publish it in a book or something. Many people are looking for such things as what you wrote. Christian Tees

  100. Rob said May 13th, 2011 at 01:00 PM  

    Hi sven great presentation by the way and thanks for providing more info on rails… Shame you didnt get a video of it or some photo’s of yourself… Always take a camera and delegate it to someone to take some snaps! Thanks Rob from chemical spill kits

  101. Flat In UK said May 13th, 2011 at 01:06 PM  

    I’ve truly enjoyed reading your blog posts.

  102. Grand Rapids DJs said May 13th, 2011 at 05:43 PM  

    This never occurred to me before but in a recent RailsEnvy podcast I’ve learned that my name could be pronounced like this

  103. Modern TV Stands said May 13th, 2011 at 07:05 PM  

    Your blog is really awesome.I will recommend to the people to read this great article!

  104. Boners said May 13th, 2011 at 09:59 PM  

    Great article! What has been going on since 2008? Anything new?

    Thanks,

    Cindy at the Boners site

  105. Wedding Dress said May 14th, 2011 at 06:56 AM  

    This post is absolutely fantastic. I enjoyed reading your article.

  106. TORONTO CONDOMINIUMS said May 14th, 2011 at 07:44 AM  

    I must say that I really enjoyed reading all of Your posts. Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. TORONTO CONDOMINIUMS

  107. tile backsplash ideas said May 14th, 2011 at 08:31 AM  

    This is truly enjoying and I’m absolutely stunning with your research. Will you going to check out the future of Ruby on Rails for 2012 ?

  108. TV Stands for Flat Screens said May 14th, 2011 at 07:27 PM  

    It is definitely a big hit you switched to work with Ruby.You really found yourself. TV stands for flat screens

  109. Deutsch Serbisch Übersetzer Übersetzungen said May 16th, 2011 at 10:50 AM  

    very nice essay :)

  110. Web Hosting said May 16th, 2011 at 12:09 PM  

    Excellent post. I enjoyed reading your article.

  111. voice broadcasting said May 16th, 2011 at 02:07 PM  

    Do they have Conference this year?

  112. House Cleaning Los Angeles said May 16th, 2011 at 02:44 PM  

    Very informative and well written. Looking forward for more articles from this blog.

  113. Buffalo Bills Tickets said May 17th, 2011 at 01:20 AM  

    None of us knows the future. A much better question is whether Ruby on Rails fits your project needs, and is it an environment that makes you happy as a developer

  114. granite countertops richmond va said May 17th, 2011 at 01:23 AM  

    I switched to working in Ruby on Rails this month. but before that I want to be assure that there is future in Ruby.

  115. Englisch Übersetzungsdienst said May 17th, 2011 at 12:18 PM  

    Well written article, keep on blogging! I’ll bookmark your website…

  116. Lack of sleep said May 18th, 2011 at 09:47 AM  

    That is a very lengthy and detailed article on Ruby on Rails, i too wonder what the future holds for this.

  117. Reviews Price Specs said May 18th, 2011 at 10:49 AM  

    This is my first time I visit here. I found so many interesting stuffs in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here! keep up the good work

  118. Swopper said May 18th, 2011 at 11:36 AM  

    ohhhhhhhhhhhh well done work on this iste and i like it……. please visit this site….

    cheeeeeers……………..:(

  119. Kohlenhydrate Tabelle said May 18th, 2011 at 01:54 PM  

    I need assist with criticism. The issue Ive with it, I take it to seriously and it ends up obtaining to me and lowering my self-esteem big time. I need assist discovering methods to obtain over what individuals say that ends up hurting my feelings. Any suggestions? Thanks. Kohlenhydrate Tabelle

  120. Allgemeine Rechtsschutzversicherung said May 18th, 2011 at 01:58 PM  

    If only I had a buck for each time I came here Superb post! Allgemeine Rechtsschutzversicherung

  121. Reviews Price Specs said May 18th, 2011 at 02:35 PM  

    Great post. A very well written article. Looking forward for more posts.

  122. Fettverbrennung anregen said May 18th, 2011 at 03:37 PM  

    This post might be pointed out on Twitter by somebody. definitely? fettverbrennung anregen

  123. Guenstige Haftpflichtversicherung said May 18th, 2011 at 03:37 PM  

    This is wonderful! Im so entertained I just want to read it over and over again. Thank you for making my day a little bit brighter. Guenstige Haftpflichtversicherung

  124. sylvhan said May 19th, 2011 at 05:24 AM  

    I was looking for my nephew’s toys. I found it on top of my computer and so I happened to read this blog..Weeew!!Thank god I bumped into my computer.

  125. sintya said May 19th, 2011 at 10:14 AM  

    To be sure with your thoughts here and that i like your blog! I’ve bookmarked it to ensure that I will come back & read more later on. need to lose weight

  126. facts about barack obama said May 19th, 2011 at 10:59 PM  

    Ruby on Rails is one of the best app now a days. And it’s future is too good.

    facts about barack obama

  127. digital picture frame said May 19th, 2011 at 11:41 PM  

    which have a wide choice of enhancing the pixel and brightness qualities. The colour contrast and brightness of the LCD screens fitted by Nix digital frames can be controlled.

  128. internet business solutions said May 20th, 2011 at 12:02 AM  

    Thank you for this article! I just learned about API through email marketing and thought it was interesting to see it talked about here. Keep up the good work!

  129. Callcenter said May 20th, 2011 at 10:43 AM  

    Wow, very nice information. Thank you for sharing with us. I will remember in future.

  130. term paper said May 20th, 2011 at 02:14 PM  

    Appreciate your unusual and at the same time creative way of writing, this means much!

  131. tfentix said May 20th, 2011 at 03:23 PM  

    This is a really good post. You covered pretty much everything there was to be said about this. There was a small mistake there though, the people in Brazil speak Portugese, not Brazilian or whatever. plan for shrinking fibroids. Keep up the good work. I’ll be looking forward for more on this.

  132. larsmilan111 said May 21st, 2011 at 06:06 AM  

    Thanks for this nice post it was quite good. i have some information about it iPhone 5 check it out.

  133. Backlinks WordPress Backlink Software said May 21st, 2011 at 06:34 AM  

    Wonderful post. I was very happy to see the video you guys posted, and it is definately something I am very interested in.

  134. bonus pariuri sportive said May 21st, 2011 at 09:49 AM  

    Do you mind if I quote a couple of your posts as long as I provide credit and sources back to your webpage? My website about pariuri sportive is in the exact same niche as yours and my users would genuinely benefit from some of the information you provide here. Please let me know if this ok with you. Thanks a lot, Daniel from pariuri sportive development team.

  135. p said May 21st, 2011 at 05:05 PM  







    chaussures nike lunarhaze+ white black red [cn3340] - €49.99 : nike tn,requin tn,tn nike,tn requin,nike requin,basket tn,chaussures tn
    nike tn,requin tn,tn nike,tn requin,nike bw,basket tn,chaussures tn : nike free 3.0 3 - Kvinner sko Menn sk
    Nous avons une satisfaction garantie à 100%. Si vous n’êtes pas satisfait avec votre produit dans les 365 jours suivant la réception vous pouvez l’envoyer de nouveau à nous pour un remboursement complet.

    Il est 24 heures période de traitement une fois le paiement re?u. Une fois que les chaussures sont expédiée, vous recevrez un email de notre part avec numéro de suivi afin que vous mai suivre votre commande. Vous aurez vos produits dans 3-5 jours d’affaires (sans compter les week-ends ou jours fériés). La plupart des commandes sont traitées et re?ues par les clients dans les 3 jours.



  136. Obama Facts said May 21st, 2011 at 06:08 PM  

    The future of Ruby on Rails is too bright. We can depend on it for programming. Obama Facts

  137. clasificados las vegas said May 21st, 2011 at 07:05 PM  

    What software did you use to edit those pictures? I want to learn, I just use paint for that and are awful. :P

  138. Womens Wide Shoes said May 21st, 2011 at 10:25 PM  

    The colour contrast and brightness of the LCD screens fitted by Nix digital frames can be controlled.

  139. export import usa said May 22nd, 2011 at 11:03 AM  

    Can I share that article on my website? If you allow, you can contact me via my e-mail address.

  140. justin bieber said May 22nd, 2011 at 11:57 AM  

    Hi! The articles you have on your website are always so enjoyable to read. Good work and I will be returning often. Thanks…

Sorry, comments are closed for this article.

artweb design
Sven Fuchs
Grünberger Str. 65
10245 Berlin, Germany


http://www.artweb-design.de

Fon +49 (30) 47 98 69 96
Fax +49 (30) 47 98 69 97