Motherboard Selection for Intel Computer Desktop Builds

The following is a guest post from Jeff Yesensky:

So, you’re building your first PC, or perhaps even your second. You’ve done your research on all the fancy upgrades, all the new toys. Everything is plugged into your build on pcpartpicker.com. Finally, your ultimate gaming machine is coming together. The price is a little more than you wanted to spend, but hey, those GeForce RTX 2080’s just aren’t dropping in price like you hoped. You have your RAM, video card, power supply, the fan that lights up, and most importantly your Intel processor. The whole reason for the new build. You hear Captain Kirk from Star Trek in the back of your head, Scotty, we need MORE SPEED! Now the part you are dreading is looming ahead. The one component that no matter how much research you did, you felt like you were just being tossed in circles like a rookie. Instead of descriptions, all you see are fancy names like Maximus Hero, ProX, Aorus Ultra, Phantom Gaming, Pro Carbon and many more. You call up your friend Ben. “Ben, I need help! What motherboard should I buy”. In horror you hear the words you’ve dreaded… Ben: “I don’t have time to build PC’s anymore, so I don’t know”. The world is crashing down and your perfect build is fading away. In terror, you look at what models your chip is compatible to. They range from $70 to $500! Which one do I buy? Will Scotty from engineering want the $500 one or is that expensive motherboard like a gold-plated HDMI cable; Nice looking, but an utter waste of money. You need help. You need guidance. You need someone to tell you it’s going to be ok. You need a Motherboard!

Where to Start…

So, where do you start. Let’s start with the basics. What Motherboard will actually work with my chip? Square peg in a square hole and a round peg in a round hole. Easy question, right? I wish…

Which Generation?

At this point, you should at least know what Intel processor chip you are going to buy. Don’t know yet? Well, fine, I’ll do a post on that one too, but later. This is about the dreaded motherboard (mobo for short). I am going to focus my guide to only the last three generations of Intel Chips.

Latest 9th Generation Desktop Chips
Intel’s Latest 9th Gen Chips

Last Three generations…

The “I don’t have a lot of money right now” Generation. AKA 7th Generation Core

The “I’m all about getting the best speed for the best value” Generation. AKA 8th Generation Core

The “I’m blowing my life savings on this build” Generation. AKA 9th Generation Core

Confused which generation your chip is? Don’t be confused by the names they use. Intel loves names and code names, problem is they use names that are too similar to each other and they don’t always work. Don’t get me started with code names.

  • 9th generation Core = Coffee Lake Refresh
  • 8th generation Core = Coffee Lake/Kaby Lake Refresh/Whiskey Lake
  • 7th generation Core = Kaby Lake/Skylake/Apollo Lake

See what I mean? Super lame Intel. If you’re going for cool code names, don’t end them all with Lake..

Here is an easier way… Ignore the Code names completely. Just use the number system.

  • I9-9900K, I5-9400F, etc. are all I#-9000s, 9 being the 9th generation
  • I7-8700, I3-8100, etc. are all the I#-8000s, 8 being the 8th generation
  • I9-7980XE, I7-7700, etc. are all the I#-7000s, 7 being the 7th generation
Code Names Board Game
Hours of family fun!

A MOMENT OF REFLECTION – For real, ignore the code names. They will get you in trouble. It’s easy to switch a Coffee Lake for a Kaby Lake. If you like Code Names, stick with the board game Codenames!

So which generation is your Chip? Ah good. The 8th generation. Well played. Ok ok, if it’s not 8th, your still ok in my book.

Which Socket?

LGA 1151 CPU Socket
Intel LGA 1151 CPU Socket

Your generation will also tell you which socket to get. Luckily this one is pretty easy. They named it

two VERY distinctive sockets. 1151 Rev 1 and 1151 Rev 2… Errr umm… Come on Intel…Strike two.

Don’t worry, I still got you.

Which Series?

1151 Rev 1 – That’s your 100 and 200 Series – Wait, what’s a series? Once again, ignore it. Just know that 7th Gen and older is Series 100 and 200. But watch out. Skylake (7th gen) is series 200 while Kaby Lake (7th gen) is Series 100 with bios update… In fact… What are we doing?!? I’m not going down this rabbit hole. Just spend the money, buy a 8th or 9th gen chip and boom, series 300. For real. Get away from 7th gen. Your computer is worth more then a 7th gen chip.

1151 Rev 2 – That’s your 300 series – Translated into simple speak, your 8th and 9th generation chips

Once again, thanks Intel for making my life harder.

OBLIGATORY DISCLAIMER NOTE – Yes, there are some chips in these generation that use the LGA 2066 socket. Do me a favor and pick a new processor chip if thats the case. If your spending 2k on a chip, you shouldn’t be taking my advice.

Which Chipset?

What you should know so far…

  • Generation
  • Series
  • Socket

For example: If you’re going for the I7-8700k, then you know it’s an 8th generation, 300 series, 1151 Rev 2 Socket. Perfect. See how generation tells you other two items?

Now we can finally figure out the Chipset. What’s a chipset? To way oversimplify things… It’s the motherboard configuration to accept your processor chip. When you are shopping for motherboards, the one thing in common you see after all the names is a series of letters and numbers. For example, you will see codes like Z390, B365, H310, Q370, B150, H170, Etc. etc. etc. These are your Chipsets. This is your first real step in narrowing down your motherboard.

Intel Z390 Chipset Diagram
Z390 Chipset Diagram – Don’t worry, we will get to all the other stuff.

MOMENT OF CAUTION: Be careful when you see a motherboard listed as 1151, or 8th generation motherboard. These aren’t always accurate depending on your processor that you choose. For example, it may say 1151 socket but not tell you if it’s Rev 1 or Rev 2. Stick to your Chipset Code. Decide that first.

So, this part is easy; with generation, series and socket, you get exactly one Chipset. Wait… what? No? Arrgggg. Ben why did you forsake me?

Luckily, we can at least easily identify which chipset goes to which series of chips.

Chipsets are always numbered the same as their series number. Well not exactly, but you will see what I mean.

  • A series 300 chip goes in a H310 or a B360 or a Z390… Letter3XX
  • A series 200 chip goes in a B250 or Q270 or Z270… Letter2XX
  • A series 100 chip goes in a B150 or Q150 or Z170… Letter1XX

ANOTHER PITFALL – Once again, some 7th gen chips need bios updates to work with their correct series. For real, just stick with 8th or 9th so I can stop warning you about it.

– From here on out we will assume you got smart and are going with an 8th or 9th gen Chip.

So that narrows down the Intel Chipsets to the following:

B360, Z370, Z390, H310, H370,

CAUTION LAVA PIT – Be careful, B365 doesn’t follow the rule. It’s actually series 200 for some strange dumb reason. Strike three intel. Strike three.

Which Series 300 Chipset?

ASUS Strix Z390 Motherboard
ASUS Strix Z390-E Gaming LGA 1151 ATX Motherboard

So, we have five chipsets to narrow down. You can see the full comparison at Intel’s website.

For the sake of speed, which is what I am assuming that you want, let’s cut that down to four. Goodbye H310. It’s a budget chipset, not for building a gaming machine or pro workstation. For the sake of a dedicated video card (for gaming or for multiple monitors at your workstation), goodbye B360 as well.

So now that we are down to three, here is the breakdown. I’m leaving price out of it at first because at this point, you need what you need and want what you want.

  • H370 – No Overclocking – USB 3.1
  • Z370 – Overclocking – Multiple GPUs – No USB 3.1
  • Z390 – Overclocking – Multiple GPUs – USB 3.1

My thoughts on these options:

Overclocking – With the speed of chips now a days, overclocking is, in my opinion, unnecessary. Just remember if you want to overclock, your chip needs to be unlocked K-series (Example I7-8700K)

USB 3.1 – At twice the speed, it sure makes file transfers faster. If you don’t plan to transfer a lot of files though, may not matter. In fact, most systems won’t even take advantage of the full 10Gbps anyway. It will probably be more important in a few more years, but not yet.

MAX GPU for Bitcoin mining
Bitcoin mining? MAX GPU

Multiple GPUs – Not needed if you get a good single GPU like a sweet 2080 RTX

Oversimplification: H370 is your non-gaming, power workstation mobo. Z370 is your gaming Mobo. Z390 is your upgraded gaming Mobo.

Price wise: H370 cheapest, Z370 Middle, Z390 High

STEP-OFF-A-CLIFF CAUTION – All three support integrated Wi-Fi, but very few Z370 motherboards actually have it.

WHICH MOTHERBOARD?

Now that we have narrowed it down to three types of motherboards, we can now open up Amazon or Newegg and actually go search for some mobos. Let’s try Newegg. Open up Newegg. Let’s see what happens when we type in Z390 boards… Yea, that’s too many results… However, we can use Newegg search to narrow down more of what we want.

Let’s go through some Specs under the Intel Motherboards.

CPU Socket Type – Hey you learned about this. Let’s stick with the LGA 1151 (300 Series) ← How nice of Newegg to tell us which Series. Cool, we are down to 999+ boards.

Motherboard size comparison
Form Factor – AKA Size of Motherboard

