CD rippers


The CD player in my car died and I've finally accepted the inevitable decline in CD popularity and am ready to join the rest of humanity in using MP3 players.  Since I have a sizeable CD collection I wanted to find the best free CD ripper.  Since I'm fine with the lossy MP3 format (vs. a lossless format like FLAC or an open source community format like OGG), my current research indicates these are among the best options:

Feel free to recommend others.

Brilliant educational video


Most of you have seen this, but I was so impressed with Burger King's video explaining Net Neutrality.  They succinctly and accurately taught a complicated topic in an engaging way to the general public -- props!

MTG for newbies


My sons recently introduced me to Magic The Gathering (MTG) and even though I grew up playing lots of board games and card games I have to admit the experience was overwhelming: a single turn has 60 actions and the comprehensive official rules are 226 pages long!

Fortunately, the game is a lot of fun so it's worth the initial effort.  Here's a list of resources I wish I had known about from the very beginning:

  1. Understand the basics with this excellent wikiHow article (also check out the updated rules on planeswalkers)
  2. Legendary cards (like the one shown above) have special rules -- you can only have one of each name at any given time on the battlefield.  Otherwise, most creatures are limited to four in number.
  3. Dive a little deeper into each phase of a turn (here's another great resource on that topic)
  4. Find cool cards at (excellent filtering and search capabilities in the left-hand column)
  5. Print proxy decks using (proxy decks are practice cards you print out and put in protective sleeves with another playing card for structural backing)
  6. Look up detailed card information at
  7. Another excellent free resource for Android that provides card info, rules, dice roller, scorekeeper, etc. is MTG Familiar
  8. Review other people's decks and get advice from a huge community of enthusiasts at  You can upload your own deck and get advice and stats (like pricing estimate).  Another similar resource is  Another popular forum is
  9. If you just want to get a quick estimate of one or more cards, you can use (some MTG enthusiasts just collect cards rather than play them)
  10. Once you get a handle on the basics, understand the importance of sideboards
  11. Take a break and geek out with your movie of choice: Enter the Battlefield, Zero Charisma, Queen of Katwe, Searching For Bobby Fischer, Hackers, War Games, Tron, ...
P.S. Storm Crow is an inside joke.

Hilarious: Actiontec's stance on security


Actiontec's response to the KRACK vulnerability is hilarious.  They say "Our customers are our highest priority, and our goal is to provide you with timely information" and then their provided link for "Main Support Page" is left intentionally blank/inoperable.  LOL...

P.S. here's their Main Support Page.

CCleaner security risk


CCleaner contains a major security risk.  If you use it, please update ASAP!

Singularity: the cool container you've never heard of


Unless you've been in suspended animation hibernation, you've heard of Docker, the container technology that has taken the IT world by storm.

If you've been following that movement closely you've probably heard of rkt (an alternative from the CoreOS group), LXC/LXD (an alternative from Canonical, the creators of Ubuntu), and Project Atomic (a Red Hat initiative to address security concerns over Docker).

If you've been around longer, you'll probably mention to those youngsters that Solaris zones offered this functionality many years prior.  Fans of (Parallels) Virtuozzo Containers will say the same thing.

With all these options you'd think we could put this topic to rest.  Decide on your favorite and move on, right?  Well, there may be need to add one more to the mix: Singularity.

Singularity was born in a very different environment than DevOps shops and web hosting: HPC.  High Performance Computing centers have a lot more hardware and security constraints because "escaping root" would mean hackers would have access to supercomputing power.  In this regard, it's probably closest to Solaris zones which is used in similar work environments.  Unlike Solaris though, which needs to emulate Linux functionality with lx branded zones, Singularity is native Linux.  Also, unlike Docker which runs the container daemon as root, Singularity can run the container daemon as a read-only, rights-limited regular user on the host, greatly reducing (but not altogether eliminating) security concerns.  As a bonus, it supports Docker container images (although the integration with Docker Hub is at the mercy of Docker developer whims).  As a personal aside, I find their CLI arguments and parameters easier to understand and use than Docker.  If you are keen on security and need to run Linux containers in a more controlled environment, check out Singularity.

M.2 saga with MSI B150 PC MATE


I decided to build a new machine for my kids so I purchased an MSI B150 PC MATE motherboard and evaluated my options for a hard drive.  Since it supported the newer M.2 SSDs, I figured I'd splurge.

First mistake: somewhat novice with the M.2 form factor, I didn't realize it supported both SATA and PCIe with no visible distinction.  I researched various M.2 drives and picked a WD Black PCIe before realizing that the MSI B150 PC MATE only supports M.2 SATA, not M.2 PCIe drives.  Doh!

Fortunately there's an adapter to so solve that problem, although it will use up a PCIe 3.0 x4 connector on your motherboard.  For that reason I recommend you return the motherboard for an M.2 PCIe-compliant board (like H170A PC MATE) or return the PCIe drive and get an SATA equivalent.

However, I like a challenge ;) so I forged ahead with the adapter!

Second mistake: My kids need Windows for certain programs and my only copy is Windows 7.  Unfortunately Windows 7 and NVMe drives (like M.2) don't get along.

