Some AI coder: "I" wrote this new thing that searches for hidden strings in files.

Most youngins: Oh wow, that is so useful, I wish I had this years ago!

Us greybeards: Congratulations, you reinvented grep.

This is absolutely a subtoot.

Cue someone pointing out the code I am talking about may be running multithreaded and be faster than grep.....

Congratulations, you reinvented grep with xargs.

GitHub - BurntSushi/ripgrep: ripgrep recursively searches directories for a regex pattern while respecting your gitignore

ripgrep recursively searches directories for a regex pattern while respecting your gitignore - BurntSushi/ripgrep

GitHub
@nuintari or the multiple improved greps of antoquity
@nuintari
Or ugrep / ripgrep, which already existed for a long time too
GitHub - BurntSushi/ripgrep: ripgrep recursively searches directories for a regex pattern while respecting your gitignore

ripgrep recursively searches directories for a regex pattern while respecting your gitignore - BurntSushi/ripgrep

GitHub
@nuintari ooo how do u do that w xargs

@fiore Basically, read up on the -P option.

"Taco Bell Programming" is a good read, and has an example that'll get you started on the xargs rabbit hole.

http://widgetsandshit.com/teddziuba/2010/10/taco-bell-programming.html

Taco Bell Programming

@nuintari It's easy to forget that the average person probably only knows about grep -r for recursion and grep -e for regexps. And grep -f secrets.txt to load the secret patterns to match from a file, of course. Of course.
@m @nuintari I don't use those, but I remember the flags for inversion and case-insensitivity, or at least I remember that the flags exist and I can look them up in the man page if I need them.
@nuintari xargs is still serial though.
You reinvented ripgrep maybe. Or git grep

@StompyRobot

https://blogs.kenokivabe.com/article/multi-threaded-processing-using-xargs-and-parallel

decent place to start on the rabbit hole of how awesome xargs can be

Edit: I was on mobile when I found this link, and thus barely scanned it. It isn't actually all that great. Stick to the classics: Taco Bell Programming and then just dig into the man pages.

http://widgetsandshit.com/teddziuba/2010/10/taco-bell-programming.html

Multi-Threaded Processing Using xargs and Parallel - Keno Kivabe

@nuintari @StompyRobot ahh please not!
please don't tell people to `ls *.png | xargs…`; that's a recipe for unexpected delimiters-in-filenames disaster, and trivial to do better (`for f in *.png; do command "$f"; done`).
Especially annoying is the "basic" `find -criteria | xargs command` example, which can be safely and easily be handled by `find -criteria -exec 'command {}'`.
When piping filenames in `xargs` or `parallel`,at least make sure to use zero bytes as delimiters (e.g. `find -print0`)