Form Factor – This is the size of your motherboard. Simply put, the size motherboard you want is dependent on the size of case you want to build. If you are reading this guide, it probably means that you’re a part time builder, not a hardcore enthusiast who’s going to build a custom $15k walking death machine. So let’s stick with the ATX.

Manufacture – Stick with the name brands. ASUS, MSI, Gigabyte, ASRock. No use blowing up your computer with a no name brand.

Chipset – Hey you know this one too. Select either your H370, Z370 or Z390. If you pick Z390 we are now down to about 500 boards.

Condition – New, never buy used. Like my ole pappy use to say. Used is just a useful way to inherit someone else’s problems.

Here on out, we are going to be talking about things that exceed this guide’s purpose. It’s items like… What do you want in a build? There are no wrong answers after this. Your board will work with the chip you have. Just depends on how you want it to work.

M.2 – Do you want 1, 2 or 3 available slots? (I think two is fine) but I would leave unchecked to see your options. Ultra vs normal? Blah marketing ploy.

1975 IBM Computer
1975 IBM Computer – $19,975.00

Price – You need what you need and want what you want.

Number of Memory Slots – Always 4 in my book, even though I’ve only ever used two slots. Don’t ask…

Maximum Memory Support – Doesn’t matter. Leave blank. We just need 16 GB right now anyway.

Onboard Video Chipset, HDMI, PS/2, DisplayPort – These options don’t matter. Your video card will take care of this stuff.

SATA – Always try to get at least six. Your M.2 will eat up some of these lanes and you want plenty of room to run that raid. As for speed, 6GB/s is standard here.

Lan Speed – 10/100/1000 is fine, nothing really supports /2500 yet. Leave blank.

PCI Express – Doesn’t matter, by time you hit this point, the boards we have listed will have enough slots. Especially if you are going for just one video card and onboard wireless

USB – Up to you but will affect price. I would leave options unchecked and see where the dice land on these… Unless for some crazy reason you are set on 8 USB 3.1 ports. Then power to you player.

Cool looking motherboard back panel
Always check out the back panel to make sure it looks cool enough!

Wireless – I would say yes on this one, but it’s a personal preference. If you have access to a hard line, then you may not want to spend the extra dough. However, it’s always nice to have backup in case dog chews up your Cat6 cable.

Audio – Personal preference. I like my headphones, so I don’t wake up the kids, so I hardly ever pay attention here.

No other options matter.

Final Selection

Hopefully at this point you are down to about a dozen or so boards. Most differences at this point between the boards are dependent on the items above.

For example, you may see 6 boards that have Wi-Fi and 6 that don’t. It’s up to you to choose at this point. Any and all of them will work with that chip you have. Let’s look at some final selection points to hopefully narrow down your choice. After all, there still may be a difference of $100.00 or so dollars between these motherboards.

– Pitfalls and Price spikes

Motherboard marketing example
This MSI GODLIKE GAMING motherboard turns you into an actual gaming god! Believe it!

Motherboard Names: Whatever you do, all we care about is the specs. Don’t let fancy names like “Phantom”, “Maximum”, or especially “Gaming” pull you in any one direction. The only thing that “Gaming” name does for a motherboard is add to the cost. Don’t get suckered by the title “Gaming”. It’s the same as gold plated HDMI cables. Fancy sounding, utterly useless. Once again, ignore the name, check the specs.

Letters or Numbers after Chipset: Let’s say you see a name like Z390-E or Z390-A. These letters are the manufactures designation, not Chipset identifier. For example. Z390-A from manufacturer X may be the non Wi-Fi model, while the Z390-B from manufacturer X may be the Wi-Fi model. Once again, think of these like names, ignore and pay attention to the specs.

Unique Features to the Motherboards, AKA Fluff to sell motherboards for more than they are worth: You will see each company try to sell their motherboards for more money than they are worth by selling you Unique Features. I have learned a unique feature is a distant second to an easy bios to navigate (Navigating Bios, perhaps another time). Time to make fun of some motherboards.

Super Alloy Marketing Gimmick
ASRock. Good brand, needs better gimmick.

ASRock – Super Alloy. This motherboard won’t be stopping bullets. Don’t care.

MSI – Audio Boost. To blow your ears away… literally…? Don’t care.

ASUS – SafeSlot Core fortified PCIe slots… Just in case your video cards decide to party… Don’t care

GigaByte – DualBIOS.. When one bios is for babies… Don’t care

BIOS
Why buy one Bios, when you can have two for twice the price!

There are tons and tons of other useless unique features. My recommendation. Skip this section. For the most part it’s all gimmicks.

DON’T STEP IN LAVA EXAMPLE: Example of up-selling unique features. I don’t want to diss any particular motherboard too much, but you will find a $150 motherboard vs a $250 motherboard. The only difference? Well get this. $150 motherboard has better specs, but nothing listed under unique features. The $250 motherboard, has lesser specs, is named “gaming” and has about 20 unique features, none of which will increase gaming performance. No brainer; get the better $150 motherboard . Spending more money does not equal better motherboard .

FINAL TEST – Identify!

And no, I’m not recommending this motherboard. You recommend your own motherboard.

ASUS ROG Strix Z390-F Gaming LGA 1151 (300 Series) Intel Z390 HDMI SATA 6Gb/s USB 3.1 ATX Intel Motherboard – Identify!

ASUS ROG Strix Z390-F Gaming LGA 1151 (300 Series) Intel Z390 HDMI SATA 6Gb/s USB 3.1 ATX Intel Motherboard

  • Generation – 8th or 9th
  • Socket – LGA 1151 (v2 since we know the Series)
  • Series – 300
  • Chipset – Intel Z390
  • Size – ATX
  • Brand – ASUS

That’s all we know from this title from this motherboard. I crossed out the completely useless info you should be ignoring to know if this motherboard will work with your 8th or 9th gen Intel Chip.

You now know everything you need to know. If you didn’t learn it here, it’s more than likely not important. Go out, get an awesome motherboard between $100 and $200 and build your baby. Only thing I ask is that you follow the golden rule of building. You always, always NAME a computer you build yourself. It’s the rule. (Just like my latest child, Echo, His older brother Titan and the grandparents Beast and Big Birtha) Happy building!

In His Service,

Jeff

PS. For those like Ben, who are too busy running awesome websites and don’t have time to research what motherboard they want. Here are two randomly chosen motherboard that will work just fine.

Ryzen 7
Uhhh Jeff…. Now what!?!

If you like this and want more computer building posts or would like a tutorial on AMD motherboards, be sure to let Ben know so he lets me do another post. Until then.

My First Book | LastPass Guide | Coming Soon

I’m writing a book! I started around July and figured it would take between 6 and 12 months to complete. Turns out I made pretty good progress and will likely be finished in January or February. I plan to self-publish and sell it right here on b3n.org.

This is a book cover for my first book, LastPass Guide.  A Step by Step Guide to Managing Your Passwords.

The book is called LastPass Guide (although I’m testing other titles), it is a step-by-step guide to teach people how to use the LastPass Password Manager. I’ve helped many people with LastPass and I know where most get tripped up–I often wish there was a guide I could point people at and I finally decided to write one.

It is simple enough a non-technical person could pick it up and not only become proficient in using LastPass; but also have a good foundation of security best practices by the end. The book also covers security essentials: many that I’ve seen cyber-security experts overlook. I’ve had a few tech professionals review the book and tell me they’re changing their security practices as a result.

If you’re interested in getting updates on the progress feel free to sign up for my newsletter. You’ll also get a sample download from the book.

Book Progress and What’s Left

The truth is I’ve never self-published, or published anything other than this blog so I’m learning as I go. My to-do list is very different now than it was at the start. I’m also getting a lot of help and advice from books about self-publishing, and getting help from family and friends. I’ve even had Eli proof reading for me.

Progress (so far):

  1. [x] Read several books about writing books
  2. [x] Decide to sell on Amazon or Self-Publish (decided to self publish).
  3. [x] Write a first draft
  4. [x] Send a draft to my editors (family and friends) for feedback
  5. [x] Decide whether to get a new domain for the book or sell it on b3n.org (decided to sell it on b3n.org).
  6. [x] Pick a working title (“LastPass Guide”)
  7. [x] Inform LastPass’s marketing/legal team to make sure there won’t be an issue (just gotten crickets so far)
  8. [x] Design a book cover
  9. [x] Design a Coming Soon Landing Page
  10. [ ] Pick an eCommerce platform (leaning towards Gumroad or WooCommerce)
  11. [x] Review notes / advice from reviewers
  12. [ ] Second round of review / edits
  13. [ ] Run Google Ads A/B testing to test different titles (just started this yesterday).
  14. [ ] Determine Final Title
  15. [ ] Final Book Cover Design
  16. [ ] Third and “final” review / edits
  17. [ ] Photos
  18. [ ] Get testimonials (in progress)
  19. [ ] Setup eCommerce platform
  20. [ ] Build Better Landing Page
  21. [ ] Figure out how to use Facebook and Twitter to announce the launch, if I use those at all. May skip this since I’m not a huge fan of Facebook.
  22. [ ] Setup a discount and run some tests orders through to catch any issues
  23. [ ] Pre-Launch to email subscribers with Discount
  24. [ ] Remove Discount and Launch

