You normally just [[ $VAR == "Value" ]], right? Well what about if the variable is set to an empty scalar? (VAR="")

It gets interesting, but for the TLDR; use if (( ${+VAR} )); to check if it is set.

Now onto why this is the preferred form (about performance)…

How Perfect Rail Networks Don't Work

January 2021: Factorio 1.1 introduced stop train limits! Read my take on the feature here.

Post has been updated September 2019! Read on further below,

This article was partially inspired by Korezaan’s post:

How Perfect Rail Networks Work

In this post I will show you the principles behind building rail networks in Factorio, so that you understand what you’re doing before you do it, you understand the problems when they appear, and, if no mistakes occur, you create networks that never jam ever.

(I recommend at least scanning over that post, it’s got useful information.)

Just because a train network never jams, does not mean it’s perfect.

This post will attempt to show you that trains are not actually as complicated as they are famed to be.

So here I am to explain…

  • Current number of hours played: 504
  • Game versions: 0.12 - 0.16
  • Longest game in hours: 145
  • Time spent figuring out rail theory in hours: still counting
  • Amount of notes: None.
  • Percent of played worlds with train networks: 100%
  • Number of perfect rail networks made: 1

This article is not for those inexperienced with trains, if you’re just getting started, check out this presentation.

Nobody Uses cd Anymore

2020 Update: a new “cd” (see bottom of post)

This article is due at least in part as a response to Olivier Lacan’s post,

“cd is Wasting Your Time”

After finding this post in r/Linux, I felt I agreed with the comments more so than the article. It’s fairly obvious that most Linux power users rarely ever touch cd when working in their interactive shell, and Olivier’s examples only made us cringe harder.

Take a look at the first few examples he gave of what a ‘routine’ shell use log might look like, and tell me that’s really how you want to use your shell?

If you know me well, you’ve probably already heard of the slew of tricks I have up my .zshrc, but as it turns out, most of those tricks aren’t really that tricky!

The Dotfile Drama

Oh gosh what happened to my configs…

I swear they’re around here somewhere.

Getting Tired of Gnome Shell Already...

It’s only been a month. I’m already tired of Gnome Shell.

Man, I wish I had Unity back.

But for now, I guess that’s not gonna happen. (I prefer support and available resources to continuing to use a deprecated piece of software, so let’s pretend Unity was already sliced and diced for this article.)

Gnome Shell has had a number of issues in 17.10, hopefully getting fixed in 18.04. But for now, while I’m on 17.10 and fighting with a number of non-gui related issues, I just want a good desktop experience that I can get work done with.