<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Talk Like A Duck: Tag rubyconf</title>
    <link>http://talklikeaduck.denhaven2.com/articles/tag/rubyconf</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>In Ruby, it's not the dog, it's the tricks!</description>
    <item>
      <title>Video Killed the Blogging Star</title>
      <description>&lt;p&gt;The &lt;a href="http://rubyconf2008.confreaks.com/the-fall-and-rise-of-dynamic-languages.html"&gt;video of my talk at RubyConf 2008&lt;/a&gt;, &amp;#8220;The Fall and Rise of Dynamic Programming Languages&amp;#8221;, is now available at &lt;a href="http://rubyconf2008.confreaks.com/"&gt;the confreaks RubyConf 2008 page, &lt;/a&gt;where you can find most of the talks.&lt;/p&gt;</description>
      <pubDate>Mon, 01 Dec 2008 12:12:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:da987aae-d57d-4a61-a1d5-88ae8cfab301</guid>
      <author>Rick DeNatale</author>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/12/01/video-killed-the-blogging-star</link>
      <category>ruby</category>
      <category>rubyconf</category>
      <trackback:ping>http://talklikeaduck.denhaven2.com/articles/trackback/518</trackback:ping>
    </item>
    <item>
      <title>Jam Session at RubyConf 2008</title>
      <description>&lt;object width="425" height="349"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kEaB-Di89S8&amp;#38;hl=en&amp;#38;fs=1&amp;#38;rel=0&amp;#38;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/kEaB-Di89S8&amp;#38;hl=en&amp;#38;fs=1&amp;#38;rel=0&amp;#38;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="349"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;p&gt;Chad Woolley sent a link to this video. That&amp;#8217;s yours truly on the right, next to David Chelimsky.  Jim Weirich has his back to the camera. Doug Alcorn is sitting on the table.  I&amp;#8217;m sorry but I don&amp;#8217;t know the names of the other two.&lt;/p&gt;
&lt;p&gt;Chad also sent a link to a &lt;a href="http://flickr.com/search/?q=rubyconf2008%20jam&amp;#38;w=all"&gt;set of photos he took&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Update&lt;/H2&gt;
&lt;p&gt;Jim Weirich commented &amp;#8220;The guitarist in front of me in the orange tie-dye shirt is Corey Haines.&amp;#8221; Unfortunately, I was too quick on my spam filtering and deleted his comment before I noticed it among all the drug spam posts. After a period which was relatively blog-spam free, the spam posts have started to appear again. Perhaps &lt;a href="http://gizmodo.com/5085511/surgical-strike-eliminates-75-of-spam-email-worldwide-with-single-isp-shutdown"&gt;this&lt;/a&gt; is driving the e-mail spammers to blog-spam!?&lt;/p&gt;</description>
      <pubDate>Sun, 16 Nov 2008 18:00:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:59bd04fc-2375-4bf8-b8b3-c7df91aa72f2</guid>
      <author>Rick DeNatale</author>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/11/16/jam-session-at-rubyconf-2008</link>
      <category>rubyconf</category>
      <trackback:ping>http://talklikeaduck.denhaven2.com/articles/trackback/514</trackback:ping>
    </item>
    <item>
      <title>A Personal RubyConf 2008 Recap</title>
      <description>&lt;p&gt;RubyConf 2008 has come and gone.  It was a great opportunity to meet Ruby friends and make new ones.&lt;/p&gt;