Frequently Asked Questions

When will the book be released?

I’m targeting to release end of January or early February 2020.

Why didn’t you choose KeePass, Bitwarden, 1Password, [insert your favorite password manager here]?

LastPass is in a fairly unique position in that it is ubiquitous, fully featured, very well audited and monitored by security firms, has reasonably priced plans and security measures that make it acceptable for individuals, families, small businesses, and enterprises. Some reviewers have asked why I didn’t base the guide on KeePass. While KeePass may be more secure since it is offline, KeePass is missing four key features most people will want: A Dead Man’s Switch, Automatic Sync, Easy Browser Integration, and Sharing.

Can I get a discount?

During pre-launch we will have early release pricing for a few days before it is released to the masses… the exchange for the discount is I want you to be watching for problems in the ordering process and let me know if there’s an issue.

Are you planning to do coupon codes or future promotions?

No. While I am trying to learn some marketing strategies, I’m very much against marketing tactics designed to pressure people into buying before they’ve had a chance to think about it. Other than the initial launch I don’t see doing time-based promotions. I don’t ever want someone to buy a book at full price and then find out it’s on sale at half that price a day later.

Will there be an affiliate program?

Not at launch due to time constraints, but if there is interest I can set it up post-launch. Probably at 50/50 revenue sharing. Shoot me an email if you’re interested.

Why Aren’t You Selling This on Amazon?

A couple of reasons:
1. I want buyers of the book to be my customers. When you sell on Amazon, buyers are not your customers. This is the main reason I chose to self-publish.
2. This book includes a lot of screenshots and graphics and Kindles are just awful at rendering those. How many times have you seen poor reviews on a great book because of the Kindle formatting issues? This book is much better as a PDF format where I have control of the formatting and design. This is not to say I’m not a fan of Kindles, this just isn’t the best book for it.

Will it just be an eBook or are you going to sell a paper version?

Just an eBook. That’s the best format for three reasons:
1. The thing with technology is things can change so I’d rather be able to send out updates as needed which you can’t do with a physical copy.
2. I’m not setup to do fulfillment. I’d have to charge something like $200 a book to make it worth the effort.
3. It’s easier to fix typos and mistakes with eBooks.

Aren’t you going to blog about some cool tech stuff soon?

Yes, several posts are in the works, including my first guest post.

What computer did you write this on?

Dell Latitude E5450.

Well, that’s all for now. Hopefully I’ll have a progress update in January.

Cloudways Managed WordPress Hosting

Save Time Managing WordPress

Last week I moved b3n.org from DigitalOcean to Cloudways Managed WordPress Hosting. Why? Well, there is nothing wrong with DigitalOcean, they’ve been fantastic.

But my problem is I hardly had time to maintain the technology stack. A few weeks ago I was in the process of adding a couple of WordPress sites. This isn’t difficult, but it’s tedious. You have to create user accounts, modify NGINX site files, setup SSL Cert Automation, configure Varnish and Redis for caching, install WordPress itself and set all that up for security, auto-updates, caching, etc. Then a year from now I’m going to have to migrate everything to a new host when Ubuntu 16.04 goes EOL (End of Life) for security updates. As I was working on this I thought to myself… What am I doing!?

Logos of Apache, PHP, MariaDB, redis, WordPress, Memcache, Varnish, NGINX, and Let's Encrypt

Before: On DigitalOcean I spent a lot of research and testing and setup plus several hours a month maintaining the OS, technology stack, security updates, and performance tuning necessary to run WordPress.

After: Now I host WordPress on Cloudways and they take care of it for me. When I want a new WordPress instance or to make a change I push a button on a web interface. Done.

What did that time savings cost me? It cost me dearly. My monthly hosting went from $5 to $10.

Before finding Cloudways I had a bit of a journey. I started by looking into hosting options… and decided I wanted managed hosting. This is mostly because I feel like I’ve done a much better job at tuning WordPress than shared hosting providers I’ve used in the past.

Managed Hosting vs. Shared Hosting

Managed hosting typically differs from shared hosting in the service level they offer. I say typically because many managed hosting providers fall short, and many shared hosting providers excel in these areas. But in general Managed Hosting providers are better at:

  • Automated backups
  • Multiple environments (Dev/Stage/Prod) and migration between them
  • Performance tuning
  • Caching and CDN
  • Security updates
  • Guaranteed or dedicated resources (cpu, memory, I/O, bandwidth)
  • Monitoring
  • Self-healing
  • Better control of when core components get upgraded (PHP, MySQL, MariaDB, etc.). This is useful because if you want to take advantage of the latest version of PHP like 7.3 you can, but if you have a plugin that isn’t compatible you can stay on an older version.

Managed Hosting Options

I had my shortlist. SiteGround, Bluehost, WPEngine, etc. Note that I am not looking at the cheaper shared hosting, but at their managed hosting plans.

All looked like they’d be great but what irked me is they want you to pre-pay for several years in advance to get the advertised price. I am used to hourly billing with DigitalOcean. The thing with technology is things change fast so I want flexibility. I don’t ever want to be locked into a situation where I’ve prepaid 2 years of hosting.

The other concern is the affordable plans had monthly visitor limits, bandwidth limits, or number of WordPress install limits. Most were under what b3n.org needs which would push me into the $100+ plans. Maybe my DigitalOcean droplet isn’t so bad after all!

So back to Google searching… I came across Cloudways. What’s the best way I can describe Cloudways? The DigitalOcean of WordPress.

What Separates Cloudways

What makes Cloudways unique is when you deploy WordPress, you’re not just getting a managed WordPress Application. You’re getting your own Cloud Server and you can install as many WordPress instances under it at no additional cost. So the hierarchy is:

  • Server
    • WordPress site 1
    • WordPress site 2
    • etc…

If you run out of capacity you can scale horizontally (deploy more servers) or vertically (more cores, memory, and ssd space).

Logos of DigitalOcean, Linode, Vultr, AWS, and Google Cloud Platform that Cloudways allows you to deploy to.

Cloudways doesn’t have their own infrastructure. Rather they partner with DigitalOcean, AWS, Google Cloud, Linode, and Vultr so you pick the underlying cloud vendor. So when you deploy a server on Cloudways you’re actually getting a managed cloud server.

Features I like from Cloudways

  • You can choose your desired cloud provider based on your needs.
  • Price is affordable ($10/month for a small DO droplet)
  • Per hour billing (no pre-paying years in advance).
  • Unlimited sites and WP instances, you can scale up as needed.
  • Choose any location you want
  • Staging Environments!
  • WordPress migration (mine migrated over flawlessly) from your old server
  • 24/7 Support … now when my server has trouble I don’t have to call myself.
  • Linux, Apache, NGINX, SSL Cert automation, Varnish, redis, security updates and all of that stuff I used to maintain myself is now taken care of for me! |:-)
  • Monitoring and Auto-healing can correct problems proactively.
  • There are a lot of checks for best practices and server health. I temporarily disabled the Breeze cache plugin and got an email the next day telling me it was still disabled. Similarly there are checks for load and performance.
  • You can choose which version of PHP and MariaDB to run on.
  • And now when Ubuntu 16.04 LTS goes EOL…. I don’t care!
  • WordPress Instances come pre-optimized (have Breeze caching plugin installed, Memcached, etc.).
  • It’s not limited to WordPress so Drupal and other PHP applications are supported as well.

Where Cloudways Could do Better

  • I’m a bit unclear what what happens when the server I deployed goes EOL for security updates. I can’t imagine they would upgrade it autonomously since that would be risky. I’m guessing it would fail a health check and I’d get a notification to upgrade? It’s something I’ll have to keep an eye on, but it could be made clearer. If the solution for this is to deploy a new server and move your WordPress Instance over to a new server that can be done with a few clicks from the web interface.
  • The Cloudways interface is not snappy. It can take a few seconds to bring up monitoring metrics.
  • Where are floating IPs?! With DigitalOcean I can get a floating IP that I can assign to one droplet and then reassign it to another droplet. With Cloudways it looks like moving to another server would require DNS changes.

Conclusion

In the the chart below I have:

  • IaaS (Infrastructure as a Service)
  • PaaS (Platform as a Service)
  • SaaS (Software as a Service)

Cloudways would fall in PaaS. They manage everything that WordPress runs on (PHP, MariaDB, Varnish, Apache, NGINX, etc.). Although they step in the SaaS world a bit since they will automatically deploy optimized WordPress instances for you with things like caching pre-configured, but for the most part you’re still managing WordPress yourself.

Chart showing IaaS, PaaS, and SaaS.  Cloudways falls under IaaS

All in all Cloudways Managed Cloud Hosting seems to be a decent offering. One side benefit is they’re just better at performance tuning than I am. On DigitalOcean where I was maintaining the platform myself b3n.org was able to handle a sustained load test of 150 clients per second, on Cloudways it handles over 1000 clients per second.

My First 3D Printer! Ender 3 Pro

Eli Assembling Ender 3 Pro

I’m not sure exactly how it started, it might have been when Eli and I were trying in vain to find Lego Technic sets with lots of gears, or when Kris was discussing with me purchasing learning aids for school. … and I started to realize we could 3D print this stuff!

