Archive for the ‘Confession’ Category

Confession: On the Blag Softwares

Monday, January 14th, 2008

About six months ago, around OSCon, I bought a bunch of books on Ruby on Rails, because–thought I–Ruby’s hip and all Object Oriented (none of that peskiness with ‘int’ or ‘char’), and Rails is cool, with its MVC and ORM and metaprogramming goodness. At least, it’s not quite the moving target that Java development is (do I learn Spring or not? has it been supplanted yet? What day of the week is it?). And I wanted to rewrite my blog, which used to be two Perl .cgi files and an HTML::Template template. So I figured I’d bone up on Ruby and whip up a replacement blog.

So I got Ruby for Rails, and Learning Ruby and read up. And then I set up the app scaffold I wanted. And then I sat there. Because the sad fact is that Rails really doesn’t make your life any easier. Learning Rails won’t make you wonder why you’ve been programming in Perl or Java or Python all these years. Sure, it makes the scaffolding for you. But chances are that you’ll rewrite it all anyway. So you’ve gained nothing. Sure, it does ORM for you. But chances are you already designed your schema. So you’ve gained nothing. And it has erb. Woooo. Welcome to Everything Else. And it’s slow. Painfully slow. Ow.

Some Things I Learned about Rails

  • Rails is for RAD
    Rails lets you quickly prototype your application, and build out only those features that are necessary for your demo. The problem is that once you consider real-world use, you’ll end up writing just as much code as you would with any other language. Yes you can use attr :foo, :bar, :baz. But did you remember to secure the setters? No? Joke’s on you!
  • Rails developers will never be happy
    Ruby is slow. And if you run Rails on common platforms (apache/fcgi) you will hate life. Especially if you run a “stable” distribution and don’t know about fastthread. And the Rails community thinks that the answer is “Get a faster webserver” so they keep finding newer and weirder webservers (“nixbat is a pure state machine written in assembler that implements qxcgi in kernel space!”*). I think you’re fixing the wrong thing. Maybe you should help make Ruby better. Then fix the way you do ORM. Here’s a hint: when getting multiple results from the database for a single object type, why not get a recordset first, then objectify them in memory? Why make 20 queries?
  • PHP sucks. PHP forever!
    I hate PHP, let me be clear. Part of my rant is that I like Ruby and Rails because I want to use a programming language with the features that Ruby has. It’s just that Rails provides no real advantage other than “feeling cooler”. And finally, there is simply so much more software in php that’s already done and works. Witness WordPress, which is not only many many times faster than Typo, but has a selection of plugins that makes me swoon. Specifically, the iPhone plugin that lets you manage your blog from your phone. That was the winner. That was when I gave up on Rails.

So I got WordPress. Sure it doesn’t make me feel as cool when I’m editing pages in vi. But at least I can add entries from my iPhone. And in the end, it’s not about the gears, is it. It’s about where your car goes.
*(I made that up)

Confession: My Geek Penis is SMALL

Friday, July 22nd, 2005

This collection of old Unix gear is quite impressive.

My collection, is quite paltry:

BOFH Tool

That’s a DEC Alphaserver 2100, with dual 100MHz Alphas and 128MB of RAM, with 4x1GB drives partitioned as / /usr and /var (I believe, it’s been awhile) The Indigo is actually defunct, replaced by an Indigo 4000/XZ with an R4000 at 100Mhz and 64MB of RAM with the GR24xz graphics option. Yes, it runs FSN. So you can sit down in the face of imminent Raptor Attack and say “This is Unix. I know this!” (In the real world, she’d have been eaten.*)

* Once in college, a friend was asked by the professor “what is the normal return code for a Unix program?”, to which my friend quickly replied “SEGFAULT?”

Magic!