I’ve done a lot of coding in the last two weeks. Playing with projects, adding features, fixing bugs, writing tests. I’ve done a lot of learning Vim (I’m writing this post in Vim, I think I like it). Some day I’ll feel like I’ve learned something in Vim that would actually surprise anybody and I’ll write it up. For now, I’m just playing catch up.

Wellness check

We’ll do this Overtired style, mental health corner at the top of the show…

I had a few manic days last week and am riding out this lull before depression hits. I’ve had depression that wasn’t preceded by mania, but I’ve never had mania that wasn’t followed by depression. Oh, in case you missed it, I’m bipolar. And I’m trying to talk about it more because, well, it’s scary to talk about.

I’m also ADHD, which can be a horrible combination. One symptom of ADHD is hyperfocus, where you can focus on one thing to the exclusion of all others. The problem is, that one thing is almost never the thing that most needs focus at the time. And when I’m manic, hyperfocus goes into overdrive and I have even less control than usual of where it goes.

I actually managed to focus pretty well on day job stuff. Set some impressive precedents that will definitely bite me when the inevitable downturn happens. Hopefully it will be manageable. I gotta get stabled out.

In the meantime, and in addition to doing a great job at work, I updated a bunch of projects. Here’s a rundown.

QuickQuestion

QuickQuestion — my little tool for building and querying a plain text database — got a nice update. I won’t bore you with the details, it just does what it’s supposed to do better now. Better searching, only show the best (and hopefully correct) result, colorized output, and fzf integration if it’s available. (And it should be available. Everyone should have fzf. If you don’t, go brew install fzf right now.) So now you can type a question and instead of just getting the first result, you get a fuzzy-searchable menu of all matches, allowing you to further narrow the results to get exactly the answer you were looking for.

Howzit

Howzit — my tool for tracking, referencing, and executing build notes for coding projects — also got a little love. The last time I mentioned it I had added templates which allowed you to import of common tasks between projects of the same type. I added some new metadata keys for use in the templates, required and optional, so that templates can specify what meta they need in order to execute their tasks. So if you have to have a docs_dir variable defined in order to use the Markdown template’s Spell check task, it will now warn you when that variable isn’t assigned in the build notes. And with optional variables specified, howzit --templates can now give you that info at a glance when you’re creating and editing build notes.

Templates can also now include other templates. Frivolous, but occasionally useful. And I was running into issues where some repositories contained a BUILD.md file that was not a Howzit build notes file, so I added a ignore.yaml file where you can specify patterns to ignore when looking for build notes.

Fish

I also spent way too much time playing with some Fish ideas, may of which are in my Fish repository now. I extended the jump tool to fuzzy match bookmark names, as well as be able to do fuzzy-matched jumping to subdirectories of that bookmark, all in one command. Ultimately I realized I was basically rewriting fasd (and autojump), so I also updated my z function (which, for me, is a shortcut to fasc_cd) to pass top matches to fzf instead of just jumping to the most obvious one (unless there’s only one match, then it just jumps). I applied the same concept to file opening, where I can type a familiar part of the file I want to edit, say v vimrcb and it will just open ~/.vimrc.before in vim for me. Or f bunch doc to open ~/Sites/dev/bunch/docs/ in Finder. Silly, maybe, but I’m lazy and it works great. I added some utility functions that make it easy to create aliases to incorporate any Mac app or CLI with fuzzy file finding.

I added a vanity function called box that outputs whatever text you give it surrounded by a box. Fortunately that one didn’t take me long. And file is handy, but I added filetype, which does similar but pulls its result from Spotlight metadata on the file. Same, but different. And a companion function called is that will test if any part of the content type tree contains a search string.

And that’s the wrapup. There was more, like a Bunch Beta release and a Marked bugfix release, but we have to stop somewhere. If you use any of these tools, check out the new stuff!