I’ve put together a few of my Keyboard Maestro macros for TaskPaper 3 that I think might have general appeal. I have to thank Rob Trew at the very top of this post, he’s saved me a significant amount of time in figuring out how to automate these apps1.
First, an update to my Natural Language macro specifically for TaskPaper 3. Rather than bundling Sugar.js or relying on other tools, it now just uses TaskPaper’s own DateTime API. A much shorter (and self-contained) script. The macro is set up to trigger via regular expression any time you type a tag with a value, e.g. @due(tomorrow). When you close the parenthesis, it will scan the entire task for tag values that will translate to dates and convert them. You can specify which tags it will consider using the “dateTags” variable in the macro, a space separated list of tag names (e.g. due start done).
You can use language like “tomorrow,” “next tuesday,” “2 weeks” or just “3” to set the date to three days from now. If a string isn’t recognized, it won’t change.
It can also be triggered by a keyboard shortcut, customizable in the macro editor.
Note, if you’re looking for an update to my scripts for incrementing and decrementing dates, you can take a look at Jesse Grossjean’s JSA version.
The increment/decrement macros are used for cycling numeric values in tags like @priority(5). You can define the tag and the increment (value to add or subtract) in the macro variables, and create additional macros on different hotkeys to add new tags (and unique values). The library I’ve created for download includes “priority” (1-5) and “completed” (10-100%) macros.
For the @priority macros, the minVal is 1, maxVal is 5, and the increment is +1 or -1.
For @completed, the minVal is 10, maxVal is 100, and the increment is +10 or -10.
When triggered, it will look for the defined tag and add/subtract the defined increment (incValue). You can set the minValue and maxValue variables to define the scale.
If the tag doesn’t exist on the task when the macro runs, it will be added with the minValue (or maxValue if decrementing). If it’s at the top of the scale when you increment (or at the bottom when you decrement), it will be removed entirely. Triggering the macro again starts the cycle over from either direction. Otherwise it just adds/subtracts the defined increment from the current value.
Thanks to MightyDeals for for sponsoring BrettTerpstra.com this week!
The true magic in this deal is how incredibly easy it is to add magnificent beauty to your latest project. With the Magic Ombre set from Julia Dreams, you’ll get a high-quality collection of watercolor elements and individual florals. Frames, wreaths, patterns, ombres and more combine into a colorful and floral extravaganza perfect for everything from wedding invitations to wrapping paper.
Gorgeous collection of hand painted color shapes and flowers.
50+ florals - from frames to wreaths to floral elements with transparent backgrounds.
30+ watercolor shapes and ombres - colorful patterns in a variety of amorphous shapes and sizes.
High-resolution quality - watercolor shapes at 600 DPI, watercolor ombres at 300 DPI.
Perfect for note cards, wrapping paper, posters, wallpaper, prints and more.
I’ll probably be writing more about this, (and maybe everyone already knew this,) but Visual Studio Code is a free code editor from Microsoft that is so good it’s on the verge of replacing Sublime for me. If you’re under the same impression I was — confusing VS Code with VS IDE and assuming it wasn’t for you — shed the misconceptions and give it a try. It’s awesome. For Linux, Mac OSX, and Windows (listed in that order on the website, Windows last, which I find interesting).
I’m linking this for now because the dev asked me to review it and I don’t feel qualified but it looks amazing. A lab notebook: organize experiments, track results, and manage protocols. Free for Mac (Basic version), iOS and Watch. : If you happen to be a researcher and interested in doing a guest review, please let me know!
Rogue Amoeba introduced a new app recently called Farrago. I’m giving it a shot right now — if it fits my use cases I’ll be writing it up in more detail. For now, I’ll say: it’s a soundboard app geared toward broadcasters (or podcasters) with a slick keyboard-navigable interface, extensive customization, and a complete organization toolset including sound banks and sequenced lists with sounds and notes for planning out shows.
Speaking of Rogue Amoeba, I had totally missed this utility, but I’m using it daily now. It replaces the Volume control in your menu bar with a panel that allows easy individual control of devices/volumes for Input, Output, and Sound Effects. It also has a Play-Thru feature that lets you easily monitor any input source from any output source. Lastly, if you own any other Rogue Amoeba product (Farrago, Airfoil, Audio Hijack, Fission, etc.) you can get a complimentary license.
I just updated SearchLink to v2.2.8. Yes, if you’re paying attention, I did skip a few increments there since the 2.2.5 release. I’ve added a few features and then kept holding release off until I had tested, and then life gets busy. You know.
This version adds a !imov search for movie links from the iTunes store (credit to Sebastian Szwarc for the contribution), as well as the ability to search all Pinboard bookmarks for a phrase (with limited fuzzy matching). To use the Pinboard search, you’ll need to get your API token from the Pinboard settings page. Add pinboard_api_key: 'YOUR_USER:TOKEN' to your ~/.searchlink file.
It currently searches your tags and “description,” which is generally the title of the site. I don’t have it combing the url or the extended description at this point, but I’ll see what issues I run into over time. The Pinboard searches currently download your entire bookmark collection every time it runs (doesn’t take an excessively long time, but it’s highly inefficient). I’m working on caching those and only updating as needed, but I’m running into trouble with writing large cache files to disk. Eventually I’ll figure that out, I promise.
I also added a utility dependency for !spell searches. It now uses aspell locally rather than relying on APIs. You can install it with brew install aspell or download it from aspell.net. A search on a word or a string with !spell will take an educated guess at the best possible result and replace words inline. For example, running SearchLink on !spell harber will result in “harbor.” If you never use SearchLink for spelling correction, you don’t have to install aspell to use everything else.
I also switched the !def (definition) search to use Wordnik directly. It will return the first definition provided on the site, with a link to the definition page and the definition itself in a title string. !def forces titles to show in the output even if your preferences have them disabled in other cases. This one’s kind of a silly feature anyway, so I won’t put a lot more time into figuring out ideal ways to handle it.
As a side note, I’m at a point where I really want to turn this into an app. A PopClip style popup on selected text, the ability to select from multiple results, and an option to preview (URL Preview style).
You can download the latest version below, but check the project page for more details and documentation.
As you may be aware, I publish a lot of projects. Mostly tools and scripts I give away for free, a couple that actually pay my bills. One yearly recap I never get around to actually finishing is a list of my own favorite personal projects for the year. This year I got around to it.
David Sparks and I finished a new edition of 60 Mac Tips in time for the High Sierra release. We also updated volume 1, so all total there are 120 unique tips, with video demonstrations, all valid on the latest macOS.
Marked continues to be my primary focus. It was released at an opportune time when Markdown was finally getting a lot of momentum among writers and bloggers. It’s become a standard in its genre, and the further development of writing tools and integrations has made it a lot of fun to continue working on.
Far from my most popular project, SearchLink is still the one I love the most out of all of my free projects. These roundups would be impossible without the ability to automatically link text without jumping back and forth between the browser and my editor. This year saw the addition of new features and additional (easier) syntax.
My chart of features for all of the iOS text editors on the App Store continued to grow (and shrink a little, it’s been log enough that some are dying off). It remains one of the most consistently high-traffic pages on my blog.
As a side note, I’ve been rewriting the whole thing to use a database and dynamically generated chart. It allows more flexibility in searching and filtering, as well as easier addition of criteria (and potentially entire genres of apps). This kind of stalled, but I do hope to get back to it.
nvALT got an update to make it work with High Sierra, which is good because I’d still be lost without it. BitWriter progress was slow, as anyone waiting for it knows, but it’s been getting more attention these last few months.
While the regularity of publication slowed down at the end of the year when Christina switched jobs, it was a year of delightfully weird conversations. A little dark at times, but that’s part of the point of the podcast for me. Very good topics on both sides.
Thanks to DuckDuckGo for sponsoring BrettTerpstra.com this week, I’ve been a happy user for years!
DuckDuckGo is an internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs.
Over the years, DuckDuckGo has offered millions of people a private alternative to Google, serving over 16 billion anonymous searches. Today we’re taking a major step to simplify online privacy with the launch of fully revamped versions of our browser extension and mobile app, now with built-in tracker network blocking, smarter encryption, and, of course, private search – all designed to operate seamlessly together while you search and browse the web. Our updated app and extension are now available across all major platforms – Firefox, Safari, Chrome, iOS, and Android – so that you can easily get all the privacy essentials you need on any device with just one download.
To date, cobbling together an effective privacy solution has required researching complicated technologies, installing multiple add-ons and apps on each device, and often worsening your Internet experience. Others have been unfortunately misled by supposed simple solutions. Think “Incognito” mode blocks Google from watching what you’re doing? Think again. Private browsing modes are marketed to make you think that if it’s not in your device’s browser history, it never happened. Sadly, that couldn’t be further from the truth.
With the new DuckDuckGo browser extension or mobile app, you are now able to seamlessly:
Expose and Block Tracker Networks Watching You.
Stop Creepy Ads Following You Across the Web.
Increase Encryption Protection Automatically.
As more people start taking their privacy back online, the companies who make money off our personal information will be put on more notice and we’ll collectively raise the Internet’s privacy grade, ending the widespread use of invasive tracking. True to the collective nature of this effort, we’re also building our extension and app in the open with all of the code available on GitHub, so we invite you to join us.
I had a blast at Macstock in 2016. It was a perfect combination of tech personalities and tech lovers, great presentations, and lots of fun mingling. In 2017 it grew, and the attendees, presentations, and the social events got even better. Based on that, I’m betting on Macstock 2018 being the best one ever in the history of Macstock (ok, sure, it’s only a few years old, but let’s keep making new records to break).
The lineup of speakers is always top notch. I learned a lot last year, which surprised me because I don’t do well in auditorium settings. It’s why I failed Calc 2. They even let me speak last year and I loved it. If all goes well with my pitch, I’ll be speaking again this year (and doing a deep dive session).
It’s the attendees, though, that really make it worth the trip. Remember Macworld? I think I went to three sessions (five if you count the two talks I gave) total, but I showed up every year because it was the Apple-lover’s social event of the year. As I hoped it would, Macstock is growing to be that social event for me. And the more people who show up, the better it gets.
There was a great barbecue in the middle of the conference the first year, a great mingle last year, and this year there’s a Welcome Party the first night, [a ton of great talks], an After Party on Saturday, a Game Night after the After Party for those who can handle late, late nights, and a wrap-up event on Sunday.
Nobody liked coding HTML emails even before mobile. Now you have to plan for so many variables while using CSS and markup restricted for cross-client compatibility. Enjoy this collection of responsive HTML email templates and save the tears.
Another great toolbox addition for web designers. Animista offers a place where you can play with and customize ready-to-use CSS animations, with code ready to download and incorporate into your project.
A free web app for generating high-res product mockups for apps, putting your app screenshot in a real-life context easily (and for free). All iOS devices (including iPhone X and Apple Watch), iMac, Macbook, and even Windows machines. (AppLaunchPad’s tool for generating iOS App Store screenshots looks pretty sweet, too.)
The PHOpen bookmarklet that quickly opens links from Product Hunt pages broke again despite my efforts to make a foolproof version. Man, DOM hacking is a fragile thing in an era of frequent design updates.
This update works with the new sidebar layout. It just chooses the first link in the block (usually containing Website, App Store, and More info), so it should always get the direct link to the website and open it in the same tab.
Because of my brilliant plan of serving the bookmarklets straight from the CDN, if you have the bookmarklet installed already, it should just start working again. If not, just drag the button below to your bookmarks bar and click it when you’re on a Product Hunt product page.
I ran into a problem editing a slide in Keynote with a large blockquote. It was left-aligned, which I’m great with, but the quote started inside the left margin, which caused visual flow issues. In typography, this is solved with hanging punctuation.
I haven’t done print design for a long time, but I remembered there being a “hang punctuation” feature in most of the apps I’d used. I apparently never learned how to do this manually in apps like Pages or Keynote. People who’ve been designing in these apps (and probably a dozen others) are scoffing at me right now. I’ll take it.
If you’re curious, it turns out it’s as simple as showing the rulers (View->Show Rulers or ⌘R) and dragging the indent marker behind the left margin marker. Here, I made you a video.
Hope that’s of use to enough people that it outweighs everyone who’s rolling their eyes now.