Welcome to Hardcode Sign in | Join | Help

October 2006 - Posts

ACM

After resting for one year Romania is back and one team is going to the ACM finals! Congrats to the team from University of Bucharest - I don't happen to know them (they're young and in the first year of study).

A nice thread at Slashdot that didn't get on the frontpage and neither into the rss.
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 !
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.
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 :) ?
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  due to somewhat poor presentations:
    - the guy with .NET Framework 3.0 had less that one hour to show all but he spent like 30 mins for WCF only and skipped WPF entirely
    - the Office 2007 development presentation was about the Open XML Document structure and a simple API designed to unzip the data from the docx, xlsx etc and add / modify / remove documents / relations in the archive - no structured API thus for handling documents, you will have to change the XML directly.
For a good laugh, a recently sent wtf:
if( pNode->ISClient())
{
    #ifndef NODE_IS_CLIENT
    #define NODE_IS_CLIENT
    #endif
}
Actually this wasn't left in the code, it was just for testing if it works :).

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:

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).
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.
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 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.
There results are in - check them for a good laugh and look at the previous ones also.
There are some cameras with picture auto-rotate functionality - they have a sensor to detect the camera orientation (landscape / portrait), however the picture is rotated only on the viewfinder (in review mode). Also - no flag set in the EXIF structure.

So currently I'm researching how to rotate hunders of pictures automatically.