Skip to main content

Nero Essentials: DRM gone bad.

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.

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?

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.

Programmer Fonts

Here's a great page with a roundup of programmer fonts: ( seems to be down at the moment, so here's an archived version courtesy of

Other resources

Consolas (Microsoft)

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.

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.


ADSDAQ ( is an interesting advertising program that can be used in conjunction with your other advertising programs.

Key Features

  • You specify the minimum CPM (cost per thousand)
  • You provide alternate ads to be run when ADSDAQ cannot meet your specified minimum CPM. This allows you to set a minimum price for the ADSDAQ network.

I am in the process of trying this program on some sites. I'll report progress here soon.

The 'Real' DJIA - not such a hot deal

What do you get if you adjust the DJIA for inflation, starting in January 1924? According to several sources, the rate of growth is a paltry 1.64% compounded annually when you take into account the 'official' inflation rate, and it's even worse if you consider the probability that inflation is underreported.

An unmatched pair

I heard a couple of back-to-back radio ads this morning. One was the predictable Christmas commercial, prepping everyone for a mad holiday spending season. Ok, nothing unusual there.

The one that followed made me laugh: advertising that they now have many more women than men on their service. Something about a record imbalance (my words.)

So I thought to myself: should work a deal with to help eliminate their excess inventory!

2007-2008 Times Square Ball features bright, efficient L.E.D.s

Times Square Ball 2008

Today's announcement of the L.E.D.-lit 100th Anniversary Times Square Ball on Good Morning, America was interesting - from what I've seen, the new ball is a major technological leap forward and will be a real stunner, and more energy efficient too! It's over twice as bright as previous ones, and yet uses half as much power. It can even play videos and animated sequences. You can even buy a Waterford ornament modeled after the real thing.

It's built on an aluminum frame, and will be covered with Waterford crystals.

Syndicate content