Archive for March, 2006

VB6 hack of the day

As Visual Basic supports only 6 versioning tags (Comments, Legal Copyright, etc), I’ve ended up modifying VB6.exe (!) to have another tag available.

C++ language weird parsing

Incorrectly reported yesterday as a bug, this case is actually a correct behaviour, although not intuitive at all. The problem is that the compiler will try to find a function declaration whenever possible, so in the following case:

BSTR bstr = NULL;
CString s(_bstr_t(bstr));
s = “a”;

Here s is parsed as a function declaration, instead of a variable – this is correct, though (!).

COM Dll injection

Here’s one very cool technique I’ve learned in the past – used mainly when you have to do lots of automation calls to an out-process server. The point is to move these client calls to a dll and inject it in the exe server – there’s a huge improvement in speed because now it’s in-process.

This should have went into the COM API, or at least in the Win32 api – an official way of injecting a dll (instead of the current hacks that are done usually).

Asm.net

Very old stuff, but here is an x86 assembly compiler that outputs .net – so now you can write asp.net sites in assembly language :D . The entire site is very interesting, it’s the same guy that made the Gmail shell extension.

Happy Birthday Pisi!

WJ-S.org

Pretty dissapointing from a technical point of view :D , their software is just playing a list of sites on a network of VNC-controlled PCs. So basically there is a network of PCs with projectors, and from the server you can choose a playlist of sites / movies / pictures to be shown on each of these – with the artist mixing them in real-time, that is. The WiFi connection was just for looking more high-tech.

Besides this, some artists had really good performances – from ironic views of Google in the future to very artsy visual effects and movie mixes.

WJ performance at MNAC tonight

Interesting stuff – they mix raw packet data directly from the Internet as I have understood (translated into audio sampels, of course). Will be there to see what is it about.

Hardware XML

Pretty old, but what do you say about this ? It’s a full-featured hardware XML processing device that accelerates the work with XML and XSL.

C# main loop

Don’t ever use a normal main loop and a Thread.Sleep call to stop using 100% cpu – better use Application.Run and do you processing on the Idle event.

SQL: Negating conditions

If you didn’t know, negating where name=’a’ to where not(name=’a') is not what you expect: the records with NULL are not returned. Still – you can quickly negate a condition with not( … ) if you are careful when generating it: simply add and not name is null to the condition. So, again: