Archive for July, 2007

New Project: Simple Issue Tracking System (SITS)

Saturday, July 21st, 2007

You may have noticed that I have started a new project on Google code: SITS: Simple Issue Tracking System. There is nothing there yet except for a brief description.

So what is this thing all about? 2 or 3 years ago I decided to install some sort of bug tracking system to help me keep track of sysadmin and help desk duties. We had no system in place, so I tried few different solutions, and didn’t like any of them.

For example, I looked at Bugzilla (which came highly recommended) but it seemed like a total overkill for what I needed. I messed around with few small, simplistic projects but must of them were either buggy, or to convoluted for my needs. I didn’t want to go through a lot of setup - I wanted something basic that would just work.

All I really needed was a piece of software that would let me:

  1. Log the nature of the problem and troubleshooting steps at the time I get a support call
  2. Be able to update the problem with follow-up info if the issue is not resolved immediately
  3. Have the system send automatic email notification to the involved parties whenever the issue is updated
  4. Let the users visit the website and track the progress of the issue at their convenience
  5. All the issues would be logged by the help desk based on support calls - regular users would not be submitting problem reports online

Since I didn’t like anything that was out there at the time I decided to write my own. Since the PHP+MySQL system that I was developing already had a database of our employees and their email addresses, I integrated it into the code base. The idea behind the system was simple - the less features the better. And if it is not crucial to the core functionality, it doesn’t need to be there - it can be mentioned in the notes section. So the system asks you to describe the problem, then to say what was done to resolve it. Then it lets you post follow up notes with updates. Each time you update the issue and change one of it’s properties you need to write a short note that describes the change which automatically gets filed as a follow up.

It’s not a very rich system, and it is definitely not an enterprise grade product. But I have been using it since then making small improvements here and there and it worked just fine for me.

Recently I deiced that it would be a good idea to release that code under GPL - perhaps someone else can make use of it. Of course the code is tightly integrated with the monstrous custom system I built for work, and can’t be used as a stand-alone online application. It needs a complete rewrite of the user management system, session handling and etc. While I’m at it I decided to tighten the database schema, and add the feature allowing you to assign a given issue to another person.

Once I clean it up a bit, I will upload the code there in case anyone is interested.

In fact, SITS is a bit similar to the Issue tracking system that Google Code uses. It’s a little bit more conventional and strict - ie. it has none of the free form wiki like features of Google Code system.

The Roundup Issue Tracker look a bit similar to what I was aiming for. At least in the spartan, minimalistic visual side, and clear dialogs with few UI controls. But it is still much more complex than SITS.

Have you ever used any Issue Tracking products? Do you have a favorite one? Do you have one that you hate? It’s funny but most people I know either use Bugzilla or nothing.

What kind of applications do you have open right now?

Friday, July 20th, 2007

What applications do you have open on your system right now. Just look at your task bar, and tell me what you have open. I’m interested to see what stuff people use on a daily basis.

My usual work setup is:

  1. Kmail - for work email
  2. Firefox - not just for wasting time mind you, see below
  3. Komodo Edit - for coding in PHP
  4. Few instances of Konsole - I have clever script that accesses our Employee Directory (a big excel sheet) on a mounted Windows share. (Yes, this stuff should be in a database or some groupware application but it isn’t and they like it that way. I lost that fight long ago. P ) I also have a script that accesses an encrypted password list that sits on my system.
  5. 1 or 2 Rdesktop sessions - connected to our WIMP server, and the File/Printer Server for monitoring them and etc

Almost every app sits on it’s own virtual desktop, so there is not much window juggling.

Within Firefox I usually have these tabs open:

  1. Google Reader
  2. Twitter
  3. My company’s issue tracking system
  4. Whatever website or application I’m currently working on
  5. Gmail notifier sitting in the status bar, letting me know if I got mail
  6. Adsense extension also in the status bar, showing me how much cash have I earned lately (not really crucial, but it’s rewarding to see the number creep up few cents every day)

What about you? What do you have open at the moment?

To Many Linux Distros?

Friday, July 20th, 2007

Dear Internets,

Can we please put this flamebait to rest? It is not even amusing to argue about this anymore. I mean, it has come to the point that even Slashdot (of all places) feels apathetic towards this subject. This is not even beating a dead horse anymore. This is like beating a picture of a dead horse, because the body already decomposed, and disappeared from the face of the earth. Not only it’s no longer shocking, but it also makes you look desperate for attention.

I can tell you this: your inflammatory linux related troll can’t get a raise out of the slashdot then it’s pretty much used up. Even the most inexperienced of n00bs have already seen this flame war at least 300 times already. And the discussion on this subject is more than predictable at this point:

  1. If you don’t like the choices Linux offers, you can stay with Microsoft monoculture
  2. In Soviet Russia Linux chooses you
  3. Actually, there are only 4 or 5 distributions that can be considered major players, and the rest are either small specialized projects that cater to very specific niches of customers
  4. Please propose a solution to resolve this. Oh wait, there is no solution because this is a non-problem
  5. Hey, thanks for digging this one up again. I haven’t seen it in a while - as a matter of fact, it haven’t been reposted since last week. Good job!
  6. GTFO, old FUD is old
  7. Can we please finally put this flamebait to rest?

So yes, this post is a predictable response to a predictable FUD that gets regurgitated and re-ingested by every single Linux community every few weeks. It had to be said.

