Notes from MonadLUG: David Berube on Ruby on Rails
Ted Roche
tedroche at tedroche.com
Sat Aug 16 16:56:23 EDT 2008
Eleven members attended the August 14th meeting of the Monadnock Linux
User Group, held as usual on the second Thursday of the month at the
SAU1 offices in Peterborough. David Berube was the main presenter.
We had the usual announcements (check upcoming events at
http://www.gnhlug.org) and also some time for Q&A while waiting for the
main speaker and had the ceremonial struggling with the laptop and the
projector. One fellow was looking for help understanding how to install
drivers for a scanner not supported by SANE, another had questions on
what the keyring was and how he could get it to stop demanding a
password from him.
David's been a fixture in the groups for some years. He served as
Fearless Leader of GNHLUG for several years, and took a stint as
coordinator of the CentraLUG group. He has written a number of magazine
articles and authored or co-authored several books, the most recent,
Practical Ruby Plugins, due out later this month.
David gave us a brief history of web development, focusing on the
incremental improvements made from scripts to cgi-bin to modules to
long-running processes in terms of responsiveness, latency and the
ability to scale to larger and quicker demands. He briefly compared Ruby
with Perl, Python and Lisp, and then dove into the demo.
David had an Ubuntu laptop that he hadn't previously done Ruby on Rails
development on before, so he showed us the basics of installing Ruby,
using Ubuntu's package manager, and cautioned us against using the OS
package manager to install gems: The gem system is a package manager in
its own right, and it does things in a somewhat different way than most
of the OS package manager tools. Instead, he recommended using ruby to
install gems. As is often the case, there were some glitches, so we had
a small distraction while we worked through creating the /usr/bin links
for rake and rails that somehow hadn't been created automatically.
David then created a new project, and walked us through the directory
structure and the significance of files in each folder. He created a
model that defined the wiki example we were creating, a controller to
answer requests from the web server, and a view that would render the
response from our application. He used the built-in rails and rake
scripts to create the example database (SQLite3 is built in and used by
default if nothing is specified, new in RoR 2.1), showed how the rails
console could be used interactively to create model objects (implicitly
saving them to disk) and that the console could be used to add, edit,
query and delete objects. He then ran the application, after explaining
the logic of URLs constructed in a "RESTful" fashion as
http://yourwebserver/controller/action/parameter addresses. David
started the built-in Webrick webserver and navigated his browser to
http://localhost:3000/page/show/bob to show us Bob's wiki page entry. Whew!
There was some good Q&A during and following the presentation.
I asked some questions on how a team of developers could insure that
they were maintaining the same versions of gems when developing, as the
gems are usually installed globally and are not in the main application
source code tree. David suggested either creating a local team gem
repository, or hardcoding the exact versions you want to freeze the
target application at, directly within the code.
Charlie had some questions on how to keep up. While he'd read through
the "PickAx" book and the "Skateboard" book, those are already a version
out of date. David booted up Pidgin and we chatted with a couple of his
fellow authors on what they recommended. Here's a few links I noted from
the meeting:
PickAx: http://www.pragprog.com/titles/ruby3/programming-ruby-3
SkateBoard (aka AWDWR):
http://www.pragprog.com/titles/rails2/agile-web-development-with-rails
Beginning Ruby by Peter Cooper (full disclosure: a fellow author and
mentor of David's from Apress):
http://www.apress.com/book/view/1590597664
Installable versions of Ruby (to get the latest):
http://www.ruby-lang.org/en/
David's recent Ruby books:
http://apress.com/book/search?searchterm=berube&act=search&submit.x=0&submit.y=0
http://rubyonrails.com/ has some good screencasts and documents
David also mentioned he was running Gnome-Do, a QuickSilver-clone that
lets you launch applications or perform functions with a keyboard
shortcut and your keywords:
https://launchpad.net/do
And also was showing off the Vimperator, a Vim-like interface for the
FireFox browser. David noted you might find some troubles with
Javascript-intensive pages:
http://vimperator.mozdev.org/
Thanks to Charlie Farinella for organizing and running the meeting, to
Ken and the SAU for providing the fine facilities, to David for an
informative presentation and to all for attending and participating!
More information about the gnhlug-discuss
mailing list