Back in April I posted a short script for keeping track of the various build systems I use in my projects. You know when you open a directory you haven’t worked on for a while and there’s a Gulp file, a Rakefile, a node_modules folder, and various other cruft that means you’ll have to dig through to recall what commands you were using to build and deploy the project? Or when you know there were specific flags you were using to get the build to work, but you never got around to automating them? It’s for those situations, and other general sanity.
Over the rest of this year I’ve slowly modified and expanded the script as I’ve wanted it to do things differently or better. I’ve been hesitant to post the results because it really feels like something nobody else is going to need and it’s entirely possible that I’ve put too much time into it already. I did stop myself before turning it into a fully packaged gem, so good on me.
Thanks to Pagico for sponsoring BrettTerpstra.com this week!
Isn’t there always too much to do? Don’t stress out, let Pagico 9 help you work smarter, get more done, and reduce stress.
Keeping Everything Together
In this day and age, we all have many areas of responsibilities: projects at work, family errands, or the wonderful vacation you’re planning. When multiple projects move concurrently, we may overlook details, and maybe even miss deadlines. With Pagico you can keep all these tracks neatly in check by centralizing notes, tasks, checklists, emails, and files by projects and clients. Imagine how convenient it is to have boarding passes right next to travel itineraries, or design documents connected with submission deadlines. By keeping things together, you can offload your brain and think more clearly.
Planning and Staying On-Track
To be productive, you need to plan ahead and stay on track, but you also have to be able to adjust plans when needed. Pagico can help with all of these areas. Unlike conventional todo apps that rely on lists and calendars, Pagico visualizes your tasks as timelines that let you intuitively perceive your workload. This ensures that nothing slips through the cracks, and long-term deadlines never creep up on you. Need to move your plans around? Just drag things around on the timeline, or use the smart snooze options to swiftly reschedule.
While getting stuff done is satisfying, it can get stressful too. So Pagico 9 is also designed to reduce your stress. Since Pagico visualizes your workload as timelines, you can see far ahead into the future. The ability to see potential problems ahead of time can help you generate solutions and worry less. Then, its elegant UI is designed to present information at a moderate level of density, perfect for inducing a sense of calm. Its newly added Dark Mode also makes it comfortable should you find yourself working at night.
Keeping Data Local & Syncing Across Devices
Always on the go or simply wish to keep data offline? Then Pagico is the right choice for you! By being a native app that lives on your computer, Pagico stores your data on your computer and on your computer only (by default). Need to sync with your other computer or mobile devices? Just turn on the Personal Cloud feature and Pagico will securely sync your data via the Pagico cloud servers.
In my last post on the Fish shell, I brazenly stated that “because of the way that Fish handles the prompt function, there’s no easy way to hook it without modifying the original theme files.” That was 100% incorrect, as I figured out the next day.
Fish has the ability to specify that any function act as an event handler. You can attach to the event fish_prompt to have the function run right before the prompt displays. So my revised function in my init file is:
Now I no longer need to edit the theme files directly at all, which is much more how I’d prefer things to be. As an alternative to fish_prompt, you can also attach to variables changing, which means you can use PWD to run the function any time the working directory changes. That would look like:
Also, any function can use the emit command to add its own hook. The example from the docs is nice and succinct:
This is one area where the Fish documentation seems lacking: there’s no list of available hooks nor (that I can find) any way to retrieve a list of emitted events in the shell. It’s been trial and error for me thus far. Hopefully someone will correct me if I’m wrong here.
Ok, so that’s an extended correction to my last post, but it’s a cool enough aspect of Fish that it seemed worth covering on its own.
Given that Apple has already switched the default shell in Catalina from Bash to Zsh, I’ve been thinking I really need to expand from Bash. Don’t get me wrong, I love Bash and I’ve spent years molding it to my liking. The amount of time I’ve put into it and the ease with which that investment allows me to use it has always made switching to anything else seem, well, like a waste of time. But now I feel stuck. To that end, I’ve been stretching out and trying to shake off my fear of getting to know other shells.
I decided to spend some time getting comfortable with Zsh and Fish (the Friendly Interactive SHell). I started with Fish, building a configuration on weekends. Three weekends now and I’m comfortable enough to use it as my regular shell during the week.
Fish features advanced autosuggestion and expansions, does cool syntax highlighting, offers a “sane” scripting toolset, has an array of existing plugins and themes, and even sports a browser-based configuration tool that’s pretty awesome. So here are some random notes from my travels. This is a journal, not a tutorial, containing my impressions and a few tips.
Thanks to TextExpander for sponsoring BrettTerpstra.com again this week!
If you’ve been reading this blog for a while, you already know you can amp up your personal productivity with TextExpander, shortening everything you write repeatedly to a few keystrokes anywhere you type: text documents, spreadsheets, web forms, and more. But you might not have considered how much it could help your team?
When it comes to your company and your brand, any written correspondence that comes from your team is speaking for all of you. With TextExpander for Teams, you can make sure that everyone on your team can provide a consistent voice in every email, press release, or meeting agenda. And when a snippet needs revising, you can update it in one place and your team will instantly be using the new snippet.
You can even manage who sees snippets by making different Groups for your departments, so customer support and sales see exactly the snippets they need.
TextExpander is available on macOS, iPhone, iPad, Windows, and Chrome, so your whole team can take advantage of it, regardless of the platform(s) each team member uses.
BrettTerpstra.com readers get 20% off their first year of a TextExpander subscription. Visit textexpander.com/podcast to get started!
As is always the case with David Sparks’ Field Guides, the iOS 13 edition of The Shortcuts Field Guide got a great response when I mentioned it here. And once again David has kindly provided a few extra codes for BrettTerpstra.com readers. And yes, if you win a code but already purchased the Guide, you can gift it to someone you think deserves it!
There are five magic codes available that will give the winner free access to the MacSparky Shortcuts Field Guide, iOS 13 edition videos. Enter a name and email address below to be eligible to win one (1) coupon ($29US value) in a random drawing on Friday, October 11th, at 12:00 CST.
In the vein of TableFlip, Markdown Tables is an iOS app for the creation and editing of Markdown-formatted tables for use in combination with your favorite Markdown editor. From the creator of Trunk Notes, the now-defunct iOS wiki app that I still have a soft spot for.
Ok, another month, another nvUltra update. As I’d warily predicted, my initial hopes for an August release slipped, and I’m currently making more conservative predictions. I’m not going to put an ETA on it this time, but before you grow concerned, let me tell you where things are at and why I’m being cautious.
We’ve added another 500 testers from the initial signup list at this point, plus a slew of additional edge-case testers, and we have our hands full keeping up with feedback and forum posts from the current pool of users. Fletcher works in a hospital ER, and I have my own side-pursuits (not a Doctor) to pay the bills while we develop this, so it’s 2 part-time guys working with 1000+ users and a very active beta feedback forum. There’s a lot of excitement, though, and it makes it a lot of fun to continue interacting with everyone.
First off, I promise an nvUltra update this week. You deserve it. In the meantime…
I woke up at three this morning. As you may have come to expect, I’ve added stuff to Bunch, my batch app launcher and current too-awake-to-sleep-too-tired-to-do-real-work project. I think this new feature will save a few users (and myself) some time: I’m calling it “snippets,” which is an uncreative way of saying you can now use templated actions with variables in a Bunch.
Tower, the makers of the eponymous Git client, have a history of providing design-oriented products in addition to their elegant app. You may recall the Developer Manifesto poster I ran a giveaway for last year. Their latest product line is a fantastic followup.
Tech Animals is a reimagining of all of the animals that become logos for our favorite tech projects, from the Linux Penguin and the Firefox to the Swift bird and the Perl camel, you’re sure to find beautifully illustrated versions of your favorite project’s mascot. All available as posters, coffee mugs, and t-shirts.
Here’s the cool part, though: 100% of profits are going to Hacker School, a project that inspires children to get started with programming while also offering refugees an IT education. Visit the shop and get some great design for a worthy cause.