Just with the things we buy for school each year a 3D printer will pay for itself in 2 years.

What is 3D Printing?

3D Printing is also known as Additive Manufacturing (AM). This means instead of injecting molding, items are created by printing layers on top of layers. Now injecting molding is fine for mass production, but for small quantities it doesn’t make since because molds aren’t cheap to make. For 3D printing a variety of methods and materials can be used. I use PLA (Polylactic acid), the plastic is fed to the printer and heated to the point of melting. It then comes out a nozzle where it is cooled and solidifies. The nozzle is controlled by X, Y, and Z axis stepper or servo motors allowing the nozzle to be positioned anywhere in the print area.

Octopus with articulating legs… the 3D printer can print the leg segments in place interlocked. I don’t think this is possible in traditional manufacturing.

Of course, I know very little about 3D printing so I turned to my coworker, Brad, who has designed and printed out prototype aircraft components and has actually flown them. I asked him for the best quality budget 3D printer. He has a few of the larger fancier Creality printers and told me the next one he would likely buy for himself for smaller prints was a little Creality Ender 3 Pro. One thing I’ve learned: if the expert is willing to buy something for himself, that’s what you want.

The Ender 3 Pro comes with all the tools needed for someone new to 3D printing. Allen keys, wrench, screwdriver, pliers, SD card and USB adapter, nozzle cleaner needle, blade, etc. The Pro version adds a few features that I think make it worth the extra cost of the normal Ender 3: It is a bit more sturdy, has a better (quieter) PSU, can resume printing after a power failure, and has a magnetic flexible print bed which eliminates the need for glue or hairspray to get prints to stick. The 3D prints adhere very well during printing and peels right off when done. I hardly ever need to print with rafts or support structures. I don’t even print a brim.

It arrived noon on Friday, Eli couldn’t wait so he and Kris mostly had it together before I got home. We finished the assembly, I didn’t level the bed or anything, I popped in the SD card that came with the machine, selected the cat model that was already on the card, and it started printing, and printing, and printing…. okay, so it took a long time. So we all all went to bed.

Next morning I woke up to hearing, “It finished!” We had a cat! Which Eli promptly painted. …here’s our first print:

Not bad for a first try.

For our second print we decided to print something simple like the Eiffel tower. I found one on ThingiVerse and opened it up in the Creality Slicer (a slicer is a program that converts 3D models into a gcode file that the printer understands) that came with the printer. It took me 3 tries.

This was my last print using the Creality Siicer. I had to go crazy on the rafts and support structure but this isn’t needed with the default Ender 3 Profiles that come with Cura.

Our first attempt ran for an hour or two then one of the 4 legs fell over. I tried it again with a raft but it still fell! Then I made huge rafts and a support structure and it worked! But the print came out stringy. I was using Creality Slicer since it came with the printer. Then I remembered Brad told me to try Cura. So I downloaded that… and it was a night and day difference (even though Creality Slicer is based on Cura). I told Cura what printer I had and it had pre-loaded sane defaults for everything from print speeds to head extraction. Now that I’m printing with Cura, I don’t need support structures, and no stringing. I’m guessing most of the difference was in the default profiles.

Print Workflow

Business Card Holder from ThingiVerse

What does a 3D print workflow look like?

1. Go to Thingiverse and search for a 3D object. Thingiverse is a huge library of 1,500,000 3D printable models. I’ve found everything from Craftsman versatrack compatible bike hangers to spare parts for my car. Download the STL file (this is essentially a CAD file).

2. Open the STL file with Cura (free open source) which is a slicer to convert the object into instructions the 3D printer can understand. Cura has well tuned default profiles for the Ender 3. The instructions will output into a .gcode file. I popped one open and it is a text file with line by line instructions for the printer to go to these x y z coordinates at these speeds at this temperature, etc. Essentially you copy this to an SD card, insert it into the printer, and print the object.

3. The printer will pre-heat the bed and PLA, then start printing. I would say we have a success 9 out of 10 times. Sometimes I won’t have the bed quite level or the temperature won’t be right for the specific PLA brand/color I’m using (even different colors print at different temperatures). But you can save those color profiles in Cura so once you have it dialed in it should work going forward. Generally if the first layer succeeds the print will be a success.

4. When done, let it cool for 30 seconds, bend the magnetic bed and the print peels off.

Can you Design and Print Your Own 3D Models? Yes!

Gears Eli designed in Tinkercad

Just about everyone has asked me this question. You can.

Tinkercad (by Autodesk) is a free web CAD designer that makes it simple to design 3D objects. The very first thing Eli designed in Tinkercad was a set of gears.

Stepper Motor Noise

Okay, so one issue I had with the Ender 3 Pro is the noise the servo motors make. The best way I can explain it is the printer sounds like R2D2 and C3PO are arm wrestling and you hear it throughout the entire house. I ended up swapping out the control board for one with silent stepper drivers. Once I did that, the only noise you hear is the fans. Much better. We have it near the kitchen and I’d say it isn’t silent. The fan is noisier than a typical computer fan but not nearly as loud as the dishwasher.

Motherboard

Infill Patterns

In Cura, you can choose from a number of Infill Patterns. Each has their advantage. Some are designed to be stronger, print faster, save on material. One of the huge advantages 3D printing has is you can pick a pattern and density to provide the strength needed for a particular use. This greatly reduces the amount of plastic needed to fill in a part. Here are the infill patterns in Cura:

Infill Patterns in Cura

Left to right the infill patterns are:

  • Gyroid
  • Cross 3D
  • Cross
  • Zig Zag
  • Concentric
  • Quater Cubic
  • Octet
  • Cubic-Subdivision
  • Cubic
  • Tri-Hexagon
  • Triangles
  • Lines
  • Grid
Infill Patterns Test
Cubic-Subdivision Infill Pattern

I usually use lines for quick prints. If I have a larger shape that needs to bear stress in multiple directions I’ll either use Gyroid (which is a 3D pattern found in creation) and or Cubic-Subdivision which will use more density around the perimeter and less in the middle (like bones).

Getting Started in 3D Printing

Here’s what I bought to get started.

  1. Creality Enter 3 Pro 3D Printer. 3D printer along with an essential set of tools.
  2. Silent Stepper Drivers Motherboard Upgrade
  3. Gizmo Dorks PLA Filament 1.75mm, 200g 4 Color Pack. I wanted to try a few different colors. These were easy to start with.
  4. Hatchbox PLA 1 kg spools in various colors.

One thing I’d say about 3D printing is at my budget it is not quite there when it comes to easy of use. There was nothing me, Kris, and Eli couldn’t figure out and get working, but it look us a bit of time to get the bed leveled and temperature settings dialed in. If you want something that is closer to “hit print and it just works” then you may want to pay a little more and get a Prusa Mini. It has auto-bed leveling and a network interface which makes it much more user-friendly. But you will pay quite a bit more for those features.

The Future

3D printing is the future. In the home it is going to replace the need to run to the store to get something small, and allow for 3D printing small parts to repair items instead of tossing them. Just like printers moved from businesses to homes, so will the ability to manufacture small plastic items. 3D Printing isn’t instant, but it’s already faster than Amazon Prime. And if it saves me from having to make a trip to Spokane to find some part it’s worth it.

For manufacturing, it greatly reduces the tooling costs. Injection molding will still be used for items produced in mass. But 3D printing lowers the tooling costs for smaller runs and one-off items. Not to mention the agility: a factory of general purpose 3D printers can instantly start printing something else to instantly meet new demands and market changes.

Transformer Pumpkin parts. I am amazed the printer can do those overhangs.

Things We’ve Printed (So far)…

  • Cat
  • Eiffel Tower
  • Pumpkin
  • Octopi to hand out as prizes
  • Pumpkin Transformer
  • UniFi USG and Switch mini racks
  • 3D Topography Maps of the 7 Summits
  • Craftsman Versatrack compatible bike hook
  • Drawers to store tools for the Ender 3
  • Impossible 3D shapes
  • Jig for drilling axles in a Pinewood Derby car
  • 3D Luther Roses for Reformation Day prizes
  • Business Card Holder
  • Gears
  • Benchy Boat
  • Lego compatible bricks
  • Carabiner

I switched to Duplicati for Windows Backups and Restic for Linux Servers

So long, CrashPlan! After using it for 5 years, CrashPlan with less than a day notice decided to delete many of my files I had backed up. Once again, the deal got altered. Deleting files with no advanced notice is something I might expect from a totalitarian leader, but it isn’t acceptable for a backup service.

Darth Vader altering the deal
I am altering the deal. Pray I don’t alter it any further.

CrashPlan used to be the best offering for backups by far, but those days are gone. I needed to find something else. To start with I noted my requirements for a backup solution:

  1. Fully Automated. I am not going to remember to do something like take a backup on a regular basis. Between the demands from all aspects of life I already have trouble doing the thousands of things I should already be doing and I don’t need another thing to remember.
  2. Should alert me on failure. If my backups start failing. I want to know. I don’t want to check on the status periodically.
  3. Efficient with bandwidth, time, and price.
  4. Protect against my backup threat model (below).
  5. Not Unlimited. I’m tired of “unlimited” backup providers like CrashPlan not being able to handle unlimited and going out of business or altering the deal. I either want to provide my own hardware or pay by the GB.