Thoughts?

Clear Indications of Bad Memory or Dimm Socket

Thursday, July 19th, 2007

I have seen this happen this happen to several machines lately. Look for these sympthoms as they are an indication of a failing RAM chip, or a bad DIMM socket on the mobo.

  • The system freezes up at random times during bootup:
    • during POST
    • at the Windows logo
    • just before login screen
    • right after login
  • System turns on, and stays on but never even reaches post

Note that read/write memory errors are not on the list here. Those are dead giveaways, and curiously they were not occurring in most of the cases I worked with. If you experience intermittent, but consistent sympthoms like the ones listed above, start pulling out DIMM’s out of your system. Chances are that one of them might be going bad, or that the DIMM socket itself is on the fry.

Once you identify the “bad” DIMM, take all the memory of the system and put a chip that you know to be good into the slot where the bad one was before, set the strictest POST in your BIOS and try to boot it few times. You don’t have to go all the way into windows. You just want to see if it passes through the memory test at the POST. If the sympthoms go away, you are in the clear - it was just a bad DIMM. Get a new one and go on with your life. If they continue, or if you can’t even boot, then you may need to get a new mobo.

Why is Software so Expensive?

Thursday, July 19th, 2007

Today I stumbled upon this blog post, trying to justify why software prices are so overinflated these days. The author does make some valid points, I disagree with the general notion expressed in the post. While making software is not easy or straightforward, it does not justify some of the prices listed out there.

The prices of proprietary software are not really tied to the actual cost of development and testing but to:

  1. Brand Name - just like with any other product, recognized brand names charge more.
  2. Amount of Competition - software market is very unique when compared to other markets, because it allows near-monopolies to thrive. This is the only market where a very expensive product can be more popular than the free alternatives produced by competition because of compatibility concerns, and sheet market saturation
  3. Customer Expectations - pricing is usually based on the perceived amount of money the customer is willing to pay for that type of a product.

The last point is especially striking. How come Microsoft sells their Office Suite for $400 while most game developers price their products at around $60. Does that mean that an original dynamic 3D game with advanced AI, complex physics and many hours of voice acting is actually less expensive to build from scratch than the newest iteration of MS office?

I’d say the game is more complex to make - or at least as complex as the office suite in terms of programming involved. But, the number of people involved in making a modern game is greater than for a product such as office. Microsoft does not need concept artists, graphical designers, voice actors, voice acting directors, voice acting crew and studio, script and dialog writers and etc. Modern game development usually have this whole extra layer that adds to the cost of development in a real, tangible way.

But, no one is going to buy a game for $400. Of course if you are playing a MMO game you may eventually end up paying more than that in subscription fees - but note that part of the subscription money pays for server upkeep and bandwidth. Games are designed as commodity products - you play them for few days, or few months until you beat them, unlock all the secret features, and get so good at multiplayer that you can pwn n00bz in your sleep. Then you get sick of it, and move on to the next game.

Office on the other hand is a product you are supposed to use for a long time. You buy it once, and then you just keep on using it every day, until the new version comes out and you get to pay $400 for it again. This is how they justify the price tag - it’s not how much it costs to develop the product. They base the price on how you plan to use it.

This is why in some products we have per-seat licensing, and other crazy schemes like that. The truth that all software makers know all to well, and try to hide from the customers is that software does not obey market laws of supply and demand. Supply does not deplete as the demand grows. Making more copies of software does not get more expensive, proportionally to the demand curve. Once you have a software product, your supply is almost limitless, bounded only by costs of distribution (ie. bandwidth, cost of making burning, and boxing CD’s and etc).

To offset this, software makers need to worry about maintenance. Most other industries simply release a product, offer you a short term warranty, and then forget about it. But when you release a software product you are expected to maintain it, fix bugs, plug security holes, and add features for the entire lifetime of the product. But, no one ever said you need to provide this service for free. Microsoft does it for the most part, and perhaps this is part of the justification for the inflated prices. Other software makers can sell you support plans, or simply provide software “as is” without making any promises for future support. So while long term maintenance is costly, no one forces you to provide it to your customers.

As a matter of fact, software can be made for free. You don’t need raw resources, manufacturing plants, manual labor, facilities and etc. All you need to start selling software is a computer, a compiler, an internet connection and lots of time. You will say that time is not free - and of course you are right. But many developers will gladly work for free, and contribute to a project that interests them - just because this work is so god damned rewarding. In what other industry can you find people who are not only willing, but also excited to work for free on their weekends to fix bugs and add features to your project?

So the cost of development may not be zero, but a function of time “donated” by individual developers. Still, in the end the software gets made with no upfront capital, and no tangible expenses that can be traced back to the project. So how much does it cost to develop software? The correct answer is: it depends.

It depends on what type of software you are making, how much are users willing to pay for it, how much money you are willing to put into the project and how much profit you want to make on each copy.

You can develop software collaborating with other people online for exactly $0, and distribute it for free. Or, you can pipe thousands into R&D, hire developers, and build a company (or an empire) around your project and sell it anywhere from $20 to $1000 (or more) a per copy. Its completely relative.

So why do Windows and Office so much? Because, my dear friend, you are willing to pay that price. Because Microsoft is a brand name, with a de-facto monopoly in the OS and Office markets. And of course, most importantly because if they would charge more their sales would drop and piracy would rise, as their product would become to expensive for some people to afford.

And that is the truth.