Geek gift ideas 2016

If you’re looking to buy yourself, I mean someone else some gifts for the upcoming holiday season, here are some items that I’ve found useful or handy around the house. It’s all stuff that I use and would recommend.

KMASHI 400A Peak 14.8V 800mAh Compact Car Jump Starter

It’s around $40. Our cars normally start without issue. Occasionally however, we’ve had a dead battery in an inopportune time or location and needed to call someone for a jump. Now, rather than carrying a giant jump battery in the car, we carry this.

More frequently, I use it to jump start our riding lawn tractor that often has a depleted battery (that I’ve not been able to successfully troubleshoot). I’ve had this for more than a year and used it more than 6 times without any trouble (thankfully, I haven’t needed it more than that). The convenience of it is awesome. It’s so small! Of course, it can also be used as just a USB charger. It charges with an included micro-USB cable.

Tripp Lite 1 Outlet Portable Surge Protector/Suppressor with Timer

Many Li-ion battery chargers for outdoor equipment do not recommend leaving the battery charging at all times. So, I bought this simple single outlet surge protector and timer combination from Tripp Lite.

It costs about $22. I plug a power strip into it and the chargers into the power strip and generally set it to 3 hours if I’ve used the battery powered equipment for very long. At the end of 3 hours, it automatically turns the power off (and to the entire strip) so I don’t need to worry about whether the batteries have charged too long.

Wago 221-413 LEVER-NUTS 3 Conductor Compact Connectors 50 PK

I didn’t know these existed until a year ago. While they’re a luxury item for sure, they make common electrical connections painless (for me at least). I’m sure some of you swear by the old traditional wire-nut. But, after I tried these, I’ll never go back. They make them in a few configurations that are worth looking into.


The price varies depending on what type you buy, but they average between 20 to 50 cents each.

I’ve used a lot of the 2 conductor version.

Bike Peddler Take A Look Cycling Eyeglass Mirror

Almost 1500 reviews on Amazon and nearly an average of 5 stars. These things are great. I’ve had one for 3+ years and if you wear glasses and ride a bike and haven’t liked whatever mirror option you currently use, … I love these. They’re simple and effective.

They’re around $12 usually (and you shouldn’t need to pay more than that).

Planet Bike Blinky “3H” 3-Led Rear Bicycle Light with Self Leveling Helmet Mount

PlanetBike Blinky 3H

Bike safety is very important to me. And it should be for you too. This novel little light attaches securely to the rear of your bike helmet and self levels so that it’s always pointing vertically in a reasonable direction. While you could attach it to your bike, there are better and brighter lights available for your bike that I’d recommend instead. Use this as a secondary bike light. It’s lightweight. I don’t notice its there. It’s about $20.

GMS Optical Premium Grade Comfortable Silicone Anti-slip Holder for Glasses, Ear Hook, Eyeglass Temple Tip

If you have sports glasses (I’ve got a pair of prescription Adidas sports glasses for example), you may have situations where you’d like to have a bit more confidence that your glasses aren’t going to hurtle off your face at some point due to unexpected motion, sweat, etc. I’d tried some of the bands that attach to glasses and found them distracting, especially when riding my bike (either too loose or too tight). These simple and inexpensive (around $6) holders give me the confidence to wear my glasses in situations where I was concerned about them falling off my face.

This was especially true while riding my bicycle. When I was looking down while riding (even for a moment to look at the GPS, etc.), I often had the distinct feeling that my glasses were sliding off my face. On hotter days, this was exacerbated by perspiration. No more! While I wouldn’t be brave (or dumb) enough to think that these would hold my glasses on while riding a loop on a modern roller-coaster, they perform well enough for more typical day-to-day sports. As you’ll see from their ratings, I’m not the only person that likes them.

They’re under $6.

Shacke Hidden Travel Belt Wallet w/ RFID Blocker

