Live data from Hacker News

Good Tools Are Invisible

gingerbill.org

271–280 of 305 posts

Re: Good Tools Are Invisible

#271
post #18

I rarely use vi{,m} these days but I sometimes still instinctively type motions or :commands into other terminal editors (which naturally blurts them out into the text buffer). When using something like Sublime or VSCode, I'm always hunting through menus, documentation and search engines to do something simple like ":%!sort -u". Kate is a bit unwieldy—far from invisible—but I've found it to be the most frictionless e…

If you're always reaching for vim commands, why did you stop using it?

Re: Good Tools Are Invisible

#272

Earlier quoted context omitted.

> — Well, in my FrobnicatorStudio, there's a shortcut Ctrl+Alt+So for that When I get those people typically I'll switch to Emacs (it's always open), use dired and rename 20 files at once, using either a keyboard macro I make on the spot or using a regexp replace. This usually not only get them to shut up for good, they also typically then see me as the "computer wizard". I demo'ed some terminal (piping command calls…

I don't think I've ever had to rename 20 files at once, so I wonder if the way people work is kind of shaped by their tools?

"I don't think I've ever had" stance, about any problem is not a good argument. At some point you'd face them and the mental models shaped by the tools you choose, often force you to deal with them in a way that often creates small, subtle micro-annoyances. You won't even consciously notice them, yet they add up. You get constantly distracted, every time by small bits, your focus budget gets eroded without you even noticing it. You feel inexplicably tired at 3PM without any meaningful work getting done for the day.

In psychology there's a term called "emotional bank account model" - small chronic negatives silently drain the account, so by the time something "big" happens there's no reserve left, even though the big thing isn't the actual cause. That is I think why our field has notorious "burned out programmer" problem. We can't even explain the reasons - because the accumulation is diffuse and undramatic, people lack a narrative-worthy explanation, and the real cause is chronic negative-affect accumulation.

That is why it is important to seek ways for the "gratified productivity" where no matter how small your problem seem to be, you can find ways to automate it nicely, ideally reaching for solutions quickly. Tools do shape your mindset. Expertise changes what affordances you perceive. Experienced Emacs user when stumbled on a problem looks at a workflow and literally sees the seams where it can be pried open, the way a climber sees holds on a blank wall. Novices often don't even recognize the wall. It's not that Emacs "has this capability, but other tools don't", it's not about specific features, it's about the mindset. Experience awk hacker for the same "rename 20 files problem" may combine a complex looking single-liner and say: "who needs Emacs schmimax? ble...", the difference in the approach, but the result is not just the output but also the mental gratification - small problem fixed quickly. While a newbie would be doing it manually, and maybe even solving it faster, but there's no gratification. We are species of "tool builders" - we get excited from using tools, sharpening them each time. Menial tasks don't leave that sharpened mental edge, they "blunt" your mindset and accumulate frustration.

Re: Good Tools Are Invisible

#273
I'm building

Inquir Compute - Function as a Service, https://inquir.org

and

Inquir Search - Search as a Service, https://search.inquir.org

considering pretty good services, use them almost on daily basis building some random staff

e.g. deployed

https://aleksandr-kubarskii-0931e2-hn-8439d2.inquir.org/

https://aleksandr-kubarskii-0931e2-psx-d82ded.inquir.org

https://aleksandr-kubarskii-0931e2-anime-42854a.inquir.org/

and some more

Re: Good Tools Are Invisible

#274
post #232
post #189

Earlier quoted context omitted.

[flagged]

You can be less of a coward and reply to my comment, since you are talking about me personally, rather than mentioning me by name elsewhere. gingerBill and I were disagreeing, sure, but at least we were arguing on topic. I fail to see what is insightful about your comment than just pointing and saying 'get a load of this guy.' Thanks for your input, you can take a seat now.

I wasn't talking to you.

Flagged.

Re: Good Tools Are Invisible

#276

Earlier quoted context omitted.

vim isn't really something you use in pipelines though, it's a standalone tool.

whoa, you can and absolutely should pipe things in and out of vim - it's natural. Emacs on this actually in disadvantage - it doesn't give you a built-in way for piping from and into buffers, but for that there is emacs piper script: https://github.com/agzam/mxp

Dunno, never had to do this. At most I might set PAGER=vim which means maybe something else is piping for me. If you're piping with vim then fine, but it's not a requirement to use it, unlike smaller utils that are begging to be piped.

Re: Good Tools Are Invisible

#277
post #231

Earlier quoted context omitted.

You should not underestimate how confusing those CLI tools are to people who have never used them before. For example, I would argue that for someone with no experience, figuring out how to copy a file from one folder to another is easier in Windows Explorer than learning how to use cp.

> For example, I would argue that for someone with no experience, figuring out how to copy a file from one folder to another is easier in Windows Explorer than learning how to use cp. I don't believe this. If you find a person (well, two I guess for this experiment) with no computer experience and want to teach them how to copy files, your first step will be teaching them what is a file and how they are organized in…

Look I’m a big fan of having CLI interfaces, and they can definitely let you do things that you just can’t do (or are extremely difficult to do) with a standard desktop gui. But at the same time, the GUI means they never have to learn that `cp Downloads/foo.mp3 Music /` will give them a cryptic error that Music can’t be found. Or that if they’re already in the Downloads directory then they need to instead type `cp foo.mp3 ../Music/`, or that they’re going to need to figure out the special way to tell the computer what they mean when they want to do `cp Downloads/foo bar (feat. baz and the fizzbuzzes).mp3 Music/` and that doesn’t work when they type it in.

The initial explanation of the happy path might be slightly longer to teach drag and drop or right click copy and paste for files, but that happy path will also deal with a lot more scenarios in the exact same way than the happy path cli commands will.

Re: Good Tools Are Invisible

#278

Earlier quoted context omitted.

whoa, you can and absolutely should pipe things in and out of vim - it's natural. Emacs on this actually in disadvantage - it doesn't give you a built-in way for piping from and into buffers, but for that there is emacs piper script: https://github.com/agzam/mxp

Dunno, never had to do this. At most I might set PAGER=vim which means maybe something else is piping for me. If you're piping with vim then fine, but it's not a requirement to use it, unlike smaller utils that are begging to be piped.

> never had to do this

is not a defensible argument (regardless of what you use), see the relevant comment here¹

the bigger point is to get more precise and utilitarian control over text which I already discussed here in this thread², piping in and out of your editor buffers sometimes comes very handy.

___

¹ https://news.ycombinator.com/item?id=48876315

² https://news.ycombinator.com/item?id=48869558

Re: Good Tools Are Invisible

#279
post #15

> usually because they don’t realize how much more productive keyboard navigation is than reaching for the mouse a lot of the time. In a large number of cases people who say they are more productive have never measured it. They have no idea if it is true. There are been many competitions between keyboard and mouse navigation over the years. Depending on the details of how the test is written one will win or the other…

[flagged]

Re: Good Tools Are Invisible

#280

Earlier quoted context omitted.

I don't think your logic is off, but I also think that the FrobnosticatorStudio people have a point. The thing is, yes, the terminal gives you infinitely more capabilities but you probably have like, 20 actual things you do regularly? The learning curve makes it a hard sell when those 20 things are probably all you need. Like, sometimes I'll do something like this if I'm in a terminal and I want to find a build scrip…

My usual thought on this is that I don't want to get stuck at ctrlp ctrlf level. I always pick a tool that gives an intermediate expressiveness level even if it means a bit more efforts.. especially if it's not gui because I can reuse and compose it. For instance jq falls too far on the capabilities curve. It's a nuclear weapon but it's almost a programming language and I never can keep the operators in mind (even th…

fwiw, Clojure pretty much replaced jq in my toolbelt. Dealing with EDN is so much gratifying - it's almost twice more compact than JSON, it's far more readable; filtering, grouping, sorting, slicing data is so much more straightforward and actually composable, not to mention that I get to do that interactively, directly from my editor.
Post reply on HN