47 comments

[ 2.8 ms ] story [ 106 ms ] thread
While I new that the shell has emacs-style bindings I didn't know these were really readline based and supported things like undo. I should go read up on more readline keybindings.
I’ve come to believe that time spent on organizational tools and processes is a form of procrastination that’s actually detrimental to focus and productivity. I found much more focus and productivity after I read 4000 weeks and switched to just using a text file for notes and planning.
I completely see your point, and my boring response is "it depends". How heavily I rely on my personal organizational setup depends a lot on context. For instance, at $WORK I need time-tracking and tracability of tasks due to audits. Having a system I barely have to think about is crucial to me in this setting not to waste time in horribly slow web-based ERP-systems. For personal projects I stick to a single text file of issues and ideas. Knowing what to use when is part of the general assessment imo.
For me, the crucial part is to create a tool/script that just gets one task done as fast as possible. I don't need tools that can do everything. Often it's just a bash script that executes like 5 commands to execute/build something, so that I don't even have to think about those steps and don't forget one.

Tho it is a really fine line to not get hung up on those organizational tasks, yes.

It's similar to me wanting to get fit by spending a whole day deciding which trainers to buy, then never wearing them. The illusion of progress.
There's a flip side: you can focus all of your time on 'working hard' but never pay attention to how you're doing it.

In fitness this might be more like: you spend all your time jogging in terrible shoes, working "comfortably hard" and pushing through the pain.

Instead you could spend a few hours researching modern training approaches and running techniques and change the entire trajectory of what you could achieve as an athlete. You can change the focus of how you work, reduce wasted or ineffectual energy and put that into dedicated efforts that have maximal payoff.

This debate is as old as work itself though, and I'm probably not changing any minds here.

Yes, this is "sharpening the saw". But we all know people who, despite boasting a lot about their extremely sharp saw, chop zero trees. Balance, in all things.
> Balance, in all things.

Maybe - but if so, also balance in being balanced. Sometimes "going hard" is needed to make a deadline. And sometimes when you're burned out, you need to do zero work for awhile.

I think the better advice is something like: "Be present with the actual moment. Listen to the world and then take the right next action thats actually needed.". Sometimes the next action is sharpening the saw. Sometimes its playing with your kids, or taking a nap, or finally chopping that tree. Its impossible to know whats needed without being actually present with whats going on right now.

