Fixing Word Navigation in ZSH

Moving to zsh from bash has been a great quality of life improvement. However, there is one thing that has driven me nuts that I have not been able to figure out: customizing the word boundary definition.

I’m using zsh 5.9 and have a lot of plugins.

forward-word ,backward-word , and the kill variants were the main widgets that I use. I used bindkey to determine these functions. After some investigation, it seems like these widgets are controlled via zstyle ':zle:*' configuration. You can dump configuration via zstyle -L You can determine what underlying zsh function is used by a widget via zle -lL. If you want to view the source of a widget function use which After some digging, I found select-word-style which seemed to be what I was looking for, but didn’t work. After some grepping around I discovered word-style which solved the issue for me if I set it to unspecified. Based on the documentation, I shouldn’t need to do this, but this is what worked for me. I looked into the autocomplete, syntax highlighter, and substring history plugins but removing them did not fix the issue.

Here’s my final configuration which fixed the issue for me:

WORDCHARS='*?_-.[]~=&;!#$%^(){}<>/ '$'\n' autoload -Uz select-word-style select-word-style normal zstyle ':zle:*' word-style unspecified

Continue Reading

Book Notes: Making it All Work

Something new I’m going to try doing this year is book notes. I’m continually more bought into the idea that writing down your thoughts helps you harden and remember them. Books take a lot of time to read: if I’m going to invest the time in a book, I should be ok investing another ~hour in calcifying the lessons I learned—so that’s what I’m going to try to do. This should help me better filter what books to read: if it’s not worth spending the time to write the notes, I probably shouldn’t read the book (obviously excluding entertainment-only reading).

Here are the notes for Making it All Work. The book wasn’t great, I wouldn’t read it unless you haven’t read Getting Things Done and are new to personal productivity. Here are the notes! Enjoy.

Improving your productivity system David Allen has a zen feel to how he describes things. Meditation, and the idea of generally being self-aware about what you are thinking, feeling, experiencing, etc is a very useful tool. When I sat back and thought about how I ‘felt’ when trying to work on something, I was able to identify various little blockers and better determine what the best thing to do at the moment is. In other words, being aware of where you aren’t performing well is key to improving. This takes time & effort. For instance, there were times I just felt distracted and I didn’t have any state of a specific project ‘loaded up’ in my mind. When I already have ideas around a project, email, etc ‘loaded’ into my mind I can work much more quickly on executing. Doing something physical—kettlebell swings, going for a run, pull-ups, etc—can shift me out of a distracted mode and convince my mind to focus its attention on the next project. I find that this sort of ‘focus shift’ using something physical can help when I’m switching between projects. I find this is true with parenting too. If your kid is in a bad mood / having a meltdown, shifting the physical environment can solve the problem. When my toddler is having a meltdown I suggest we go on a "barefoot walk" around the neighborhood (I’m weird and like walking without shoes on) and she immediately stops crying is ready to go.

And frankly, if you have any thought more than once, in the same way about the same subject, you’re probably involved in unnecessary work and exhausting your creative energy.

Thinking about the same thing over and over is a ‘process smell’: you aren’t clear on what you need to do next and don’t trust your system.

Paying attention to what has your attention

Good catchphrase from the book that encompasses this.

GTD is fundamentally much more about mind management than about time management

Time management tools have never worked well for me, but GTD has.

Given the vast changes in speed, volume, and ambiguity of what grabs our attention these days, we face an increasing need to have an “extended mind” that can truly relieve the pressure from our psyche and free it up for more valuable work.

I have felt the increase in information throughput in my life and have spent a lot of time intentionally decreasing it. The other half of the equation is developing processes and systems to help manage the information you do ne ed to care about. Todoist and Obsidian have been helpful here, but I need to continue to improve my processes.