&lt;p&gt;I think that my talk on Friday afternoon went well.  It&amp;#8217;s amazing how your perception of the conference changes
when you shift from fretting about your upcoming talk, to relief once it&amp;#8217;s done.  I don&amp;#8217;t know how many times
I&amp;#8217;ve given talks to similar audiences, but the butterflies never seem to stay away, and I think that it&amp;#8217;s a good thing
since it keeps you on your toes.  If you are going to be in western Michigan on the evening of November 25th, I&amp;#8217;ll be reprising
this talk at &lt;a href="http://xpwestmichigan.org/"&gt;XP West Michigan.&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;A Quick Sample of RubyConf 2008 Speakers&lt;/h2&gt;
&lt;p&gt;Greg Pollack has put up a preview of his upcoming &amp;#8220;RubyConf Trailer&amp;#8221; 
&lt;a href="http://www.railsenvy.com/2008/11/10/rubyconf-in-90-seconds"&gt;RubyConf in 90 Seconds&lt;/a&gt;. 
As he did earlier &lt;a href="http://www.railsenvy.com/2008/6/2/Railsconf-videos"&gt;for this year&amp;#8217;s RailsConf&lt;/a&gt;
Gregg did brief video interviews of as many conference speakers as he could.  He&amp;#8217;s planning to edit these together,
and provide them as kind of a video &amp;#8220;Table of contents&amp;#8221; to the full talk videos which will be appearing on 
the &lt;a href="http://www.confreaks.com/"&gt;Confreaks&lt;/a&gt; web-site.  Coby Randquist of Confreaks told me that he expected
all the videos to be available by a week from today.&lt;/p&gt;
&lt;h2&gt;A Walk Down Memory Lane&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://blog.hasmanythrough.com/"&gt;Josh Susser&lt;/a&gt;, who is another Rubyist with a background in Smalltalk, tweeted
during my talk, that I was &amp;#8220;taking a walk down memory lane.&amp;#8221;  In a way, RubyConf 2008 was very much a walk down memory 
lane for me.
Not only did I reminisce in my talk, but I got to see some old familiar faces from the early days of &lt;span class="caps"&gt;OOPSLA&lt;/span&gt; in the 1980s and 1990s. 
Allen Otis, who served as the technical half of the team from GemStone presenting MagLev was one.  Another was Monty Williams, also
of GemStone.  I had a very nice lunch with Monty and his wife on Saturday, along with another more guy who had recently joined GemStone
to work on MagLev, who we probably bored with old war stories.
&lt;/p&gt;
&lt;h2&gt;Things I learned at RubyConf 2008&lt;/h2&gt;
&lt;p&gt;In no particular order:
&lt;ul&gt; 
&lt;li&gt;&lt;p&gt;Werewolf fever seems to have died off.  As far as I could tell, no werewolf games materialized. The two main instigators weren&amp;#8217;t there.
Marcel Molina, apparently never was coming, and Chad Fowler, unfortunately, had to stay away due to the sudden death of his father-in-law.
On the other hand, the musicians, some of them former werewolves, were there in force, leading to an enjoyable jam session.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jim Weirich and I established that I&amp;#8217;ve got a year or two on him, although my hair has retained a bit more of its color.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I also found that I wasn&amp;#8217;t the &lt;strong&gt;oldest&lt;/strong&gt; attendee, but I won&amp;#8217;t reveal his or her identity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&amp;#8220;PragDave&amp;#8221; Thomas gave a great talk, challenging the community to &amp;#8220;fork Ruby&amp;#8221;, that is to spawn some incubator branches of the language
to experiment with new ideas without delaying or derailing the main Ruby language.  If some of these forks produced value, they might 
have their ideas merged back.  Some of his ideas for forks were Ruby-lite, which had lots of cruft which is not often used removed.
Another was Otuby (for optionally typed Ruby), which was different from Charlie Nutter&amp;#8217;s &lt;a href="http://blog.headius.com/2008/03/duby-type-inferred-ruby-like-jvm.html"&gt;Duby&lt;/a&gt;
&lt;p&gt;I thought that the most interesting was probably Cluby, or Ruby with Closures.  By making some lexical changes to the language, Dave
suggested that Cluby could allow blocks to always be lambda literals, and to allow blocks to be used in many more places, such as 
for &lt;span class="caps"&gt;ANY&lt;/span&gt; argument to a method. This would allow control flow to be implemented by methods, for example an if method which took an
argument to be tested, and one or two blocks, to be executed depending on the truthiness of the first argument, or a looping method which
evaluated it&amp;#8217;s second block argument as long at the first block argument evaluated to a truthy value.  
He also did away with grammar for both method definitions and class/instance variables. Methods would 
simply be blocks which would be called when the object received the corresponding method selector in a message.&lt;/p&gt;
&lt;p&gt;He acknowledged, that &amp;#8220;Smalltalk had already done this.&amp;#8221; Which is half-true. Smalltalk alows arbitrary block closures as arguments, 
but you need to look at a language like &lt;a href="http://research.sun.com/self/"&gt;self&lt;/a&gt; for the unification of methods and attributes.
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are some talented musicians in the Ruby community. This wasn&amp;#8217;t surprising since there seems to be a positive correlation
between talent for programming and talent for music.  Jim Weirich is an avid, and accomplished guitarist, and David Chelimsky and Diego Scataglini
blew me away with a cool acoustic jazz guitar duet!  I gotta give those guys, some RSpec!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Appropriately enough, since we were so close to Epcot, once again I learned that &amp;#8220;it&amp;#8217;s a small world after all.&amp;#8221;  My wife was along
with me, although she didn&amp;#8217;t hang out at the conference.  On Saturday evening, Deborah and I tagged along with a group which included
Matz and the members of his team who were there as well as a few of us gai-jin.  Deborah is half-Japanese, an Air Force brat who spent
a couple of tours of duty in Tokyo during her formative years.  She sat next to Matz and they talked a lot in both Japanese and English.
At one point Deborah was telling Matz about some of our Japanese &lt;span class="caps"&gt;IBM&lt;/span&gt;/ex-IBM friends.  When she mentioned Kuse-san, who had visited with us
several times when he was here on business, Matz said &amp;#8220;I know Kuse-san!&amp;#8221;  In retrospect this isn&amp;#8217;t surprising, since Kuse-san, now the
director of &lt;span class="caps"&gt;IBM&lt;/span&gt;&amp;#8217;s Tokyo Research Lab, has a background in object oriented languages.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;And to put a cap on a week full of personal memories, Deb and I flew back home on Sunday for an evening from the 1960s with Ed Sullivan, old VW ads, and &lt;a href="http://www.raintribute.com/"&gt;the &amp;#8220;Beatles.&amp;#8221;&lt;/a&gt; &lt;/p&gt;</description>
      <pubDate>Mon, 10 Nov 2008 20:11:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c33b187e-01f6-434c-8c50-49489be9ba23</guid>
      <author>Rick DeNatale</author>
      <link>http://talklikeaduck.denhaven2.com/articles/2008/11/10/a-personal-rubyconf-2008-recap</link>
      <category>ruby</category>
      <category>war_stories</category>
      <category>rubyconf</category>
      <trackback:ping>http://talklikeaduck.denhaven2.com/articles/trackback/513</trackback:ping>
    </item>
    <item>
      <title>RubyConf 2007 Friday Morning  - Jim Weirich</title>
      <description>&lt;img src="http://talklikeaduck.denhaven2.com/files/2007-11-02_ruby_conf_2007logo_200x_123.png" alt="Ruby Conf 2007logo 200x 123" height="123" width="200" style='border-width:1px; border-color:#444444; margin-bottom:30px; margin-right:30px;border-style:solid;float:left;'&gt;
