For those who are not familiar, CGM is a scalable file format which allows you to shrink and blow up things and keep fairly good resolution. For the nerds, it’s a 2D vector format.

Recently, WebWis has come into play, and sadly, most of the semi-common models of documentation are as verbatim from the old WIS CDs, including this CGM file format for all pictures/etc. This means that many models are unavailable to view online unless you have an old WIS CD.

I’ve tracked down a copy of Free ActiveCGM as provided, and have placed it >> right here <<. Unzip the archive, run Setup, and when it starts IE, right click the “Warning” banner at the top, allow it to run, and you’ll see a window with ActiveCGM running within IE.

You may now view CGM files in Internet Explorer.

For those concerned, this was a direct copy as I found it, the software is FREE (not a part of WIS, it was offered by a company which no longer exists), and as I am not bundling it with anything else, it is not in violation of any license.

It is old software (circa 2002), and is 32 bit ActiveX. you’ll need to run a 32 bit Internet Explorer for it to work. If you are running Vista x64, or Windows 7 ×64, this discussion may be of some assistance, but I don’t run any of those, so I can not assist with any further requirements for making it work.

Same goes for this link to ISO View. Good luck, and Happy SAABing!

E: The latest ISOView version above is v7.3. Here is the latest download link for ISOView 7.3 (32 bit), available from the same resource above.

ISOView /should/ be able to handle CGM itself, but it seems like the ActiveX enabled WIS doesn’t use it for rendering. I haven’t figured a workaround for this yet, but I haven’t tried too hard since XP capable computers are cheap and plentiful.

It’s rare (never) that I blog about code, little alone blog anything. Today is not one of those days. I should have known it would be a special/different day when I woke up with ELO’s “Hold on tight to your dreams” stuck in my head.

One of my most recent project I have inherited is (regretfully) based half in phpCake, half in homerolled calls to mysql_query(). It makes for rather strange bedfellows.

This system partially utilized cake’s native Cache::Write/Cache::Read functions, but it only had primitive support, it was only compatible with cake’s engine type of ‘File’, which is rarely what you truly want.

I began implementing a single-host compatbile memcache which worked with PHPCake’s memcache daemon, but I really wanted it to be able to fail-through gracefully, rather than fall flat upon it’s face. I did some searching, and ran into SuperStack.

SuperStack is a simplistic attempt at doing precisely what I was looking for – with the added benefit of arbitrating cake’s own cache engines, so, he could get a list, call the functions, and be done with it – adding support for writing through to caches that are missing the data.

I took about 5 minutes (ok, about 2, it’s small) to read the code, and immediately made it part of the system, replacing the default Engine in cake. Now, I had both memcache, and a local file cache – just in case.

I wanted dumbCache to be able to support virtually every configuration available to cake, with minimal config differences. I wrote a wrapper to init() the Memcache servers given, rewrote the File support, and finally, added Redis. Then, I added basic error checking for testing upon init, and disabling them after the initial call, so no waste would take place on any subsequent read/writes after the init.

Here’s what the (ugly) config looks like:

$config = array(
        'Memcache' => array(
                'enabled' => TRUE,
                'host' => array(
                        "127.0.0.1:11211",
                        "127.0.0.1:11212",
                ),
        ),
        'Redis' => array(
                'enabled' => TRUE,
                'host' => array(
                        "127.0.0.1:6379",
                ),
        ),
        'File' => array(
                'enabled' => TRUE,
                'directory' => '../tmp/cache/',
        ),
);

As this is a simple write-through cache, it will attempt to populate all engines, and if it finds one missing a value, will attempt to write it, just to have it. Thanks, Richard, for the inspiration.

dumbCache weighs in at an amazing 7.2k, and has the following functions (to be compatible with the existing software):

cacheInit(), cacheRead(), cacheWrite(), and cacheDelete().

It prefers owlient’s phpredis (as that supports setTimeout so you can automatically expire data as with Memcache and the File subsystem), and was written for Memcache as is distributed via pecl.

[Update: Dec 15th, 2010:]

adam@adam.gs gets props for answering 20 questions related to his caching methods, none of which were actually applicable, or useful.

For some reason or other, about a year ago I was offered to provide feedback to Sirius/XM on their radio stations.

I’ve been annoyed since we lost ‘The System’. It was the reason I subscribed. Yeah, ‘that one’. I’ve since asked them to offer more variety on BPM, and Area could expand a bit.

I just saw this after hearing similar on the station:

SIRIUS|XM’s Area is re-launching as Electric Area and expanding its exclusive dance music content with A State of Sundays, a new show featuring 24 hours of music hosted and curated by DJ Armin van Buuren. The show premieres Sunday, September 12 with an exclusive six-hour set by van Buuren recorded live in Ibiza, Spain. “

Let’s hope they get this one right. “Bagatelle Brunch” is almost worth the time that it takes to turn it off.

[Edit: Update 09/13/2010: For every rainbow, you need to endure the rain. My favorite local radio station just changed their format to “New Country. Ugh.]

[Edit 2: Update 03/31/2011: 1400 KBDB-AM/Reno, Nevada, changed to Smooth Jazz late December – but AM Stereo will never exist; and with all of my electronic equipment, there’s no chance of ever listening to it when doing household chores and not wanting to stream. Oh well.]