Create clarity about your work He talks a lot about ‘task dumping’: getting everything you are thinking about dumped somewhere where you know you are going to look at it again. I’ve made this an obsessive habit over the last decade, but reflecting on it I need to do better at this in the mornings. I pray & read every morning, and tasks / projects can distract me during this time. Having a pad of paper (explicitly not using your phone, since it can be distracting just to have it around) to jot down thoughts to ‘clear’ them from your mind is an effective practice for me that I need to get better at. He defines this as "accepting, clarifying, sorting, reflecting, and engaging". I think this is a good articulation of the process we need to go through before intentionally working on the right thing. Chunking down loosely defined tasks (I use todoist) is something I don’t spend time on right now. Without a clearly defined next action, it’s hard to complete the task, and it takes extra cognitive overhead to start working on the task (because it has multiple components). An easy improvement here for me is task splitting. If there’s a large task, even if it’s well defined, I can punt the ‘large’ task to be due in the future, and add a simple next action to my near-term todo list. This applies to parenting too. A task can seem complex and overwhelming to kids, even if they have done it before and seems obvious to you. "Unload the dishwasher" is more ambiguous than "put the forks and spoons away that are in the bottom of the dishwasher". I’ve seen breaking down the task for my kids be an important way of getting them engaged with a project more. In my todo list, there are a bunch of investigative tasks. Writing or researching something I’m interested in. This could be anything from thinking about a parenting problem with my wife, investigating a new productivity tool like Raycast, implementing a new health habit, etc. These are rarely ever things I’m going to be able to complete in one sitting, and I’m rarely able to do more than one per day. However, they clutter up my todo list and weigh down on my psyche (i.e. if I see a ton of tasks due in one day, I get overwhelmed, even if I know they don’t need to be completed right now). I need to think through this and determine how to automatically limit these types of tasks each day.

Ambiguity is a monster that can still take up residence and lurk in the sharpest, most productive places and among the most sophisticated people.

Unlocking the creative process Whenever I’m hugely productive I feel this: "Loss of control and perspective is the natural price you will pay for being creative and productive. The trick is not how to prevent this from happening, but how to shorten the time you stay in an unsettled state. " Spending time organizing yourself is an important function: "Much of the energy in propelling a rocket is spent in course correction—it is, in a way, always veering out of control and off-target." Patrick Lencioni’s work is aligned with the idea that the unsaid human issues in the room (whether at work or home) affect your ability to be creative and solve problems together: "Perhaps we all are more attuned to one another than we realize, and if someone is disconnected from the mutual intention of the occasion because of unacknowledged issues, they just won’t participate fully in the game, which will mitigate the group’s cohesion and positive energy." Separating creativity from analysis or rigor is important. I’ve found you can spark creative thoughts by intentionally including bad, wild, or dumb ideas in a list. It makes it feel easier—even if it’s an exercise you are doing with yourself—to express more creative ideas. "Good brainstorming is stifled by any attempt to analyze and evaluate the meaning and merit of those ideas too soon." Levels of perspective

I’ve always felt it’s hard to calculate the next best thing to do. There are too many options, there is too much to do. In the book, it’s articulated that the reason this is hard is that there are too many inputs and it’s impossible to determine the next best thing. By organizing your tasks and thoughts well, you can make a better intuitive judgment aided by your best-effort prioritization and your psyche will slowly trust your judgment. For me, I often feel mental friction when I’m not certain about what to do next and I think this idea will help me here.

He makes the argument that it’s critical to think in terms of "level of perspective" or "horizons of focus":

Purpose/Principles Vision Goals Areas of Focus Projects Tasks

I think this is a good model, even if the exact wording of these categories might change depending on how you think about the world. I need to refine some of my thinking on the higher-level areas of focus; reflecting on this during reading the book made me realize how much I’m missing at the "top".

The true power in a long-range vision is the acceptance that holding that picture inside your consciousness permits you to imagine yourself doing something much grander than you would normally allow yourself.

Big thinking is a skill. Some people don’t have it naturally (like myself). Clarity around a long-range vision does seem to enable your mind to think bigger.

No effective framework will ever get any simpler than the continuum of purposes/principles, vision, goals, areas of focus, projects, and next actions.