When traveling internationally, my wife and I always carry our passports on us while out and about (I know that some people leave them in the hotel room). I’ve tried a few different ways to carry my passport over the years, and this is my current favorite discrete carrying option. It’s lightweight and fits well in the front of one of your legs. Occasionally, you’ll notice it, but it’s not distracting. It’s got room for a few more things, but it’s not intended to carry everything; just stuff you don’t frequently need. I put spare cash, a paper map, and often our ATM card inside. Apparently, there were/are gray wallets of this, but unless you have a gray belt, it will show. By the way, this definitely requires that you wear a belt and is about $16.

Canon PowerShot G7 X Mark II (Black)

I’m sure many of you have decided that your phone takes great pictures and that’s all that you need. Fine. I accept that you’re missing out. OK, seriously. Your smart phone probably does take some great pictures. But, some images just can’t be captured by your smart phone. Occasionally, you’ll be able to walk closer to something you want to capture to emulate “zoom”, but often, you’ll find that the picture you captured isn’t the way you remembered it. This is where a nice point-and-shoot + more camera comes into play. I’ll take pictures when I’m on vacation with both this camera and my smart phone. I’m not going to bore you with a long list of features. That’s available on the web.

Here’s why I bought this model:

  • RAW mode + JPEG
  • Touch screen (tap to take a picture)
  • Size / weight
  • Pop-up flash
  • Good battery life (definitely buy spare batteries though)
  • Good bokeh (for a point-and-shoot)
  • 24-100mm zoom. Means I can take adjust zoom.
  • Can attach to my tripod (or mini-tripod) and my Really Right Stuff equipment
  • Easy to adjust f-stop/aperture, etc.

It’s by no means an inexpensive camera. However, I do not foresee any reason I’ll want or need to replace it any time soon. So, for now, I consider it a long term camera.

I would strongly recommend you buy a backup battery, regardless of the camera you choose. I bought some cheaper replacement batteries, not from Canon. I bought the DSTE NB-13L batteries. I bought 2 for 50% of the price of a Canon OEM battery. I’ll warn you, as does the camera when it detects these the first time, that these are not Canon batteries. You’ll need to acknowledge a warning that they are not Original Canon Batteries. They work fine though and I’ve not noticed any significant difference from the standard Canon batteries. They last a reasonable amount of time. Some combinations of extra batteries include an extra charger. Having lost a charger on my last trip to Finland, I was glad I’d brought a spare along.

Also, so that I could use a quick release plate with my Really Right Stuff tripod ballhead, I bought a quick release L plate from Desmond. (I usually buy from Really Right Stuff, but they didn’t have a great inexpensive option for this camera).

The model I bought fits the camera very well and is easy to attach and remove. It does make flipping the screen around more of a challenge, but I accept that limitation and rarely is it an issue (as I can always remove the L plate quickly).

SUNWAYFOTO Table Top Mini Aluminum Tripod T1A10 Tabletop Sunway

I attach my Really Right Stuff BH-25 Ballhead to this little tripod. It works really well.

It’s about $35 and fits nearly anywhere (from a small bag to a large pocket). I find a spot usually on a table, nature (like a rock), etc., snap the camera to it, and take a few pictures. It’s really handy and I take it on all trips where I take a camera other than my smart phone.

AmazonBasics Thermal Laminator

This $22 laminator is great. I had no idea how useful this would be. We bought it initially to protect a bunch of table-top board game cheat sheets we’d made or copied. We print them out on our inkjet on regular paper and then laminate them in a 3 mil thermal laminating pouch. The laminator takes 4-5 minutes to warm up at first so there’s no instant gratification that comes with it’s use. Once it heats though, you can feed sheets in with nearly wild abandon (there’s no reason to wait between sheets). In addition to the cheat sheets, we’ve protected copies of important travel and legal documents, copies of instructions (often that we want to hang near the equipment like our furnace or water filtration system). I’ve made small signs and placards for various events and even cleaning instructions for a few things around our house. The laminating pouches are often found in 3 and 5 mil. The 5 mil sheets are very thick and we don’t use them nearly as often.

