Category: Geekery

  • And it only took 24 (or so) hours of processing time!

    Huzzah! After a few false starts and 24+ solid hours of computing time, I now have an AVI of the MST3K episode “Being From Another Planet” fit to burn onto CD-ROM. It’s XviD-encoded and all commercials have been excised.

    The process went a little something like this:

    • Hook VCR to computer via TV tuner card, in this case the ATI All-in-Wonder Radeon. (mere minutes)
    • Use VirtualDub to capture the full airing as an MJPEG file. (2 hours)
    • In VirtualDub, trim out commercial content from source MJPEG file. (half an hour)
    • Apply an array of filters as per the Digital Archive Project’s encoding instructions. (half an hour, including the download of filters that don’t come with VirtualDub)
    • Make the first of two encoding passes with XviD. (6 hours and some-odd)
    • Make the second of two encoding passes, specifying 690,000 KB of desired file size. (6 more hours and some-odd)
    • Realize that XviD doesn’t have the foggiest clue how to hit a target file size. (30 seconds, followed by two minutes of cursing at the 760 MB AVI file resulting from the previous step)
    • Make the second of two encoding passes again, specifying 620,000 KB of desired file size. (6 more hours again and some-odd)
    • Rejoice at the 694 MB AVI file that looks and sounds good enough to burn to CD-ROM. (5 minutes of whooping and carrying-on)

    My previous “archiving” efforts concentrated on making VideoCDs, but I was never happy with the visual quality of those two attempts (Space Children, Jack Frost). The upside is that those can be played in almost any modern DVD player or computer, while this archive is strictly for computer-based viewing.

    Good thing I have that myHTPC-equipped multimedia computer out in the living room, eh? (Mwahahahaha!)

  • One of the odd little reasons I enjoy my job.

    I knew that these critters are out there, but knowing and seeing are two different things.

    Today I saw a computer in a slot all on one card, CPU and RAM and video chipset and all… and its operating system is stored on CompactFlash just like you’d find in your digital camera. How cool is that, huh? My mind immediately turned to thoughts like, “Hey, I wonder if I can get Linux on that thing?” (I couldn’t do any worse than Telos, who decided NT4 was the way to go. I was called in to troubleshoot because the “black box” telco equipment hub in question wouldn’t boot properly. Gotta love seeing BSOD on supposedly state-of-the-art studio equipment.)

    I don’t know if what I saw was a true “passive backplane” machine, but until someone tells me otherwise then that’s what I think I saw. Cool.

    Yes, I know, I know. I get excited over the dumbest, geekiest things sometimes. But hey, I’d rather be easily amused than difficult to amuse!

  • Blogrolling PSA

    Woke up this morning, fired up the trusty ol’ web browser, and stared in panic at my blogroll.

    Every damned link pointed to some conniving bint called Laura whose blog I won’t link to. This fine, upstanding trollop apparently had her hacker boyfriend go into Blogrolling.com and change everyone’s ‘roll so that every link pointed to her website. As of 8am the News page at Blogrolling.com had nothing about this, so I sent off a support email… and turned off my ‘roll, as well as Wendi’s.

    I’m debating turning it back on again, and will do so only if my list can be restored, not if I have to rebuild it from scratch. Even then I may decide to go back to a hand-built link list. It’ll decrease the load time and increase the security, two very good things. It’ll suck, though, not to have recently updated sites marked accordingly. Oh well. Small price to pay, eh?

    UPDATE: It’s fixed, and while I still intend to convert over to a self-hosted link list I probably won’t do so right away (too much on my plate right now!). I should take the time to mention that for a free service, Blogrolling is one helluva nifty deal. Just for the record.

  • External PHP via Javascript

    Fed up once and for all with the lackluster reliability and performance of the “free” commenting systems in use by some of my friends, I decided to see if I could rig it so (in theory) they could use a comment script hosted here at greyduck.net instead.

    So what do you do when you want to reference a comment-counting feature that’s written in PHP, on another server, from a server on which PHP is not installed? You call it as if it was a Javascript, of course! (And by “of course” I mean “I learned after a solid hour of Googling and headscratching”.)

    Here’s the trick:

    <script language="JavaScript" src="count.php?id=X">

    X gets filled in with the journal/blog/thingie entry number via whatever mechanism your journal software provides, and the ‘count.php’ is configured not to ‘return’ its calculated result but instead:

    echo "document.write("$result")";

    In other words, PHP is generating what looks like Javascript, and everybody’s happy. My hacked-together ‘count.php’ looks like this (with some obfuscation):

    <?

    function commentCount($n) {
    $comments_path = "/path/to/comments/directory/";
    if($file = @fopen($comments_path . "comments/$n.comment", 'r')) {
    $thisFile = fread($file, '1000000');
    $thisFile = explode("n", trim($thisFile));
    fclose($file);
    $comments = sizeof($thisFile);
    if($comments == 1) {$comments .= " comment";} else {$comments .= " comments";}
    } else {
    $comments = "no comments yet";
    }

    echo "document.write("$comments")";
    }

    commentCount($id);

    ?>

    And the link that calls the comment script and displays a live count of submitted comments looks like:

    <A HREF="javascript:viewComments(X)"><script language="JavaScript" src="http://www.domain.net/location/count.php?id=X">

    Again remembering to replace that X with the unique identifier for that journal/thingie/blog entry. The viewComments() function is your standard “new window popup” trick that I’m sure nobody needs me to detail here. (The X in that function call is passed to the URL for the comment script proper. Nuff said.)

    Granted that this is all designed around the comment code used on this website, so it’s not exactly portable for all uses. The code listed here is only an example of how it can be done.

    Not, mind you, that I’m putting this system into service right away… but working this out certainly was an interesting learning experience for me! Yay, my geek-fu is still strong! *smirk*

    UPDATE: I’m a freakin’ moron. It works great in Mozilla-based browsers but Internet Explorer ignores the living hell out of my count.php script. I have no idea why. I’ve added content-type headers, I’ve tinkered with it six ways from Sunday, and still no-go. So, basically, this was an exercise in utter futility. Argh.

  • Uncluttering My Inbox

    I run my own email server. I’m still convinced this is a good idea for a die-hard geek like myself, but it does have some downsides. For instance, I have an additional layer of complexity to deal with when fighting spam.

    One weapon in my arsenal of spam-fighting techniques is the daily throw-away email address, as seen in the upper-right corner of this website. It works pretty well, all things considered. Only twice have I received spam at an active daily alias. (You almost have to admire the nimble little spammers. And by “admire” I mean “eviscerate.”)

    Letting the address harvesters gather those throw-away aliases, however, comes at a cost. For every message a spammer sends to a now-outdated alias, my server then has to try to successfully bounce that message to sender. Since the vast majority of sender data is faked, you end up with a double-bounce scenario where the attempt to bounce a message bounces back to the postmaster of the domain the spam was being sent to.

    Yep. I get to see the spam anyway, except now it’s buried inside of “delivery failure” notices. How nice. As a for-instance, I can go to bed at 11pm right after checking email for the night, wake up at 8am and find upwards of 50 emails titled “Failure Notice” in my inbox.

    Some of you are probably way ahead of me on this one. “Gee,” I realized this morning, “Why don’t I just create a new administrative email account and change the ‘postmaster’ alias to point to that instead of to my real email address?” (The cleverer geeks among you will be wondering why I ever pointed ‘postmaster’ to my main personal account instead of going this route in the first place. Oh, how I wish I had a good answer for you…)

    And so I have done. The difference is positively astounding. I’ve increasingly been in the habit over the last few months of checking my inbox compulsively because I knew that with every click there would be a new “failure” or two or three to erase while I waited for real mail to show up.

    The only email I now receive is actually addressed directly to my email account. Some of it is still spam, but almost all of that is tagged by SpamAssassin at the server level and filtered accordingly by my mail client. I’m overjoyed by the lack of tedium involved in checking my email!

    All I have to do now is break my compulsive mail-checking habit. That, and convince people to actually send me email…

  • Itty bitty site updates

    In case you’re wondering, no I’m not dead. I’m just busy working and resting, by turns.

    Today I made two minor tweaks to this site. On the right side, you’ll see a new button for DeviantArt which will take you to my DevArt page. (I even posted some new art today, whee!)

    On the left side, way down there, is the BlogSnob advert. Yes, I decided to go ahead and put it back on again. I’ve been meaning to ever since Wander-Lust went away, and just now got around to it.

    This evening marks another get-together for Portland-area NaNoWriMo participants. A report on that, as well as other recent activities, will appear here some time in the next twenty-four hours.

    No, really. I mean it.