Issues:

  • All of a sudden, git requires that [dev-util/subversion] uses [-dso], whatever.
  • desktop: emerge –unmerge dev-python/gnome-python-desktop
  • python dependecies required –newuse:
    New USE are correctly set, but –newuse wasn’t requested, so an installed package with incorrect USE happened to get pulled into the dependency graph. In order to solve this, either specify the –newuse option or explicitly reinstall ‘dev-lang/python:2.5’.
  • mediacenter: “Could not locate requested eblit” [sys-kernel/mips-sources] during revdep cleanup – ignored…
  • desktop: transcode 1.0.3 was stable but sucked, so I unmasked it a couple months ago to get the newest fixes. transcode 1.0.7 stable is out, clean up all the transcode unmasking now (about 10 packages)…

And we’re off and running again with newly-polished boxxen that sparkle like chrome. It’s awesome that at any point in time, you can unmask as needed to get just the fresh raw updates you need, then come back in a couple months and clean up the masking and get a nice clean refresh of the stable tested new releases. Keep on rockin’, gentoo.

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

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…