sharpen the saw

Today I got my feature done in an hour, but I spent 3 hours wrestling Spring, JBOSS, and Eclipse.

I would just like to restate some of my principles now.

* Tool performance and stability is important.
* Iteration time is important.
* A good error message can save an hour of time.

Which is to say, if you pay someone $40 an hour, you should buy them a $400 tool if it saves them 10 hours of time over it's lifetime.

another four mouths to feed

Today I woke up and wanted to get an aquarium. Annie was decidedly neutral on the subject, but I had a fire in my belly, and so we headed out to Jim's Exotic Fish on PCH to see what was what.

We talked to Jim, and we told him that we were eventually interested in setting up aquaponics, but that we were basically new to fish, and wanted to start small and easy. Jim was incredibly helpful. He sold us a nice glass tank and an integrated unit that sits on top of it and does light and pump and filter, plus a heater. We sold ourselves some gravel and clay and plants and a rock. We took it all home and set it up, and filled it up with water, and put in the water conditioner. You have to do that to get the fluoridation out.

Then in the afternoon we returned for the fishes. Jim told us that he had been working 15 days in a row, because his daughter had just had a baby, so she couldn't come in to work. I sympathized. We picked up 2 pairs of 2 varieties of platies, and took 'em home, and after letting the temperature adjust and all that, we set them loose in their new home. Then we stood there and watched them for like 20 minutes.

It's a 12 gallon tank and it can hold a lot more than 4 little guys, but we wanted to start small and move up from there. Eventually we'll get to the goldfish, and then maybe koi, when and if we go for an outdoor pond system. But for now our little tank will be plenty. And I think Annie's already coming around to the idea ;-)

a long rambling post on the latest topic

I think I want to write a book about software development, and why people find it so confusing. There's a lot of trendy methodologies and frameworks and languages and platforms out there, with their high priests and acolytes, promising that everything will be smooth as butter if you can just come over and see things their way. Well that's marketing for you I guess. But I think that most programmers don't have a good understanding of how really broad the programming landscape is.

I mean, one one side you have embedded systems, and then you have mobile devices, and then you have game consoles, and desktop, and then you have expert system, and then server, and then web... And they all have massively different constraints. That's what you don't get if you follow the software development trends. Most of the software development technologies out there were invented to solve very specific problems, but their evangelists are unwilling to admit it. So it's difficult to tell which buzzwords and trends fit your problem.

On the one hand this is all just basic design: list your requirements and your constraints at the beginning, and then pick solutions that fit. I guess what I object to, is that a lot of technology evangelists would really like you to skip the step where you pick solutions. As a marketer, if you can turn technology selection into a religious war, then you don't have to worry about your faithful jumping ship if their problem definition changes.

So, I'd love to see a map of the various axes of software development, along with which technologies, methodologies, etc., were designed for which region. And then I will print it out and roll it up and hit people over the head with it whenever they tell me that I should be using Ruby on Rails.

more griping

If I were to try to keep myself to a strict schedule of a post a day, I think many more of my posts would just be complaining about software.

Every so often Eclipse seems to decide that you're being too productive. It'll crash, then refuse to launch. Generally to get it up again you have to lobotomize it first, and then rebuild your workspace. This usually takes at least an hour out of my day every time it happens. It happens about once a month, I'd say.