This was a helpful structure for me. I was missing the higher-level categories and need to work on defining them and putting them in a place where I can be reminded and structure the lower levels around them.

Continue Reading

Are You Being Deliberate About Long-term Goals?

Recently, I met with a mentor about some of my past and future goals. After listening and understanding my goals, he started to dive into the motivation behind my goals.

Why did I want to build that product? Why was I interested in that type of business? What did I want my life outside of work to look like? What type of people do I enjoy working with? Am I working with those people? What type of work did I enjoy? What type of work am I excellent at? What type of lifestyle do I want to live?

I had good answers to the first round of questions, but as he kept digging I realized my answers were becoming more and more thin, and I had a lot of thinking to do.

I’m a planner by nature. I’m a checklist-driven high achiever who loves to build, create, and get things done. What the questions by this trusted mentor made me realize is my thinking and planning had been very short-term and short sighted.

My goals and ideas were aimed at the next 1-3 years and not the next 5, 10, or 15 years.

He challenged me to get intentional. To be deliberate about defining what I want to achieve. To get clarity on what I want all aspects of my life to look like: professional, family, spiritual, financial, social, etc. I was challenged to define in detail what I’m excellent at, what there is a market for, and what I’m passionate about; and to develop and find opportunities at the intersections of those three things.

It’s our duty to strive towards greatness in our lives, and through my time with this mentor I realized that I was falling short. Are you being deliberate and intentional about defining and striving towards greatness in your life?

Continue Reading

Why the Right Premium Services are Always Cheaper

By nature, I’m frugal. I love getting a great deal, and getting the most of out of my purchases. When I was fifteen I got a new MacBook Pro for free by working those “get a free MacBook pro” ponzi schemes online: my obsession with a great deal started early.

I’ve learned that it’s often worth paying for premium services when your time is at stake. Not only your current time, but time that a premium service could possibly save in the future.

Opportunity cost is a real thing: it’s important to consider what you can’t do or time that could be possibly spent on fixing a future problem with the service or product.

Here are a couple of failures from recent memory:

Low Cost HSAs. I have a high deductible health insurance plan coupled with a health savings account. I picked one from a big name bank, with average ratings, and the best fee structure. Wrong choice: the time spent on phone, faxes (no ability to communicate over email??), etc have incurred most cost in terms of time than I ever saved in fees. Local Banks. My local bank has a great fee structure and a convenient location nearby. However, they are lagging behind in keeping up with tech advancements. Because of their remote deposit limitations, I’ve lost lots of time driving to and from the bank. I should have signed up with Simple or BoA. Budget Home Router. Anytime I spend fiddling with router settings is time lost on better, more interesting problems. I used to attempt to save money on routers: I now buy the most expensive router I can get. Price Shopping. Amazon has great shipping, customer service, review system, etc. It isn’t always the cheapest. However, it’s not worth my time to shop around for a better price. Amazon is nearly always within 10-20% of the best price – and most of the time it is the best price out there. It’s not worth my time to price shop. Low Cost Phone Service. One dropped business call and the $10 you saved that month on your cell phone bill most likely isn’t worth the perceived sloppiness on your end.

Continue Reading

Closing the Loop vs Completing the Project

Completing the project is crossing the entire thing off the list, eliminating the chunk of work completely. It’s moving a project from development to maintenance.

Closing the loop is different. It’s eliminating the dependency that someone else has on you – or at least updating them on the state. Every project has dependencies, and if you are pushing for excellence your role is most likely key to the projects success.

Leaving others hanging is the worst thing you can do. It’s when someone’s dependency on you becomes a blocker to the project or a drain on the projects momentum.

And it’s one my biggest faults.

I’m a recovering perfectionist. I love when things are complete and I can deliver them to a teammate or client. I also struggle to switch between different contexts or projects: it’s easy for me to forget to give a status update on something that I’m currently working in.

