Rails and the notion of Stupid Databases Being a Good Idea

2 08 2007

For the last few days I’ve been struggling to bend Rails to my will regarding the proper way to assure data consistency. Today I made some progress. This builds upon some research I did a few months ago, and hopefully this is a more or less complete solution to the problem of making Rails work the way I want it to regarding test databases.
Read the rest of this entry »



Looking forward to LinuxWorld Expo SF 2007

27 07 2007

Last year I was doing mobile development and there was interesting Linux-as-smartphone-OS stuff going on. Now I’m doing Ruby on Rails development and there’s interesting server grid stuff going on. Here’s what I’m looking forward to finding out more about (all of these are things I’ve been watching or directly researching already):
Read the rest of this entry »



Full Text Search refuses to be a black box

15 07 2007

Once upon a time, before Google pwn3d internet search, there were several competing definitions for full text search. Altavista more or less gave you results matching the exact strings you gave it, but in a crazy order that made it painful to use. Excite (my favorite back then) used a dictionary to achieve stemming and synonym matches: searching for ‘dogs’ would also match documents that contained ‘canines’ or ‘dog’. Then Google blew them all away, and established a dominant set of expectations for how text search behaves.

I forgot about this, which is why I’m frustrated by the almost ridiculous complexity of the major server-side text search engines available right now. But it makes sense, once you learn what the options are.
Read the rest of this entry »



Great contracting advice from Josh Berkus

27 06 2007

Most of his rules are applicable to generic software consulting.

Josh’s Rules (of Database Contracting)



Ad Hoc Software Planning with Graphviz

19 03 2007

I’ve been playing around with Graphviz this weekend. I first used it a few years ago with a Perl script that sorta kinda knew Cold Fusion and JavaScript syntax and could output the Graphviz .dot file format, as a means of visualizing all the dependencies between source code files in a project with no compilation phase and no automated tests. It helped me answer a few questions that I had about the code: What should I write tests for first? What should I leave alone, because breaking it breaks a bunch of pages? What pages do I need to test in order to make sure that changes to a deeply-buried chunk of included code didn’t break anything? Having a simple tool that draws graphs of nodes in a fairly clean form can be really useful.
Read the rest of this entry »