Bad Account Management

I have been getting my hair buzzed at various Rudys Barbershops around seattle for the past few years. They’ve had a web site that visitors can log into to make appointments.

It looks like they’ve updated the engine since I last logged in, and it’s not recognizing the password that I am pretty sure I last used. They have a password recovery link.


Well that’s not useful at all is it? How do you use email address as a unique key for the account and have multiple entries?


Public Art in Ballard

Last fall there was some art in the Ballard park that I found interesting. I mainly found it interesting because at first I didn’t notice it was art at all, just thought it was some safety signs.  Each reflective metal sign was affixed to a light post in the park, with a zip tied laminated paper description below. They were not all together.

SD Card Holder

I’d been traveling with several microSD cards for both GoPro and Drone usage for the past year when I finally got around to buying this inexpensive plastic card to organize them.


Before buying it, I had read several reviews, and worried that cheap plastic might either make it brittle, or let the flash cards fall out of the enclosure. For $6.95 it was worth a try.

What I really found out was that I should have been using it for at least a year before I got it. The fact that I can carry 10 micro SD cards and they are all in order is a complete boon for organization.

20170922_185055016_iOSBefore using this, I’d often have two identical looking SD cards in my hands and forget which one was full and which one was empty. I’d also take a card out of my device and set it down, and nearly lose it.  Now I take a card out of my camera and immediately put it into this holder. I fill this holder from one end with empty cards and from the other with full cards and never have to remember which cards have something on them any more.

It’s essentially the same size as a credit card, but is quite a bit thicker. I wouldn’t carry it in my wallet, nor would I use the hole for a key ring, but having it in a pocket in my drone bag keeps all the memory cards in one place in a known order.


VLAN Tagging for CenturyLink

I’ve dealt with CenturyLink provided WiFi access points in two locations I’ve lived recently, and not been happy with their performance. My 5 year old Netgear WNDR3800 seemed to provide better speed with both 5GHz and 2.4GHz than the Actiontec C1900A provided by CenturyLink, which only supported 2.4GHz.

Unfortunately it was not as simple as learning the PPoE credentials that the Actiontec was using and putting those details into the Netgear. Centurylink in their infinite wisdom decided that the network packets need to be tagged to run on VLAN 201.

One solution would be to go out and buy a new WiFi router that supports VLAN Tagging. The newer Netgear Nighthawk routers support tagging, following the details at this support page.

The Netgear AC1900 router (also referred to as R7000) would do what I want, but would also cost close to $150.

Instead I spent $33 on a Netgear GS105Ev2 switch and spent a little time configuring its VLANs and am mostly happy with the result. My only disappointment is that this switch doesn’t seem to support SNMP for traffic monitoring.


I have this configured so that Port1 connects to the Centurylink Fiber Termination Box, Port2 connects to my WNDR3800 WAN Port, and Port3 is connected to one of the LAN ports on the WNDR3800.

Port1 is configured to send Tagged Packets on VLAN 201.
Port2 is configured to send Untagged Packets on VLAN 201.
Ports 3-5 are configured to sent Untagged Packets on VLAN 1, the default for this switch.

The steps to get this working, starting with existing setup of Actiontec connected to Fiber Termination box.

  1. Connect GS105Ev2 Port3 to available LAN port on Actiontec and make sure link connection LEDs appear.
  2. Find what IP address the GS105Ev2 acquired on local network using a network scanning tool. I used  NirSoft Wireless Network Watcher and found that my switch was on Going to gave me a login to the new switch with the default password of “password”. gs105ev2-login
  3. You should get a switch information page similar to this.gs105ev2-login-successful
  4. Select the menu item VLAN, then 802.1Q and the radio button Enable. You should get a warning message that it’s about to erase all current VLAN settings. Hit OK.gs105ev2-vlan1
  5. Go under Advanced, VLAN Configuration, there’s a text box on the right that says VLAN ID. Enter 201 and push the Add button above it. gs105ev2-vlan2Now we have a new VLAN with no Port Members assigned.gs105ev2-vlan3
  6. Go to Port PVID on the left menu. Select Port 1. Type 201 in the text box. Hit Apply.gs105ev2-vlan4Select Port 2. Type 201. Hit Apply.gs105ev2-vlan5
  7. Now we go to the VLAN Membership setting. With the VLAN ID dropdown showing 1, click Port 1 and Port 2 through the available options until neither T nor U is showing, leaving Ports 3, 4, and 5 showing U. Then click Apply.gs105ev2-vlan6
  8. Now drop down to select VLAN 201. Click so that Port 1 is T, Port 2 is U, Ports 3, 4, and 5 are blank, and Apply.gs105ev2-vlan7
  9. If you look at the VLAN Configuration, you’ll now see that ports 1 and 2 are assigned to 201, while 3, 4, and 5 are assigned to 1.gs105ev2-vlan8
  10. At this point the GS105Ev2 has been configured as much as it needs to be. I had already configured my WNDR3800 to connect to the ISP using PPoE and given it the correct credentials.
  11. Power off Actiontec and put it in a closet. Connect Fiber Termination device to port 1 on GS105Ev2. Connect WNDR3800 WAN to port 2 on GS105Ev2. Optionally connect port 3 on GS105Ev2 to a lan port on WNDR3800, as it will only gain you one extra gigabit port compared to the four built into the WNDR3800.

