Small code with powerful results, the occasional opinion … and beer.

03 Oct 2012
Exit Tomato, Enter DD-WRT… and a weird NAT loopback issue.

I recently lost my Buffalo WHR-HP-G54 router which has served me faithfully for years running Tomato firmware.  I had difficulty finding any new router on the market, which had the NAT loopback feature as well as the ability to filter incoming IP addresses for a service port. I found a Rosewill RNX-N300RT router from NewEgg […]

20 Aug 2012
When a loop is not a loop

In an earlier post, I showed how to rethink the traditional MS-SQL CURSOR logic pattern, to minimize the number of maintenance points for FETCH statements (The lost art of break and continue). That post covered the while() { … } loop. Another equally-useful variant is the do { … } while() loop, which also supports the […]

27 Apr 2012
“That’s what THEY said!”

I am a linguist who takes grammar and language use very seriously. This is one of the few times I will stand on my pet-peeve soap box.  What caused this? <rant> It was a blurb of text in a document on the Free Software Foundation’s site.  “…as long as the user is able to authorize […]

27 Mar 2012
Weed Killer

Weed Killer is now available. See the project page here.  This is a maintenance release which corrects an issue with applying NT permissions to folders. Weed Killer is available for download on

16 Mar 2012
SQL Server: reclaiming the bloated modellog.ldf file

I was working on a virtual test server with a very small (7Gb) C: drive, and the monitors were throwing alerts about low disk space. There weren’t any temp files, etc, that could be deleted to quickly free up space.  Tree Size revealed that there was a 3.5Gb file named modellog.ldf, which was clearly bloated […]

13 Mar 2012
Weed Killer (Stable)

Weed Killer is now available. See the project page here.  This is the second stable, production-ready release of the package. Highlights are: Corrected a problem where saving a configuration file, before an active change was accepted or canceled, could corrupt the entry in the file. Added a new ability for an administrator to assign […]

13 Mar 2012
ThreadPooling in .NET 4

I was reading up on (and experimenting with) the new classes introduced for managing the ThreadPool objects in .NET 4, and they are a nice change from previous versions of the framework. One technique I really like is the Task<generic> implementation. I wrote a test piece of code to implement this using a dictionary object, […]

23 Dec 2011
Bulk File Rename v1.0.0.0

Bulk File Rename is a simple windows form application, which allows complex file renaming within a folder, for all or a selected subset of the files. It supports remove, find/replace, prefix, suffix (root or extension), or “insert at” adjustments, and even supports wild cards and character remapping. See the help screen for examples. It works […]

12 Dec 2011
Task Manager: wherefore art thou?

I’ve observed a stange behavior in Windows XP with the Task Manager, which apparently is also rearing its ugly head in Windows 7.  The symptoms appear sometime after a few defaults are changed, and a few reboots and application installations or uninstallations occur– just like in XP. After opening Task Manager, the options menu has […]

21 Sep 2011
The relations between controls and idle states in a Windows Form

I recently wrote a code conversion project, with a simple windows form to review and adjust the results.  It had a list view container on the left to enumerate the scripts, and two text boxes on the right for the selected script in the list: the top for the original script, and the bottom for […]