According to Intel:
"Windows 7 does not support native UEFI booting without a Compatibility Support Module [CSM].  As a result, system compatibility is limited and varies by vendor.  In order to properly boot Windows 7 from an NVMe SSD, your system must support loading UEFI drivers when the Compatibility Support Modules is enabled."
Bottom line: use Windows 8.1 or later.

However, I like a challenge ;) so I forged ahead with Windows 7!

This is possible because the MSI B150 PC MATE supports

  • UEFI, which requires a Windows 7 DVD in an optical drive -- i.e. you cannot install Windows 7 with a USB stick (press Delete on startup > BIOS > Boot > Boot Mode Select  -- set it to LEGACY+UEFI)
  • CSM (press Delete on startup > BIOS > Advanced > Windows OS Configuration > Windows 7 Installation  -- set it to enabled)
Now, if you boot from the Windows 7 DVD you'll see the familiar Windows setup wizard and feel all warm and fuzzy until you get to the screen above where no drives are listed.  Arghh!

Third mistake: After searching the all-powerful Internet for a ridiculously long time, I finally broke down and did what no man likes to do: read the manual.

Buried on page 4 is this crucial lead:
"Microsoft Windows 7 installation on NVMe devices that use the PCIe bus requires a Hotfix.  Use this Microsoft KB Article for assistance: KB 2990941"
That article provides an 11-step "Method 1" process that involves slipstreaming the hotfix into a custom Windows 7 ISO and burning a new DVD.  Sigh...  Good thing I like a challenge  ;)

FYI, if you're not in the mood to go through all the tedious steps, you can download the final ISO here.

Note: the first step in that article mentions "Windows 8.1" but it is the correct link and software needed for Windows 7.  The Internet installation of the Windows ADK also takes quite a while to load the initial install screen so be patient and wait up to 10 minutes before assuming the install is frozen.

Note: step 3 means copy everything from your Windows 7 installation cd to the c:\temp\src folder (not just the 'sources' folder).

Note: you can ignore step 5 since we don't need additional drivers, just the hotfix.

If you get an "Error: 87 The mount-image option is unknown", use the following commands instead of those provided in step 7:

dism /Mount-Wim /WimFile:c:\temp\src\sources\boot.wim /Index:1 /MountDir:c:\temp\mount
dism /Image:C:\temp\mount /Add-Package /PackagePath:c:\temp\hotfix
dism /Unmount-Wim /MountDir:C:\temp\mount /Commit
dism /Mount-Wim /WimFile:c:\temp\src\sources\boot.wim /Index:2 /MountDir:c:\temp\mount
dism /Image:C:\temp\mount /Add-Package /PackagePath:c:\temp\hotfix
Manually sort the folder C:\temp\mount\sources by date, and then copy the updated files to c:\temp\src\sources.
dism /Unmount-Wim /MountDir:C:\temp\mount /commit

If you get an "Error: 87 The mount-image option is unknown", use the following commands instead of those provided in step 9:
dism /Mount-Wim /WimFile:c:\temp\src\sources\install.wim /Index:1 /MountDir:c:\temp\mount
dism /Image:C:\temp\mount /Add-Package /PackagePath:c:\temp\hotfix
dism /Mount-Wim /WimFile:c:\temp\mount\windows\system32\recovery\winre.wim /Index:1 /MountDir:c:\temp\winremount
dism /Image:C:\temp\mount /Add-Package /PackagePath:c:\temp\hotfix
dism /Unmount-Wim /MountDir:C:\temp\winremount /Commit
dism /Unmount-Wim /MountDir:C:\temp\mount /Commit

Before you can run step 10, install Oscdimg.  Then use the Legacy and UEFI BIOS multiple Boot mode option.

Whew!  After all that mess, and burning the ISO to a DVD, I was able to boot Windows 7 on my PCIe M.2 drive!! challenge: getting a Linux dual-boot setup (since Grub and LILO apparently don't like NVMe either)


Update: I finally got Linux dual-boot to work!

Fourth mistake: I was selecting the normal DVD-ROM entry in the BIOS boot list instead of the "UEFI: " prefixed entry for the same DVD-ROM.  Because of this, Lubuntu was booting in "Legacy" mode and couldn't see the Windows OS in "UEFI" mode.  Once I booted the Lubuntu LiveCD using the UEFI entry in the BIOS boot options, it saw the existing Windows install and automatically configured Lubuntu to boot alongside Windows.

...Unfortunately, after Lubuntu finished installing and the machine rebooted, Windows automatically booted.  Arghh!

After some trial and error, I finally discovered if I loaded the BIOS boot list I could see an entry for "ubuntu" and that loaded GRUB which then displayed both ubuntu (Lubuntu) and Windows as boot options.

I wanted to avoid entering the BIOS boot screen every time I wanted to load Linux so I dug a bit further and finally discovered a setting buried in the BIOS which allowed me to set the "ubuntu" option as default: BIOS > Boot > UEFI Hard Disk Drive BBS Priorities

Now that GRUB was loading by default, I just had to edit /etc/default/grub to change GRUB_DEFAULT=2 to load my Windows option by default and I'm a happy camper  :)