Personal Computing

The Moocher Builds a New Server

Last week, I took the plunge and ordered bits and pieces to make a new FreeBSD based FreeNAS file server. This server consolidates Plex, my iTunes library, and Time Machine backups on a new ZFS ZRAID2 volume. I made this move for several reasons.

  • I was double maintaining my media library, once in iTunes and again to update the Shield TV external disk
  • My Drobo directly attached storage is about 10 years old. It had FireWire and USB2 interfaces and no network interface making it unfriendly to modern computers without these interfaces.

After a lot of review of the usual suspects in the market place, I was unconvinced that they were sufficiently robust to prevent bit rot. Most were built on Linux, Linux software RAID, ant the EXT4 file system. NetGear Ready NAS uses Linux with the BTRFS making it a bit more robust but was not comfortable with a Netgear solution as it I was unsure if the entire product line used BTRFS or if current products were a mix of BTRFS and EXT4. I also wanted the freedom to run other applications such as audio recording in the future, something an appliance would probably not allow.

This article describes the component selection, commissioning, and software configuration. The references give the detailed procedures used and these procedures were correct and complete. The only disappointment was that UniFi NVR does not play on FreeBSD and I elected not to install a supported OS in a jail. Ubiquity distributes the packages directly rather than through the normal distribution work flows and services. At this point, they are a year behind the community and have yet to release a Win 10 version.

In a future article, I’ll describe how I use ZFS snapshots to give some protection against user filesystem encryption malware.

Personal Computing

New WiFi for Chaos Manor

Apple has left the home WiFi market. Airport Express and Airport Extreme products are discontinued and the work group that was maintaining the device firmware was dispersed to other Apple work groups. One of the attractions of Apple Airport is that Apple announced device firmware updates in the same way as other software updates. The App Store applied the update and life was good. I had been spoiled since I bought my first Airport Express back in 2002 or 2003.

Revision history

  1. Revised to describe IPV6 configuration. It appears auto does not configure IPV6.
  2. Added references.
Personal Computing

Network Attached Storage

The Moocher operated his home network with host attached storage for a number of years. Two Drobo storage arrays provide storage for media and serve as a Time Machine spool volume. These machines have served well but are running into age-related limitations. It is time to consider replacing them in the near future.

IXsystems FreeNAS-mini storage array

Revision History

  1. 12/28/2016: Add references, revise summary of commercial products, revise home-brew discussion to reflect actual costs after actually adding them up.
Personal Computing

A new computer, is it time?

The Moocher’s 2009 Mac Mini is too old to run Sierra but is it time for a new computer? It is still doing the jobs I use it to do well so just when is it time to trade? In this article, I’m going to offer my current take on trading.

Audio Personal Computing

nVidia Shield TV First Impressions

A few days ago, I wrote about setting up an nVidia Sheild TV set top box and configuring Plex Media Server on it. Now that I’ve had a chance to live with it for a few days, I thought it would be appropriate to share my first impressions of this piece of kit.

Left to right: game controller, media player remote control, pedestal and computer.
nVidia Sheild Android TV Components

Why nVidia Shield?

  • It runs Plex Server! It’s that simple.
  • And it is the most expansive walled garden.
  • And it is hackable with nVidia folk spilling the beans on the nVidia Shield developer forums
  • It is cheap enough to buy one to experiment on.
  • It is capable enough to use for other appliance tasks about the Moocher’s cave.
Audio Personal Computing Video

New Kid On the Block

For some time I’ve been wanting to move media serving off of my Mac Mini because the design of the available servers requires the machine to be running and logged in which vastly increases its attack surface. I’d been looking for a number of alternatives, particularly one that was energy efficient, had a low footprint, and would be doing what it was designed to do. nVidia came to the rescue about a year ago with nVidia Shield TV, an Android TV. So I’ve allowed the Android camel into my tent.


  1. retrieved 2 December 2017.

Before you buy

Do two things. First, read the fine manual at [1]. Go through the FAQS at [2]. I didn’t include any video links as most are long on talk and low on information density. The links above will take you to the setup screens so you can review them.

You will need internet service. Shield has both WiFi and Ethernet interfaces built in. Both work well. If you have Ethernet available in your media cabinet, wired service works well. Shield just knows what to do. A wired interface speeds firmware updates. WiFi is adequate for media playback.

What’s in the box?

nVidia Shield TV System Components

