Hiding dot-folders on Windows

This is such a good tip that I better save it right here for future use. To hide all the Linux-like dot folders (folders with names starting with a period, or full stop), open Command Prompt and run: ATTRIB +H /s /d C:\.* This will fix all the current folders, but any new ones generated later will not be hidden. You'll have to re-run this script (maybe automated as a Windows Scheduled Task?).

Python's Sendmail fails due to access permissions

A script that ran happily for about a year suddenly stopped working last week. From the stack trace, it was apparent that the script was stumbling on Python's smtplib>sendmail command. Here's the error: OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions The offending code: s = smtplib.SMTP(config['smtpserver']['server']) s.sendmail(fromAddress, toAddress, msg.as_string()) The best suggestion I found is that Windows UAC is likely preventing the successful sendmail[^1].

A simple Bitcoin price tracker with Python

This script tracks of Bitcoin's current USD price and displays it along with the price's "trend" since the script started running. The main part of the idea was borrowed heavily from this Stack Exchange article. It takes advantage of the coindesk API for getting current price information. Sure, it's not a fancy line graph, but it's got ASCII-art up/down arrows!

Toggling a Network Adapter with Python 3

if you frequently have to toggle between two network adapters in Windows, it can become a hassle to keep opening the Control Panel widget, right-click, disable/enable adapter, etc. For example, you may want to turn off your wired connection and connect to wifi, then switch back to wired, etc. With Python and this 'admin' library (also attached to this post for download), you can just place a shortcut on the desktop and double-click to enable/disable a particular adapter.

Collecting new document files for easy attachment in email

I find that I frequently (many times daily) have to send files as email attachments. Depending on the task, the files can be located in a half-dozen or so places on the Windows file system. I found myself browsing (from Outlook's "Attach File" function) to my Documents, Downloads, Desktop, or one of several network drives for the file I just saved there a few seconds ago. I had the idea that those folders could all be monitored, with copies of the most recent files from each kept in a single place.

Change pip package dependency lists and install from local source with Python 3.6

When installing a Python 3 package with Pip, if the package to be installed calls for a dependency that is outdated or otherwise not available, you can get a local copy of the module, change its dependency lists, then install it from the local source. This will likely be no big deal for the Python wizards out there, but it was a pretty nice victory for me, so I thought I'd better share in case someone else has the same trouble.


Properly configuring and using Drupal's views_data_export module

In a Drupal view, I have a button in place that allows the user to export the current view to an Excel (XLS) download (utilizing viewsdataexport module functionality). That download is expected to be around 3,500 rows, with 39 columns. I just noticed that trying to hit that button for the download results in (almost exactly 30 seconds later) an error I hadn't seen before: "Server Hangup". I also noticed the apache2 process, while that export was spinning up, was occupying 100% of the CPU.

Upgrading from PHP 5.5 to PHP 7.1.1 on Windows IIS Server

I recently had to upgrade a Windows IIS Server running PHP 5.5 to PHP 7.1.1. I ran across this excellent blog post which got me 99% of the way through the process. Some things I had to do additionally/differently: Because mine was an upgrade, and not a fresh installation of PHP, I had to remove old "Handler Mappings" that tried to point to the old PHP5.3 directory/executable. I had to do this (remove old PHP mapptings) a second time, on the individual 'site' in the IIS Manager on the server. It wasn't enough to to it at the IIS Server level.


I've found this tool to be very powerful and helpful...and I almost couldn't find it again after recently upgrading to a new computer. To prevent future heartburn, I'll document it here. From the csvkit web site: csvkit is a suite of command-line tools for converting to and working with CSV, the king of tabular file formats.

AHK - Autoload multiple scripts with separate autoexec and timer hooks

This post outlines a method I came up with to use a single AutoHotKey script to auto-load any number of scripts in a sub-folder. It also allows every script to have its own autoexec section, and to hook into a timer for event-type functionality. AutoHotKey scripts that are 'persistent' need to be loaded into memory by Windows just one time. If you have several of them to load, you can get them all individually, but you end up with a system tray full of little green 'H' icons.

Organizing Windows on the Desktop and Connecting to Network Drives with AutoHotKey

AutoHotKey is a powerful Windows automation tool, capable of doing pretty much anything you could do yourself on your PC. I have a number of scripts I run regularly (or always have running) to speed up my work and/or make it more accurate and efficient. One of my favorite scripts responds to the key combination of Ctrl-Alt-0 (that's a zero). When I press that combo, a couple things happen: 1) First, the script checks to see if the machine is connected to WiFi, and if so, grabs the name of the WiFi's SSID.

Sending Email to Outlook Groups from a Mobile Device

I haven't found a way to make my email 'groups' from Outlook available on a mobile device (Android phone). I've tried several email clients, but none of them brings in the groups I use frequently in Outlook. Recently, I came up with a workaround, using Outlook rules. Essentially, I can set up a rule with the following criteria: Sent from my account Sent to my account I almost never send mail to myself, so this works.

Mapping Network Drives at Multiple Locations

Background Network drives allow multiple users on the same network to have acccess to the shared folders/files. However, if you have two different sets of network drives (at work and at home, for example), it can be a hassle to manually map drives when your computer 'resumes' on the new network. For example, if I'm at work, all my network drives are available. When I go home and connect to the local network, my work network drives disappear (that's fine, they're not available anyway) but my home network drives don't automatically map. The same is true when going from 'home' back to 'work'.

Building a barn door for a closet

As part of a major kitchen remodel project, we moved the old laundry room up to a 2nd floor closet. With the washer and dryer occupying about a third of the old closet space, we needed an elegant solution to cover the rest of the old closet door space. We settled on a rustic barn door option. We already had a little experience with distressing new boards to make them look old (from the remodeled kitchen ceiling), so we decided to use that same method on the door. Process I built the door frame using 1x4 select pine boards.


Fixing an Error in the Notepad++ Plugin Manager

Notepad++ is a powerful text editor; so much more than a Windows Notepad replacement, and (for me at least) often better for 'real' word processing than Microsoft Word, when coupled with language tools (like Markdown) and plugins. One of the powerful features in Notepad++ is the Plugin Manager, which provides an easy check-box menu system to install a wide array of plugins that enhance the program. This way, you don't have to mess around with finding and downloading add-ons - it's easy to get them right from the application.