(comment deleted)
My advice is too start on paper (notebook, planner) until you find your workflow. If you can’t because it can be cumbersome, use a set of tools like Apple’s default until the pain points prove unbearable. Then you choose something more suitable. I myself have settled on Bear and Things, but that’s because they introduce joy in my workflow (beautiful softwares). But I can replicate my system using any tools, including paper.
This has been my experience using Obsidian and many other similar tools. I've settled on text files sync'd using iCloud. There being whole books, podcasts, courses, etc. about what I'm doing with a lot of .txt files really supports the idea that it's mostly procrastination. (And, yes, I'm procrastinating by replying on HN.)
I've tried to do the todo.txt thing but not being able to sketch or paste in photos or screenshots was a bit of a blocker. Apple Notes with the Pencil stylus is ideal for me right now.
I spent a few hours automating some repetitive tasks in a way that takes almost the entire burden off of my brain. Then I wired it up to a Stream Deck so these things can notify me asynchronously and easily run in parallel.

That was a pretty simple investment, but a total game changer, it saves me gobs of time every month, and was a no-brainer investment.

Granted, not all dev workflows are as annoyingly complex as mine, but nonetheless: you're statement is all-encompassing when in fact it's very context dependent. In my case, your advice was simply not true.

What type of tasks ? This sounds really interesting?
Long running async stuff where I want to be notified when it's done.

Things like: - run all the functional tests - rebuild a docker image - rebuild the docker image AND run all the tests AND reformat the code ...

It's such a simple idea, but super useful. Think something like this: https://github.com/jamesridgway/devdeck

I haven't made it publically available, as it's SUPER raw/tailored for me.

I didn't mean to provide advice or make an all-encompassing statement. I just said what has been true for me.
The threshold is much different for an individual vs a team.

The more minds and hands there are, the more a repeatable, consistent process is needed.

This is absolutely a failure mode that can happen and I think people should be aware of it/be cautious about not falling into the trap, but I don't think this is categorically true, if for no other reason due to the extreme differences in how people think.

I've absolutely spent time procrastinating by hunting for the perfect tool, and it took me some time to realize that. But I've also found that a good tool can be a force multiplier that can make a huge difference in productivity and more importantly, the likelihood that I'll stick with something.

I've tried and failed numerous times to succeed with a simple text note. I love the idea of the simplicity. But I could never make it work.

A few years back I learned that I have aphantasia - my mind's eye is blind. When digging into this, I learned that people's ability to visualize is a spectrum, and while I'm on one extreme end of it, there is a huge variance in how people experience the act of thinking. It made me realize why <thing> that worked for <person> never worked for me, and why you'll find so many people evangelizing <specific approach> because it worked for them.

I've learned that tools that help me visualize my thoughts completely change my relationship with them and help unlock deeper thinking. Over time, I've realized that some tools really are "tools for thought". My brain can't do X, but Y tool can, and it becomes part of my extended conscious experience and enables me to do things I couldn't before.

I think the critical factor here is to be honest with yourself about what is or is not actually working for you. Recognize the trap of trying to solve problems with tools that aren't really going to change much. But do use tools that help.

What tools/methods have you found that help with aphantasia?
For awhile, I was using Miro. The infinite canvas made it possible to start arranging information visually and made it easier to load things back into memory when I’d come back to a project later. I still love it, but prefer something local and less proprietary.

Currently, I’m pretty all-in on Obsidian. I don’t have a crazy setup with tons of plugins and I’m not building complex data tables or anything like that.

I use:

- Daily journal note to jot down thoughts and what I’m working on or thinking about each day

- Very actively use [[Link Syntax]] in notes to create placeholder connections to unexplored ideas or real connections to existing notes

- I use the Canvas feature to visually arrange things and love that I can embed notes into the canvas or start a local card on the canvas and later convert it to a standalone note

- I occasionally use the note graph view to see how previous journal notes cluster around specific topics. I know some people find this part of Obsidian gimmicky, but for me, it helps me find common threads and identify interrelated ideas

- I focus on creating small notes that I can grok quickly and rely on note-to-note connections to navigate larger topics

I don’t know how much of this workflow is directly applicable to Aphantasia, but the canvas feature in particular is where I feel like I get the most value in terms of visualizing what I otherwise can’t.

I also use tools like Figma/Balsamiq to get product ideas out of my head. It’s crazy how different things can be once they go from an abstract notion of “an interface that does X” to an actual drawing of an interface that does X.

If there was ever a tool like Miro that I could run locally, I’d use it extensively. Just a nice big toolbox of different ways to visualize things.

> If there was ever a tool like Miro that I could run locally, I’d use it extensively.

Does Excalidraw[1] fit the bill?

[1] https://github.com/excalidraw/excalidraw

It gets me partway there. The thing that I really liked about Miro is that is has tools ranging from kanban boards to data tables to icon libraries and is sort of a jack of all trades sort of tool that goes beyond just drawing and adds structure to some of the elements you can put on the canvas.

This makes it really easy to transition between quick wireframes, sequence diagrams, sticky notes, to structured data, tasks with rich cards, statuses, etc. I haven’t found a good direct replacement yet.

I do need to give excalidraw another look because I think there’s a decent Obsidian integration and I could probably approach some of the things I was doing with Miro in a more Obsidian-centric way.

There is an Obsidian integration also
Thank you for this nuanced view.

I honestly didn't want the post to center around the organizational bit, it was a late addition, because there's the caveat that it gets interpreted as "this is how you gain productivity". In my specific case it's more about flushing thoughts that otherwise would continue to drift in my mind. This is also why I write. It's calming due to the fact it allows me to lay things to rest.

> I think the critical factor here is to be honest with yourself about what is or is not actually working for you.

Yes, and in order to do so you need to do the occasional introspection and be a mindful of your ways. We all have our quirks and it's also fine to acknowledge this. I still have plenty of "bad habits", many which I have no intention of breaking any time soon.

Yep, I didn't mean to suggest this was my advice for all people, it's just what has worked for me.
Yes. And that's also the risk I run with including such anecdotal "evidence" from my own process, because it definitely won't click with everybody.

I've witnessed people close to me be highly successful with the "single file" approach that you yourself swear by. My point was that most people probably will have some benefit of choosing some approach, and not try to keep it all in your head.

But I am finding my TickTick subscription very handy because it runs across platforms, and integrates with calendars, and provides reminders and views.

I can't do that with TXT files near as easily.

Previously, I also used various so-called tiling window managers and configuring lots of shortcuts to improve my typing efficiency. Now, I mainly focus on researching how to use GPT to generate code .. Perhaps, in the future, using GPT effectively to generate code and documentation could create many 10x or even 20x programmers.
Maybe I just haven't used those "enough" yet, but I don't feel like chatGPT and others increase my productivity. Yes, they are nice to get some quick sketches/outlines, but that's about it. I rarely use them. Most building blocks are stored in my head by now and I don't even have to think about them.
I've found it most useful for generating code I don't have to maintain (one-off scripts) and lots of regex stuff.
It may not be the same for everybody, but I once tracked 6 months with normal mouse usage, 6 months without but a lot of shortcuts... Do you know how much time I saved? Roughly 2 hours.

I still use them and I do it without mouse whenever I can, mostly for everyday ergonomics, but I use the mouse when I really need to without thinking how I could do it without it. It’s important to take breaks too, longer-Pomodoro helps.

As with GenAI, I’m already doing documentation with it. I pass it some YAML file or my own previous documentation, ask it to generate an organized version, I review it and edit it, and that’s it. For writing unit tests it’s been really helpful in environments where there is no QuickCheck or something that generates tests.

Yes, it’s about using them efficiently, but we have to make sure it’s actually providing the positive impact we expected it to create.

> but I once tracked 6 months with normal mouse usage, 6 months without but a lot of shortcuts... Do you know how much time I saved? Roughly 2 hours.

I’d be interested in techniques/tools you used to measure the time saved. Your point is extremely important and a discussion around measuring the positive impact would be helpful.

The distractions and breaking focus is part of how I program. When I'm trying to solve a difficult problem, getting away and thinking about other things usually makes a solution bubble up, and then I sit down and pour out something working fairly quickly.

My only org tool is a journal i keep in a Google spreadsheet (shortcut on phone home screen) where i note hours and log what i've accomplished, fails, questions, and ideas. I've never been so unstressed organized as a programmer now that I use this very low effort journal.

I work in a similar way. If I focus on a problem for too long at a stretch, I find myself running in circles. I have to break things up with a distraction, oddly said distraction being a different problem, sometimes. It's uncanny how solving one smaller issue lets me get back to the larger one with a fresh take.

As for the journaling part, not so much. I've tried a few methods, but either they don't jive with the variety of tasks I have to track, or they end up being couched in an app that makes the process a slog. What I'd love to see is some simple, customizable, text-based project management software that can be cloud or local hosted, but like others have said, I risk falling into that trap of hunting for that perfect tool.

So, notebook and pen it is, for now.

This essay resonates as it touches upon many long conversations I've had with a friend around our attempts to create a postmodern PKM system strung together with glue code, duct tape, and bailing wire while juggling chainsaws and bowling balls as GPT infrastructure exploded in the post-COVID era.

In particular, I've found myself drawn to my early enculturation around the dichotomy of control implied by the mouse's Cartesian implications on what has increasingly been a 3-dimensional or n-dimensional thought space in the spectrum from API to GUI to HCI.

LSS: the faster I type the slower the distraction of mousing becomes - mentally and physically! If only more people read Fitts!

In my journey, this has involved everything from Microsoft and IBM's early joint venture work around CUA in OS/2, MAYA Design's introduction of mouse-manipulating Z-order (zooming) in DEC Workscape (noted by Mary Czerwinski of Microsoft Research... I'm not certain whether this was before, during, or after Bederson's work on Zoomable UI at U Maryland), Synergy's liberating the mouse's physical computer-monitor confines between Linux, Mac, and Windows twenty years ago, to tmux, tiling windows managers such as hyprland and the combo of sway and the Logitech multi-platform keybaords and mice on which I'm typing, Oh, I forgot my daily usage of helix. But I digress. The guys who wrote the post-modern computing tongue-in-cheek paper twenty years ago in Canada (IIRC) weren't wrong, at least satirically.

This has all served the quest to find a spatiality of computing that mirrors and moves at the speed of thought. I've come close, but none of these has really worked in the holistic and integrated way that I've sought. Time will tell whether Brett Victor or the like has a beyond-Englebart-or-Kay moment.

I'm hopeful while remaining cautiously optimistic.

Sway and hyprland could certainly benefit from integration with software like synergy, hardware like the logitech devices, or any notion of "beyond Cartesian" at the keyboard. The obvious challenge is scaling usability in light of exploding complexity of the controls, mechatronics of control, and targets of control, both mental and physical - literally the origin story of the mouse itself. In much the same way that AI divides the room, so did the need for metrics that could start with Fitts while crossing the mental and physical chasm from API to GUI to HCI. Sadly, we're not there yet.

(comment deleted)
One thing not covered by the author under "automate to save mental energy" is that you can save a ton of mental energy by randomizing. Where do I go to get lunch today? Which item on my to-do list to tackle in the next hour? Which podcast episode to listen to during today's walk? Letting these decisions (even much more consequential decisions if you are in the mood for it) be settled by chance not only conserves mental energy (by reducing the cognitive load of decision making) but can also be good for mental health (when outcomes are left to chance, you feel no self-reproach for unfavorable results, and feel only gratitude for favorable ones).

I used to carry a dice around with me just for this purpose. Nowadays, just for fun, I first mentally generate a random mapping (e.g. "even number do X, odd number do Y") then look around my physical surroundings until my eyes land on a number.

Ah. Great input and an approach I really haven't considered! I think this could be great advice for people who struggle with various degrees of decision fatigue.

Personally I tend to be quite impulsive and somewhat random "by design". Some might call it "creative". In any case, I tend to get energy from uncertainty where others around me prefer more structure. And vice versa, I feel more friction when there are no choices. My personal backlog serves as a counterweight in order to stay on track.

I have long felt the same way as you. But I do think everyone benefits from structure - I think the difference is in whether we can accept (or tolerate) externally-imposed structure, especially when we disagree with it. If not, the best coping mechanism is to build your own from the inside. If you examine your own sense of spontaneity, you may find some scaffolding you've built up too.
> I think the difference is in whether we can accept (or tolerate) externally-imposed structure, especially when we disagree with it. If not, the best coping mechanism is to build your own from the inside.

Yes. You're being more precise than me here. This is spot on. The way I build and manage my own structure is to combat exactly this. For me it's a combination of habits and tools evolved over many years, and it will continue to do so.

Nice to see a fellow randomizer, agree totally with the approach.

What reactions do the people around you have when they see you making decisions based on randomness? When I would whip out my random number generator app for picking my dinner off a menu, about half the time people would get incredulous or weirdly defensive. Curious if you have come across similar attitudes.

Good question. Come to think of it, when I randomize I'm almost always alone by myself. If I'm having dinner with a companion, I either try to decide on something quickly, or opt for some alternative way of taking the matter out of my hands: e.g. ask that companion (who is always someone more knowledgeable about food than I am) or the server to recommend a dish. For me the main purpose of randomizing is to take certain kinds of matters out of my hands (rather than say to maximize breadth of coverage), and an opinionated friend serves that purpose just as well as a dice, I guess!
>Once vim motions are internalized it’s amazing how efficient it feels to “delete all word” (daw) or “change in paragraph” (cip) without breaking a sweat. The great strength and power of vim motion bindings come from how a few handfuls of general-purpose operations translate across different types of textual motions, from prose to any style of programming and markup languages.

Treesitter makes a lot of these redundant about 70% of the time. You can override "v" so that it just highlights the text comprising the current AST node, e.g. identifier, string literal. And you can keep tapping v to expand the selection to larger enclosing parts of the tree. Press V to shrink it again. This practically subsumes motions like "word", "line", "paragraph", and includes a bunch of other language-specific things like "function call", "for loop", "class body" etc that I'd never remember named motions for. I just put my cursor vaguely near what I want to change, then mindlessly spam v a few times until the selection is what I want, then press c or d or whatever. Be lazy.

On the typing point, touch typing is also really important to hone early as it can prevent neck strain vs not being able to touch type and constantly look down and up