Tag Archives | nhruby

Notes from NH Ruby/Rails Group, 20-May-2008

Five members attended the May meeting of the New Hampshire Ruby / Rails group, held as usual at the offices of RMC Research in Portsmouth.

Nick Plante entertained and educated the group on Rack, a foundation layer that interfaces between the web application handler (like Mongrel or FastCGI) and the actual web application framework adaptor (like Merb or Camping or Halcyon or Sinatra) in a manner similar to the Python WSGI layer. It allows for the creation of custom web frameworks while removing a lot of the grunt work. Nick had a sample application whipped up where a few lines of code could define the routing of various requests and cleverly answered “Hello, World” to the correct RESTful query.

For those for whom Rails isn’t the complete answer or those who want to build their own web functions with components other than those used by the Rails framework, Rack is a foundation on which you should be plugging together your building blocks.

Brian Turnbull volunteered to fill in for Scott Garman, who had to cancel at the last minute. Brian had been using NetBeans only a brief while, but had a great story to tell on using the built-in debugger to trace out a problem with Rails-generated CSS meta tags always getting a cache-breaking URL. While a feature in development, when the CSS was being served from a caching store like Amazon’s S3, the ever-changing URL defeated the point of caching. Brian showed how breakpoints could be applied to the code and step-by-step tracing (why is it that all debuggers have Step-In, Step-Once, Step-Over, Step-Out icons that all look the same and can’t be told apart?) and walked from his code into the Rails framework down to the mis-behaving component.

Having identified the problem, our discussion took a tangent into a discussion about monkey-patching, and how this ‘feature’ was a bug deserving of an optional switch to disable, and ought to be submitted upstream to the Rails maintainers. To confirm, we went through the steps to grab the latest version of rails as a plug-in (gem? I’m not sure.) so that we were working with the latest ‘edge’ code to confirm the problem hadn’t already been fixed. By installing this way, we were overriding the Rails framework only for this application, and could easily revert to the stable version, without disturbing the main shared code on the machine. We talked about how this was a Best Practice when bringing an app under development up to production, so it was isolated from changes outside of the app’s control.

Plenty of time was available for discussion, and we talked with Tim a bit about configuring a new machine with all the tools he’d need to develop a Rails app with NetBeans: Ruby, Rails, a couple good gems, the Java runtime. Nick and Brian noted that the default Rails environment within NetBeans is JRuby not MRI (Matz’ Ruby Interpreter) and how you might want to reconfigure NetBeans to use MRI instead if you weren’t planning on deploying to a JRuby environment.

Thanks to Nick and Brian for their presentations, to Scott for arranging the meeting, to Tim and RMC for providing the great facilities and to all for attending the meetings! Discussion is ongoing now on the topics for the June meeting; join the mailing lists at http://mail.nhruby.org/mailman/listinfo/ and keep an eye on the new meeting plans at http://wiki.nhruby.org/index.php/Upcoming_meetings.

Notes from NH Ruby group, 15-April-2008

Eight people attended the April meeting of the Ruby Special Interest Group, http://www.nhruby.org, held as usual on the second Tuesday of the month in the meeting room at RMC Research.

We lead the night off with a brief video on Passenger from Phusion.nl, a new Apache module that host rails, like a mod_rails (not _ruby) module. Nick reported he’s been running it on one of his sites for a while and is pleased with the performance and the marked decrease in load. Having a mod_rails option available is likely to get hosting companies offering fractional horsepower shared virtual machines to be able to host Rails apps, bringing Rails onto the $7-a-month commodity hosting sites. Cool!

I asked for recommendations on the right way of parsing incoming XML and SOAP packets and was referred to Hpricot and soap4r. Another attendee asked for recommendations on Content Management Systems. Nick mentioned Radiant (which we got to see later in the presentation). comatose and railfrog. We got into a couple discussions during the evening on the stability and applicability of Ruby and Rails for many situations, citing high traffic web sites and the several runtime engines/VMs like JRuby in which Ruby code can run.

Finally, we arrived a the Live Hacking session where we got to watch Scott and then Nick show how to add new functionality to an existing app. Actually getting to see another craftsman at work brings out all sorts of good questions. Scott added chronic to his To-Do application. Chronic is a “natural language datetime parser,” according to the web site, and Scott showed how it could easily be integrated into an existing app, and accept values like “Next Tuesday” or “Thursday last week” and return sane datetime values. We also looked at what would be involved and set up a unit test to check our changes.

Nick showed us a little more of the Radiant application, and his work on making the Radiant CMS support multiple sites. The source he’s working on is stored at github.com, and the networking graph is a thing to behold. Nick spent a little time getting us familiar with the different philosophy of git (branching is inexpensive, merging is very smart, branches can interact in many ways including pushing to and pulling from each other) and then grabbed the most recent code and hopped right into to refactor a code snippet that was an inelegant hack using a deprecated technique into one that was more proper, running our unit tests before and after to confirm the refactoring didn’t break anything.

An excellent evening as usual! Thanks to all for their attendance and participation, to Scott and Nick for organizing, announcing and presenting, and to RMC Research for providing the nice facilities.

Powered by WordPress. Designed by Woo Themes

This work by Ted Roche is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States.