A notch above a monkey

Need for originality

We’ve been working on our project for a very long time and it’s been clear all along, that our site, when it’s finally revealed, will look and act very similar to what is already out there, although in a different language and with many, sometimes subtle, differences.

So, should I feel offended or be afraid, as has been suggested by some, of being accused of plagiarism? Or more importantly, should I make a special effort to be different?

I don’t think so. When revealed, site will indeed be very similar to its inspiration. I don’t expect this will last long and I think in few months it will be clear that we took a different approach, but at least at first, it will look like a little brother of some other well known website. I already talked about this and there’s little sense in doing it again.

Real question therefore is, how valuable and important is originality or when is it important to be original?

I think it’s important to try to build something better than what is already out there. This may not be always completely true. E.g. it might be sensible to build a localized copy of established global service to bring it to people who would otherwise be kept away because of a language barrier.

However, I find this kind of development doesn’t contribute much to my personal happiness and is hence not really something I’d like to pursue in the future. But I also don’t value difference just for the difference sake. I think if something works well and I’m not able to significantly improve on it, there’s no good reason to build something else just to be original.

I believe almost every web retailer’s website looks more or less like a copy of Amazon, because their design works well. It also means less of learning curve for new visitors, which is a nice thing as well.

So what do I do?

If something works well, I’ll use it. If it doesn’t, look at how I could improve it. But before I actually do anything, is the difference big enough to bother actually creating it?

Back to my roots!

It has dawned on me recently, that I’m not using Linux as much as I used to. True, all my servers are Linux based and all new code is eventually deployed on them, but I haven’t been using it for a while on a desktop.

Probably the main cause for this was my Powerbook, where practically everything I create starts its life. It’s just so much easier to carry all your work with you. Linux cause also wasn’t helped by a fact, that my PC is incredibly loud and makes air in office unbreathable in a matter of minutes.

Mac OS X was never a perfect match for me and I always missed some things like true network transparency. But lately I became tired of various software bugs and hardware troubles that plague me and started to think about Linux more. I also miss being part of open source community.

So, after this pre-launch mayhem is over, I’ll look for a new Linux machine. It’s time to go home.

Looping through getElementsByTagName list

There’s a small quirk that developers hit now and then when they are processing a list of elements returned by getElementsByTagName function. Usual, but still unexpected behavior is that not all elements of the list have been processed and if you are using javascript console, it might complain that there’s no element in the list at index, where you’re certain it should be.

The reason for this is that returned list of elements is not really a list. It’s a live view of matching elements. If you delete one of them in document, it will be removed from the list as well. List will become shorter and some elements in it may change their position to fill empty slot formerly occupied by deleted element.

Therefore, if you loop through such a list and its possible that you might remove current element, it’s best to loop from last element to the first. This keeps positions stable and predictable even when you delete.

It can be a bit trickier to handle if you add matching elements inside such loop. Sadly there’s no easy solution that would work all the time and you have to take in account your situation.