Backup Strategy

Relayed Backups

This also gave me a good opportunity to review my backup strategy. I had been using a strategy where all local and cloud devices backed up to a NAS on my network, and then those backups were relayed to a remote (formerly CrashPlan) backup service. The other model is a direct backup. I like this a little better because living in North Idaho I don’t have a good upload speed so in several cases I’ve been in situations where my remote backups from the NAS would never complete because I don’t have enough bandwidth to keep up.

Now if Ting could get permission to run fiber under the railroad tracks and to my house I’d have gigabit upload speed, but until then the less I have to upload from home the better.

Direct Backups

Backup Threat Model

It’s best practice to think through all the threats you are protecting against. If you don’t do this exercise you may not think about something important… like keeping your only backup in the same location as your computer. My backup threat model (these are the threats which my backups should protect against):

  1. Disasters. If a fire sweeps through North Idaho burning every building but I somehow survive I want my data. So must have offsite backups in a different geo-location. We can assume that all keys and hardware tokens will be lost in a disaster so those must not be required to restore. At least one backup should be in a geographically separate area from me.
  2. Malware or ransomware. Must have an unavailable or offline backup.
  3. Physical theft or data leaks. Backups must be encrypted.
  4. Silent Data Corruption. Data integrity must be verified regularly and protected against bitrot.
  5. Time. I do not ever want to lose more than a days worth of work so backups must run on a daily basis and must not consume too much of my time maintaining them.
  6. Fast and easy targeted restores. I may need to recover an individual file I have accidentally deleted.
  7. Accidental Corruption. I may have a file corrupted or accidentally overwrite it and may not realize it until a week later or even a year alter. Therefore I need versioned backups to be able to restore a file from points in time up to several years.
  8. Complexity. If something were to happen to me, the workstation backups must be simple enough that Kris would be able to get to them. It’s okay if she has to call one of my tech friends for help, but it should be simple enough that they could figure it out.
  9. Non-payment of backup services. Backups must persist on their own in the event that I am unaware of failed payments or unable to pay for backups. If I’m traveling and my CC gets compromised I don’t want to not have backups.
  10. Bad backup software. The last thing you need is your backup software corrupting all your data because of some bug (I have seen this happen with rsync) so it should be stable. Looking at the git history I should be seeing minor fixes and infrequent releases instead of major rewrites and data corruption bug fixes.
Raspberry Pi and 4TB drive on wooden shelf
Raspberry Pi 4TB WD Backup

My friend Meredith had contacted me about swapping backup storage. We’re geographically separated so that works to cover local disasters. So that’s what we did, each of us setup an SSH/SFTP server for the other to backup to. I had plenty of space on my Proxmox environment so I created a VM for him and put it in an isolated DMZ. He had a Raspberry Pi and bought a new 4TB western digital external USB drive that he setup at his house for me.

Duplicati Backup Solution for Workstations

For Windows desktops I chose Duplicati 2. It also works with Mac, and Linux but for my purposes I just evaluated Windows.

Duplicati screenshot of main page

Duplicati has a nice local web interface. It’s simple and easy to use. Adding a new backup job is simple and gives plenty of options for my backup sets and destinations (this allows me to backup not only to a remote SFTP server, but also to any cloud service such as Backblaze B2 or Amazon S3).

Animation of setting up a duplicati backup job

Duplicati 2 has status icons in the system tray that quickly indicate any issues. The first few runs I was seeing a red icon indicating the backup had an error. Looking at the log it was because I had left programs open locking files it was trying to back up. I like that it warns about this instead of silently not backing up files.

Green play icon
Grey paused icon
Black idle icon
Red error icon

Green=In Progress, Grey=Paused, Black=Idle, Red=Error on the last backup.

Duplicati 2 seems to work well. I have tested restores and they come back pretty quickly. I can backup to my NAS as well as a remote server and a cloud server.

Two things I don’t care for Duplicati 2.

  1. It is still labeled Beta. That said it is a lot more stable than some GA software I’ve used.
  2. There are too many projects with similar names. Duplicati, Duplicity, Duplicacy. It’s hard to keep them straight.

Other considerations for workstation backups:

  • rsync – no gui
  • restic- no gui
  • Borg backup – Windows not officially supported
  • Duplicacy- License only allows personal

Restic Backup for Linux Servers

I settled on Restic for Linux servers. I have used Restic on several small projects over the years and it is a solid backup program. Once the environment variables are set it’s one command to backup or restore which can be run from cron.

Screenshot of restic animation

It’s also easy to mount any point in time snapshot as a read-only filesystem.

Borg backup came in pretty close to Restic, the main reason I chose Restic is the support for backends other than sftp. The cheapest storage these days is object storage such as Backblaze B2 and Wasabi. If Meredith’s server goes down, with Borg backup I’d have to redo my backup strategy entirely. With restic I have the option to quickly add a new cloud backup target.

Looking at my threat model there are two potential issues with Restic:

  1. A compromised server would have access to delete it’s own backups. This can be mitigated by storing the backup on a VM that is backed by storage configured with periodic immutable ZFS snapshots.
  2. Because restic uses a push instead of a pull model, a compromised server would also have access to other server’s backups increasing the risk of data exfiltration. At the cost of some deduplication benefits this can be mitigated by setting up one backup repository per host, or at the very least by creating separate repos for groups of hosts. (e.g. a restic repo set for minecraft servers and separate restic repo for web servers).

Automating Restic Deployment

Obviously it would be ridiculous to configure 50 servers by hand. To automate I used two Ansible Galaxy roles. I created https://galaxy.ansible.com/ahnooie/generate_ssh_keys which automatically generates ssh keys and copies the key ids to the restic backup target. The second role https://galaxy.ansible.com/paulfantom/restic automatically installs and configures a restic job on each server to run from cron.

Utilizing the above roles here is the Ansible Playbook I used to configure restic backups across all my servers. This sets it up so that each server is backed up once a day at a random time:

Manual Steps

I’ve minimized manual steps but some still must be performed:

  1. Backup to cold storage. This is archiving everything to an external hard drive and then leaving it offline. I do this manually once a year on world backup day and also after major events (e.g. doing taxes, taking awesome photos, etc.). This is my safety in case online backups get destroyed.
  2. Test restores. I do this once a year on world backup day.
  3. Verify backups are running. I have a reminder set to do this once a quarter. With Duplicati I can check in the web UI, and with a single Restic command it can get a list of hosts with the most recent backup date for each.

Cast your bread upon the waters,
for you will find it after many days.


Give a portion to seven,

or even to eight,
for you know not what disaster may happen on earth.

Solomon
Ecclesiastes 11:1-2 ESV

How to Get Longer Life Out of Your Dell Laptop Battery

In 2015 I bought myself and Kris Dell Latitude E5450 laptops. 1 year later her battery was fine, however mine lasted 60 seconds on a full charge. I attribute this to Kris often using her computer on battery and not having it plugged in all the time, and me always having my computer in the docking station so it’s constantly charging.

60 seconds of run-time

I lived with a bad battery for 3 years… 60 seconds is enough to run from one outlet to the next without having to power down… which is really all I need. Although I’ll admit 120 seconds would be nice!

Battery Swelling Issue

A couple weeks ago I noticed a crack near my touchpad… and a bulge. My laptop was growing! Or rather, the battery was expanding! The battery pack is about 175% the height of what it should be!

That Dell battery pack on the left is a little swollen….

I quickly waited a few months, and decided that despite the battery still giving me my 60 seconds, this could be a safety or fire risk or my laptop might break if it swells much more, so out of prudence decided to buy a new Dell G5M10 battery. After installing it I went into the BIOS and noticed settings to change how Dell manages the battery! You can opt for faster charging, more run-time, or more longevity.

Here are the batttery life settings.

Charge Time, Run Time, or Lifespan. Pick any 1, sometimes 2.

  • ExpressCharge – Faster charging. This was the default! The problem is the faster you charge a battery the more you cause it to wear out sooner. This makes sense for people on the road who don’t have a lot of time to recharge. But it doesn’t make sense if you’re almost always on AC power like me. This setting probably has a high charge stop up to maximum capacity (100%?) and high custom charge start (95%) so that it’s always ready. I’m not an expert in batteries, but I believe batteries naturally lose power over time so each time it drops 5% of it’s power it charges back up to 100%… those constant charge cycles cause a lot of wear not to mention the battery is being held at full charge which causes it to degrade faster. Running in this setting is giving you the best performance but you’re pushing the limits.
  • Standard – This is the same as ExpressCharge as far as I can tell but a little slower charge. Other than that it’s still going to wear the battery out fast.
  • Primary AC User – Designed to extend the battery lifespan for laptops that are usually plugged in. I assume this does two things: It probably slows down the charge rate, sets the Charge stop to a lower value like 70%, and sets the charge start to around 50% (I’m completely guessing at these numbers). This reduces the number of charge cycles needed to maintain the battery and is generally charging the battery up to levels suitable for long-term storage instead of maximum performance giving you the best lifespan at the cost of run-time. If you want longevity at the cost of run-time this is the setting you want.
  • Adaptive – This is what the default should be! It’s a trade-off between the two. It optimizes battery settings based on how you typically use the computer. Meaning if you’re running on AC power all the time it will act more like the Primary AC power setting, but if it sees you are using the battery a lot it will start behaving like the ExpressCharge.
  • Custom – Could also set custom values

