NO_BOOT_DEVICE: What's gracefully mean? What do you want .new to return instead?
NO_BOOT_DEVICE: I'd find it really confusing for .new to return nil, as a user.
It seems like immediately after that happens you'll end up with NoMethodErrors on whatever you try to do with the nil, anyway.
I'm using a Queue with Threads, and Queue#push is blocking, any idea what would make that happen. I share the queue with a thread via Thread.new(queue) do |queue|, and poll it for #empty? every 0.5 seconds, which should allow the child thread to push to it.
I'd been using Emacs for half a year and realized after watching a talk that I missed the power of vim. Now I use Spacemacs, so I get all the pain and benefits of both :-).
pipework: Overall, Spacemacs is very cool. Though it does leave you feeling unsure of how it all works, unlike if you home-brew your own .emacs.d/ collection.
I have been having some issues with macros, ironically, I go to replay a macro (or even use '.' in some modes) and I get part of my macro inserted into my buffer. Very frustrating...
pipework: I never learned Vimscript or whatever, so I just had a huge .vimrc that confused me. I did spend some time learning elisp (It's more approachable in that you can hack on it right in the editor, with context and tab-completion).