IDE wars: the battle for Qt

In my search for the best open source Qt-compatible IDE (for Windows, as for Linux, you don’t have to search ;)), I eventually settled with Code::Blocks. Don’t ask me why anymore, it’s been too long. 🙂 (I do remember testing QDevelop and Qtclipse). But if you have a look at CB, you will see it for yourself: a very stable, clean and versatile IDE. Qt support comes in the form of an (unofficial) plugin: QtWorkbench.

First of all, getting this plugin to work was REALLY a PITA (It involved compiling CB from SVN which was a challenge on it own), but very recently the author seems to provide some binaries which should make the experience all the more pleasant. 🙂 I was so happy when I first got it running, that I really didn’t care about half a dozen plugins being lost in the build process. 😉 (I never took it up again, who needs plugins? 😛 ;)) What’s more, code completion just worked and QtWorkbench created my .pro file all by itself.

After the honeymoon moment was over, I really got some nasty trouble though. Compiling debug simply did not work because apparently I don’t have the Qtdesignerd.dll and QtW insists on including it in the project file. So let’s remove it outside the autogenerated block like this:

CONFIG -= designer

Okay, first hurdle taken. Another hurdle was unfortunately a whole less obvious.
Continue reading IDE wars: the battle for Qt

which php.ini?

ok, so you need to modify php.ini to change some php setting but you’re on this ill-managed cpanel server having like tens of them.. So which one is the active one? 🙂
Just ask php itself 😉 :
php -i | grep php.ini

Gaim 2.0

Gaim 2.0 is _finally_ there! Sorry, I should say Pidgin by now, but who knows? 😉 I think the Pidgin thing is, apart from its spelling (I always make mistakes causing me to fail finding the homepage ;)), actually a good thing:

  • Nice(r) connotation.
  • Better logo.
  • Bye bye law suits 🙂
  • Overall, I believe this is an excellent release (understatement). The only thing I found better in the latest beta I tried, was the available icon in the systray. It used to be just a green circle. Now, they added a speech balloon to it (please make that optional ;)). The user interface/usability has improved tons, so I might become tempted to drop Psi. Won’t happen any time soon though. 😉

    Note: you might have problems accessing the Pidgin website. It seems the release is not officially announced yet and they are probably migrating the old site first before doing so. First post, LOL!

    Opera 9.20

    Finally thumbnails in the windows panel! 🙂
    Other changes I like:

    • Added support for automatic search from address bar when entering more than one word.
      More than once I forgot type g first 😉
    • When specifying address:port without specifying the protocol, “http://” is once again inferred.
      Also tend to forget this one

    The dev tools are of course also nice to have 🙂

    Fixing picasa database

    Ever since I upgraded picasa, there had been problems of photos displayed with the wrong transformations applied, albums messed up etc. I had been fumbling around with the picasa.ini files sometimes, so I wasn’t entirely surprised. 😉 So today, I did once more a fast google search, hoping I was feeling lucky ( 😉 ). So I was 🙂
    There was this guy who wrote a perl script for fixing his picasa.ini. It seemed it wasn’t exactly what I was looking for. Until he said like, btw, remember to clear your database by holding ctrl+alt+shift while starting picasa. Guess what, it worked excellent for me! 🙂 No more troubles.

    Bash tip

    Recursively changing the permissions of a directory structure:
    find . -type d -exec chmod o+x {} \;

    I’ve always found that the find syntax is quite cryptic yet very powerful. Small explanation:

    • find . : start finding in current dir
    • -type d: only directories!
    • -exec chmod o+x {} \;: this is an interesting one. It’s obvious it’s about executing some command =) but what about the braces and the semicolon? The semicolon is just the end delimiter for the exec command and to ensure it does not get interpreted by your shell, it is escaped. The {} is simply a variable indicating one result from the find query, in our case, a subdirectory. Of course, the exec command itself can be anything, here it’s a permission change.

    Yet another 3D engine?

    Back in the ‘old’ days, I once (actually thrice =)) wrote my own 3D engine just to find out Ogre did all of that and more. 😉 Naieve as I was, I was surprised to find a very similar design in it. 🙂 Still, at that time, it was more or less justified to roll my own because ogre was still growing up and I needed to implement a kind of volumetric texturing technique which was quite unconventional which made it not suitable as a plugin/extension for an existing engine. And as for everyone, for me too, it was great fun to make it from scratch. 🙂

    The situation nowadays is a bit different. You would need to come up with a very good reason if you would like to convince someone you need to write yet another open source engine. It’s a fact that the open source 3D engine market is quite well established by now. Just take a look at projects like Ogre, Crystal space (go Jorritbelgian flag small! ;)), Irrlicht, Cube, …

    Still, people DO seem to be able to find reasons. 🙂 Enter a world of dragons: the DragEngine. I think it’s an interesting approach which is typically inspired by open source roots (a closed commercial game does not have immediate interest in the flexibility that the DragEngine provides, or at least not to that extent (imho)). It’s definitely a project I want to follow-up, even just out of curiousity where it will end up. Because, let’s face it, it’s quite an ambitious project, developing its own tools/components from top to bottom.. I’m a bit surprised I never heard of it before, so that’s why I’m promoting it a bit now. 🙂 Keep up the good work!