New Year, New Hackintosh

I’m going to do a quick write up of my new computer build for two reasons: 1) I want to have a record in case I ever screw something up and need to reinstall an operating system again; 2) I like to put this kind of information in a public forum in case someone in using similar hardware.

Of course, I wasn’t taking any notes when I was building or installing things, so this is mostly written from memory. I’ll try to fill in details if I remember them.

My Build

I ended up re-using hard drives (2x Crucial SSDs), my nVidia GTX 970 as well as a Corsair power supply. Peripherals were also re-used (USB keyboard and mouse, a USB soundcard, and USB headphones). Everything else was new – and it is all listed in this PC Part Picker list.

The quick rundown of the new gear: Intel Core i7-8700k, a Corsair H60 liquid cooler, Gigabyte Z370 HD3 motherboard, 16GB of DDR4 memory, and a new NZXT H500 ATX Case.

The Goal

I wanted to upgrade my previous system and all the functionality it provided, because there was nothing wrong there except some outdated components. The goal was to have a dual boot Windows & MacOS machine: Windows for gaming, MacOS for music production.

Installation

I won’t bore you with the details of the build, but I will add that I must have been quite rusty, because it took me a while to get everything in the NZXT case. The positive spin is that I took extra time to do cable management, so everything looks great.

Since I reused my SSDs from my previous computer, I had some trouble doing a first boot. My bootloader (Clover) was still seeing the drives, but given most of the guts were new, it couldn’t properly boot into Windows or MacOS.

Luckily… if I used my UEFI drive selector and chose my Windows drive, it booted up just fine. Windows is very resilient, and it detected my new hardware, made the appropriate changes, and after the first restart, everything worked great. A few driver updates later and my gaming PC was back up and running.

MacOS on the other hand, is not as forgiving – probably because it expects to be installed on certain hardware dictated by Apple. After a few futile attempts to change my Clover configuration to allow me to boot into my existing Sierra installation, I gave up and wiped the drive to start fresh. It should be noted I had cloned my Sierra installation to another drive previously, so all my data was still intact.

To begin, I used the Unibeast USB drive tool from tonymacx86* to make myself a bootable High Sierra drive. I was able to do this from my wife’s macbook. Once the process was done (and it took a long time, so let it be) – I loaded up the USB stick with all the kernel extensions (kexts) and other tools I thought I may need, namely: Clover Configurator, and drivers for my wireless adapter.

At this point it should be noted I followed the excellent Vanilla install guide to ensure I did not miss anything, even though I had cheated a bit by using Unibeast. Booting and installation was painless after paying attention to the “Coffee Lake” section of that guide. I recommend using Clover Configurator to edit your config.plist files, its way easier than digging through text.

Post Installation

The install was painless, post install had some minor issues to work through. A big one was my USB 3.0 drives were not working. This was resolved through a few different kexts: RehabMan’s GenericUSBXHCI kext, as well as FakePCIID. My USB->SATA cable wasn’t working, meaning I wouldn’t be able to transfer data from my cloned SSD… this was resolved with the AHCI_Intel_Generic_SATA kext. If in down, use Multibeast* from tonymacx86 to get these items.

*It’s at this point I should address the elephant in the room. There are some folks on reddit and elsewhere that do not like tonymacx86 – i’m not certain why, as the custom kexts and patches that are contained in Multibeast seem to give proper credit. The only other complaint I’ve heard is that Multibeast puts kexts in weird places, but I have not found that to be true. IMO the tools are useful and have given me two working systems to date.

Since I have an nVidia card, I needed the latest version of the web drivers for macOS. Install was straightforward, but the drivers wouldn’t load at reboot. This was a simple fix: under “System Parameters” in the config.plist, there is a “NvidiaWeb” key that must be set to true. This is easy to do using Clover Configurator (just check the box). Now, on reboot my web drivers are loading, and I can use my second display.

I use a TP-Link Archer T4U for wireless connectivity; in the past I have had problems installing the drivers (so much so that I wrote a guide on how to do it for other users here). This time, everything installed great and it worked immediately after rebooting.

What else? iCloud / iMessage integration has been the only other setup piece that has given me trouble in the past (in fact on my old system, it never worked, then I got it working for about a week, then it stopped working again). This time, it was smooth as butter… just follow the “Idiots Guide to iMessage” to the letter.

Conclusion

As always, thanks to the hackintosh community, at least the ones I frequent: tonymacx86 & /r/hackintosh. If anyone is thinking of doing a similar hardware combination, I highly recommend it. I am on day four or five of my new system and its solid as can be.

Roxborough State Park, CO in October

On October 7, we took a trip to Roxborough State park with some friends. It was a beautiful 75 degree day. Two days later the entire area was blanketed with up to 6 inches of snow! All photos on this page were taken by me, but my pal Anthony Wurzburger was also shooting photos that day, and he consistently takes great photos from around Colorado. You can see his work here.

Solar Eclipse 2017, viewed from Kelly, Wyoming

In August 2017, Megan and I had the opportunity to trek to Wyoming with some of my family to see the “Great American Solar Eclipse”. These are a few of the photos we got.

KNovabot: A Discord bot in Python

Continuing my trend of trying to learn new things in Python, I have most recently been spending some time playing around the with Discord API. This was interesting to me for a few reasons: I use Discord to communicate with my friends when we play games on the PC; additionally, I’ve always had an interest in chat rooms and the way the protocols work (in the past, I’ve programmed a number of IRC bots).

This bot utilizes a library known as “Discord.py” which is freely available on Github. Additionally, I’ve uploaded all my code to my Github page. It’s fairly rudimentary, but if you were ever interested in running a Discord bot of your own, it should be easy to modify for your own needs.

Return to Python

PyCharm screenshotIn an effort to maintain any kind of programming skills I may have, I decided it would be a good idea to start writing Python code again. This is another one of my phases I go through every year, so I’m not certain it will last. Luckily, I’ve found real world applications for learning and staying up to date with Python, so I’m going to try and dedicate some time to coding realistic projects — in the past most of what I worked on were games (which ended up making me distressed when they didn’t play well), or web facing projects such as a message board (a classic project I’ve tried to attempt in many languages).

Since i’m trying to dust off some cob webs and a sizeable knowledge gap, I decided a great place to start would be Reddit’s daily programmer subreddit. This week, I picked a project that interested me that sounds nice and easy: Scrabble word finder (Challenge #294). What my program does is take user input (what letters do they have, and what word do they want to make) and lets them know if its possible given the current amount of each letter. Super simple, but a  nice entry for me to return to Python programming.

As of right now I’m at what I consider version 1.2 1.3 of this program – it can take your given letters and a desired word, tell you if its playable (including wildcards), and gives you the point value for that word (update: now it suggests the highest value word you can play with the given letters). Check my Github page for the project here. As of version 1.3 i’m going to consider this complete (outside of any bug fixes).