Welcome to the lab.

Web Excursions for December 04, 2019

Brett holding map

Web excursions brought to you in partnership with Codecademy, the easiest way to learn to code.

Zenia - Your personal yoga assistant
AI meets yoga. Uses the front camera of your iPhone (nothing recorded or sent to server) to provide real-time feedback on your poses. I tested this out, it’s pretty impressive and I’ll be interested to watch it expand.
Clicker for Disney+
Another one from the “Clicker for X” developers, this time for Disney+. This one is free, though I haven’t tested it myself as I’m not currently subscribing to Disney+.
A crowd-sourced library for your organization, in Slack. Like inter-library loans, but for your friends’ and coworkers’ personal book collections.
An interactive animation combined with your web form to gamify form completion. I dig it.
StarTech Thunderbolt 3 to Thunderbolt 2 Adapter
I recently upgraded from an older MacBook Pro to a newer, Thunderbolt 3-only MBP. I had a great setup with a TB2 dock and everything running through a single Thunderbolt port, and I was able to port that entire setup with this one $80 dongle. (I’ll admit, I eventually went for a TB3 dock, but this absolutely did the trick and made that investment entirely optional.)

Codecademy Pro

BrettTerpstra.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means to earn fees when linking to Amazon.com and affiliated sites.

Web Excursions for November 27, 2019

Brett holding map

Web excursions brought to you in partnership with MightyDeals.com, featuring great deals on software, training, and design resources.

Indieweb Webmentions on Middleman or Jekyll
I was having a Twitter conversation with @evantravers about his own experiments with Fish, and later noticed that our conversation had shown up as comments on his blog post. Which was awesome, and I wanted to know how it happened. He was kind enough to share his experiments with IndieWeb, Bridgy, and all the technologies that stick it all together for his static site.
An intriguing, open-source notes app. It uses Markdown with mmd-metadata-style “fields”, and has a whole template and scripting language for filtering and output. If you’re looking for a scriptable notes solution, this might be worth checking out.
Triangle - Better Web Type
If you can’t enjoy a game based around typographic perfection, this is not for you.
GNU Direvent
A file-watcher with a lot of options and event granularity. There is a boatload of options for watching a directory for changes and executing a command, but if the others aren’t doing what you’re looking for, check direvent out. Oh, and by the way, it’s really good to see OneThingWell back at it (via).
A tool for creating custom animated emoji for Slack and Discord. Upload a photo and download various animations of it, ready for upload to Slack (or Discord). My red, floating head :brett-angry: one is going to come in handy eventually, though :brett-dance: will find more use, I’m sure.

All my Fish functions

I think I’ve wrapped up my conversion to Fish for the time being. I can honestly say that now that I’m past the tinkering phase, I’m more productive in Fish than I was in Bash. Which is no small claim, I was pretty good at Bash.

In the process of the transition I created quite a collection of functions and completion scripts, so I figured I’d make them available on the off chance that someone else is taking the same journey and/or is curious.

The full collection is up on GitHub, with descriptions of all the folders and every function. I diligently added a --description to every function in the source, then wrote a script to list them all with their descriptions. That script is in the repo, too.

iTerm and the Find pasteboard

Here’s another cool iTerm 2 trick: you can directly affect the system-wide Find pasteboard using escape codes.

The reason I got excited about this is that I’m used to having any search I run in one place (with ⌘F) automatically populate in other apps via the universal find pasteboard. The most notable time that this doesn’t work is when the search I was running was on the command line using grep, ag, or the like. Obviously, right? But what if a grep could set the search field in other apps?

Using howzit as a task runner

I’ve become fairly dependent on howzit for running my builds and deploys (and other tasks). By setting up a buildnotes.md file for each project, containing @run(task) lines for each section, I can always run howzit -r build to build or deploy, no matter what task runner/build system I set up for it. npm, yarn, gulp, grunt, rake, make, it doesn’t matter. I can get the right build command every time without a second thought.

Forgiveness, peace, and productivity

The surest way for me to not get anything done is to get overwhelmed by the guilt of not getting anything done. I’ve worked for years to solve this little quandary, and I’ve found a key element in the solution: forgiveness.

Forgiveness is something I’ve gotten much better at in recent years. I’ve never been one to hold grudges — I don’t have the memory to pull that off — but I would get irate with people in the moment for all manner of perceived slights and infractions. Recently, my mantra has become “everybody is doing their best.” It’s the idea that I don’t know what this particular person is living with, what they’re going through in their life, or what just happened to them the minute before. All I can do is believe that they’re doing their best, and that puts me in a place of compassion. (It doesn’t work quite as well when I interpret something to be intentionally malicious, but it’s still better than interpreting everything as malicious.)

You’d think it would be easy enough to apply this same mantra to myself. I mean, of all people, I should know that I’m doing my best. But I’m always the first to disagree. I think I could have done better, that I could be doing better. My mind calls bullshit as soon as I try to show a little compassion to myself.

Web Excursions for November 12, 2019

Brett holding map

Web excursions brought to you in partnership with Codecademy, the easiest way to learn to code.

I’m loving this tiny set of CLIs for renaming files. This links to the project page, but you can install them through Homebrew (brew install renameutils). qmv and qcp open a list of target files in an editor, where you can rename them using whatever editor tools you need, and then save to apply the changes. imv and icp provide readline editing of a filename in place. Super handy.
While you’re at it, check out rename, also on Homebrew, for a pipeline approach, and the vidir command from moreutils for another approach to the qmv trick.
Augmented Text Editing on Mobile: The New iOS 13 Gestures
From the Ulysses blog but not Ulysses-specific, a rundown of new gestures for text editing on iOS 13. Did you know there are 3-finger pinch commands for copy, cut, and paste? I didn’t.
Clicker for Hulu
I’m a user of the Mac app Clicker for Netflix, and was happy to see that DBK Labs now has the same type of player for Hulu. It integrates native macOS features with the service’s players, and include PIP and hacks for things like skipping the stupid mini-player that Hulu brings up when you close a show. Some interesting touch bar support, too.
An Alfred workflow that allows free text searching of OmniFocus tasks and projects. A really nice example of Alfred’s power. Now someone needs to make this for LaunchBar…
How to display the size of an app’s frontmost window
Thanks to Rob Griffiths I now have a mouse gesture that shows me the pixel dimensions of whatever window I have in the foreground. Which is actually something I happened to need…

Codecademy Pro