Budget Birthday Gaming PC Build

My son decided that he wanted to build a gaming PC for his 11th birthday earlier this month. It’s been years since I have done a PC build, but I was pretty sure I could remember/figure out how to attach pieces together into a functional PC.

We started the process with a shared (OneDrive) Word Doc. I wanted my son to do as much of the research as possible. He had a pretty good handle on all of the necessary components from endless gaming Youtubers explanations of their rigs. When he had to make a choice (AMD vs. Intel), he searched for opinions online with references to the software he likes to use. His target workloads included Minecraft, Unity Game Development, & Blender modeling.

My son did a first-pass at a materials list, including a 8th-gen Intel Core i5-8400 CPU, ASUS Radeon RX 560 video card, 16 GB of RAM, 1TB Hard Drive, Case, Motherboard, Power Supply and all the trimmings. I had him run through the wattages for all of his planned components to make sure that we were well in spec for the power supply.

The next step involved me putting the list through a “Dad lives by a budget” reality check. The Intel Core i5-8400 was trimmed back to an Intel Core i3-8300. The ASUS video card and Motherboard were swapped for slightly cheaper Gigabyte equivalents. The RAM was scaled back to just 8GB. I added a Bluetooth and Wifi adapter to the list for flexibility in setup/accessories, and also a copy of Window 10 Pro, so that he’d be able to use Remote Desktop to access the new machine from his much less powerful laptop.

The final Materials List looked like:

Case: DIYPC DIY-F2-O Black/Orange USB 3.0 Micro-ATX Mini Tower (Amazon Link)
Motherboard: GIGABYTE B360M D3H LGA 1151 (300 Series) Intel B360 (Amazon Link)
CPU: Intel BX80684I38300 65W Core i3 i3-8300 Processor (Amazon Link)
Memory: Patriot Signature 8GB (2x4GB) DDR4 2400 (PSD48G2400KH) (Amazon Link)
Video Adapter: Gigabyte Radeon RX 560 GAMING OC 4G REv2.0 (Amazon Link)
Hard Drive: Seagate 1TB FireCuda Gaming SSHD (ST1000DX002) (Amazon Link)
Power Supply: Thermaltake Smart RGB 500W 80+ (Amazon Link)
Operating System: Windows 10 Pro (Microsoft Link)
Extras: Plugable USB Bluetooth 4.0 Low Energy Micro Adapter (Amazon Link)
EDUP Wifi Adapter ac600Mbps Wireless Usb Adapter (Amazon Link)
Arctic Silver Thermal Compound AS5-3.5G (Amazon Link)

Everything was ordered and delivered before my son’s birthday, just waiting for him to dig in:

componentsAssembly was a breeze. The case had ample room for working. I provided a few pointers for making sure that the pre-installed stand-offs were positioned properly for the motherboard, and the ordering of install to make things easier. The new BGA socket for the processor was so much easier than the omg-did-i-bend-a-pin sockets of yesteryear.

We had a slight struggle with the Hard Drive because our initial attempt had the mounting frame even with the drive, which meant that the drive was not set in far enough that the case could close without pressing on the hard drive power cable. Correcting this was made harder by the fact that the hard drive was positioned to block the flexible part of the frame from bending to allow it to be removed from the case frame. This was remedied by some careful brute force.

Most every component and connector just went where they fit. My son handled all of the odds and ends with the motherboard’s included connector map. This case and motherboard actually matched pretty well for all the connectors. HD Audio header, all the remote USB ports, and each and every light and switch had a proper home. We even connected a tiny little speaker that was included in the motherboard package, “just in case” it was needed for POST beeps.

Once everything appeared to be in place, we connected the new box to a TV that we use as a monitor, and a keyboard and mouse that were birthday gifts from relatives, and hit the power.

The box hummed to life, orange LED lighting and fans spinning, and then a few second later everything cut off. Then on. Then off again. I hit the physical switch on the power supply so that we could get our bearings.

Next test we didn’t change anything, but took careful notice of all the fans. All spinning, so at least we weren’t cooking the CPU. Yet.

Next test, we unplugged pretty much everything non-essential on the motherboard, removed the video card and swapped the monitor over to the build-in HDMI connection and tried again. Same results.

Next test, one RAM module out: same. other RAM module out: same.

At this point I’m thinking that we’ve got a bad power supply, a bad motherboard, or a bad CPU. We disconnected the power supply, jumpered the green wire to ground, and applied power. It was nice to hear the power supply come to life and not power down after a few seconds. I didn’t check voltages, but I was pretty sure that we had a working power supply now. So basically at this point, I’m pretty certain that the motherboard is telling the power supply to cut off for some reason.