Dell BIOS Settings for Battery Maintenance

Optimizing Battery for both performance and longevity depending on the time of day

This will only drive your battery hard when you might need the run-time, but go easy the rest of the time. If you have a fixed schedule you can tell your Dell laptop what times of day you need more run-time. But then outside of those hours it will maximize longevity.

Dell BIOS Settings for Battery

Well, I’ll be changing my BIOS setting to Primary AC User.

And with my brand new battery I’m liking the new 4-hour run-time again. Now days I walk from outlet to outlet instead of running.

How to Get Longer Life Out of your ThinkPad Battery

If you use a ThinkPad read this KB on How to Increase Your Battery Life by changing the Battery Maintenance settings.

Running Chrony NTP under a VMware Guest

Here’s a quick guide to run an NTP (Network Time Protocol) server using Chrony with a GPS (optional) receiver on a VMware ESXi Guest running Ubuntu 18.04.  I should note this is experimental and something I setup in my homelab temporarily.  For production environments I would run NTP on physical hardware and not VMware.

Create and Configure VM

Be sure to disable Guest Tools Time synchronization by editing the VM settings and uncheck Synchronize guest time with host.

Disable VM Tools Time Synchronization

Set the CPU shares to High… we want the NTP server to have priority if there is processor contention.

High CPU Shares

Install Chrony

I diversified between Ubuntu’s, NTP.org’s and NIST’s time server pools.

That’s it, after restarting the chrony service (service restart chrony) you should be able to get time reports by running:

Why You Shouldn’t Run an NTP Server in a VM Guest

VM’s can’t keep accurate time

I’ve generally found that VMs keep great time inside of VMware.  One thing that can help with this is setting the CPU shares to high so your time server always has a priority.  I ran Chrony in a VM for several weeks, compared it with Chrony on a Raspberry Pi.  Both were acceptable, and both had a smaller standard deviation than public NTP servers over the internet, but the VM had a much smaller standard deviation than the Pi.  That tells me VMs running on better hardware may be better than lesser bare physical hardware at time tracking under certain conditions, and a local NTP server in a VM can be more precise than grabbing time off the internet.

VMs can become out of sync during snapshots, suspend, failover, etc.

I ran a suspend test and this is true.  I paused a VM, waited 10 seconds, then resumed it.  It reported the wrong time to NTP clients for several minutes before it corrected itself from external NTP servers.  Here’s a screenshot of my NTP server being 11 seconds off after a pause!

Chrony after VMware Suspend

This is a valid reason to run an NTP server on physical hardware.  However, I think it is possible to run an NTP server under VMware with the following precautions:

  1. Your NTP servers under VMware should never be paused.  That means they should be excluded from failover (instead of failover it’s better to configure multiple NTP servers for your clients to connect to since it’s better for an NTP server to be down than report a wrong time).
  2. Have multiple NTP servers.  At least three. You’ll notice in the screenshot above Chrony (running on a separate physical machine) flagged the server as not being accurate.  This way if one of your VMs gets paused chrony will switch to another time-source automatically.
  3. Set makestep 1 -1 in the chrony.conf file (this tell chrony that any difference greater than one second will get stepped which allows for faster correction after a resume).

GPS Receiver

This is not really related to VMware.  But I had a GPS receiver so thought I’d see how it works with Chrony….

GlobalSat GPS Receiver

I have a GlobalSat BU-353S4 USB GPS Receiver.  This isn’t the best GPS receiver for accuracy.  For me it’s accurate to within a few hundred milliseconds which is good enough for my experimental purposes but worse than just grabbing time off the internet.  For serious time-keepers you’ll be wanting to use something faster than USB and more accurate than what a cheap GPS receiver can provide.

Configure gpsd

Install Chrony

So, how did I get the values on the refclock line…

The way I came up with my offset of 0.250 is by initially setting the offset to 0.0, restarting chrony, and running chronyc sources -v several times taking note of the offset.  I’d get numbers like +249ms, +253ms, +250ms, etc.

Since my GPS is off by about 250ms I set the offset to 0.250.  Now it’s usually not off by more than 100ms.

Chrony Sources

The 100ms+- variance is not a problem when being combined with other sources, but if it was the only time source I’d be better off tolerating drift than the high variance of GPS for a short period without access to the NTP pools, if I had no internet for several months or an air-gapped network then time via GPS would probably be better than nothing–but a better GPS receiver should be used in those scenarios.

For most networks running chrony in a VM and using a GPS is unnecessary.  It’s better to keep it simple.  I just use the NTP service on my pfSense router and set all the clients to that.

Don’t forget to watch your clocks adjust themselves next Sunday!

Programming Management & Leadership Books

There are plenty of books on managing people; but there are few books targeting management of software development, and even fewer aimed at people who got promoted into leadership positions with no management skills.  I’ve read countless books looking for resources in that area…  I can find plenty of books about how to manipulate people or promote yourself (and I’ve had plenty of training to that affect) but those are not the books I’m looking for.

I want real authentic leadership and practical management.  Below you will find the best of what I’ve found over the last four years. And unlike some “Best Books for Programming Managers” and “Top 10 books on Leadership” lists you’ll find online… I actually read every book listed below. 

I should also note that even if you aren’t in a position of management these books should be beneficial.  Whether you have the position or not, everyone has the opportunity to lead.

Managing the Unmanageable

Managing The Unmanageable Book

“Most successful programming managers are former programmers: They can quickly grasp whether a developer is on track through the most informal of conversations, without having to ferret out the assessment through long strings of questions that can feel pestering.”



Managing the Unmanageable By Mickey W. Mantle and Ron Lichty (2012)

Managing the Unmanageable is the comprehensive handbook to gain a variety of insights and a tool set to manage software development teams.  I didn’t find it lacking coverage on any topic.

It rightly points out how managing programmers is like managing artists–programming is a creative job so you can’t manage that the same way you would manage most other jobs.

It goes over how to build relationships with and manage HR, your boss, other departments, etc.  How to define developer levels, how not to do incentives (which can often be more demotivating than motivating), job descriptions, how to conduct interviews, build culture, motivate developers, etc.  This is a wide book in what it covers.  The vastness of topics is unmatched by any other management book I’ve read.  It may only devote a few pages to some subjects but I haven’t found an area that it doesn’t cover at all. Even for areas it doesn’t go into great depth it references sources for further study.

I think this is the best resource for a new manager to get a comprehensive overview of every topic related to managing programmers.  What I really like about the book is from the experience of the authors it anticipates and provides guidance on a lot of challenges I had to deal with–reading this book helped me proactively plan how to deal with those situations.

For me, reading Managing the Unmanageable is like sitting down at a coffee shop with some seasoned managers and listening to their experience and wisdom.  Today I still use it as reference book.

Peopleware

Peopleware Book on Productive Projects and Teams

“The major problems of our work are not so much technological as sociological in nature.” 

“Most managers are willing to concede the idea that they’ve got more people worries than technical worries.  But they seldom manage that way.  They manage as though technology were their principal concern.  They spend their time puzzling over the most convoluted and most interesting puzzles that their people will have to solve, almost as though they themselves were going to do the work rather than manage it.”



Peopleware: Productive Projects and Teams (3rd Edition) by Tim DeMarco & Timothy Lister (originally published in 1987, I read the 3rd edition published in 2013)

Peopleware, as it’s title suggests is all about the people aspect of managing software developers.  It’s not a generic management book.  Most of it only applies to managing creative and intellectual workers.  It covers why programmers are distinct from and must be managed differently than other types of jobs, such as accountants or manufacturing workers.  The book covers topics like the importance of allowing time to think on the job, giving teams a sense of elitism to increase productivity, creating environments where teams can naturally form and jell, the importance of an interruption free office environment, why the surest way to improve productivity is by focusing on quality.

I learned environmental factors for a programmer cause a 10 to 1 performance difference.  A large section deals with the work environment.  Office design, layouts, how bad cubicles are, the importance of natural light, office size, privacy, etc.  This is a timeless classic.  It would benefit any manager, executive, head of HR, architect, or programmer (even if you aren’t in a management position, this book will help you manage yourself).

The Mythical Man-Month

The Mythical Man-Month

“Why is programming fun? What delights may its practitioner expect as his reward? First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things by his own design. I think this delight must be an image of God’s delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake.”

The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition) by Fred Brooks (originally published in 1975, I read the 20th Anniversary edition published in 1995)

This is a collection of essays about managing and organizing large software projects. Most important is Brooks’ observation that adding more man-power to a late software project will make it even later. My favorite observation of his was how the most productive teams are smaller because of the communication overhead, you only get fractional gains by increasing the size of large teams. Although pre-Agile, many of his ideas influenced Agile project management. He was well ahead of his time. This is a classic. 

“Adding manpower to a late software project makes it later.”

The Conviction to Lead

The Conviction to Lead