@nuintari @StompyRobot with `parallel`, all the bad (really bad! What does the user want to happen when they `ls *.txt | parallel mv -t /mnt/backup`, and what does really happen in case there's zero .txt files?) examples of kind `ls *.png | parallel -opts cmd` should just be `parallel -opts cmd ::: *.png`

reading that article, it's honestly a bit like `parallel`'s man page or quick start tutorial didn't exist!

@nuintari @StompyRobot (quite frankly, that article is so full of popular really bad ideas that I think it's quite likely AI slop to a large amount, but I'm not quite sure. It certainly has a bit much personality for that, but both the reurgitation of long-discouraged patterns and the what-to-use-when table suggest AI slop)
@nuintari yeah, or ripgrep
@nuintari assuming i’m thinking of the same project, as far as i can tell the one thing it does that grep and alternatives don’t is automatically check various encodings of the search strings. (although it wouldn’t surprise me if this feature exists in some open source tool already or is replicable with pipes and subprocesses.)

@alys yeah, it's basically grep -f file-of-strings-and-encodings-to-seek

... with extra steps and shitty vibe coded python

@nuintari @wendynather feels more like they created an ad hoc, informally-specified, bug-ridden, slow implementation of half of TruffleHog; but yeah...
@cpswan @wendynather Considering it contains AI generated code, yeah, bugs galore is hardly a surprise.
@nuintari searching and ordering was a pretty common and early CS assignment. Still true? Or pointless because all students vibe code it?

@badsamurai Yeah, somewhere along the way, people forgot that the point of education is the learning, and the letter grade was just a status indicator.

Now, the letter grade has become the goal of most. With modern AI implementations, the learning is just busy work that gets in the way.

Every time I hear someone say they are learning coding with AI assistance, I die a little inside.

@badsamurai @nuintari
I mean the whole point is to teach O(n) etc., I hope students can't complete the curriculum without any understanding.

(Says the comp sci dropout)

@FritzAdalis @nuintari my mechanical and materials engineering is basically how to buy nice knives.

@badsamurai @nuintari been coding for years, decided to finally get a bachelor's degree and here's the thing - we mostly do charts and design documents. Occasionally I get to spend a day figuring out why the hideous Java code they handed me won't compile before making the five line change to it that fulfills the assignment rubric (that I probably could have written from scratch in an hour without frameworks).

I'm exaggerating slightly. I did implement a few search algorithms in one course, but the overall focus really seems to be preparing you to go work in some corporate hellscape using outdated tools, not learning all of the fundamentals.

@badsamurai @nuintari writing sorting algorithms during CS courses taught me the two common errors in CS: naming, caches and off by one errors. SO MANY off by one errors.
@nuintari
Business Analysts: AI is creative and will move the world forward in unexpected and amazing ways: Invest now!
@nuintari Real grey beards: you reinvented strings.
@khleedril I don't think this code actually replicates strings' functionality. I could be wrong, I got bored and rolled my eyes after reading "AI."

@nuintari @khleedril one of the problems is that unwillingness to learn predates these tools. The llm tools just amplifies it to crazy levels.

Not long ago I saw a python package someone proudly shared (I'm pretty sure it predates the llm tools) which was about 150 lines of code to copy a few files to another directory. I don't remember what it was for, but it was something along the lines of a "configuration backup tool".

I fear we are going to see so much of this, because most people hate learning things, and now they've found yet another way to avoid doing so.

@loke @khleedril Yup, we have taken mediocrity to eleven.
@loke @nuintari @khleedril "my wheel is ever so slightly rounder than any other existing wheel"
"sir these aren't street legal, the nubs and channels in the rubber are essential for traction on wet and muddy terrains, your car is a death trap"
@nuintari Yeh, we all care less about the AI. But looking for secret strings in text files is naff, real Hats hunt for them in binary blobs.
@khleedril @nuintari Admiral Hopper: congrats, here's your millisecond piece of wire
@khleedril
I've been there, 3000 years ago
@nuintari
@nuintari everything worth doing on a computer can be done with awk, grep and sed daaaaagnabbit now GET OFF MY LAWN

@nuintari yeah, but can grep do this?

*spools up a gas turbine generator*

@nuintari The irony is that this is a tool all the vibe coding harnesses use (including ripgrep).

I do wonder though if we've gone wrong somewhere on the "make this accessible and discoverable" side or if it really is almost exclusively a problem of willful ignorance.

@larsmb @nuintari aw come on is no one going to mention the tool name? I want to suffer

@larsmb - I was not referencing a tool "everybody uses", it was posted yesterday. Somebody boosted it into my timeline, and they were mocked so much for boosting it, that they deleted the retoot as far as I can tell.

@spinnyspinlock - you've been warned, it is some truly awful python code.

https://simonwillison.net/2026/Apr/5/scan-for-secrets-3/

It's basically grep -f file-of-strings-to-find-including-common-encodings

Release: scan-for-secrets 0.1

Scan for secrets in files you plan to share

Simon Willison’s Weblog
@nuintari @spinnyspinlock I meant that the vibe coding harness they used to implement this likely and quite noticeably uses a better tool (ripgrep); if they even paid a modicum of the attention to the existing world around them, they'd have stopped.

@larsmb @spinnyspinlock

Does anybody pay attention to what is going on around them in that headspace? It's all just, "Ohhh, I am so smart I don't even have to think, look what I can use these tools to do for me!"

@nuintari @larsmb of course not, it reminds me of a Adam Neely made on SunoAI where most users just listen to music they themselves "created". Strikes me as completely self obsessed behavior.
@nuintari @spinnyspinlock Everybody? No. Anybody? Yes. Hyperbole likely isn't helpful or constructive, I'd argue.

@nuintari @larsmb why did I look

love the binary file detection in particular, very good

GitHub - ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.

A code-searching tool similar to ack, but faster. Contribute to ggreer/the_silver_searcher development by creating an account on GitHub.

GitHub

@webhat not what I was subtooting about, but okay.

the target of my ire was some truly shitty python code:

https://simonwillison.net/2026/Apr/5/scan-for-secrets-3/

Release: scan-for-secrets 0.1

Scan for secrets in files you plan to share

Simon Willison’s Weblog

@nuintari reimplementing grep, but forgetting the important "do practically nothing"

https://lists.freebsd.org/pipermail/freebsd-current/2010-August/019310.html

why GNU grep is fast