As I’m hooking the 24-pin power back to the Motherboard and trying to think of what to try next, I notice a lonely unpopulated 8-pin connector above the LGA1151 socket that looks to be another power connector. On closer inspection, it’s labeled “ATX_12V_2X4” and it most certainly is another power connector. When we were first hooking up the power supply, we’d checked all over the video card to see if it had and extra power socket (it doesn’t), but somehow missed this on on the motherboard. My son hooked up the extra power connector with one of the many available lines from the power supply and tried again… Success! We now had a booting computer! After seeing the BIOS menu come up, we powered down and my son set to work re-installing everything that had been removed in the name of troubleshooting.

After everything was hooked back up, the computer booted successfully again, and my son started the process of booting from a prepared USB to install Windows 10.

All in all, the build was a major success. My kids typically use cheap, modestly powered laptops for schoolwork and games, and this beast way outperforms all of them for the things my son cares about most (i.e. bragging about frames-per-second on Minecraft).


Passmark shows that our modest budget PC holds it’s own pretty well at 3126.9:


Project – Card Skimmer Detector via Make

It’s summertime, which means the kids are on and off camp throughout the summer.  We’ve done a few projects in the past with Raspberry Pi and Arduino, and this project for a Card Skimmer Detector came across my feed from Make.

Not content with just following instructions, I ordered a slightly different display than the one used by Tyler Winegarner for the article.  I’m hopeful that it’s similar enough, and a quick review of the driver referenced in Tyler’s code seems positive.

Two of my kids will attempt to get this going on Pi Zero W’s with preinstalled headers from Adafruit, and I’ll dig in with some soldering required.  I also ordered some small piezo speakers and a USB GPS receiver that I might try to integrate.  I pre-printed a handful of basic Pi Zero cases from mynameishamish via Thingiverse but will probably design something more custom after we see how the project comes together.

Reading List: What’s the Future and Why It’s Up To Us

On the flight out to Seattle on Sunday, I finally finished up Tim O’reilly’s overtly named What’s the Future and Why It’s Up To Us. In a coincidence of timing, this morning I also scanned across Jeff Atwood’s reference to an observational call to action (from Pamela Druckerman) in the following tweet:

The book was a deep read on how Tim has observed transformative change occurring in recent decades.  There are ample examples, including very current trends in politics, technology, and economics, where the reader is walked through the development of a new mental map to understand why the change made sense.  It’s often the case that looking back on disruptive changes, they seem obvious and inevitable, but it takes a spark of ingenuity or genius to build that new map without the benefit of hindsight.  The challenge that the book hopes to instruct, is to identify opportunities for reframing our own views in ways that lead to constructive, but disruptive change.

Tim has been well positioned to observe and report, and includes anecdotes and quotes from key players in past significant disruptions.   There are also many references to traditional business authors, like Drucker and Collins that will be familiar to many MBA students, including critical takes on some widely held beliefs about what makes business tick, especially in the United States.

Beyond understanding the processes of disruptive change, the book spends quite a bit of print developing ideas about what types of changes are good for people, good for humanity, and good for the future.  In what seemed like an echo of this theme in the book, this morning I sat through an amazing keynote by Microsoft’s Satya Nadella which included a professorial call to action for developers to build the future that humanity needs by embedding privacy, security, and ethical choices in the systems and AI that we build for the future.

This book is a great read if you want to gain some knowledge about historical twists and turns in the technology industry, to slightly reprogram your brain for how to look out for disruptive change, and prepare yourself to help make a positive impact on the future.

Waking me up to complain about a low battery is terrible UX

If you design a product that might wake me up in the middle of the night, you should meet the following bar: I, or someone I love, must be in danger.  Not a hypothetical “If the power goes out and if something in the house is still managing to produce CO without power” type of danger, but something more actual and imminent.

Smoke and CO detectors seem to have been designed with a severe disregard for how the customer will react to the various interaction points other than a true emergency.  I can remember several times in my adult life when a chirping detector has induced me to get out a ladder in the middle of the night and climb up to check on various possible sources of the chirp, all in a semi-alert state.

Last night, the culprit was a CO detector that happened to be plugged in to the wall in our master bedroom, perhaps about 3 meters from where I sleep.  The acoustics of the alert sound on this device seem to have been designed to make it echo and reverberate around the house, which is great for an a alarm, but again is horrible for a low battery warning.  In my efforts to find the noise that only repeated every minute or two I got out two different ladders, stood on the ladder near the upstairs smoke alarm, then the downstairs one, then climbed into the attic to check that one, then stood in the room listening for the chirp again, then up to the attic to see if maybe there was another alarm up there that I didn’t know about.  Thankfully my wife happened to look down at the right moment and correlate a chirp with this CO detector plugged in to the wall.