The base kit consists of a game controller (left) and the Shield machine (right but just the fin part). The nice aluminum base and the nice aluminum Android TV remote are optional extras. The kit also includes a power adapter, HDMI cable, and USB cable for recharging controllers and remotes. And there is a quick start guide and all the warranty and compliance statements.

Personal Computing

Oh no, Mr. Bill

Yesterday while I was writing my holiday letter, I was also sorting out, or trying to sort out a Win 10 virtual machine that went wobbly. The symptoms were that it was very slow, the start menu had gone missing, Edge had gone missing, etc.

The Moocher uses Win 10 to run ESplanner, a financial planning tool that evaluates your assets and recommends future spending to maintain purchasing power and stretch assets until estate time. This program is currently Windows only and is not friendly in Linux Wine and other simulated environments. Most MacOS users run a copy of Windows in a Parallels virtual machine.

Why Parallels and not Virtual Box

In the past, the Moocher has attempted to run Windows guests in Linux hosted Virtual Box environments. These mostly worked but JSAF development would typically eat the machine with topography database, computation, and network traffic. Virtual Box worked and the price was Navy approved.

But it was not well integrated with the OS. Parallels is. In addition to providing a virtual machine environment, Parallels provides file sharing, cut and paste between environments, and allows MacOS apps to work with Windows documents. The experience is pretty seamless and Parallels carefully designs the VM to integrate with MacOS in a way that keeps Windows in its jail. The only real difficulties I’ve incurred are in doing keyboard spells to cause Windows to start in safe mode, etc. This is not a VM launch option and hand keying of the spell is difficult.

Personal Computing Photography

Adobe CC Lightroom with iTHings


Those of you who follow me on Facebook and Twitter know that I take a lot of snapshots with my iPhone or iPad and that some of them actually look good. The tools I use with my phone are Apple Photos for quick hacks and Adobe Lightroom CC for more thoughtful work. One problem with this arrangement was that I had to manually manage two photo archives, one in Photos and one in Lightroom. Recently, I learned how to get my Lightroom environment to behave like an Apple Photos environment. That’s what this article is about.


This article is summarizes information from two references that I used to get my environment initialized. Reference 1 gives much more detailed descriptions of the process than this CLiff’s Note does.

  1., Photos Everywhere with Lightroom CC and Apple Photos, retrieved 10/25/2016.
  2., How to get started with Lightroom Mobile, retrieved 10/25/2016.
  3., How to Edit and Organize Photos Mobile to Desktop, retrieved 10/25/2016.

What you need

In writing this article, I have the following kit. Other phones and cameras capable of running Lightroom Mobile work equally well.

  • An Adobe Creative Cloud photography subscription for $10/month
  • An Apple iPhone 6+
  • An Apple iPad Pro 13 inch
  • Adobe Lightroom mobile on both.

It is also a good idea to install Camera Raw, especially if you have a real camera (one you look through to compose images). And now for iPhone and iPad which make Apple raw format available.

The next two sections describe some configuration preliminaries in Lightroom and Lightroom Mobile. The secret sauce is to subscribe to Creative Cloud and log the devices in. Then create a CC collection for each device that will automatically receive new photos taken by the device’s camera. This happens in the camera itself and is independent of the GUI used to operate the camera. Photos taken with either the Apple Camera UI and the Lightroom Mobile camera UI will be queued and saved to Creative Cloud.

Setting up Lightroom Creative Cloud

I have a monthly subscription to Photoshop Creative Cloud. This subscription allows me to use Photoshop and Photoshop Lightroom, and Creative Cloud. Creative Cloud is Adobe’s network storage environment that allows devices to share a library of image assets across hardware platforms. The basic subscription includes enough storage to get started. As your collection grows, you can add more storage.

Once you have purchased your subscription, follow Adobe’s instructions for installing Photoshop Lightroom. Go to the preferences menu and enable Lightroom Mobile.

Setting up Lightroom Mobile

Install Lightroom Mobile on your phone or table using the platform preferred source: for Apple iThings, the App Store and for Android things, the Google Play store. Android people, remember that it is a dangerous world out there, Play Store only.

Once through the initial screens you will enable creative cloud.

  1. Tap the LR logo to bring up the dialog
  2. Set Sync only over WiFi as you desire (recommended)
  3. Set Auto Add Photos to on
  4. Set Auto Add Videos to on
  5. Set Collect Usage Data as you desire