When something isn’t a top priority (e.g. a side project) it’s easy for me to treat communication around that project as less than top priority. To not spend the time on responding and communicating but instead concentrate on “doing work” on another project.

A trusted mentor recently gave me some very direct feedback on this:

You have to close the loop: don’t leave things hanging for hours or days if you can send an update. Even if you can’t deliver what you promised, make sure you close the loop and keep the momentum building by being relentlessly responsive.

Ouch. I’m off the mark in this area and here’s what I’ve done to fix this:

I’m viewing responsiveness as part my personal brand

Your personal brand – how people perceive you and how you work – is one of your most valuable assets. It’s important to protect this.

I want the people I work with to say “Mike is a great communicator. He responds to email within 24 hours and makes sure to update us on progress, even when the progress isn’t as quickly as we expected”

I want people to know that if they email, call, or text me they will get a response and it will be prompt. It may not always be complete or comprehensive, but I won’t leave them hanging.

I’m all-in on InboxZero

InboxZero is hard. Processing every single email in your inbox is not an easy feat.

But it really does create clarity. Getting everything out of my inbox and either 1) handled or 2) into an external system that I can trust is huge. It creates the mental peace that “everything is under control” – all my todos are properly organized and schedule, I can plow ahead and executing the next segment of work without worrying about missing something.

Four weeks ago my inbox had 800 items in it. I’ve been archiving 50-100 messages a day and slowly cleaning up all of my inboxes. Getting to zero is really possible!

I’m communicating that I’m behind

When I’m behind on a project or getting back to a contractor or vendor I’m going to let them know before I’m behind. This isn’t always comfortable, but it’s the right thing.

I’m being creative about pushing the ball forward

Closing the loop – being responsive – doesn’t mean giving a complete response. When responding my goal should be giving the most value to the other party with minimal input on my end.

If I don’t more than 1 minute to respond to this email, what could I say that would move the ball forward? Can I ask a clarifying question that I will need the answer to later? Can I offer a link or article that articulates what I would want to say better?

The art of moving the ball forward without allowing others to set your priorities is incredibly important.

I’m going to be ok with grammatical mistakes

I’m not a english major. I’m (insert New York accent here) horrible at English. I believe spell check has destroyed my ability to spell. I got a 10% on the state spelling exam.

I need to improve my English, and it’s something I’m actively working on. However, it’s not going to happen overnight, and that’s ok.

Making sure spelling & grammar is correct on every email and blog post takes time. If it’s a choice between sending a response or putting it off till later and ensuring the grammar and spelling is correct, I’m going to press send.

Continue Reading

How I Learned to Stop Being Dominated by My Inbox

I Turned It Off

Everyone complains about email. There’s a reason: it’s a big stack of todos without context, priority, categorization, and some emails are hard to quickly handle and sit there representing a bunch of non-project work that needs to be done.

Message queues with no context destroy your productivity. They scramble your brain.

The best way to handle queues – whether it’s email, text messages, project management, etc – is to turn it off and batch process in a constrained amount of time.

Tim Ferris checks email only twice a day. This might be too extreme given the culture you are working in, but turning off your email for hours at a time could be a game changer. Try it.

I Stopped Feeling an Obligation to Respond

There is an unspoken obligation we feel to answering every email. A feeling of failure if we don’t clear our inbox. This took me a while to learn:

You don’t have an obligation to respond to every single email

This means you can delete emails without reading or responding. Feel the freedom to clear the inbox of requests that don’t hold significant value for you: focus is key to accomplishing anything great.

Read how top CEO’s manage their inbox. None of us get as much email as them, but it doesn’t mean we can’t use some of their strategies.

I Unsubscribed from Everything That I Didn’t Consistently Read

Our culture is permeated by the fear of missing out. I hate unsubscribing from newsletters that I’ve gotten something valuable from in the past; I fear that I’m going to miss out on something important in the future.

However, if something is important, you’ll hear about it. Or you’ll search for it. Or someone else will tell you about it.