&lt;p&gt;Jim's talk was entitled "Advanced Ruby Class Design"&lt;/p&gt;
&lt;p&gt;He started out talking about his own background with various programming languages and how influences from experience with other languages can both &lt;a href="http://en.wikipedia.org/wiki/Language_transfer"&gt;help and hamper learning&lt;/a&gt; Ruby.  He said that while some things from Java/C++ like modularity carry over usefully to Ruby, but, that some very useful Ruby techniques are inconceivable to Java/C++ programmers.&lt;/p&gt;
&lt;p&gt;Unlike Wallace Shawn's Vizzini, I'm pretty sure that Jim &lt;a href="http://www.imdb.com/character/ch0003786/quotes"&gt;really does know what that word means.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;He gave some examples of this from his "Classics", unfortunately, my note-taking skills are such that I can't capture enough to go into them in detail.&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;From Rake, an example of why the FileList class, which acts like an Array broke because it was initially implemented as a subclass of Array. The fix was to NOT make it a subclass of Array, something which can blow the mind of someone coming from a statically typed OO language.&lt;/li&gt;
	&lt;li&gt;From Builder, which uses "method_missing" to turn Ruby method calls into XML, a problem caused by interference between domain names, like 'class', and core Ruby object methods.  The solution was to create a BlankSlate class which undefines most of it's inherited methods (it spares methods like __id__, and __send__).  Then he found that he also needed to deal with methods added to Kernel and Object after BlankSlate was loaded.  To do this he used method_added_hooks in Kernel and Object so that BlankSlate could remove newly added methods as they were defined. This later changed to use the append_features hook instead to catch methods added to Object or Kernel by module inclusion.  Again, this is something which really requires coming from a less dynamic language to "Think outside the box."&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;He made another foray into "Parsing without Parsing" a Ruby technique for tracking the execution of a Ruby block with method_missing and proxy objects to "parse" the "source" of the block and capture an object graph representation.  His motivating example was doing something like Err the Blog's &lt;a href="http://errtheblog.com/post/10722"&gt;Ambition&lt;/a&gt; which generates SQL queries from Ruby blocks.  He gave lots of useful Ruby metaprogramming tips, up to and including where Ruby limitations led him to abandon this approach for SQL generation.  Because of things like the inability to handle "syntactic sugar" operators like &amp;&amp; and || since they aren't implemented as methods, he felt that these restrictions on contents of the block left him short of his goal to express the query in "natural" Ruby.&lt;/p&gt;
&lt;p&gt;But the technique itself is quite useful, and finds use in tools like FlexMock and RSpec.&lt;/p&gt;
&lt;p&gt;All in all a very thought provoking presentation from Jim.  I hope he makes the slides available soon.&lt;/p&gt;

</description>
      <pubDate>Fri, 02 Nov 2007 09:32:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:849d75ba-5e35-46a1-893f-27356923d26f</guid>
      <author>Rick DeNatale</author>
      <link>http://talklikeaduck.denhaven2.com/articles/2007/11/02/rubyconf-2007-friday-morning-jim-weirich</link>
      <category>ruby</category>
      <category>rubyconf2007</category>
      <category>rubyconf</category>
      <trackback:ping>http://talklikeaduck.denhaven2.com/articles/trackback/479</trackback:ping>
    </item>
  </channel>
</rss>
