Function vs Design

My latest project, dubbed Domain Pigeon, is coming along well. I work on it when I can, getting in a few hours here, a few hours there, probably not totaling more than 15 hours/week. I’m at a point with Ruby and Rails where I am knowledgeable enough to know what to look for when I run into problems (which happens frequently).

With the limited amount of time I have to work on it, I’m trying to allocate my time better than my last project. With ALL IN Expert, I spent wayyyy too much time in the beginning worrying about the design of the website and the software. I literally spent like 10 hours one day experimenting with icons I was creating with Photoshop. This was probably a good sign that it was going to fail. I spent too much time initially deciding on nitpicky design details that really weren’t important.

On the other hand, there is value in spending small amounts of time working on the interface. Ideally, design should be driven by function. However, in my case I’m still working out the details on some of the functionality, so creating a basic site has helped narrow my focus in a lot of areas. Also, by designing the site as Igo, I’m starting to see what the final product is going to look like. It’s a pleasure watching beautiful things grow.

On an unrelated note, I’m removing the “Recommended Books” from the side bar. My original intent was just to share books that I liked, but it now strikes me as arrogant so I’m just going to nix the entire section. Also added Mark Cuban to the blogroll and removed some of the shittier ones.

Scriptaculous Troubleshooting

I spent the better part of the last two evenings troubleshooting some problems with the Scriptaculous library. On one of the pages for the project I’m working on there’s an element that is supposed to expand with some dynamically generated content when the user clicks a link. This was easily accomplished, except that the element expanded too far momentarily and then jumped back to the right size, creating a slight flicker. It also turns out that the element was expanding each time I clicked the link, so that it would start out with a hight of 24px, then be 36px, then 48px, and so on.

After way too much work, I realized that it was taking into account the size of the padding and border when determining the height to render.

Since I haven’t used it much, I naturally assumed that I was the one in error, but it turns out, the problem may actually be with the library. Anyway, after a lot of hacking away at it I finally achieved the effect I wanted and am that much smarter with Prototype now.

There’s a definite satisfaction with finding the solution to difficult problem.

Narrowing Down a Path

I spent a fair amount of time this weekend working my new Rails project. While I got a lot of work done, it reminded me how much work I could be doing if I actually had more time to do it. I’ve come to realize that I probably won’t be founding any HUGE startup soon. I simply don’t have time to manage anything that requires lots of time and involvement from me. I get home at 6:30 – 7 on average, which leaves little time to accomplish everything I want. 

Maybe this project will be really successful, but even if it isn’t, it should provide me with a solid foundation for more ambitious projects in the future. If by summer ’09 I can be a Ruby/Rails expert, I’ll have a lot more opportunities to do the type of things I want to do. 

Also, I’ve been blogging a lot less. Somewhat paradoxically, that’s not a sign that I’m doing less work, but a sign that I’m doing more. If there ever comes a time when I give in I’ll make sure to write about it, but I don’t expect that to happen… ever. 

For the few of you who continue to read this, thank you, and I hope you’re making progress towards your goals. 

Matt

Zend, its Not You, It’s Me… Why Hello There…

Enough is enough. I’ve been trying to make my way through Practical Web 2.0 Applications with PHP the last few weeks, but have found myself unmotivated and making little progress. The book uses Zend Framework to build an Ajax heavy blogging system.

I can’t talk programming theory, but I can tell you that programming with ZF just didn’t feel right. The framework is bloated and fat and doesn’t make doing easy things easy. The examples in the book would go something like this: “Oh, that’s easy with ZF: Just follow these ten easy steps and voila, you’re ready to go.” Learning the intracicies of the framework became a chore and I just did not look forward to it.

Originally I attributed this to my own inexperience with frameworks. “I don’t care how annoying this is, I’m going to make it through this book” was how I approached it. But something was wrong, I realized, when I was looking for excuses not to program. That’s not what a programming language should do. It should encourage you to experiment and should enable you to do the things you want to do.

I went to Borders looking for a book on Django. They didn’t have it, so I went to B&N to see if they did. Why Django? No reason in particular. I’ve heard some good things and wanted to try something new. B&N didn’t have it either though so I scanned the shelves… PHP… ASP… Visual Basic 2008… Rails. Hmm, Rails. That’s not a bad idea. But wait: do I really want to become one of those people?

Sure, why not? I picked up Simply Rails 2 and made it through about 100 pages yesterday afternoon. My initial impression? The language just makes sense. It’s intuitive, relatively easy, and dares me to do something.

This is what programming is all about.