I’ve also found that using our paper trimmer for items smaller than a full page works really well (rather than trying to cut with scissors). We’ve got something like this (although not this exact one as I can’t find the model we have). Just buy something with replacement blades in case they dull.

And, I just blogged about it a week ago, the Ecobee ecobee3 thermostat is also on my list.

Next time, I’ll post about some table top board games I’ve enjoyed recently.

Changing password requirements in Linux Subsystem for Windows (or Bash on Ubuntu on Windows)

While I understand the reasoning, it’s a bit annoying needing to set a secondary password in the Bash on Ubuntu on Windows instance. If you’re on a domain joined computer, or occasionally update your password like you should, there’s a reasonable chance that the password you use for Bash is different than the one you use for general access to your PC. In fact, it’s probably likely.

Since I have a number of Windows boxes I frequently use, I wanted to create a password that while different from machine to machine, would be easy to remember (and not the same from machine to machine). However, the password I’d wanted to use didn’t always meet the default password requirements.

So, here’s what I did. From the Bash prompt, I first tried to change the password to see if my new password met the complexity and length requirements. If your password works, there’s no more to do!

$ passwd


(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
You must choose a longer password

OK. So, I needed to change the requirements. I used the editor nano.

$ cd /etc/pam.d/
$ sudo nano common-password

To save the file, use CTRL+O to write out changes, hit ENTER, then CTRL+X to Exit.

Look for the line:

password        [success=1 default=ignore]    obscure sha512

And replace it with (I removed obscure and added minlen=1):

password        [success=1 default=ignore] sha512 minlen=1

Now, try changing the password again using passwd.

$ passwd
Changing password for aaron.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully


Hopefully I’ll remember to look here the next time I set up Windows and Bash on Ubuntu on Windows (gee, that’s a mouthful!). And more importantly, I won’t encounter this experience again:

$ sudo apt-get update
[sudo] password for aaron:
Sorry, try again.
[sudo] password for aaron:
Sorry, try again.
[sudo] password for aaron:
Sorry, try again.
sudo: 3 incorrect password attempts

Ecobee’s ecobee3 Thermostat

We had 3 Nest thermostats for several years handling our 3 zone home HVAC system.

With no significant innovations since we purchased the first generation, I wanted to try something different (I’d also tried 2 Nest Protects at the same time, and they were awful in our house. False alarms. False. Alarms. And the fact that they weren’t interconnected with the other 6 smoke detectors made the over-all safety of the occupants of the house a bit less certain).

So, more than a year ago, I switched all of our thermostats to The ecobee3 smart thermostat.

One thing that the zone system didn’t do well was handle temperature differentials between various rooms in our house in a single zone. That meant that one room could be cool while another was warm for example. The ecobee3 can work with room sensors.


2016-11-18_19-31-18Using the Follow Me mode, I can configure one zone to average the temperatures between the various sensors. This helps balance the temperature in ways that the Nest could not.

For example, right now, I’m sitting in my Office/den and the sensor reports the room temperature as 68F and occupied (which makes sense as the sensor is sitting in front of me on my desk).


The Follow Me feature really makes the rooms, on average, more comfortable than the Nest.


Each sensor is powered by the common button battery 2032. The batteries are supposed to last quite a while (more than a year), but I’ve had them last only 8 months.

Each thermostat has a page where you can get a quick overview of the specific details for the thermostat (and some of the household settings).


It’s really simple to add a vacation so that the system can, without guesswork, switch to a mode that should save you some money (turning back the heating for example).


There are a number of graphs and charts …, I don’t look at them very often, but they’re there for the curious.


In the example above, which is the System Monitor, the orange line (in the middle) is highlighting the desired temperature in the basement. In the morning, before we use the room we’ve got some exercise equipment in, we like to make sure the temperature is at least 63F. So, there’s a brief window in the schedule where I’ve set the temperature. Then, it resumes back to normal.

As you can see, the line that goes down dramatically is the outside temperature. It was really warm in the morning and now is headed to a much colder, Northern Hemisphere cold wintry direction. Sad smile🙁

I’ve adjusted the temperatures of the floors to closely match our typical patterns and needs:


You can also enable the Smart Home/Away feature:


It says:

If your ecobee detects occupancy during a scheduled Away period, or detects no occupancy during a scheduled Home period, it will automatically override the schedule to maximize comfort and savings.

I’ve got that disabled because in a multi-zone house, it activates the “Home” activity settings, which I often don’t want (mostly because of how we use our house). But, for others, I could totally see it being a useful feature.

Like the nest (and some other smart thermostats), the ecobee3 learns how your HVAC system performs in various weather conditions and will adjust it’s schedule to minimize the amount of time your HVAC needs to run. That translates to: money saved. It also means that if you want the temperature to be a perfect 70F when you get home at 6pm every evening during the winter months, it will be. The furnace will have generally run the minimum amount of time necessary. You don’t need to program a “dumb” thermostat like model where you program 70F at 4:30pm and then hope that by 6pm the house will be warmed to where you want it.


Other nice features:

  • You can use Apple HomeKit to control the thermostat, or the Amazon Echo (Alexa!).
  • It has the current weather available a single tap away.
  • The mobile app is the web app basically (but within a native app shell). So, it looks and behaves like the web version.

The few times I’ve needed a little support (like one of the sensors started to report it was “missing” frequently), ecobee responded very quickly to my support request. It was very “human” and I felt like someone on the other end actually cared. In the case of the misbehaving sensor, they sent me a new one at no-charge.

Here are the few features I’d like to see:

  • A slightly less sensitive way of manually adjusting the temperature. I don’t do it frequently, but when I do, I sometimes have trouble getting the temperature I want.
  • A nice looking wall plate to cover the space left by the traditional programmable thermostat these replaced.
  • The web app asks me to sign in way too frequently. Seriously. Remember Me should actually Remember me.

Overall, I’d recommend the ecobee3 over the Nest, especially if you want a better balanced temperature in your house rather than just the temperature at the thermostat’s location.

Tree walking and display console app in Go

I hadn’t done anything at all interesting in Go. And some might say, I still haven’t. However, I wanted to do something that I’d find occasionally useful.

On Linux, this is already available, but the the Windows version is lacking. I wanted a tiny console app that would display a tree of the directory and file structure.

So, that’s what I built. Smile

It’s one small file with one external library dependency.

I did notice that the Go packages for directory scanning like ReadDir suffer from a common issue when using the traditional Win32 APIs: they do not adequately handle file paths longer than about 250 characters. When you have NodeJS source code on your system with lots of deeply nested paths, many Windows programs fail miserably when doing file/folder management operations (Windows Explorer, I’m looking at YOU). Using the one “easy” trick of prepending the path with \\?\, you can use the APIs like ReadDir reasonably reliably. Whereas in earlier versions of my tree app it would crash, it now can handle deeply nested directory structures.


go get

Customize the External VS Code Console

I have Visual Studio 2015 installed and when I launch a command prompt on Windows, it’s generally the Visual Studio 2015 Developer Command prompt (in fact, I have it pinned to my Windows 10 task bar).


On Windows, using Visual Studio Code 1.7+, pressing SHIFT+CTRL+C opens a Windows Command prompt from the root directory of your opened folder. It’s super useful.

I wanted the Developer Command prompt to open instead of a standard command prompt.

To change that, open the User Settings:


Add the following:

"terminal.external.windowsExec": "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Common7\\Tools\\VsDevCmd.bat"

Of course, you can use other batch or command files to customize the prompt. I just wanted all of the standard developer tools I have installed to be available.