Thanks to this post for the same information that I’ve presented here. I’d attempted to do this before with an existing GS108Tv2 switch I had sitting around. What I’d forgotten to do was make the port going to the WNDR3800 send Untagged packets. I’d been properly sending tagged packets to the fiber, but the WNDR3800 didn’t know what to do with the tagged packets. After confirming it worked with the GS108Tv2 I ordered the cheaper 5 port switch just to have something else to play with. My only disappointment with the 5 port switch is that it doesn’t seem to support SNMP to monitor the traffic going over the network.


Odd Wildcard Matching in Windows 10

I recently ran into an odd behavior of more files matching a pattern than I expected. I’d used exiftool to modify the dates on files my GoPro produced. It creates backup files of the original images when it modifies the tags. Here’s the command I ran.

exiftool.exe -r "-AllDates+=4:7:6 17:40:00" -ext jpg f:\GoPro\20170807

Now I had about 4000 files with the .JPG extension and another 4000 files with a .JPG_original extension.

I ran my program that parses the directory structure and turns all those images into a time lapse movie, and it seemed to be including both the file extensions, making a very disjointed movie.

I loaded my source code in the debugger and it seemed to be doing a findfirst / findnext specifically looking for .JPG files, and not some other extension, but it was definitely retrieving files both with .JPG and .JPG_original extensions.

I then ran a couple of commands at the windows command prompt and was surprised to find the same results there.

dir F:\GoPro\20170807\372GOPRO\G*.JPG /p
dir F:\GoPro\20170807\372GOPRO\G???????.JPG /p

Each command returned both the JPG and JPG_original files.

dir F:\GoPro\20170807\372GOPRO\G*.JPG_original /p

returned just the JPG_original files.

dir F:\GoPro\20170807\372GOPRO\G??????.JPG /p

had one less question mark and correctly returned no files.

This is all unexpected behavior, though I’m glad to see that it was consistent with the operating system and not something specific to the C runtime. I’d love an explanation of what’s going on.


exiftool to manage DJI media files

DJI Drones don’t seem to remember the image count between formats of a media card. This creates a problem for me when I’m trying to backup and maintain my images and video.

Because the dates are all correct in the media files, retrieved from GPS data, organizing the files by naming them based on the date works for me.

Using ExifTool by Phil Harvey is a great solution for pulling the metadata from the files and renaming the files.

The command line that I was initially using is:

exiftool "-FileName<${CreateDate}.$filetype" -d %Y%m%d-%H%M%S%%-c -ext mp4 -ext dng -ext jpg dji*

It’s problem is that it orphans the SRT subtitle files from my videos that I’d like to keep matching the video files.

I’ve tried this variation to do it in one step but it doesn’t work, because the SRT files get renamed as MP4 files.

exiftool -verbose "-FileName<${CreateDate}" -d %Y%m%d-%H%M%S%%-c.%%le -ext mp4 -ext dng -ext jpg dji* -srcfile

If anyone has a suggestion for how to rename all the media files in one directory I’d appreciate it. Even running two commands in sequence would be fine.


I’ve figured out that running these two commands in sequence will get me the results I am looking for:

exiftool "-FileName<${CreateDate}" -d -ext mp4 -srcfile dji*
exiftool "-FileName<${CreateDate}" -d %Y%m%d-%H%M%S%%-c.%%le -ext mp4 -ext dng -ext jpg dji*

I’m still looking for a way of doing it in a single command that may leave less room for error, but this is working for now.


Being a responsible drone pilot

I try to be a responsible drone pilot. I use the FAA B4UFly App on a regular basis to see what it has to say about locations that I’m interested in flying. Unfortunately, it lists every uncontrolled heliport as an airport and reports “Action Required” so often as to be nearly useless.

Yesterday I was sitting on the beach at Golden Gardens Park in Seattle, watching sailboats race offshore. I thought it would be good to check to see what the app would show. I was sitting at sea level, with a hill near me that would be at least 200 feet high. The rules for drones say that you are not allowed to fly over 400 feet above the surface without permission from the controlling authority. Aircraft are not allowed to fly below 700 feet without similar permission.


Golden Gardens is located about where the “E” in KENMORE sits on the map above. It’s under the Class B Airspace that starts at 3,000 feet, going up to 10,000 feet.

While understanding VFR charts  may be more than the average drone pilot should be expected to recognize, especially for a dense area like Seattle, the B4UFly App’s tendency to show warnings is similar to the boy who cried wolf. It’s impossible to recognize when an action is really appropriate.