When I replaced my Mythtv backend/living-room-frontend, I couldn’t resist the dirt-cheap AMD/ATI HDMI motherboard/CPU combo. No regrets – it plays 1080p great – even though I have to deal with ATI rather than smooth-as-silk nVidia drivers. In setting up StepMania and MythTV (and etc.) to use OpenGL, I had a few hoops to jump through, including…

  • gentoo requires recompile of [ati-drivers] after kernel bumps
  • gentoo required VIDEO_CARDS in make.conf
  • [eselect opengl set ati]
  • to get fluxbox and opengl and ati playing well: [aticonfig –ovt opengl]
  • also see http://en.gentoo-wiki.com/wiki/Fglrx

Upwards and onwards…

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

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… :>

I…

  • downloaded
  • backed up
  • deactivated plugins
  • dumped code base over my installation – crazy!  it’s full of customizations…
  • browsed to admin and pressed “upgrade”
  • updated 5 plugins
  • reactivated plugins

I had to install the advanced version of TinyMCE, flush Firefox’s cache, and disable/re-enable the visual editor (from the user’s settings) before the editor would give me the Visual/HTML tabs.  Other than that things are humming.

WordPress is simply amazing software – did you know it only uses 11 tables to work its magic? And I don’t think anyone appreciates the effort they put into keeping it elegant, backwards-compatible, free from scope-creep, etc. etc. Cheers to auttomatic.

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