Nick Sieger: Tag railsconf2008 do what you love tag:blog.nicksieger.com,2005:Typo Typo 2008-05-22T15:41:36+00:00 Nick Sieger urn:uuid:345690f7-9a04-400a-9523-c81943089b7b 2008-05-22T15:40:00+00:00 2008-05-22T15:41:36+00:00 JRuby Hackfest at RailsConf <p>Thanks to our friends at <a href="http://www.linkedin.com/">LinkedIn</a>, <a href="http://www.joyent.com/">Joyent</a> and <a href="http://developers.sun.com/ruby/">Sun</a>, we&#8217;re having a hackfest at McMenamins/Kennedy School on Thursday evening, May 29, starting at 6:30pm, complete with food and beverages!</p> <p>Do stop by and hang out with us! Leave a comment over at <a href="http://headius.blogspot.com/2008/05/jruby-pre-railsconf-hackfest-on.html">Charlie&#8217;s announcement if you&#8217;re interested in joining us</a>.</p> <p><img src="http://img.skitch.com/20080522-mcy2mn1jacq9f9d9qt563y29ud.jpg" alt="McMenamins" title="McMenamins - Kennedy School"/></p> <p><a href="http://kennedyschool.com/">Kennedy School</a><br/> Local: (503) 249-3983<br/> Elsewhere: (888) 249-3983</p> <p><iframe width="300" height="300" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=5736+N.E.+33rd+Ave.,+Portland,+OR+97211&amp;sll=37.0625,-95.677068&amp;sspn=43.393645,65.654297&amp;ie=UTF8&amp;s=AARTsJrTNZ4mNi6OW26lSU0Gs5MyG6EFiw&amp;ll=45.572536,-122.626734&amp;spn=0.018025,0.025749&amp;z=14&amp;iwloc=addr&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=5736+N.E.+33rd+Ave.,+Portland,+OR+97211&amp;sll=37.0625,-95.677068&amp;sspn=43.393645,65.654297&amp;ie=UTF8&amp;ll=45.572536,-122.626734&amp;spn=0.018025,0.025749&amp;z=14&amp;iwloc=addr&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></p> Nick Sieger urn:uuid:b09ae6ba-f3b3-4624-a962-227b9646560e 2008-06-01T22:07:33+00:00 2008-06-01T22:07:33+00:00 JRuby Q &amp; A at RailsConf <p>These are the notes I took during our &#8220;panelish&#8221; Q &amp; A session on Sunday afternoon at RailsConf.</p> <ul> <li><p>Exceptions (behavior between ruby and java)</p> <ul> <li>Embedding: JSR-223 preferred, BSF fallback</li> </ul></li> <li><p>Java integration, mocking, proxying, extension</p></li> <li><p>Multiple VM support</p> <ul> <li>multiple JRuby instances can be run in the same VM</li> <li>JavaSand (google it) &#8211; Ola&#8217;s port of _why&#8217;s (freaky freaky) sandbox</li> </ul></li> <li><p>Startup time performance gain recently</p> <ul> <li>-Xbootclasspath: VM does not verify classes in the &#8220;boot&#8221; classpath</li> <li>-Xverify:none is not recommended because of runtime-generated code</li> <li>Nailgun to keep VM running and &#8220;send commands&#8221; to it</li> </ul></li> <li><p>Compiling Ruby code to JVM bytecode</p> <ul> <li>Keep # of class files low</li> <li>Walk AST and dump out high-level, abstracted operations (local variable access, dynamic invocation) and low-level bytecode is built for each of those</li> <li>4096 &#8211; maximum # of methods to be compiled</li> <li>Compiled methods are shared between runtimes</li> <li>Future:</li> <li>raise/eliminate overhead of compiled methods</li> <li>share AST, reduce memory load</li> </ul></li> <li><p>Community tasks/actions</p> <ul> <li>Projects needing help (e.g., ActiveHibernate)</li> <li>Adoption, acceptance, blogging</li> <li>Documentation (http://wiki.jruby.org/ and others), screencasts</li> <li>Who&#8217;s using it?</li> </ul></li> <li><p>Sun&#8217;s commitment</p> <ul> <li>Ruby vs. Groovy vs. Python vs. Scala vs. other langs</li> <li>Rails vs. Grails vs. Lift vs. JSF vs. Struts 2 vs. ???</li> <li>all of the above</li> <li>improve the JVM&#8217;s support for all dynamic languages</li> <li>JRuby is a full open source project, not owned or controlled by Sun, with history that extends years before main devs hired by Sun</li> </ul></li> <li><p>Ruby programming language, JRuby is an implementation</p> <ul> <li>community evangelism of Ruby the language vs. implementations</li> <li>despite MVM, FFI and emerging areas that are not standard yet</li> </ul></li> <li><p>How do you pitch JRuby/Rails in a legacy environment?</p> <ul> <li>Consider demonstrating running application without discussing technology specifics</li> <li>IBM and JDK 1.5 issues have been reported</li> <li>Free support as long as these issues are new and help improve JRuby and the community!</li> </ul></li> <li><p>Testing</p> <ul> <li>JRuby enables more agile testing</li> <li>Without production risks</li> <li>Ceremony vs. Essence discussion</li> </ul></li> <li><p>Terracotta/DSO</p> <ul> <li><a href="http://jonasboner.com/2007/02/05/clustering-jruby-with-open-terracotta/" title="Jonas Bon&#233;r &raquo; Blog Archive &raquo; Clustering JRuby with Open Terracotta">Jonas Boner blogged about it over a year ago</a> </li> </ul></li> <li><p>Windows/Mongrel/ImageMagick issues</p> <ul> <li><a href="http://blog.nicksieger.com/articles/2008/03/27/imagevoodoo-0-1-released" title="ImageVoodoo 0.1 Released">ImageVoodoo</a> is an imaging library using Java2D, comes with Java</li> <li>MiniMagick also reportedly works</li> </ul></li> <li><p>Rails benchmarks</p> <ul> <li>Micro-benchmarks are problematic and usually don&#8217;t lead to measurable application speedups</li> <li>Community needs a real-world, full application</li> <li>Antonio Cangiano working on new application-level benchmarks?</li> <li>&#8220;Richards&#8221; &#8211; Smalltalk-originated application benchmark</li> </ul></li> <li><p>JSR-292 (&#8220;invokedynamic&#8221;)</p> <ul> <li>Actually extension of &#8220;invokeinterface&#8221; bytecode</li> <li>Call site structure/method handles</li> <li>Expose the dynamic nature of the JVM (get the Java-specific stuff out of the way)</li> <li>Language-specific calling semantics, method invocation</li> <li>&#8220;Punching a hole&#8221; through the JVM</li> <li>Comments on <a href="http://blogs.sun.com/jrose/entry/dynamic_invocation_in_the_vm" title="dynamic invocation in the VM : John Rose @ Sun">JSR-292 Early Draft Review</a> currently ongoing</li> </ul></li> </ul> Nick Sieger urn:uuid:defa65ca-cd17-4d02-b5ce-0471389138d9 2008-05-31T23:42:00+00:00 2008-06-04T21:56:16+00:00 RailsConf slides <p>If you already saw my JavaOne slides, these aren&#8217;t too different, but I think they&#8217;re better and prettier, too.</p> <p><img src="http://img.skitch.com/20080531-rg877yefn91g5w9ainj1xar2jf.jpg" alt="JRuby at RailsConf" title="JRuby at RailsConf"/></p> <p><a href="/files/RailsConf-JRuby-Deployment.pdf">Get them here.</a></p> <p><strong>Update.</strong> The slides are pretty lean on explanation. Just in case you&#8217;re confused, the narrative goes like this:</p> <ul> <li>What&#8217;s your deployment nirvana look like? (various existing options)</li> <li>With JRuby, you can deploy Rails applications in a single operating system process instead of many.</li> <li>However, there are a few configuration changes needed to accomodate JRuby. (Steps for converting existing apps, configuration code snippets.)</li> <li>Now, <a href="/articles/2008/05/08/introducing-jruby-rack">JRuby-Rack</a> helps with the configuration, because all of the logging/session/public path re-jiggering is taken care of for you. It&#8217;s now bundled with <a href="http://caldersphere.rubyforge.org/warbler">Warbler</a> as of version 0.9.9.</li> <li>Performance is good and getting better. You can scale up the number of requests you can handle really easily just by setting the number of runtimes to create inside Warbler&#8217;s <code>config/warble.rb</code> file.</li> <li>Lots of new stuff is happening right now to make Rails better. JRuby will be able to leverage these changes and become an even more desirable deployment platform. Stay tuned!</li> </ul>