What's New

DIY - Silver Lightning cleans silver via electrochemical reaction

OK, this is off-topic but what the heck - it's interesting (to me, anyway).

I've seen commercial advertisements for Silver Lightning on various television shows, The product demonstration shows a person placing the Silver Lightning plate under water, then placing tarnished silver on the plate -- and like magic, the silver brightens and the tarnish vanishes.

I'm an inquisitive guy, so I assumed this was due to some kind of chemical reaction involving electrolysis, so I searched the web to see what I could find on the subject.

It turns out that silver tarnish is silver sulfide, much of which comes from the trace amounts of sulfur in the air. The Silver Lightning product is apparently nothing more than an aluminum plate, which, when placed in a solution of baking soda and water (about 1 cup per gallon) causes an electrochemical reaction that draws the sulfur away from the silver and to the aluminum.read more »

Posted by: Mike on Sat, 04/12/2008 at 6:41am

Mollom.com: another spam prevention mechanism for Drupal admins

When trying to keep web site content clean and on-topic, the site administrators often face monumental challenges from spammers.

Mollom.com is an alternative to using the Spam or Akismet modules. It's in beta at present, and it is free of charge at present. It is expected to remain free for low-volume users (for details, please refer to the mollom.com web site - link below.)

Posted by: Mike on Mon, 04/07/2008 at 6:49am

Nero 7 Essentials: Stupid Stupid STUPID thing to do to developers.

I was debugging a Windows application that makes use of DirectShow to render media - and for some strange reason, the application would terminate without warning when run under Visual Studio's debugger.

No error message, no exceptions, nothing. The application ran fine outside the debugger. I was able to debug the same code base several weeks ago without incident.

Poking around a bit, I isolated the line of code causing the silent termination: The DirectShow IGraphBuilder interface's Render method. Digging deeper, I find that the ultimate culprit is Ahead Nero 7 Essentials, which had been installed on my development system several weeks before. Apparently, Nero Essentials installs a variety of DirectShow filters on the target system, and, these filters actively prevent running under a debugger. In this case (on my development system), there was absolutely no error message or other indication of why - just a silent termination.

After I isolated the problem, I was able to determine that there is supposed to be a "Nero Protection Error" message box presented to the user, but it never appeared on my system, nor did the system event log contain any useful information. Feh.

The 'quick' solution: Unregister everything you find in the %COMMONPROGRAMFILES%\ Ahead\DSFilter directory. Alternatively, rename the directory to something else (like DSFilter-disabled) - this will allow you to re-enable them later by renaming the directory back to DSFilter.

This gets my vote as one of the dumbest stunts I've ever seen. I am pretty sure there's nothing all that special about Nero's DirectShow filters, and, if someone really wants to reverse engineer them or break the protection/licensing, they will. This lame attempt does nothing more than encourage (force?) legitimate users to remove the Nero filters from their machines. Nice going. Did the developers or marketing geniuses stop to think about this use case?

Ahead Nero 7 Essentials just cost me an hour or more of productive time. Then there's the aggravation.

Lame. Stupid. Did I mention lame? And I used to *like* Nero software.

ImgBurn - Freeware, and it works!

Update: I've tried ImgBurn, a freeware CD/DVD image read/write utility, and so far, it looks good. UI is slightly wonky but it's a very good piece of free software - and, best of all, you can install it without Administrator rights. Give it a try!

Posted by: Mike on Tue, 03/25/2008 at 9:35am

Ringtone downloads - Ringtones, Ringtones, and More Ringtones...

Ringtone Downloads - what's all the fuss about?

Ringtones. Seems like everybody's searching for them and downloading them. Ringtone download sites are all over the 'net, and ringtone download advertising is pretty big business, if the number of ringtone download site ads visible on the average web site is any indication.

Ringtones For You, Ringtones For Me, Ringtones As Far As The Eye Can See...

I've never spent much time paying attention to ringtone download sites. I always figured that they were aimed at a younger audience, and, I have always been satisfied with the ringtones that were built in to my cell phones. Who's visiting the ringtone sites?read more »

Posted by: Mike on Tue, 02/05/2008 at 8:15am

Antivirus gone wild: Kaspersky busts Windows Explorer

This morning's news brings reports of another case of mistaken identity leading to false arrest and other abuses of power by our neighborhood beat cop (um, I mean, anti-virus product.)

