March 15, 2007

Long time, no update

Filed under: Blog, Projects — mbeihoffer @ 8:44 pm

Well, it’s been so long since I posted anything, I forgot my password to log in here, so I had to reset it, as usual.

I feel lazy. It’s not that I haven’t really had anything to write about, rather, I’ve been so immersed in a few highly intensive projects, I haven’t hardly had enough time to post anything.

So. What’ve I been up to? Well, Dragonfly Networks is still plugging along - we’re working on a few web sites. The new project we got today sounds really interesting; the owner of the site seems to have a pretty clear idea about what kind of functionality and layout the site should have. That sometimes makes it a lot easier - I like people who have a strong vision of what they’re trying to do with their site; it’s pretty easy to implement features if they’re well thought-out.

Anyway. so enough about work. I’m here today to post a l’il something about why I’ve been so busy, and what I’ve been working on, and why it’s important to me. There are also some peripheral elements to my life that have occurred lately which have caused me to spend a considerable amount of time and energy on non-computer-related tasks - I hesitate to venture a guess as to why this would be.

Anyway, so; I’ve been mostly very busy trying to master a set of toolkits, engines, modules, and whatnot, not for any particular project so far, but simply because I’d like to be prepared when large(r) projects come down the pipeline.

For a long time, I felt somewhat torn about the various programming languages that are out there; reading Reddit every day (back when it was still young and extremely geek-chic), well, reading Reddit every day lead me to the idea that all I needed to do was to learn CSS, Ruby on Rails, and Lisp, and I could expect to have laurel wreaths thrown at my feet by nubile, young venture capitalists, and that they would stop at nothing to seduce me.

So, yeah. I got the Lisp book, (thanks, Nick!), and the Ruby Pickaxe book, and was on my way.

Sort of. The problem here is that it takes a huge investment of time and energy to truly learn either one of those languages (I did learn CSS, but that’s because it’s easy enough for even a slow thinker such as myself to figure out how to use.)

I even spent a considerable amount of time getting Ruby on Rails to work on OpenBSD, which was certainly a challenge. I was eventually successful getting the default Rails app to work, which is actually pretty cool, in a lot of ways.

Lisp, on the other hand, well - although I enjoy reading the book from time to time, I must admit that I don’t have any clue whatsoever about how to actually write anything worthwhile yet, although it looks like Lisp has some serious horsepower for solving a wide variety of problems.

But I digress. In any case, I still feel a little weird putting Rails on my CV, and honestly, it wasn’t until recently that I came to appreciate just how powerful and flexible it can be to develop on a well-engineered MVC framework. (such as Rails.)

Of course, I didn’t learn this from Rails; in fact, I hate to admit it, but after spending some time working with Ruby, PHP, Python, Perl, and a few other languages, it became fairly clear to me that many of the frameworks that are available are still relatively immature. PHP in particular has a dearth of frameworks that are stable, well-documented, well-engineered, and sufficiently decoupled enough to be useful when developing a new application.

I looked at a few, such as CakePHP, but mostly came away from the experience feeling leary about whether or not it would be wise to invest a large amount of time into learning a somewhat questionable framework.

In any case, so, I dabbled with CakePHP, Python’s “Twister” application framework, Ruby on Rails, PHP’s Smary templating engine, and many others, and found that I was becoming disillusioned with the available systems, and felt uncomfortable about how much time I would have to invest in order to come away from any of those projects with anything resembling a useful skill.

Also, it must now be mentioned that, although I should probably know better by now, when it comes down to it, I am now and probably always will be a Perl junkie. It’s my favorite language. Sure, Ruby looks compelling, what with it’s clean syntax, amazing object oriientation, etc, and Python ain’t bad either, and I’m sure I’ll dabble in lots of languages in the years to come, but what it comes down to is this.

I know Perl pretty danged well.

It does a helluva lot of stuff pretty damned well.

It’s got a massive module library (CPAN), and many of the modules on CPAN (unlike, say, the ones in PHP’s Pear) are fairly mature, rigorously tested, and generally stable and useful.

So, you know. I started tinkering with Perl frameworks a while back, maybe three or four years ago, when there weren’t a whole lot to choose from. I studied POE, for instance, with a vengeance, and I’m glad I did, even though I probably won’t be using it for anything important. And I looked at Maypole, which is super cool, but doesn’t seem t have any active development going on right now.

Anyway, to make a long story short, there I was, using Perl, (and feeling pretty good about having successfully integrated Perl with the Eclipse IDE, but that’s another story), and, well, I”m not going to bore you with the details of what it’s like setting up a Subversion server on OpenBSD, or why there are some seriously cool Perl modules coming out of Japan right now, or how, even though it’s WAY harder to learn, hard to administer, and seems like overkill for a lot of my projects, PostgreSQL is just WAAY BETTER THAN MySQL FOR LOTS OF REASONS.

But I digress. And, besides my neverending struggle to get Eclipse, Subversion (i.e. Subclise), PostgresQL, E.P.I.C., and everything else I’ve been working on to play nicely together, I eventually decided to spend some time with Perl, because I *really really really* wanted to try out Catalyst.

You know. CATALYST. It’s, uh, it’s a rapid-applicatiion-development framework, based on the MVC design pattern, with many extremely useful modules that make developing a complex web application MUCH easier than before. Seriously, it’s super tight. It’s like Ruby on Rails, but for Perl. Which, although I’m sure that concept makes a lot of people shudder, I was pleased as punch to discover, because I sure as hell don’t know Ruby well enough to develop anything with Rails, and honestly, I don’t really know if I’m smart enough.

So, after a little quantum entablement, we wrapped things up at the bar, and headed over to the lab to try out this Catalyst stuff, and see if it’s any different or (let’s just say, uh, “usable”) from the other newfangled frameworks that are out.there.

To make a long story even longer, well. I spent some time with Catalyst, and, uh. well.

HOLY CRAP CATALYST IS SUPER COOL.

And, even though it’s taken me like, three months to learn, and I still have no idea what I’m doing sometimes, I’ve been keeping busy trying to learn all of the crazy stuff Catalyst can do for me.

More tomorrow, I’m falling asleep, yo.