In a previous life before I was invested in the Ruby community, and before my life as a Java Enterprise Consultant I was a Linux and Free Software activist moonlighting as a Unix System Administrator. After seeing the same arguments on IRC channels recycled ad infinitum I may have become as jaded as Statler or Waldorf, but I still believe.
Ruby makes me giddy after a stint as the Senior Portal Developer for Conde Nast. Ruby has a culture and community that embrases self sufficiency in a way that cannot fathom a corporate sysadmin unable to install a local internal Tomcat server within a two week framework.
But yes it does have the trappings and handicaps of an isolated subculture. My experience prior to 2007 was outside of the rails word, and I have to admit to my being as disturbed as a pythonist to my rejection of whitespace rules when I first looked at rubys server and system offerrings. Things are way better on that front but we do seem to have a blind spot to the legal side of software.
Generally I do care about licensing. There Linux and GNU tools that were added to the GNU toolset in 1988 and having reliable mature native C or lisp code is a godsend. This is a sharp contrast to the web application market. Even the government and banking applications I have done in Java have around a 5 year lifecycle.
Ruby’s embrace of Rapid application development methodologies, never mind its core tool and framework incredibly short cycles make a decision to completely refactor a Ruby Application
Not to worry I’ll not reject bathing and shaving completely, but I’ll pay my FSF and EFF dues. I’ll make more effort to use the freeist code within a lean pragmatic workcycle.
Unfortunately there are plenty of times that there is more money then time
So I’m annoyed that the community still fails to produce products that are GPLd that have anything but a suggested market value. So because of that one of my new years resolutions is to produce at least one non-gratis free product.

Last weekend I participated in another hackfest this time centered on the venn diagram intersection of Food and Technology. There were some great people there with great ideas that would improve the health and lifestyles of new yorkers. But I just wanted one thing that no food site has been able to deliver to me yet. Decent search results for restaurant food.. not restaurants but the actual menu items. So I sat down with some members of the new york ruby meetup and others interested in just getting this one feature and we cranked out a really simple app that gave the results in a wall of text results.
This week a few of us spent a couple of hours on making it cleaner and its starting to shape up. Perhaps tonight you will be able to use the alpha.
[video]
[video]
Have you ever been at a development conference and been struck by the developers command of the command line. Not to say that they are all snake oil and high equity mortgage salesman but most of them use a bit of *nix illusion.
The trick to pulling this of is to record your bash session with something like the script or ttyrec commands. If your on debian or ubuntu you likely still have scriptreplay available to you.
record your session
script -t 2> tutorial.timing -a tutorial.session
execute what you you want to show off
exit the session
replay
scriptreplay tutorial.timing tutorial.session
if your not on debian you need to build ttyrec
git clone git@github.com:mjording/ttyrec.git
cd ttyrec
make
If you don’t have the directory setup (from macports or another unix add on)
/usr/bin/sudo /bin/mkdir -p /usr/local/bin /usr/bin/sudo /usr/sbin/chown root:wheel /usr/local /usr/local/bin /usr/bin/sudo /bin/chmod 0755 /usr/local /usr/local/bin
Otherwise copy the binary in and make some shortcuts
copy ttyrec, ttyplay and ttytime to /usr/local/bin /usr/bin/sudo /bin/cp -i ~/Desktop/ttyrec-1.0.8/ttyrec /usr/local/bin /usr/bin/sudo /bin/cp -i ~/Desktop/ttyrec-1.0.8/ttyplay /usr/local/bin /usr/bin/sudo /bin/cp -i ~/Desktop/ttyrec-1.0.8/ttytime /usr/local/bin
Now you can record your session to a file via
ttyrec -a tutorial.session
and play it back with
ttyplay tutorial.session
ttyrec also has advanced features that allow you to adjust playback speed.
Annoyed that rails 3 did none of the radical change of guard changes to default options? I know i was. Luckily its trivial to make right.
You can follow along by creating a new rails 3 application
rails new hand-rolled
At the end of the config/application.rb file add replacements
config.generators do |g|
g.orm :active_record
g.template_engine :erb
g.test_framework :rspec, :fixture => true
g.fixture_replacement :machinist
end
better yet you can now build a rails app passing templates for any manner of change you want to make by default.
generators = «-GENERATORS
config.generators do |g|
g.test_framework :rspec, :fixture => true, :views => false
g.integration_tool :rspec, :fixture => true, :views => true
end
The template file is passed to the rails new action and the generators are replaced. Match this up with the ease of generating your own generators package it up in a gem and you can create a set of rails application generators that suit your preferences while maintaining flexibility of context.