Software Development Paradigm

This is just an idea I had while thinking of software development in general.

For the purpose of simplicity, I chose to name the people who use an application “users”, although in my original idea it was more about customers. Not a big difference I guess.

Imagine that application users live in individual buckets (which would represent the applications they are running). As long as they stay in the bucket (the application runs), they are happy. Bugs in the application are like holes in the bucket, which allow the user to get out of the bucket. The larger the hole, the unhappier the customer. The more users hit a bug, the larger the hole. The more severe the defect is, the larger the hole. You get the picture.

In traditional software development, when users detect an issue with the application, they will report it somehow to the development team (now wouldn’t it be nice if software had things similar to sensors that notice when a leak occurs and starts to produce noise? Well, some software will “call back home” if the user allows it to; other software will just not ship with a “please shut up” button – would you get a fire alarm that you cannot silence if it went off by mistake, maybe from burning popcorn in your microwave?). Usually, one or more persons will try to determine the severity and dispatch some software develpers to fix it (and this is where the analogy became graphical to me: sometimes software developers look like plumbers who try to plug holes with their hands in an attempt to stop the “bleeding”).

Code releases are a mere way to move the contents from one bucket to a new one. Hopefully one with the known holes fixed, but sometimes with more holes as a result. Also, in the process of moving contents from one bucket to another you don’t really want to spill parts of the content on the floor, it gets messy!

In my analogy there’s even place for refactoring. The new bucket may be simply patched (simple bug fixing), or larger portions of it replaced. After all, if the bottom of the bucket is full of holes, one may choose to replace it with a new one.

How about rewriting the application from scratch? That would be a new bucket, hopefull a better and bigger one, allowing the customer to “grow” in it. As with the code release, a successful migration means no mess on the floor.

To push this analogy a bit further, software development is like plumbing. If your sewer line has a 1/32 inch hole in it, it’s no big deal. If found in time, it won’t have the chance to leave crap on your floors. If the hole is 1 inch big, you have a big mess (literally!) on your hands – and guess who gets to fix it…

In case you’ve forgot, I am a software developer after all.

The Choice of the Music Player

Last week I started the thread about music players and now I can give more updates.

I have only looked at Banshee and Rhythmbox. There were enough plusses on the Rhythmbox side to make me keep it as the music player of choice.

On the stability side, both seem to crash as often and randomly. Looking at the changelog for Rhythmbox, at least some of those were fixed between 0.9.5 and 0.9.6. I will probably recompile 0.9.6 and see if that’s true.

On the speed side, Rhythmbox beats Banshee hands-down. Browsing a repository over DAAP is especially painful with Banshee – changing from one repository to another takes ages even for low thousands of items. Rhythmbox seems to do a much better job at caching that information.

On the usability side, I was able to figure out how to create a playlist in Rhythmbox, but it wasn’t obvious how to do it in Banshee, plus I managed to crash it several times in that area.
Looks like I’ve made my mind…

A Rainy Sunday

The weather didn’t look very promising for Sunday. The morning was cold (around 55F) and it drizzled. However, the rain conveniently stopped around 1PM, so my orienteering experience was actually surprisingly pleasant. I didn’t get as wet as last time (when it was in the mid 80s), probably also because I didn’t have to cross the stream (twice) knee-deep in water. I still got a bit wet because of the vegetation, but not nearly as bad as I thought, and since I was running most of the time I didn’t notice the cold anyway.

I competed on the green course (5.1km) and finished in 75:43 (definitely not the fastest time, I’ve seen at least 2 faster times, one at 60 minutes and one at 71 minutes), but I am really happy with it. I only had troubles with 2 out of the 9 controls, that’s where I knew I lost time; the rest was just me taking my time.

As usual, I really enjoyed Umstead Park. The event was in the North side of the park, which is generally a problem for me coming from the South, because I have to go around either West-bound (I-540 and US-70) or East-bound (Blue Ridge / Duraleigh / Ebeneezer Church / US-70). Blue Ridge Road is a no-no these days with the State Fair blocking all the traffic, so I used I-40 / Wade Avenue / Edwards Mill / Duraleigh / … and that wasn’t bad at all. It’s surprising that the Reedy Creek / South entrance and the North entrance in the park do not communicate so you can get by car through the park – for those who don’t know why, the reason is historical and dates from the Segregation period. I guess not being able to drive across the Park is a good thing after all, I wouldn’t want cars speeeding through.

… And the week after the week of vacation

First week at the new company (rPath). Not a lot of comments, other than I am trying to learn as fast as I can.

I’ve started by installing rPath Linux on the laptop, and just finished reinstalling it with Foresight Linux, mostly because I was looking for more recent versions of NetworkManager, XChat and a working suspend-to-RAM. Plus, Foresight has a lot more desktop goodies.
After using Foresight for about half an hour, I can say I got 33% of what I wanted. XChat has been replaced with xchat-gnome, and suspend didn’t work in different ways (no kernel support – easily fixed by running the rPath Linux kernel). Another thing is the music player: Foresight comes with Banshee whereas Fedora Core 5 comes with Rhythmbox. Apparently I will have to look at Amarok too.

I did spend some of my time with paperwork, inherrent to getting a new job (new health insurance plan etc.).

Hopefully I will not be subject to the viruses that are affecting some of my friends (no, not computer viruses, I’m talking about cold/flu), and the weather on Sunday will hold for the orienteering event.

The week of vacation

Who said home improvement projects are not fun. I am so sore now.

But the kitchen looks really nice now. All that’s left to to is fix the threshold and paint the base molding. I will post pictures with the project’s timeline some time soon.

In other news, I ran a 5K this morning. I timed myself at 21:17, which is exactly one minute slower than my personal best, achieved 2 years ago in the same race. Not a bad result, considering that I’ve been sporadically running, trying to recover from my calf muscle injury. I believe it’s still faster than the result 3 years ago, which was 22:07 (but I can’t find the archives to back my memory).
That’s the reason I decided to not run the Inside Out Classic Half Marathon next week (that, and the conflict with the orienteering event on Oct 22).

Update: the official time confirmed my 21:17 reading. (I started 2 seconds later, hence the gun time showing 21:19).

Abulafia is no more

Before you jump at me and say “dude, you’re a bit late, Abulafia died more than 7 centuries ago”, breathe, drink a glass of water, and read on.

I so happened to name my workstation with the same name used by Umberto Eco for the word processor of one of his characters in Foucault’s Pendulum. I guess I could have come up with something better. Anyway.

Friday was my last day at Red Hat. As I was about to reinstall my machines, I noticed that Abulafia’s uptime is 99 days. Too bad.

I am taking this week off to play “the home dad” (to some extent since both kids are in school), finish some long-standing home improvement projects, most likely get a new LCD monitor since my 5 years old ViewSonic 17″ CRT is slowly dying apparently, and trying to relax before I get on a new adventure.

Finally, I’m a blogger…

Although I reserved ibanescu.net quite some time ago, I didn’t have the chance to upload content to it. I wouldn’t necessarily call this content either, but at least it’s something.

In other news, leaving the company after more than 5 and a half years is not an easy thing to do. I seem to get attached to things and places. I remember feeling the same when I quit my first and second employers. Now I have to pack all the junk I accumulated in the past 5 years, and discard everthing I don’t need anymore.

On the bright side: I will take next week off, and among other things I have to install a new flooring in the kitchen. After going back and forth, we finally settled for vinyl tiles. They should be fairly easy to install, although I still haven’t figured out if I’m supposed to rip out the old vinyl floor, and what to do to seal the spacing between the tiles. More about that later, I promise.