macOS ships with an old and very out-of-date version of ncurses (5.7). This version does not contain a terminfo entry for tmux-256color, the preferred TERM value when using tmux.
If you installed tmux via Homebrew or MacPorts, then you will also have a newer version of ncurses (6.X) present on your system installed by your package manager. This is the version of ncurses that tmux itself was built against, which is why you can use
Read More…
I have always been a bit of a nerd about note taking and knowledge management systems. I read David Allen’s Getting Things Done with relish, and I’ve obsessively experimented with every iteration of note taking apps and tools mankind has created. Trello, Todolist, Evernote, Bullet Journal, you name it.
I think my obsession in this area is mostly driven by the combination of my love of useless trivia and my immense capacity for forgetfulness, a perfect recipe if ever there was one for developing the habit of writing things down.
Read More…
If you’re unfamiliar with the tool jq, it describes itself as the “sed for JSON”. It’s a powerful command line tool that lets you do complex parsing and manipulation of JSON documents and is extremely useful for testing APIs or analysing JSON datasets.
One challenge with jq, however, is finding just the right filter. The query language that jq uses is not always obvious, so typically you’ll spend a bit of time getting it just right to select the data you need.
Read More…
Managing so-called “dotfiles” (config files starting with a .
in your home
directory) in git is a fairly common practice. There are many write-ups on
this topic already, but I wanted to share my own workflow as well as some
potentially useful tips and tricks.
Read More…
Search is a handy feature you might want on your Hugo static site. Hugo does not have any built-in way to provide a search function, but they do offer some suggestions on how to do it yourself.
The difficulty with implementing a search function is that it usually requires some kind of server side logic, which is obviously missing when using a static site like Hugo. So any search implementation must be done entirely on the client side.
Read More…
I am not an economist by any definition of the word: I haven’t taken a formal economics class since high school. But in the last few years I’ve read a few books that have introduced me to the wonderful, fascinating world of economics, which I now consider one of my favorite subjects.
Two books that provide a good grasp on foundational economics are Naked Economics by Charles Wheelan and Undercover Economist by Tim Harford.
Read More…
Ever considered setting up and running your very own git server? It’s actually
quite easy! In this post, I’ll outline the steps I took to set up my own so
that you can give it a try yourself. But first, why might you even want to go
through the trouble of setting up your own server?
Read More…
You can use the lbdb tool to query an LDAP server within Mutt using the query_command setting. Setting up lbdb is out of scope for this article, although you can find plenty of documentation and examples online (here and here, for instance). One drawback to this approach, however, is that everytime you want to look up a recipient in Mutt you have to query your LDAP server, which can be quite slow.
Read More…
Porcelain and Plumbing git commit Plain English: Create a new tree object from the current index and create a new commit object from that tree. The commit object combines a commit message, parent, date, author, committer, and the tree. Update the ref pointed to by HEAD with the hash of the new commit object.
Plumbing Once files are in the index (using git add or git update-index) use git write-tree to create a new tree object:
Read More…
Tax time is approaching and this year, like every year, it is common to hear
people excited about receiving their tax return discussing the exciting
purchases they plan on making with this perceived windfall.
I want to challenge this conventional wisdom by stating a true but unpopular
fact: getting a tax return is not necessarily a good thing and, in most cases,
is actually the least desirable financial outcome one can achieve.
Read More…