Learning to Cook With Ruby

I don’t much like programming language tutorials. They’re useful for getting the general sense of what a language is all about, but they inevitably elide too many crucial details to teach you how to write a real program. When I got interested in Ruby, I read the on-line version of Programming Ruby: The Pragmatic Programmer’s… Continue reading Learning to Cook With Ruby

Where Does the XML Go?

Here’s a question that’s been bugging me for a while: what’s the best way to store information that is a mixture of highly- and loosely-structured data? For example, a collection of documents like Project Posner. Certain attributes of each document like the title, date, and citation fit easily into a normalized relational database model. But… Continue reading Where Does the XML Go?

Perl, After Ruby

I used to be a big fan of Perl. It was the first programming language I really liked. I felt like it didn’t get in my way. CPAN was and still is the best collection of open-source libraries ever assembled. Then I got into Ruby, and was very happy with the way it cleaned up… Continue reading Perl, After Ruby

How Ruby on Rails is Making Me a Better Programmer

I’ve just dived into Rails and Ruby in the past couple of months, but I’ve already benefited from it, so here’s my entry in the How has Ruby on Rails made you a better programmer contest.   1. I finally get Model-View-Controller I’ve seen MVC before, once long ago in the Microsoft C++ Foundation Classes,… Continue reading How Ruby on Rails is Making Me a Better Programmer

Chaining Function Calls

I like Lisp’s prefix syntax. It’s consistent, has natural structure, and makes code-manipulation macros possible. But it’s not always the easiest to read or write. For example, I often want to apply several successive transformations to the same chunk of text. In Perl, I could use the default variable $_ and then just write a… Continue reading Chaining Function Calls

Not So Slow

Perhaps I was premature worrying about how slow Ruby is. John Wiseman was benchmarking Montezuma, his Common Lisp port of Ferret/Lucene, and found out in the process that Ferret is 10 times faster than Java Lucene! As he says, Ferret gets help from about 65,000 lines of C code. I’ve heard this before, perhaps not… Continue reading Not So Slow