Once these settings have been made, create an auto add collection for the device.

  1. Open the organize view
  2. Tap + to open the Create Collection dialog
  3. Create and name a collection.
  4. Once the collection is present, tap the collection’s … icon to open its settings form
  5. Enable auto add

Work Flow

My two collections are  iPhone photos and iPad photos. Both collections appear in Lightroom Mobile on my iPhone and my iPad and in desktop Lightroom CC. Lightroom CC groups them under Collection From Lr Mobile.

  1. Take photos with the Apple camera
  2. Open Lr Mobile and let it sit. It will import new photos from the camera roll and push them to your CC account.
  3. Open Lr and let it sit. After a bit, it will sync with your CC account.
  4. Edit your new work in the normal Lightroom CC way.
  5. After a bit, your edited images will appear on your devices.

Creative Cloud App

Adobe Creative Cloud also includes a manager program that provides the following services.

  • Checks for and alerts you to updates
  • Shows which programs your subscription allows you to use
  • Lets you monitor your storage usage
  • Lets you maintain your CC credentials.

Adobe has designed CC app to launch at log in and periodically do its checks. It has a status bar widget that lets you wake it from standby to install updates or download additional products from your entitlement when you find a need for them or to try additional Creative Cloud products. The trial collection gives you access to all of the video and still image tools, prepress tools, and web tools.

The Catch

The $10/month plan entitles you to 2 GB of online storage. Reference 1 explains how the 2 GB is used as follows

Adobe’s Creative Cloud includes just 2 GB of storage with the Photography plan for $9.99 per month, but there’s a twist: that 2 GB is dedicated to storing files in Creative Cloud that are shared with other CC applications. Photos you sync via Lightroom mobile do not count against your CC storage allotment, because they’re stored as much smaller DNG files and therefore don’t take up as much space; I’m guessing the amount is negligible to Adobe. However, keep in mind that you need to pay for a Creative Cloud subscription simply to use Lightroom mobile in the first place.

Personal Computing

A kind word for Microsoft

As you know, I’m a Mac, not a PC but recently, an Ars article about Microsoft Visual Studio Code caught my eye. I dropped by the Visual Studio Code website and downloaded a copy. Much to my amazement, I like it.

My work mates know that Emacs is my idea of an integrated development environment. But Mac Emacs ports are clunky. You either have to bring over all the MacPorts goodness or do with one of several adaptations of Emacs to the Mac Aqua UI toolkit. Making the switch between Linux genuine Emacs and Mac Emacs never worked for me.

Every time I tried to get started with Xcode, it was always too much trouble for some quick scripting or most anything else. Xcode really wanted to make Mac OS or IOS graphical applications in the genuine Mac way. Anything else was just too hard to figure out

So I was pleased to see that there was an alternative IDE that was not heavyweight like Xcode or Eclipse (Java — exploit rich Java). So I downloaded Visual Studio Code to give it a try.

Why would a moocher want VS Code?

I’m ODU Institute for Learning in Retirement (a Tidewater VA senior’s club) communications and technology committee chairman. Steady growth of the club over 25 years has forced us to replace our legacy single user office automation (Access homebrew DB app) with a multi-user online professional service.

In making this switch, we have to import 600+ member records from our legacy system into our objective system. The mechanism for doing this is to transfer the data to a MS Excel workbook that our vendor will subject to some script foo to cause our data to appear in our corner of his system.

The easiest way to do the transfer was to create a view containing the records we needed to move, sort the view to make record addition easy, and export the view to a CSV file that we could open in Excel. The trick was that the new system had accounts with contacts, field names changed, some fields like phone numbers had to be correctly formatted and the area code added, etc. So somebody needed to write a record swabbing script. That somebody was the CTC chair since staff couldn’t do it and I was the only programmer volunteer in the club.

Initial Experiences

VS Code downloaded without fuss and runs without fuss. It appears identical in both Windows 10 and Mac OS X. My time is in Mac OS X since I have the Xcode environment in place, git is there, python 2.7 is there and everything is ready to go.

In the past, IDE’s have been too heavy weight to use in a project of this nature. I’d always made do with Emacs, GDB, and Make. This is the first time I’ve successfully used an IDE for a simple scripting project. It’s also my first Mac Python project but the experience is very much like working with the language n Linux Emacs using PDB in an Emacs shell window. Very comfortable to old moochers.