This time, Kaspersky anti-virus pulled Windows Explorer to the side of the road, hauled it off to jail, and put it in solitary confinement on suspicion of being infected with Huhk-C (reported to be a low-risk virus.)

Windows Explorer was eventually cleared of all charges and released. One hopes that the renegade cop Kaspersky faces disciplinary action. Given the historic lack of corrective action I'm not holding my breath.

Posted by: Mike on Fri, 12/21/2007 at 7:48am

Programmer Fonts

Here's a great page with a roundup of programmer fonts:
http://www.lowing.org/fonts/

Other resources

Consolas (Microsoft)
Inconsolata
Revisiting Programming Fonts

Posted by: Mike on Mon, 11/12/2007 at 10:13am

Hell is other people's code

Jean-Paul Sartre said: "Hell is other people".

To which I say: "Hell is other people's code".

All kidding aside, working with other software developers' code can be daunting enough, even when the code was written by diligent, conscientious engineers.

It becomes downright nasty, bordering on torture, when it was written by someone unconcerned with the need to maintain the code later. I wonder, when working with such code, what level of Hell I've landed in.

I've seen near-identical functions located adjacent to each other in the same file, each differing by only a few characters here and there, and both spanning a half-dozen display screens, making it impossible to even tell which function you are looking at. Each having conditional compilation controlled by the same manifest constant with a near-meaningless name. The second function body #undef'd the manifest constant before the first line of the function. So there was no way to know, when looking at a particular screen full of code containing conditional compiled statements, whether the code was compiled and active in this particular context.

I've battled the vile demons of magic numbers, copy-and-paste code as a means of code 're-use', low-level communication code that pops up blocking error message dialog boxes in the middle of threaded data send routines, what-should-have-been-library-code-but-was-just-another-source-file (used in a GUI application) that unceremoniously calls exit() when an error occurs in the middle of an initialization routine.

All the while, I'm repeating to myself: "I have no mouth and I must scream".

So: When you write or maintain code, please try to keep in mind that someone else may need to read, understand, and even - *gasp* - modify the stuff you are generating. It's a good way to help make the world a better place. Really.

Resist the temptation to take that shortcut. Drop a few comments describing your assumptions. Sprinkle the code with a few assertions to describe the conditions required for proper operation - but don't rely on assertions to provide runtime error checking; use exceptions or well-defined return values if you must. If you know about a precondition or gotcha, make a note of it for the benefit of others. Do something, anything, to improve the condition while you are working on the immediate need.

Take the time to think about those who follow - They'll love you for it.

Posted by: Mike on Sun, 11/11/2007 at 3:21pm

Classified Ad Module - Changing Title Text?

I'm using the Classified module as a simplified job advertisement system. See it here:

http://www.evacmod.net/?q=ed-classified

What I want to do is change the title text on this page from "Classifieds Ads" to "Position Ads".

I have already tried altering the following lines within the .module file:

<?php
drupal_set_title
('Job Ads');
?>

But this does not affect the main page of the Classifieds Ads module :(.

Any ideas?

Posted by: mikeuk2000 on Thu, 11/08/2007 at 2:33am

A new twist on link requests

I must say I found this one to be rather unusual. It appears to be a variation on the "paid post" or "paid review" theme - except the requester writes the content rather than paying the webmaster to write content linking to the requester's site.

[Name Snipped] sent a message using the contact form at http://exodusdev.com/contact.

I ran across your site today as I was searching for some computer info. On Google. Your site is fabulous and certainly grabbed my attention!

I run a website also, and would like to see if there are ways we can work together to benefit both our businesses. As I am sure you have found, reciprocal links have very little value these days – getting ahead on the search engines relies on two factors…read more »

Posted by: Mike on Mon, 11/05/2007 at 7:30pm

Text Link Ads

Text Link Ads advantages

Text Link Ads is an advertising network that offers the following advantages:

  • Guaranteed monthly revenue for filled ad slots based on site ranking at the time of advertiser sign-up.
  • Publisher pre-approval of ads appearing on the site.
  • Server-based ad content - no JavaScript required - ad blockers can't block the ads (but there are gotchas - see below.)

We've used Text Link Ads on one of our most popular sites. It worked well, but problems were apparent after a few months. As a result, we removed Text Link Ads from the site a few months ago.read more »

Posted by: Mike on Sun, 11/04/2007 at 9:50pm