Uncategorized

Discrimination ?

Suppose you own a software development company with like 10 programmers, and you have just hired another one from a minority population :) . After a month or something you realize that the other programmers aren’t as open-minded as you thus their productivity is hurt badly.

What will you do next :) ?

Microsoft Conference

I’ve attended today a MSDN briefing in Bucharest, mainly focused on development on Vista, .NET Framework 3.0 and Office 2007. It was pretty boring, not because I knew all the stuff but

Staying in good shape

Usually I’m coding interesting stuff however I have realized long time ago it’s not enough :) . So here’s a brief list of what I’m doing in the spare time (not everyday unfortunately :( ) to maintain a fresh mindset:

C WTF

For a good laugh, a recently sent wtf:

if( pNode->ISClient())
{

TIM

Interactive physics simulations have always been a hobby of mine – starting with the famous ten-year-old game The Incredible Machine:

So when I recently saw this movie on digg (about a more professional software used together with a “Magic Paper” sketching board), I decided that I really want it :) . Luckily I am using a Tablet PC so I got over Physics Illustrator, a rather simple software, and also found Working Model 2D – definitely more professional and with lots of items to have fun with:

Concave polygon clipping

I’ve extensively searched for c++ source code available online and free to use – this is the best I could found. Beware it needs to be adapted a bit (returns empty if no poly intersections).

Maintenance / development

I have recently revolted on having fully-separated maintenance and development versions (thus having to fix issues on two different codebases etc). While I realize this method is the most-used, it creates lots of duplicate work instead of having a common “core” codebase.

Following is a short comparison of the two methods that may be used for developing a new version of the product while being able to ship updates to the current version.

Common core source code + separate features

This method implies being able to reconstruct a previous version from the latest source code (i.e. disabling the features for the next version etc).
Pros: All base code is in one place, fixing a bug fixes it in all the previous versions needed for maintenance.
Cons: New features must be separated (using #ifdefs for example) – may be cumbersome

Complete source code separation

After a version is released its source code is shelved (or the following version is branched).
Pros: Disconnected codebases is safer – you definitely have exactly the version that was shipped
Cons: Tedious and theoretically useless work needs to be done to fix an issue in all the previous versions

As a code-reuse militant, I’m predisposed to use Method 1 for managing versions. However until a new CVS-like system starts to facilitate it (I’m thinking at something for marking a part of the code or a check-in as available from a version further on), I agree it’s not feasible for commercial products.

Breaking captchas

Easiest way to do it is using them in your own site’s registration or commenting process – will only work if you have lots of traffic, of course.

However as I have lots of experience in image processing I was thinking at processing it a bit and using a neural network for detection – looking afterwards I found this that explains it in more detail.

Canon SDKs

Canon completely rocks – they have no more than 3 SDKs for their camera series. Best of all, they are not so much different to justify this.

2006 IGNobel prize winners

There results are in – check them for a good laugh and look at the previous ones also.