For all those little papers scattered across your desk
I stand for the Constitution, for due process, and for community that takes care of each other.
Junk Drawer is hosted by GitHub Pages and powered by the Jekyll engine.
So, what is the “Junk Drawer”? Good question. In my everyday life, no matter where I’m living or working, there’s always a drawer or desk space or shelf or shoe box where I throw flyers, books, notes, scribbles, and thoughts. It’s a catchall, and often times it gets quite cluttered.
This blog is dedicated to being a virtual representation of my junk drawers, holding musings and notes from my life. Primarily, I write about programming, but I frequently digress to other topics.
These days my current virtual Junk Drawer is a private Git repo that holds all my wiki files, managed by wiki-md. My old virtual Junk Drawer on GitHub is at benknoble/JunkDrawer.
Hi, I’m Ben
and my pronouns are he/him/his.
Please contact me with questions, corrections, or to chat.
Here’s some flair:
Check out my AWS certification.
Favorite editor: vim.
Editing should be done at the speed of thought, not the speed of click-and-drag or the speed of which-function-key-is-it
Favorite IDE: tmux.
No, it’s not an IDE like Eclipse. It is a great way to manage projects and terminals. (Note: I don’t even use iTerm! Terminal.app is good enough with tmux, even if it doesn’t support truecolor yet. I have been in Alacritty since 2020, however.)
Favorite shell: bash.
It’s the default; it’s what I learned; it’s just simple enough to be a really great shell (the core really is small). It does what I need and doesn’t get in my way. It’s easier to configure than zsh, and forces me not to rely on too many non-portable-isms. I do wish sh would get proper (associative) arrays.
I have switched to zsh for interactive use, but bash and sh are still my automation go-tos.
Favorite languages: a mix of shell, Make, Vimscript, and the functional stuff (especially Racket and Rust).
I’ve written enough SML to really enjoy it (see my entries for the 2019 Advent of Code, for example). Scala and Clojure are fun, but the JVM dependence makes it too heavy for me most of the time. I appreciate the true smallness of C, and have learned a lot from it. Haskell is next on my list. Then some new paradigms: maybe true logic programming or something. After that, something older and something esoteric.
(Languages I’m tired of? Python and JavaScript make the top of the list. The former is everywhere, but it’s functional-language side isn’t on par with things like SML or Clojure. The latter is, well, broken, though Deno seems to be making progress.)
Favorite OS: Gentoo.
I like my MacBooks, but I’m ready for more control. Right now I’m running Gentoo (“bare” i3wm) on a Framework Desktop with top-of-their-options specs, and really enjoying it. I know the value-proposition of Framework for desktop computers is limited, so for me it was about trading money (mild extra cost) for ease-of-build for my first PC build.
Since we’re talking about Framework, I explicitly do not endorse DHH or their connection to him.
Favorite version control: definitely Git.
I think some people prefer the mercurial (hg) interface, but I’m not sold. Git has outgrown its historical reputation for a complex interface, and is the de facto standard.
Favorite keyboard: my Ergodox EZ. Here’s my layout.
I also adore my Planck for travel.
Favorite colorscheme: I’ve been using Dracula for years. If you like Dracula, too, consider purchasing the Pro version through my affiliate link. Dracula is used on this website for code blocks, and I’ve contributed a lot to various open-source and Pro components of the theme.