The information isn’t going away, and it’s impossible to keep up with the firehouse of information. Unsubscribe from every newsletter/mailing list you haven’t read in the last couple weeks. Trust me: it helps.

Continue Reading

How to Outsource Everything

There are only a couple things that I’m really good at. That list does not include sending invoices, copy editing, fixing cars, scheduling doctor’s appointments, making small WordPress edits, designing flyers, going grocery shopping, going through paper mail, processing paper receipts, bookkeeping, filing taxes, or 100s of other tasks.

I can do all of those things, but they aren’t things that only I can do well.

As much as possible, it’s important clear the decks and make sure you are concentrating on those items and eliminating any items that don’t fit within your unique sweet-spot.

Think of delegation and outsourcing in terms of systems, not just people. Here are some examples:

“Outsource” shopping to Amazon. Going to the store to get something is really costly. Driving, parking, finding the right item in the store, checking out, driving back home, etc. For someone who doesn’t shop often – or well – it’s time consuming. Here’s three ways to use Amazon to outsource your life: Subscribe & Save. Set non-perishable consumables up as a recurring purchase. You’ll never have to run out to grab them again. Buy Top Rated Items. Not which type or version of something to get? Search for the keyword and get the top rated item; stop looking at reviews online or tinkering around with the item at the store. Be ok with spending more on Amazon. Sometimes, Amazon is more expensive than another online or retail store. That’s ok. Don’t worry about a $5-10 price difference: it’s worth the savings in time. Stop monitoring. I pay more for unlimited plans so I don’t have to spend time thinking about how much I’m using. For instance, I have a everything unlimited phone data plan. Never Pay Bills. Put everything on credit cards and pay the full credit card balance monthly. Set all monthly bills that can’t be paid via credit card on auto-pay. Use to tie all of your various accounts together and give you a high-level view of your cashflow. Stop remembering. We aren’t good at remembering random information. I delegate the task of reminding me about specific actions to a premium todo list application subscription. Transcription services. I delegate transcribing business cards to a paid service.

Continue Reading

3 Quick Tips for Managing Your Inbox

Email is hard. It’s so easily abused and can be an enormous time suck. Here some quick tips that I’ve been trying to implement over the last couple months:

1. Unsubscribe from any newsletters you haven’t read in the last month. The information won’t disappear if you don’t read it. If it’s important, you’ll run into it somewhere else. More emails is more noise; kill the noise, be realistic about how many newsletters you can read.

2. Use to manage newsletters you want to read. This tool bundles all email newsletters into a single daily email, reducing noise throughout the day.

3. Setup Gmail filters for any transactional emails that you never actually read. Credit Card statement notifications and Amazon transactional emails were the biggest culprits for me.

Continue Reading

Manage Your Psychology

I make the most progress on programming, design, and other creative work in the morning. I process email best after accomplishing one big item. For me, A 30 minute meeting destroys at least an hour of productive work time; context switching has a high cost.

I know these things about myself and try to mitigate any activities that trigger these “black holes” of productivity loss or momentum killers.

Don’t let your workflow be defined by your surroundings. Know how you work and defend the process that works best for you.

Continue Reading

Your Brain Isn’t for Remembering

I’m reading through the productivity classic Getting Things Done.

This book has helped me create systems to manage the deluge of information thrown at us every day. The never ending stream of information is overwhelming if not managed with discipline and systematically processed using systems. That’s what this book is about: creating systems to manage constant streams of information.

One of the main points that David makes is that our brains aren’t made to remember information when we need it. Our intellect is great for creative thinking, but remembering that you ran out of paper clips when your at Walmart isn’t where we excel – especially when we’ve processing information all day long.

Our intellects should be used for what they are good at: solving problems, creative thinking, connecting the dots. Not for remembering tasks. Not for recalling a shopping list.

Get those “open loops” – items that you are constantly reminding yourself of – out of your head. Remembering todos, keeping track of who you need to follow up with, etc should be delegated to another person or system.

Continue Reading