“Whenever Christian leaders serve, in the church or in a secular world, their leadership should be driven by distinctively Christian conviction.”

“Leadership is all about putting the right beliefs into action, and knowing, on the basis of convictions, what those right beliefs and actions are.  This book is written with the concern that far too much of what passes for leadership today is mere management.  Without convictions you might be able to manage, but you cannot really lead.”

The Conviction to Lead: 25 Principles for Leadership That Matters By Albert Mohler, 2014

This was not an easy find. I read fluffy leadership book after fluffy leadership book… and finally read Mohler’s book at my dad’s recommendation.  It has far more substance on leadership than anything else I’ve read.  Where others give you mechanics, tools and methods, Mohler gives you conviction and motivation based on well grounded beliefs.  It is not written just to pastors, nor just to leaders of Christian institutions (although this appears to be the main focus), but also to Christians who happen to be leaders in secular organizations–and that’s quite rare for a book on leadership written by a devout Christian.

Mohler’s book is practical because it provides the foundation for why and how Christians should be leading and the basis for leading in a secular world.  I would say the book is primarily written to C-level, but almost all of it I was able to apply to a smaller realm for lower levels of management if I limited the scope to my area of influence.  This is a good book for any Christian in a position of leadership.

Kindle vs Paper Books

I’ve been using a Kindle for about 6 years.  And have been reading paper books for longer than that!  I have two Kindles, one is the discontinued Kindle Touch, and the other is the newer Kindle Paperwhite.  Here are my thoughts on the Kindle and how eBooks compare to Print Books.

The Kindle Reading Experience

For much of the reading experience I prefer the Kindle.  It’s compact, lightweight, and easy to carry around.  With a kindle I don’t have to awkwardly hold a book open while my other hand is trying to not spill my cup of coffee.  Also when it starts to dim outside and I don’t quite have enough light I can turn on the backlight instead of the house lights.

Kindle Paperwhite vs Book

Backlight

So, e-ink displays don’t have as good of a contrast as real paper.  The reason Amazon calls their latest Kindle the “Paperwhite” is it has a backlight that can sort of match the brightness of paper by supplementing the light from your environment–the idea is you turn the backlight on just enough so that it still looks like it’s reflecting light like a book, but there’s just enough extra light to make it as readable as paper.   This does work, however I think the LED color Amazon chose is a failure.  The pure white LED backlight is too much in the blue spectrum and that’s very obvious when I’m reading under incandescent lights.  It’s okay in natural light but under incandescent lighting it should be warmer to match the surrounding atmosphere  This could affect health if reading right before going to bed.  I hope Amazon fixes this in the next version…maybe it should have RGB bulbs and a sensor to match the ambient light.

In very bright light paper wins out, but if the ambient light is dim as it often is in the Fall in Idaho the Kindle let’s me read a little longer before turning on the house lights.  This probably saves me 1 or 2  cents a year.

Physical Library Size

Kindle Library Size

The Kindle does have the advantage of being able to store my entire Kindle library wherever I am… not only is it smaller than 99% of my books, it can store all of my books in that space.

Fonts

90% of paper book publishers choose great fonts–but some don’t.  For some reason some publishers think their book needs a sans-serif font, or they pick a huge font, or too small a font, or the kerning is not normal.  It bugs me!  If you get the Kindle version you can override the publishers horrible font decision.  As an added bonus the font-size is adjustable so I can read anything without glasses.

Quality

I always prefer a good hardbound paper book to an eBook, however I’ve noticed lately a lot of authors are using cheap (self-publishing?) services–it seems to me the books are printed on demand and the quality is sometimes bad–I’ve had books that–the best way I can describe it is the book feels like I’m holding some ad-hoc document put together at a business conference rather than a book.  I’ll often opt for an eBook if I see the author is using a self-publishing service (not all self-publishing books come this way–I think it’s just a quality control issue so it’s a hit and miss).

Enjoying Books with Others

Eli and Jon reading maps

The social aspect of eBooks is poor.  Often when I’m on an airplane or a friend is at my house they’ll show interest in a book I’m reading or I have on the shelf and it makes a great conversation starter.  You just don’t get that with Kindle books because nobody can see what you’re reading.  Kids love physical books and will spend hours poring over maps, illustrations, and pictures which would be boring on a tablet.  I can easily give a paper book to a friend.  While Amazon has some provision for lending it’s very limited and it’s not as simple as handing your friend a book.

Highlighting and Taking Notes

For highlighting it’s a wash–the Kindle is sometimes a bit finicky when I try to highlight a passage and sometimes gets the wrong portion highlighted but for the most part I can get it.  Update: with a recent Kindle update highlighting is a lot easier and it automatically snaps to places that make sense like the end of a sentence–I can now highlight faster on a Kindle than with a paper book.  I always read a book with a pen or pencil but I find underlining a passage without the line going through the words to take a little more effort.  For taking notes in the margin nothing can beat pencil or pen on paper.

Diagrams and Illustrations

Diagrams are pictures are generally bad on eBooks.  For simple graphics it does fine.  But if the book has illustrations they don’t look as great because the screen is smaller and you lose color.

Kindle Lack of Color

Also, the Kindle completely fails at tables… this table below has data that is illegible on the Kindle… it’s too small to read and there’s no way to rotate it into landscape mode.

Kindle Table Fail

Flipping Through Pages

The Kindle is useless here.   Even in the flip through the pages mode the e-ink display takes too long to refresh.  A real book is much easier–plus I remember the layout of a page and generally know what I was looking for was in the 1st quarter of the book so can find it in seconds.

Searching

Here the Kindle shines.  If you are looking for a keyword or phrase you can find it very quickly.

Visual Indicators of Progress

Kindle Progress indicatorThis is a big deal.  I am very spacial and use the physical feel of how many pages I have read and how far to go as part of my memory.  This is all lost on eBooks.  With paper books it’s easy to see your overall progress at a glance, and if you want to thumb a few pages ahead to see when the chapter ends it takes half a second.  With an eBook I get something like location 675 or 24%.  That’s meaningless to me.   A progress bar might be nice!  Something visual and not just numbers.  Even web-browsers have scrollbars!

Reading Books as a Group

When reading books for study with others eBooks fail–I purchased an eBook for a men’s bible study but it didn’t work well when we quickly referred back to different sections of the book… nothing beats the speed of a physical bookmark.   Also everyone was referring to page numbers and I couldn’t get page numbers out of my Kindle.  Update: Kindle now has the ability to show the current page number in the bottom-right for most books.

Free eBooks

Amazon has a lot of free Kindle books for Prime members.  I’ve found the free books aren’t really that good so not much of a gain.

Free Classic Books

There are a number of great classic books you can download from the Guttenberg project, this may save you from purchasing a few paper books.

Updates to Books

Some of my more technical books have received free Kindle updates when the author chooses to update the text.  This is a benefit in my mind.  I think it would be better if the Kindle would highlight the differences.

X-Ray

Kindle X-Ray People

One nice feature on the Kindle Paperwhite is the X-Ray.  You can enable it for the page you’re on and it will tell you about the characters and give you some context (if you’ve forgotten the previous chapters or missed it).

Kindle X-Ray Terms

Newspapers

You can read newspapers on the Kindle.  But it’s worthless.  The Wall Street Journal digital subscription is completely separate from the Wall Street Journal Kindle Digital Subscription.  I’m not going to buy a Digital subscription for both my computer and my Kindle.

Synchronization

One great thing about eBooks is I can read them on my Kindle, then bring up the book on my computer to review my highlights while typing up notes–but it’s a hit and miss.  This works for Amazon books I bought from the Amazon store.  But if you buy Kindle formatted books from not Amazon there’s no way to get them to open up in the Kindle for PC program (even though they are available in Kindle for Android).  Very annoying.

So, What’s Better?  Kindle eBooks or Old Fashioned Physical Books?

It really depends.  I like both for different reasons.  I do have a preference for Print Books and mostly because I can visually track progress and visually see the layout of pages and flip through them.  Generally if it’s a book I’ll probably read once I’ll just get what is cheaper… but obviously some I’m going to insist on getting the physical version.  One feature that Amazon does for /some/ books is if you buy a physical, you can get the Kindle version for free, or heavily discounted.  I do hope that this becomes standard practice going forward–that’s the best of both worlds.

Of making many books there is no end, and much study is a weariness of the flesh.   The end of the matter; all has been heard.  Fear God and keep his commandments, for this is the whole duty of man.  For God will bring every deed into judgment, with every secret thing, whether good or evil.

– Solomon, Ecclesiastes 12:12b-14

7 Homelab Ideas | Why You Should Have A Homelab

Why You Should Have a Homelab

In 1998 my friend gave me a RedHat Linux CD.  I spent hours each day experimenting with Linux–I loved it.  2 years later I’m in a room with 30 other students at a University applying for the same computer lab assistant job–I’m thinking my chances are grim.  Part way through the mass interview a man walks to the front of the room and asks if anyone has ever used Linux.  I raise my hand–I’m the only one.  He takes me out of the interview for the lab assistant job, introduces me to the department director.  They took me out to lunch.  By the end of the day I had my first job as a Systems Administrator.

Learn things on your own and it will broaden your opportunities.