I know that I should have probably replaced the battery at some point, but honestly I had totally forgotten about this particular detector.  It’s one of 3 CO detectors in our house, and I’m pretty sure that it’s been 3 or 4 years since the battery was changed because it runs off house power and the battery is just for power failures.  The end result of this particular warning was that the device was unplugged and batteries removed so that we could get back to sleep.

This morning as I tried to get back to sleep I was wondering how many middle-of-the-night ladder injuries are attributable to low-battery chirps.  I’m guessing that the low battery behavior is probably design-by-regulation and that manufacturers like First Alert don’t have a lot of latitude to make this better, but I see that Nest Protect is trying to solve the UX gap, although at quite a premium on price.

Recovering from a lost SSH Key File on Amazon EC2 Linux Instance

Recently I went to log in to an EC2 instance and I realized that I could no longer find the private key file that I needed to connect via SSH.  I looked around the Internet for recovery instructions and found some complicated pointers regarding creating a snapshot and then an AMI then using that to create a new instance.  This seemed like overkill, and I couldn’t get it to work when I tried it anyways (The new instance always stalled at 1of 2 Status Checks and I couldn’t connect).

On a whim, I decided that the key file had to be somewhere on the image and that I could probably find and replace it.  I was successful so I thought I would outline the steps here for others.

Warning, the following comes with a “Worked on my machine” guarantee, which basically means that you shouldn’t try this unless you understand what’s going on.

For the sake of keeping things straight, I’ll refer to the instance with the lost key as Instance A.

  1. Create a new instance with the same Linux build as the instance you need to access.  Create a new key pair.  Remember to actually save and back up the private key this time.  I’ll call this new instance “Instance B”.
  2. Shutdown Instance A.
  3. Detach the root volume from Instance A.  Note where it was attached, usually /dev/sda1
  4. Attach this volume on Instance B, note the mount point.  It will probably be something like /dev/sdf. Some Linux distros will actually use /dev/xvdf instead of sdf.

  5. Connect via ssh to Instance B.
  6. Run: sudo mount /dev/xvdf /mnt (using the device that was noted when you attached)
  7. cd to ‘/mnt/home/ec2-user/.ssh’  (this will be ‘/mnt/home/ubunto/.ssh’ on Ubuntu builds, may be different for other distros)
  8. Run: ‘sudo mv ./authorized_keys ./authorized_keys.old’
  9. Run: ‘sudo cp ~/.ssh/authorized_keys .’ (<- This is the magic.  We’re copying the Public Key from the .ssh dir of the currently logged in user to the correct location on the mounted volume.)
  10. ‘cd’ back to home
  11. Run: ‘sudo umount /mnt’
  12. Detach the volume from Instance B and then attach back to Instance A as /dev/sda1 (or other original mount point as noted in step 3).
  13. Now restart Instance A and you should be able to connect with SSH.
  14. After you’ve successfully connected back to Instance A, you can Terminate Instance B.

Running through sudo and doing chown and chgrp may not be necessary if your UID’s and GID’s match between Instance A and Instance B.

No I will not alter links in a 4 year old post to help you optimize search results

Hopefully this isn’t too harsh.  I received a request today to alter an old blog post in a way that I can only assume is all about Search Engine Optimization.  The communication was mostly generalized flattery with a pass at being respectful of the integrity of my writing, but not enough that I think they actually took time to read through that specific post or any of my other writing.  I figured that the initial communication and my response might be interesting to those who’ve never had interaction with SEO folks.  Names and info removed.


From: [removed]
To: me
Date: Tue, 12 Jul 2011 18:10:32 -0400
Subject: Contact Request: Link in Blog Post

You have contact request!

Link in Blog Post
From: [removed]

Hi Rick,

I hope this message finds you well. I’m currently working on cleaning up [company name].com’s online presence and noticed you have a link to our site in your blog post. First off, thank you for finding us valuable enough to link to – we appreciate it! Part our clean-up process includes adjusting links to match the current title we’re using on our site outside of the [company name] brand name.

Your Post with Link: [link removed]

If you could please change the current link text from saying “[company name]” to “[company name] [important industry keywords]” it would be greatly appreciated.

Thanks for taking the time. Let me know if you have any questions on this change seeing as I fully want to respect your blog post as is as well. I look forward to hearing back!



Hello [removed],

