Archive for October, 2006

Taking Your Programming Skills to the Next Level?

A nice thread at Slashdot that didn’t get on the frontpage and neither into the rss.

Vista explorer dialogs

Am I the only one ranting about the fugly title bar of Explorer windows in Vista ?

The first thing that comes to mind is that it’s a bug. Nevermind that it looks unfinished. Yuck !

Lightmaps & OpenGL lighting

OpenGL lights can hurt lightmaps badly (by graying parts that should be shiny). Setting maximum ambient on the only texture that is material premultiplied by lightmap gets rid of the effect – however now the ambient intensity has no more influence. An additive ambient would solve it but that’s not a quick modification, in fact I’m pretty sure it’s not feasible without shaders or multi-pass rendering using additive blending.

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.