One of the best ways to learn about systems, applications, and technology is starting a homelab.  A Homelab can give you an enjoyable, low stress, practical way to learn technology.  A homelab will also help you find out the technical areas in which you are interested.  It’s also practical in that you can use it to service your own home.

Here’s 7 Ideas for Your Homelab

1. Router /  Firewall

Ubiquiti EdgeRouter X

The most essential piece of equipment will be your router.  I started out with consumer routers that I’d flash to DD-WRT / Tomato but now I use a virtual pfSense router.  Routers are great to learn about DHCP, DNS, VPN, Firewalls, etc.  I discourage using the router provided by your ISP, they’re usually not very capable and often not secure.  In most cases you can buy a DSL or Cable modem instead of the ISP provided modem combined with the router.  One inexpensive physical router I’d recommend is the Ubiquiti EdgeRouter X.   Ubiquiti provides free software updates (their model is you buy the hardware and the software is free), and you’ll get a handful of advanced features–it’s a very capable router and much better than a typical consumer router–to step up from Ubiquiti you’d be going to pfSense, Juniper or Cisco.

2. Storage

Supermicro StorageThe main reason I started my homelab was storage.  I was taking a lot of family pictures and videos and wanted to save them.  I know there are cloud services, but at the time they were expensive, and then you’re sort of trusting that provider to not delete all your photos or get bought out by a larger company and shutdown.

Then I started using VMware.  I needed faster storage with more IOPS.  One of the best Homelab storage solutions is ZFS.  ZFS takes the best of filesystems, and the best of RAID, and combines them into a software defined storage solution that I’ve not seen any hardware technology able to match.  Two popular free ZFS appliances I like are Napp-It (based on OmniOS) and FreeNAS.  OmniOS is a fork of OpenSolaris and is very robust and has tight integration with ZFS.

FreeNAS LogoI’m currently using FreeNAS which is the free open source version of iX System’s TrueNAS which is used by organizations of all sizes–from small businesses with a few TB of storage to large government agencies with PBs of storage.  FreeNAS has done a great job at technology convergence.  It is both a NAS and a SAN allowing you to try both approaches to storage (I prefer NAS because it takes better advantage of ZFS, but many prefer using SAN and there are benefits and drawbacks to both), it also has many built-in storage protocols:  FTP,  iSCSI, NFS, Rsync server, S3 emulator, SMB (Windows file server), TFTP, WebDav, it can join AD, it can even be an AD DC  (if you like living on the edge) it has a built-in hypervisor (bhyve) to run VMs for whatever you want.  This is now marketed as hyper-converged storage.  All of it is completely free.  You can build your own FreeNAS server like I did, or get started with a FreeNAS Mini from iX Systems.

A few years after I learned ZFS for home, my employer was looking for a new storage solution so having this knowledge and experience was helpful.  I was able to determine one vendor with a traditional RAID solution didn’t handle the RAID-5 write-hole problem properly.

3. Virtualization

VMwareVirtualization allows you to run multiple virtual servers on the same piece of hardware.  VMware is king in the small to mid-size business hypervisor market, and VMware offers their hypervisor for free.  The free version is just like the paid versions except you won’t be able to use some features (most involving high availability and fail-over with multiple servers).  But you can learn most of the concepts and features of VMware.  I’ve tried to use a number of hypervisors but I always come back to VMware.  I consider VMware my basic infrastructure.  From there you can learn about other things like networking, storage, and play with any OS or Linux distribution you want to.

Knowing VMware was hugely beneficial, I’ve implemented it for several businesses, and one of my previous employers.  And knowing how it works means I can discuss the VMware stack intelligently with the ops team.

See my FreeNAS on VMware Guide if you’re interested in running a virtual FreeNAS server inside VMware.

4. Networking

A Homelab without decent networking won’t get you far.  Fortunately if you use VMware you can leverage it to use virtual network switches.  For physical switches I really like the Unifi products.  They are simple enough for non-network engineers like me.  Everything can be configured using the GUI.  Unifi exposes you to managed switches, central management (with the Unifi controller), VLANs, and PoE (Power over Ethernet), port trunking, port mirroring, redundant paths with spanning tree, etc.

Unifi 8 Port SwitchI started with this little UniFi 8-port switch (4 are PoE ports).  I also added a UniFi 24-port switch so I could learn how to do setup a LAG and configuring VLANs across multiple switches (which was really simple using the Unifi interface).  I also like Unifi’s philosophy–they sell you the hardware but the software is free–which means you don’t pay for maintenance or support but continue to get free updates.  In a homelab you may not need to go crazy on VLANs, but separating your main network from your IoT devices may be prudent.

Learning how to setup VLAN tagging, and link aggregation and understanding how networking works helps me communicate better with the network engineers when discussing design and deployment options–they may be working on Juniper or Cisco equipment but I know the concepts of what they’re doing.

5. Wireless APs

Having a robust wireless setup is also a necessity for a homelab.  If you have a large house you get to setup multiple APs and make sure they can handoff connections.  If I was buying today I’d get a UniFi nanoHD AP.  I use an older model, the Unifi UAP AC Pro (I just have one because that’s all I need to cover my house, but if you can find an excuse to have 2 or more I’d recommend it since you can practice rolling updates without downtime, wireless handoff, etc.).  These are managed by the same Unifi controller as the switches.  I first gave them a try because I read Linus Trovalds uses Unifi APs, and they seem to be highly rated by tech professionals–and now I don’t think I’d go back to anything else.

I have written more about Unifi Equipment here.

6. Network Monitoring

Icinga

It is hard to maintain a reliable network and application stack without monitoring for failures.  There are hundreds of network monitoring solutions and it really depends on your needs.  The most widely deployed solution is Nagios.  I have had that on my Homelab, but lately I’ve been using Icinga because it’s simple and it integrates into Ansible.

7. Infrastructure Automation

Automating your infrastructure may not make as much sense in a small Homelab, but it does make sense to automate any task you do repetitively or a manual task that could be automated.  For me, this was  installing updates, deploying servers and renewing SSL certificates with Let’s Encrypt.  To manage this I use Ansible which is one of the most well thought out infrastructure automation tools I’ve seen.  Ansible can manage Linux and Windows servers.  Learning infrastructure automation, especially if you do it using version control and CI/CD tools like Azure DevOps (you can get a free account for up to 5 users with unlimited private repositories) is a great thing to learn for your career if you’re interested in the DevOps world.   The book, Ansible for DevOps by Jeff Geerling helped me get started.  I suggest getting the eBook since he has been known to provide updates to the book (not sure if he will continue to provide updates, but just in case).

At work we completely automated the deployment of Linux servers using Ansible–infrastructure as code.  It took a month of investment but it paid off big time with developers now being able to deploy VMware VMs at will with Ansible by making a Git Pull Request, our entire fleet of servers is updated automatically, and our server and configurations are all consistent.  This replaced an old process of waiting several weeks for a VM to be provisioned and configured by hand.

Bonus homelab application server ideas…

  1. Minecraft Server — popular Java game–it’s like playing with Legos and a great way to get your friends together for some casual games.
  2. Mumble Server – one of the best voice protocols for in-game communication.
  3. Emby Media Server — Anyone that has kids realizes those flimsy blu-ray drives aren’t going to last long.  It’s great to store and host movies, home videos, pictures, and audio.
  4. Asterix PBX Server – VoIP Phone server (use Twilio or Flowroute for SIP trunking).  Polycom makes great VoIP phones.  With Twilio SIP Trunking you can have a real landline phone number with E911 capability for a few dollars a month–and if you get multiple phones you can use it as an intercom system.
  5. Web Server (maybe start a blog) — I hosted this blog from a server in my house for years–until my ISP couldn’t handle the bandwidth.  Now days you can also use a service like CloudFlare to act as a CDN which really reduces your bandwidth usage.  Hosting your own blog is a great learning experience and gives you a place to log your homelab experiments, and share solutions to problems.
  6. Automatic Ripping Machine — Get all your Blu-Rays, DVDs, and CDs loaded onto your Emby server
  7. Backup server — I use a CrashPlan Business subscription to backup my FreeNAS server to the cloud (one of the main reasons I use a NAS as this would be less efficient with a SAN).  BackBlaze B2 is another great option to backup FreeNAS.

There are many more areas than I listed, but I think the above is a good baseline to get started.  Pick one area at a time–my homelab was built over many years–often the case is I will improve an area after a piece of equipment fails or I need to replace it for some other reason–that’s a great time to do research.  If you aren’t sure where to start, pick the area that you enjoy the most.  For areas you have no interest the best thing to do is something else–you’re probably not going to be great at something you don’t enjoy.   Certainly a homelab isn’t going to be a substitute for real-work experience.  But it does provide an environment to learn, experiment and enhance your abilities–and the great thing is since it’s your own lab you can learn things that interest you.

I think that’s the largest benefit of a homelab.  To me it’s a playground.  It’s a place put the love of learning into practice.  It’s a place of freedom.  Nobody else is dictating what you do here.  It’s a place to have fun while enhancing your skill.

Do you see a man skillful in his work?
He will stand before kings;
he will not stand before obscure men.     – Proverbs 22:29 ESV