Getting Started on a New Project

Most reviews, tutorials, etc assume that you will be checking out from an existing repository, making a task branch, making some mods, testing, and merging your task branch back into the sprint branch. I was starting with blank disk space so a little preliminary spell-casting was needed.

  1. Create the project directory
  2. Create a git repository root in the project directory
  3. Start VS code and open the repository root
  4. Add your code file
  5. Add code
  6. Test, edit, test, until you feel you have something worth committing.
  7. Commit.
  8. Resume work.

Language Support

VS Code requires  extensions to become smart about the language (syntax coloring, library functions, compilers and interpreters, running, debuggers and debugging, etc. A built in view makes it easy to locate the modules you need and load them. MS offers a number of contributed Python environments. Each has a peer rating, description, capabilities description etc. It is generally pretty easy to pick the extensions you need. If you are working in a Mac OS compiled environment, you’ll need a debugger interface for either GDB or the LLVM debugger in addition to the language extensions.

Once you’ve loaded all of the needed extensions, restarting VS Code makes them available.

Running Python

So far, I’ve done all my running in the debugger. One oversight of the Python module is that it does not provide a natural way of passing start options to a program. Instead, one creates a running environment by writing some JSON code in a specified format. If you’re not JSON literate, what’s needed is not intuitive. I ended up hard coding the input and output file names in main() to avoid the need to mess with this environment file.

The Visual Debugger

The visual debugger is typical of the breed. It has a code pane, a shell output pane, and to the left, panes for the call stack, watchpoints, active local variables, and function parameters. These last two show the current values of the data passed in the call frame and the locals in the current stack frame. Expanders open structured values to allow inspection of structure members or class attributes.

The code window shows where execution stopped. The left margin has line hot spots used to insert breakpoints. When stopped, mouse hover over a local causes the value to appear in a popup overlay. A button bar at the top of the debugging pane contains a left run button for starting the build/run cycle. A second run button starts execution. Additional buttons step into, step out of, and step to next line. A pause button stops a long running program. A stop button terminates the run. All pretty standard stuff. Button icons are clear but tool tips back up the glyphs on the buttons.

Build Model

I’m not clear on the build model. I believe adding a code file adds it to the build. My only experience so far is with 300 lines of Python in a single file.

Source Code Control

VS Code provides a git view that shows the source directory structure, each file in the directory (as filtered by .gitignore), and the clean/dirty status of the file. A badge shows the number of dirty files in the directory. Controls let you add and remove files from the commit list and make the commit. A text pane provides a place for the check in message. I’ve not had to revert to a prior version so I can’t comment on the tools for doing so. If a file has not been commited, it can easily be reverted to the most recent commit. I’ve yet to have to revert a committed change.


Personal Computing


For some years, Ive been looking for an alternative Email client for the Apple Universe. I’ve finally found one I like. Most alternative clients worked only with Gmail. This one works with iCloud, Yahoo, Microsoft, and other popular mail services that support POP, IMAP, or ActiveSync.


I bought the program for the princely sum of $10 on the App Store. It launched and configured without issue.

I have 2 step authentication enabled on most accounts so I had to do the following extra stuff.

  • Create an iCloud App Password
  • Do Apple 2 step authentication
  • Do Google 2 step authentication
  • Add the first account at startup
  • Add the additional accounts from Preferences (like Apple Mail)

This took a little fumbling around but Google found the appropriate instructions at Apple Support quickly and all worked as advertised.

Reading Mail

Once my accounts were set up, I could read my mail in a unified inbox or check each account inbox. Articles can be archived, deleted, snoozed, starred, etc. I never really warmed to the Google Inbox idea of using an AI to sort Email into the those likely needing action, those that were informational, and those that were adverts, etc.

The reader interface is modern, easy to figure out after using the traditional Apple and Gmail interfaces, and it was easy to review and clear new mail.

The program silently imported my Apple Contacts, Apple Calendar, and Apple mail archive. Everything was there and indexed. Many products ignored the existing mail archive and started a new one. It is a pleasure to see that Airmail uses the existing MacOS mail archive.

Writing A Message

The Airmail composer is a joy to use compared to Apple Mail compose window. In Apple mail, I always disliked the start as plain, switch to html, and difficulty with bold, italic, and lists, particularly terminating a list. Airmail’s composer has solved all these issues.