<?xml version="1.0" encoding="UTF-8"?>
<article>
  <content>&lt;p&gt;RubyKaigi 2009 (Tokyo, July 17&amp;ndash;19)&lt;br /&gt;&amp;lsquo;The Japanese have a name for their problem: Gal&amp;aacute;pagos Syndrome&amp;rsquo;. As I was flying back from Tokyo, I had to admit, as I folded the newspaper and stowed it into the pouch in front of me, that was the same feeling I had. Sure the article was about cell phones and how many &amp;lsquo;species&amp;rsquo; of such advanced technology have developed and evolved so fantastically divergent from the rest of the world&amp;hellip;&lt;br /&gt;But Ruby is not like that! It&amp;rsquo;s one of those species that was brave enough to leave the sanctuary of its own island to venture off into other worlds &amp;mdash; even leaving an impact on them. If you&amp;rsquo;re reading this, that&amp;rsquo;s probably what you want to believe. But to be honest, the kaigi (or &amp;lsquo;meeting&amp;rsquo; or &amp;lsquo;conference&amp;rsquo; in Japanese) did show some signs of the isolation syndrome, as much as it did show globalization. In this following lines, we will briefly cover the largest Ruby meet-up in Ruby&amp;rsquo;s native homeland and muse over some of its highlights.&lt;br /&gt;&amp;lsquo;Change!&amp;rsquo; is in the Kaze&lt;br /&gt;On the first day, during registration, a cheerful volunteer handed me my name-tag and conference package.&amp;nbsp; The promotional knapsack was all black, save for the red words written on it that desperately screamed &amp;lsquo;CHANGE!&amp;rsquo;. I felt relieved; apparently the organizers also felt that the syndrome must be eradicated, so much so that they made it the slogan of this year&amp;rsquo;s conference and saw it as a goal to be achieved &amp;ndash; in fact the idea of &amp;ldquo;Change&amp;rdquo; was one of the pivotal points in the keynote speech.&lt;br /&gt;It&amp;rsquo;s true that change was indeed in the works. In the fourth conference since RubyKaigi&amp;rsquo;s existence, foreign speakers (such as ourselves) were invited, making it a multilingual conference for the first time. As one of the posters proudly boasted, there were speakers and attendees from five continents who had presented around a quarter of the talks. It was refreshing to see how all the sessions &amp;ndash; both in Japanese and English &amp;ndash; were very well attended by the ~300 individuals there.&lt;br /&gt;Organization, Organizers, and Volunteers&lt;br /&gt;In a city that never sleeps, and works by the clock, the organization level and punctuality in the conference was nothing short of what one would expect from the Japanese. The conference was very well coordinated and organized from sessions, to bento lunches and refreshments, to parties and socialization. Each day, the schedule was split into three time slots to contain multiple sessions in each, with talks going on in parallel to squeeze in all the ~60 sessions in the three days available. The first two days also had a series of lightning talks that were composed of extremely short presentations for tens of people to display their latest work, speaking in the fastest Japanese (or English, as in our case) physically possible. Even though they were too fast for translation, it was interesting to watch ideas fly by with a bit of manga-like humour.&lt;br /&gt;It is a pity though that many important talks were in Japanese, from the opening, all the way through the keynotes, down to the closing. There was best-effort live translation via a projector, but that didn&amp;rsquo;t really do justice to the talks and there were periodic translation outages. I must admit though, the organizers and volunteers did try to do their best, but the sheer number of attendees and talks was simply overwhelming. At this moment, I really must mention Leonard Chin, the alleged mastermind behind the organizing team. All the volunteers were helpful and energetic as well, despite the language barrier &amp;mdash; after all we all spoke Ruby!&lt;br /&gt;Also, keeping true to the Japanese fondness of having a good drink after a hard day&amp;rsquo;s work, the organizers orchestrated a pre-conference party and two other receptions throughout the conference. Even though it&amp;rsquo;s not as fun for non-drinkers like us, it still presented a great opportunity for all the participants to get to know each other better.&lt;br /&gt;A True Ruby Mecca&lt;br /&gt;As hundreds of wild-haired, glasses-donning, computer otaku flocked to the main Hitotsubashi conference hall, one was bound to feel a shiver down his spine: this is, after all, where Ruby was born. Numerous beehive discussions were taking place and there was even in one corner a donation box dedicated to gathering funds to get &amp;ldquo;_why&amp;rdquo; to come as well in some unforeseen, yet hopeful, future. No, this is not just where Ruby was born, but where it continues to live&amp;nbsp; and grow. The hundreds in attendance were musing over different ideas and dreams to as what Ruby will grow to be someday when, suddenly, they fell into a trance and were all ears as the keynote speaker came forth to have his say. Their reaction was just like that of those looking up to the pope as he steps into his papal balcony, eager to listen and take in what is to come.&lt;br /&gt;Just in case you haven&amp;rsquo;t guessed yet, the keynote speech was delivered by the designer of Ruby, Yukihiro Matsumoto (aka Matz). Where else but in Japan would a computer scientist be a folk hero, a celebrity known by even the normal population, and even the subject of tabloid news?&lt;br /&gt;Again, a pity that the keynote was in Japanese, but Matz was a really good presenter and he easily grasped the attention of the entire hall. Here are some highlights:&lt;br /&gt;We had dreamt that the 21st century would have been better than this &amp;ndash; but in reality we are living in dark times. Yet, this is the golden age for programming &amp;ndash; especially with technologies like Ruby, and the likes of other very powerful and clean languages.&lt;br /&gt;I just recently got an award from a minister for my creating Ruby. I had to wear a jacket during the meeting, so I borrowed one. Likewise, I couldn&amp;rsquo;t have made Ruby without the help and contribution of others. All bug reports, ideas and contributions were extremely helpful and, even though I may not buy you dinner, I have to share this award with you all.&lt;br /&gt;The Ruby community is changing a lot and it is very evident from the diversity of attendees and speakers here at RubyKaigi.&lt;br /&gt;As in Aesop&amp;rsquo;s &amp;lsquo;Sour Grapes&amp;rsquo;, I am not immune: I look at other languages and love to complain. But people should not misinterpret this to mean that the stance of Ruby is to be against all others &amp;ndash; this is just a matter of my own taste.&lt;br /&gt;It&amp;rsquo;s important to not turn your back on the truth and always make self-justifications. I admit that Ruby has many faults, and, although it may take a long time to fix them, they will undoubtedly be resolved. Responsibility is the key towards doing this right.&lt;br /&gt;I remember when I was a kid, my dad gave me a knife to sharpen my pencils with; every boy at the school had one of these. It is unimaginable these days that kids can go to schools with knives, yet in our time we never used them to stab each other. This is responsibility.&lt;br /&gt;I am experimenting with some interesting stuff for Ruby like O(1) bitmap marker, GC for symbols, better Date implementation, keyword arguments and many more improvements.&lt;br /&gt;To wrap things up, Ruby is fair &amp;mdash; be responsible and Ruby trusts you to be so. We need to remember that not only is Ruby agile, but it is also fragile.&lt;br /&gt;Highlights from the Sessions&lt;br /&gt;The sessions varied widely in scope, from talks focused on integrating Ruby with other technologies like Asterisk and iPhone Cocoa, to talks about building scalable Ruby applications in certain domains, to talks about specific libraries and services. Moreover, as one being at the homeland of the Ruby core team would expect, there were several sessions talking about the internals of Ruby and the future of the Ruby virtual machine.&lt;br /&gt;The kickoff session was from Github&amp;rsquo;s Scott Chacon, who talked about Git and how it can be used to improve Ruby developers&amp;rsquo; performance, especially those working on open source projects. The presentation was titled &amp;ldquo;Using Git and GitHub to Develop One Million Times Faster*&amp;rdquo;, complete with the fine print on how results may vary. It really did display a great deal of interesting features and apparently most of the audience were using Git or are planning to migrate to it &amp;mdash; we know we are!&lt;br /&gt;Ruby&amp;rsquo;s viability in communication software was stressed a lot by the Adhearsion talk given be Jason Goecke, which showed how Ruby can drive Asterisk installations with all the ease and flexibility of Ruby, without sacrificing the power of Asterisk. One example used was the automation of call centers. Another very interesting example was twittervotereport.com, which helps users report, via phone, real time complaints on vote ballots using voice menus and keystrokes. The demos shown stressed the mix of power and simplicity in Adhearsion.&lt;br /&gt;James Edward&amp;rsquo;s talk, &amp;ldquo;How Lazy Americans Monitor Servers&amp;rdquo;, highlighted how Ruby can be used in long running applications like monitoring systems. He showcased Scout, which is a plugin/recipe based monitoring system with very low overhead. He was able to use the power of Ruby to build a very flexible system and utilize multiprocessing to the fullest to add the robustness needed from long running programs.&lt;br /&gt;Ilya Grigorik from igvita.com presented how Ruby can be useful even for demanding problems like the C10K challenge, which basically states that current server hardware should be able to handle a very large number of concurrent connections &amp;ndash; namely 10,000. Ilya reviewed some techniques and recommendations for shaping Ruby up to the challenge, and then he demonstrated their own EM-Proxy as an example.&lt;br /&gt;Yehuda Katz&amp;rsquo;s talk on &amp;ldquo;Making Rails 3 a Better Ruby Citizen&amp;rdquo; focused on the new changes happening to Rails internals to make it more Ruby-like. He concentrated on the use of common Ruby idioms and provided examples to show that they are as powerful as the current Rails way but they are cleaner and expose much nicer interfaces. Another issue was the interconnection between different Rails components like ActionController and ActionView. The idea with Rails 3.0 is to minimize the areas where these components interact and keep it to a few publicly known methods, thus allowing a third party to provide replacements easily. Even internal components of active record, like validations or life cycle management, are now separated from each other and can be used, or even swapped, independently.&lt;br /&gt;eSpace&amp;rsquo;s Mohammad Ali presented NeverBlock and the talk focused on Ruby concurrency models and how they can optimize Ruby for high I/O performance. He presented NeverBlock as an option that can optimize Ruby&amp;rsquo;s I/O while maintaining program readability. A case study was given where a new back-end that uses NeverBlock was written for a Thin server and was able to largely outperform the original back-end, especially for large data transfers.&lt;br /&gt;While there were nice comments and jokes embedded in most presentations, it was Aaron Patterson who went the extra mile in entertaining the audience. Dressed like a Japanese pirate, he gave a mixed Japanese and English talk and was assisted by a kunoichi (or female ninja) who guided the audience whether to &amp;lsquo;laugh&amp;rsquo; or &amp;lsquo;applause&amp;rsquo; throughout the presentation using cue cards. His lecture, a remake of &amp;ldquo;Journey Through a Pointy Forest: XML Parsing in Ruby&amp;rdquo;, was about Nokogiri and XML handling in Ruby. For added laughs, he poked fun at his Enterprise project which converts Ruby code to XML in order to make Ruby more enterprise ready. ;)&lt;br /&gt;Retrospective&lt;br /&gt;All in all, it was an experience we&amp;rsquo;d definitely want to go through again and we highly recommend it. All the presentations were top-notch, entertaining and greatly informative, and every single one of them ended with a great number of questions, signaling how relevant they were to the audience.&lt;br /&gt;Sure there were barriers, and they really did show. There were many things we never heard of, or were not aware of, coming from the outside world. At the beginning, it was frustrating not just to us, but to other &amp;ldquo;foreign&amp;rdquo; Rubyists as well, but throughout the conference things loosened up and the barriers dissolved. No one says that they don&amp;rsquo;t exist, actually everyone fully acknowledges they do, but if there is one thing the kaigi actually accomplished, it is exactly what it set out to do: inflict change.&lt;br /&gt;To be able to rub shoulders will people like Matz, Koichi, and numerous others, to discuss future road plans, to expose &amp;ndash; and be exposed to &amp;ndash; the latest in what there is to know from the core team and others, is beyond anything a Rubyist can ask for. If you are able to cross that thinning language barrier and are willing to show off some fluent Ruby, then after a whiff of wasabi you&amp;rsquo;ll know this is as real as it gets.&lt;/p&gt;</content>
  <created-at type="datetime">2009-08-30T03:29:42Z</created-at>
  <discuss-url>http://railsmagazine.com/forums/2/topics/74</discuss-url>
  <id type="integer">46</id>
  <issue-id type="integer">4</issue-id>
  <number type="integer">10</number>
  <title>RubyKaigi 2009 Roundup</title>
  <updated-at type="datetime">2009-12-24T20:54:23Z</updated-at>
</article>
