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

02 Mar 2013
Install or Uninstall a Windows Service without Installation Packages

Generally windows services are deployed one of two ways.  One way is in an installation package, that will handle the installation for a user.  The service may be one of several parts of an installation package, and the package approach makes the installation easier to maintain.  This method is mostly useful for an unknown number […]

22 Feb 2013
Mimicing an old Dumb-Terminal in a Console, Putty or Powershell Session

For anyone who grew up using a dumb terminal connected to a remote mainframe or minicomputer, or even remembers the days of the monochrome screens on early DOS-based computers, here is a way to make your console screen look like one of those old monochromatic wonders we got rid of a long time ago. You […]

07 Feb 2013
Open DHCP Server

I previously used a Winform app that was a simple DHCP service to assign addresses on a closed LAN network for test servers. It was unreliable, in that it would assign addresses but would never let the lease go beyond 15 minutes or so. I just replaced it with Open DHCP Server. If you are […]

21 Dec 2012
DD-WRT vs Apple… no masquerading

I learned this one the hard way.  After a lot of searching through DD-WRT forums and time with my cable company doing some communication checking, I accidentally confirmed an obscure item I found in the DD-WRT forums . If you have any Apple device on your home network (particularly iPad and Macbook), turn off the […]

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 […]