I am not a big fan of altering links just to serve Search Engine Optimization. If your request below is really about cleaning up branding, I would gladly change the link but if I do so I would also add a nofollow tag. If [company name] prefers not to be linked to in this manner, or the original form from the blog post I wrote over 4 years ago, I’d gladly change the post to remove the link.

Just as a side note if you don’t know already, many bloggers are going to be defensive about this sort of thing. I’m not trying to be difficult, but taking time to edit a post just to serve your employer’s search rankings isn’t on my list of priorities.

I am a bit curious what sort of success rate you have with this type of request.


Rick Hallihan

Moving Contacts From a Verizon Feature Phone to Hotmail for Windows Phone 7

First, I have to explicitly state that the following process is not endorsed or supported by Microsoft or Verizon.  I have used it a couple of times successfully, but I can’t guarantee that your phone won’t spontaneously combust or otherwise cease to function if you follow the steps below.  If you have trouble, feel free to leave a comment below and I’ll do my best to help.

I have heard several stories lately from folks who are finally taking the plunge into the world of SmartPhones on Verizon (with the AWESOME HTC Trophy).  Some Verizon reps simply state that you can’t move contacts from the old to the new phone, but they helpfully print out a hard copy of the contacts from the old phone.  Others point to the Microsoft Article on Syncing Outlook Contacts with Windows Phone which isn’t very helpful if you don’t have or use Outlook.  I figured it would be worth putting up a post on the process I used.

The first step is to make sure your contacts are backed up with Verizon’s Backup Assistant from your old phone.  The process is different for different phones, but should be similar to the following.

On this feature phone, you select MENU, then Contacts, then Backup Assistant, then OK, and finally Backup Now. If you have not used Backup Assistant previously there are a few extra steps to set up a password, but they are pretty self explanatory. Verizon also has a great deal of documentation on their website at http://verizonwireless.com/backupassistant



Once your phone shows “Pending: 0” that indicates that all of your contacts have successfully been updated to the web.  You then need to sign in at http://verizonwireless.com/backupassistant 

If you haven’t already signed up for Verizon’s online account access, there will be extra steps here.




After signing in you should see a screen listing your contacts.  Click on “Select All”


Now click the drop-down next to “Select All” and select “Export Contacts”


You will be prompted to select a file download type, select “Outlook (CSV)”.  We’re not actually going to use Outlook, but this is a file format that Hotmail can import.


Your browser may prompt you for permission to download the file, select “Save” and make a note of the file’s location.


Once you have the MyContacts.csv file saved, go to http://hotmail.com and log in.  You will need to use the Primary Live Id that was first associated with your Windows Phone during setup.  From the main screen, select “Contacts”


On the contacts screen, select “Manage” then “Import” on the Menu. 


On the next screen select “Outlook”.  Again, we’re not actually using Outlook, that’s just the common language that both Backup Assistant and Hotmail know how to use.


Next click the “Browse” button and locate your MyContacts.csv file, then click the “Import contacts” button.


If everything has worked as expected your Hotmail Contacts should now include all the phone number from your previous phone.


A few points to note.  If you are using a Live Id that is not a Hotmail Address, you can still log in at Hotmail with that Live Id to access the contacts section.  Also, if you have been using Hotmail for a long time your Contacts folder might have a large number of entries that you no longer want.  The web interface has some good options for cleaning up and combining duplicate contacts, and is also a good place to sort through and clean out unwanted contacts.  Any changes you make on the web will be synced to your new Windows Phone.

Gateway CX2620 Battery is Now Charging

My trusty CX2620 has been serving the family well for almost 3 years now, but for about the last year the battery hasn’t held a charge that would last more than 5 minutes.  I had attributed this to a bad battery, and with replacements going for around $150, I wasn’t going to sink that much money into an obviously aging laptop. 

A combination of events recently lined up to get my laptop battery back in action.  Our original power adapter’s cord had broken through the insulation around the place where the DC cord enters the adapter brick, so we ordered an el-cheapo replacement from Ebay.  This new adapter had the same specs as the original, and we managed to continue along, still not able to hold a charge, but functional while plugged in.

This new adapter only lasted a couple of weeks before giving out entirely right before we were going on a trip.  We decided against getting another cheap adapter, and put in a order for the original OEM spec adapter, to be shipped to one of the destinations on our trip.  When it wasn’t there when we arrived I checked the order status to find that it was backordered for another 4 weeks.  Since we were suffering from laptop withdrawal, we ended up running out to Circuit City and picking up a Kensington Universal Notebook Power Adapter (K33404US).

Well, the new adapter is a 90 watt adapter, vs. the original 60 watt.  Low and behold, the battery will now hold a charge almost as good as when it was new!