Drowning in scattered torrents and files? Get yourself organized! Here is a torrent management system for linux users that will give you…

* automatic download of torrent contents for all downloaded .torrent files
* automatic download of new .torrent files from RSS feeds
* automatic organization of content once it finishes downloading
* continuous seeding of contents during this process
* simple control of seeding of all previously downloaded content

  • del.icio.us
  • Digg
  • Google
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati

Recently, I found myself kind of annoyed by the fact that I couldn’t use the same “initialization” syntax to directly set the values of an existing structure. Extremely trivial, but it bugs me. Is there really a good reason for this limitation?

	typedef struct
	{
	    int x;
	    int y;

	} Doh;

    Doh doh = { 1, 2 };

    // You can't directly re-assign in one step, bummer.
    // doh = { 3, 4 };

    // You need a second struct to use the same syntax.  Yuck.
    Doh d2 = { 3, 4 };
    doh = d2;

    // Or just do it longhand.  Also yuck.
    doh.x = 5;
    doh.y = 6;

So I dug around to see if there was anything I was missing, and I found designated initializers, the new initialization method available in C99. It doesn’t allow me to directly assign values to an existing structure, but it is interesting:

	Doh doh_set = {
	    .x = 4,
	    .y = 3
	};
	Doh doh_set2 = {
	    .y = 3,
	    .x = 4
	};
	Doh doh_set3 = {
	    .y = 3
	};
    Doh set4[]=
    {
        {
            .y  = 1039
        },
        {
            .y  = 1040,
            .x  = 23
        }
    };

Still not rocket science, but the truly interesting part is that designated initializers are not yet available in C++. At least not today. I tested it with gcc 4.1.2 and Visual Studio 2008 C++ compilers and they do not support it. It may appear in C++0x, but for now, C is definitely no longer a pure subset of C++. For more possible gotchas (and some C99 features that make it more compatible with C++), here’s a quick C99 rundown.

Considering designated initializers are being used in places like the linux kernel, this issue no longer seems trivial. Oh well, code and learn. Hopefully I can go another 10 years(!) before my next snag. For now, back to classes… :>

  • del.icio.us
  • Digg
  • Google
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati

Squirrelmail was driving me crazy - incoming email filtering (via avelsieve) was broken in the old stuff, and the preview pane is broken in the new. Nothing seems to be very actively maintained. So I revisited Roundcube, and it looks good.

I’ll be keeping Squirrelmail around to manage my incoming email filtering - avelsieve is just really nice to work with - and I’ll be using Roundcube for my web client. And Thunderbird works great when no corporate firewall is in the way. Works for me…

The only changes I made during Roundcube setup were within [config/db.inc.php] (trivial) and [config/main.inc.php]:

// MDM I used this to install, then moved the installer directory to backup...
// $rcmail_config['enable_installer'] = true;

// MDM This prevents the silly "host" box on login.
// Don't use 'localhost' or outgoing email will fail!
$rcmail_config['default_host'] = 'myserver.com';

Roundcube

Roundcube

Thunderbird

Thunderbird

Squirrelmail Avelsieve

Squirrelmail Avelsieve

  • del.icio.us
  • Digg
  • Google
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati

My Forms for Portals project is a simple collection of forms to help you quickly access google, dictionary, wikipedia, imdb, maps, yellow pages, etc. from your own web pages. I’ve mentioned my portal before, hopefully the new article makes it all easily digestible (and yummy!). It’s a reaaally oldskool approach, yet still pretty useful IMHO.

And just so I’m eating my own dog food…

Trying out IE8 RC1, it’s listed as incompatible with URL’s like microsoft.com, including Windows Update. Meanwhile IE8 updates are only available through Windows Update. And the uninstall doesn’t work in XP SP3 - I don’t get a “remove” button at all. You can’t get rid of it, and you can’t patch it. Thanks for completely breaking Windows, Microsoft. Wow, the incompetence is staggering. Fortunately Windows is becoming more and more of a bad memory every day. The kind you can eventually completely black out, with any luck…

Meanwhile, FF3 continues as the champion workhorse, and running Google Chrome in XP is like taking a Ferrari for a spin… “soon available” on linux… and don’t miss the geeky-great chrome cartoon

  • del.icio.us
  • Digg
  • Google
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati