Registering DLLs on 64-bit Windows systems

Here’s a bit of nerd knowledge I’d like to post, both for helping others and as a reminder for me when I run into this again later.

Trying to use regsvr32 to load DLLs you’ve dropped into the \Windows\System32 folder, but keep getting an error? If the error is:

The module failed to load. Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files. The specified module could not be found.

then try dropping the affected files into the SysWOW64 folder and registering them there instead. Apparently on x64 systems, the System32 folder is for 64-bit files only.

Why didn’t they call it System64 in that case?

A trip down geek-memory lane

A couple of weeks ago, I imported all my old saved email from my account while searching for a receipt from an order I made before moving to Alaska, and promptly forgot about it. Today, while searching through my mailboxes for an order I had just placed with Apple, I stumbled upon this message:

From: Apple Mailing Lists Info
Subject: Info – Apple Mailing Lists
Date: January 22, 1996 8:51:18 AM AKST
To: Ryan Ridge

Here is the current listing of Apple Mailing Lists maintained in the domain by the Apple Support Information Services group. Thank
you for inquiring!

How To Subscribe to Apple Mailing Lists
Article Created: 12 May 1995
Article Reviewed/Updated: 20 December 1995

Apple Computer, Inc. provides a number of mailing lists that can keep you
informed of the latest information in the following areas.

NEWS FLASH: AS of 21-Nov-95, all commands (subscribe, unsubscribe and help)
for Apple Directions Express mailing list should be placed in the Subject

NEWS FLASH: AS of 23-Oct-95, all commands (subscribe, unsubscribe and help)
for infoalley, pressrel, newhdw and swupdates mailing lists should be placed
in the Subject field.

1) Apple Press Releases – receive copies of all press releases created by

2) Apple Information Alley – receive notification, a table of contents and the
a compressed text file of the Information Alley, Apple’s technical support
journal, twice per month. Important Note: In order to use the compressed text
file of the Information Alley, you’ll need to know how to de-binhex a file
using either a commercial decompression utility like Stuffit by Aladdin
Systems or a freeware utility like DeHQX by Peter Lewis.

3) Apple Software Updates – receive notification and descriptions of each new
Apple software update posted to the Apple Software Updates areas on Apple
supported online services and Internet
sites, including eWorld. We’ll also send you information on fee-based Apple
software upgrades not posted online.

4) Apple New Hardware – receive information on the newest Apple hardware
releases, including Macintosh computers, printers, and imaging devices. All
information is extracted from the Apple Tech Info Library, Apple’s official
technical support database, which is located in the Apple Technical Support
area (shortcut: support) on eWorld.

5) Apple Developer Directions Express – Summarizes the latest Developer News
from Apple – what’s happening at Apple, how we’re doing, what we’re thinking
about, and where we’re headed. What we send you will be the latest, most
interesting, and–we hope–most useful information Apple has to offer. We’ll
try not to bug you too much–three or four times each month is what we
currently plan, but both the content and the frequency of this mailing list
may change, depending on reader feedback.

6) What’s New on Apple Developer Web Pages – receive a weekly mailing
detailing What’s New on the Apple Developer Web Pages.

7) Newton Press Releases – receive copies of all Newton related press releases
created by Apple.

8) WON (World of Newton) Weekly – a weekly review of Newton platform
information, software updates, online chats and resources, compiled by the
Newton Platform Marketing group at Apple.

Let’s see, in January of 1996 I had just been put on academic probation at IU for spending more time fiddling with my Power Macintosh 7100/80 than sitting in class during my first semester there. My parents had moved me out of the dorm room I shared with Mr. Sean Bartel, and I was living back at their house in Nashville. I was still taking a few classes, including the one required to get me off of probation, “Fundamentals of Academic Success,” or something like that. It met in some decrepit and long-forgotten one-classroom building in Ashton, with a giant furnace that never worked and a ceiling-high pile of boxes along the back wall. That building has since been bulldozed and is being replaced with something much nicer. I was also taking 2 computer classes (I originally enrolled as a biology major, with an eye towards being an optometrist – ha!), because technology captured my attention in a way that no other subject had.

Within a few months, I would start a job in landscaping and continue to perform just above adequately in whatever classes I was taking. I was still a year and a half away from making the jump from proto-geek to geek-apprentice when I would take a job at the campus computer store. But you can see the roots taking hold, right in that email up there. And this was in what we call “Apple’s Dark Days,” when they were on a serious downhill slide. A stagnant operating system (System 7.5 woo!), mundane hardware (which beige box do you like better?), and lackluster leadership. The following year would see Apple’s stock price drop to $12 a share, and then the return of Steve Jobs. I loved it all, the good and the bad.

Epson R1900 paper jams with Velvet Fine Art paper

Seriously, what is it with me and printers?

Update August 2010: As several have noted in the comments, the best solution is to forgo using the manual feeder altogether, and just put the paper into the standard feeder. I’ve been doing that for months now, and haven’t had a single problem.

I just bought an Epson Stylus Photo R1900 because I’m going to seriously pursue selling my photos. I eagerly loaded some Epson Velvet Fine Art paper into the manual feed, and then spent the next 45 minutes trying to get the stupid thing to print. First, it told me I couldn’t actually select the paper type (grayed out in the Printer Settings menu). Once I figured that out (see below), it would pull in the sheet, move it up and down, and then tell me there was a paper jam. Constantly. Now that’s quality.

Here’s how I managed to “fix” the problems:

First, go into Page Setup and select the Epson R1900. Then, from the paper size, select “Manual – Roll” for whatever size you’re using. That will allow you to select the Fine Art papers.

No matter what I do, the printer always reports a jam the first time I attempt to print anything. So, I clear the “jam” by pressing the blinking paper button on the printer, and wait for it to stop ejecting the paper. Then, I press the button again to clear the error. Then, I push the same piece of paper back into the printer, and gently but firmly keep pressure on the top of the sheet, allowing it to move up and down freely, but still applying pressure. The printer should pull in the paper and begin printing. I’ve managed about a 95% success rate with this method.

If it doesn’t work, keep trying. Whatever you do, don’t clear the error on the computer, or delete the job and start over. I tried that many times, and it will *never* print on the first try.

Update 5 minutes after posting: Okay, it just printed on the first try of my tenth photo tonight, with no interaction on my part. So much for “never.”

Getting Flag Comments working in WordPress 2.8

Time for one of my occasional tech nerd posts.

It took me a couple of hours, but I managed to get comment flagging to work on the Homer Tribune website, using Flag Comments and WordPress 2.8.4. Following the instructions included in the Flag Comments documentation does not work. Starting with a post on the WordPress support forum (those instructions are incomplete as well), and then pulling bits and pieces out of the comments-template.php file, I managed to get it working.


First, install the Flag Comments plugin. Next, there are three files to modify in your theme: functions.php, comments.php, and style.css (or whatever your theme’s style sheet is named).

1. functions.php: add this batch of code after the end bracket (}) of the first function. The lines are longer than my post width, so download a text file of this code.

function mytheme_comment($comment, $args, $depth) {
      $GLOBALS['comment'] = $comment; ?>
      <li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
      <div id="comment-<?php comment_ID(); ?>">
      <div class="comment-author vcard">
      <?php if ($args['avatar_size'] != 0) echo get_avatar( $comment, $args['avatar_size'] ); ?>
      <?php printf(__('<cite class="fn">%s <span class="says">says:</span>'), get_comment_author_link()) ?>
      <?php if ($comment->comment_approved == '0') : ?>
      <?php _e('<p class="mod-mesg">Your comment is awaiting moderation.</p>') ?>
      <?php endif; ?>
      <div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(), get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),' ','') ?><br /><?php do_action("flag_comment_link"); ?></div>
<p class="comment-p">
      <?php comment_text() ?>
		<div class="reply">
		<?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
		<?php if ( 'ul' == $args['style'] ) : ?>
		<?php endif; ?>

2. comments.php: replace the line <?php wp_list_comments(); ?> with
<?php wp_list_comments(‘type=comment&callback=mytheme_comment’); ?>

3. style.css: this is how I modified my css, but you’re welcome to make it look like however you want. I’ll describe each style below.

li div.comment-meta div.flag-comment a {

.mod-mesg {
.comment-p {
  • li div.comment-meta div.flag-comment a: this controls the color (or more) of the Flag text. My particular theme has an overarching style for links, so that’s why I had to dig down and grab the exact div to override.
  • .mod-mesg: this controls the color (or more) of the “Your comment is awaiting moderation” message that’s displayed after a message hits the flagging threshold you’ve set in the admin panel.
  • .comment-p: this allows me to push the comment text a little further down, so longer comments don’t overlap with the added flagging line.