Focus by Automation
myme.no
myme.no
Tho it is a really fine line to not get hung up on those organizational tasks, yes.
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.
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.
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.
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.
The more minds and hands there are, the more a repeatable, consistent process is needed.
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.
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.
Does Excalidraw[1] fit the bill?
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.
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.
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.
I can't do that with TXT files near as easily.
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.
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.
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.
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.
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.
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.
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.
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.
seems like a pretty blatant copy of the Jason Heeris comic "programmer interrupted (2013)"? https://winthropdc.files.wordpress.com/2016/05/programmerint...
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.
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.