HNHacker News
TopNewBestAskShowJobs

rednafi

1,910 karma · joined June 2, 2019

https://rednafi.com/about | redowan.nafi[at]gmail.com
submissionscomments
rednafi··on You have to know how to drive the car
Do you ever get tired of playing this “visibility,” “impact,” “promo politics” game and think, “I came into this industry because I like computers, not… whatever this is”?
rednafi··on ChatGPT Containers can now run bash, pip/npm install packages and download files
Yeah, Python is nice to work with in many contexts for sure. I mostly meant that I don’t personally use it as much anymore, since Go can do everything I need, and faster.

Plus the JS/Python dependency ecosystem is tiring. Yeah, I know there’s uv now, but even then I don’t see much reason to suffer through that when opting for an actually type-safe language costs me almost nothing.

Dynamic languages won’t go anywhere, but Go/Rust will eat up a pretty big chunk of the pie.

rednafi··on ChatGPT Containers can now run bash, pip/npm install packages and download files
I agree with this. Making languages geared toward human ergonomics probably won’t be a thing going forward.

Go is positioned really well here, and Steve Yegge wrote a piece on why. The language is fast, less bloated than Python/TS, and less dogmatic than Java/Kotlin. LLMs can go wham with Go and the compiler will catch most of the obvious bugs. Faster compilation means you can iterate through a process pretty quickly.

Also, if I need abstraction that’s hard to achieve in Go, then it better be zero-cost like Rust. I don’t write Python for anything these days. I mean, why bother with uv, pip, ty, mypy, ruff, black, and whatever else when the Go compiler and the standard tooling work better than that decrepit Python tooling? And it costs almost nothing to make my scripts faster too.

I don’t yet know how I feel about Rust since LLMs still aren’t super good with it, but with Go, agentic coding is far more pleasurable and safer than Python/TS.

rednafi··on AI code and software craft
It’s easy to forget that any artifact - painting, music, text, or software - that appeals to a large number of people is, by definition, an average on the spectrum of quality.

Popular music tends to be generic. Popular content is mostly brainrot these days. Popular software is often a bloated mess because most users’ lives don’t revolve around software. They use software to get something done and move on.

I never understood the appeal of “craft” in software. Early computer pioneers were extremely limited by the tech of their time, so the software they hacked together felt artsy and crafty. Modern software feels industrial because it is industrial - it’s built in software factories.

Industrial software engineers don’t get paid to do art. There are research groups that do moonshot experiments, and you can be part of that if it’s your thing. But lamenting the lack of craft in industrial software is kind of pointless. Imagine if we’d stopped at crafty, handmade auto engines and never mass-produced them at scale. We don’t lament “crafty engines” anymore. If you want that, go buy a supercar.

Point is: AI is just another tool in the toolbox. It’s like Bash, except calling it that won’t pull in billions of dollars in investment. So “visionaries” call it ghost in the machine, singularity, overlord, and whatnot. It produces mediocre work and saves time writing proletariat software that powers the world. Crafty code doesn’t pay the bills.

But I’m not saying we shouldn’t seek out fun in computing. We absolutely should. It’s just that criticizing AI for not being able to produce art is an old thing. The goalpost keeps shifting, and these tools keep crushing it.

I don’t use AI to produce craft, because I don’t really do craft in software - I have other hobbies for that. But I absolutely, proudly use it to generate mediocre code that touches millions of people’s lives in some way.

rednafi··on Turso is an in-process SQL database, compatible with SQLite
There is turso cloud.

https://docs.turso.tech/turso-cloud

rednafi··on Turso is an in-process SQL database, compatible with SQLite
Turso is sqlite with a server client arch. I use them for stashing my llm usage logs all the time. Pretty neat. Plus I'm rooting for them to rewrite sqlite in Rust.
rednafi··on Your app subscription is now my weekend project
The SaaS business model took things too far anyway. Everything is a subscription and it gets tiring quickly. I am glad that LLMs can replace crappy SaaS with crappy code now.

I replaced a whole bunch of these with one shot prompts for shits and giggles.

rednafi··on We will ban you and ridicule you in public if you waste our time on crap reports
Creating crap vuln reports or PRs on popular OSS projects has been an issue long before LLMs. Remember Hacktoberfest?

Students would often abuse it since there’s no adult in the room to teach them how to behave. I guess this is one hard way to f around and find out. But this is by no means condoning this sort of behavior.

Point is, LLMs made the situation more dire: it’s cheap to generate code, whereas reviewing still scales sublinearly. The only way to prevent this is by being rude to people who are rude to you.

rednafi··on Claude's new constitution
If they advertised these LLMs as just another tool in your repertoire, like Bash, imagine how that would go.
rednafi··on Without benchmarking LLMs, you're likely overpaying
Oh, didn't they remove the dislike count after people absolutely annihilated one of their yearly rewind with dislikes?
rednafi··on Nested code fences in Markdown
Yet there’s GitHub-flavored Markdown, GitLab-flavored Markdown, and so on. Since people just write Markdown without caring about the parsers (nor should they), they break too often when you try to move them around. It’s even worse with YAML.
rednafi··on Devin Review: AI to Stop Slop
Yeah, I wasn’t alluding to Devin reviewing and merging the changelog. This was more of a general statement, since a lot of code review tools seem to get this part wrong.

A lot of energy is being spent on making reviews faster, when reviews are intentionally meant to scale sublinearly. The goal should be: how can we make the process more convenient and less error-prone?

rednafi··on Nested code fences in Markdown
Ah, YAML and Markdown, two beautiful accidents of tech. It still boggles my mind that we collectively couldn’t come up with a post hoc spec and fix all the warts with a strict parser for either of them. Sure, it would break quite a bit of existing stuff, but the pain would probably be worth it.
rednafi··on Devin Review: AI to Stop Slop
I’m all in for building more intuitive UIs to make the review process less cumbersome. But with the current capabilities of LLMs, under no circumstances should we allow AI to be the final judge of whether something should be merged into trunk.

Code review is the last line of defense we have against our systems being invaded by the massive amount of slop that’s getting generated left and right.

Instead of trying to automate the code review process, maybe we should spend more energy on making the scaffolding around it better: better diff tools, semantically grouped files (as Devin mentioned), and better UI for large diffs (GitHub’s UI is horrible for anything beyond a thousand lines).

rednafi··on Claude's new constitution
At this point, this is mostly for PR stunts as the company prepares for its IPO. It’s like saying, “Guys, look, we used these docs to make our models behave well. Now if they don’t, it’s not our fault.”
rednafi··on Claude's new constitution
Damn. This doc reeks of AI-generated text. Even the summary feels like it was produced by AI. Oh well. I asked Gemini to summarize the summary. As Thanos said, "I used the stones to destroy the stones."
rednafi··on I'm addicted to being useful
I find it kinda amazing how these vaporware equivalent nullprose keep on hitting the front page.
rednafi··on The Zen of Reticulum
Dead internet theory [1]

1: https://en.wikipedia.org/wiki/Dead_Internet_theory

rednafi··on I was a top 0.01% Cursor user, then switched to Claude Code 2.0
*Note:* This is mostly relevant for solo developers, where accountability is much lower than in a team environment.

Code review is the only thing that has kept this house of cards from falling over. So undermining its importance makes me question the hype around LLM tooling even more. I’ve been using these tools since their inception as well, but with AI tooling, we need to hold on to the best practices we’ve built over the last 50 years even more, instead of trying to reinvent the wheel in the name of “rethinking.”

Code generation is cheap, and reviews are getting more and more expensive. If you don’t know what you generated, and your team doesn’t know either because they just rubber-stamped the code since you used AI review, then no one has a proper mental model of what the code actually does.

So when things come crashing down in production, debugging and investigation will be a nightmare. We’re already seeing scenarios where on-call has no idea what’s going on with a system, so they page the SME—and apparently the SME is AI, and the person who did the work also has no idea what’s going on.

Until omniscient AI can do the debugging as well, we need to focus on how we keep practicing the things we’ve organically developed over such a long time, instead of discarding them.

rednafi··on Architecture for Disposable Systems
Typically, it's not reiterating in the SAME manner. Refactoring happens in the presense of new information. In the case of an agent, that's usually not true.
rednafi··on The recurring dream of replacing developers
Every abstraction simplifies a bunch of real-world phenomena. The real world is messy, our understanding keeps shifting, and we’re unreliable narrators in the sense that we’re often not even aware of the gaps in our own understanding, let alone good at expressing it.

No matter how much progress we make, as long as reasoning about complex systems is unavoidable, this doesn’t change. We don’t always know what we want, and we can’t always articulate it clearly.

So people building software end up dealing with two problems at once. One is grappling with the intrinsic, irreducible complexity of the system. The other is trying to read the minds of unreliable narrators, including leadership and themselves.

Tools help with the mechanical parts of the job, but they don’t remove the thinking and understanding bottleneck. And since the incentives of leadership, investors, and the people doing the actual work don’t line up, a tug-of-war is the most predictable outcome.

rednafi··on The longest Greek word
Oh I come across German words bigger than that every now and then.
rednafi··on Architecture for Disposable Systems
The problem is that if both your interface and implementation are variables where AI can make arbitrary changes with full agency and little verification, maintenance becomes tricky as your understanding of the system as a whole dwindles.

It’s better to be on top of the interface than the implementation. But at the same time, brittle systems caused by overly rigid interfaces are a real thing. In that case, interface exploration can be done by a human with assistance from LLMs, but allowing an LLM to arbitrarily explore and make changes to the interface sounds like a recipe for disaster.

rednafi··on Architecture for Disposable Systems
Everyone claims they are x% more productive with LLMs, but once a greenfield project turns into a brownfield one, the second law of thermodynamics kicks in and these disposable components start becoming a liability.

On top of that, Hyrum’s law doesn’t go away just because your software has explicit contracts. In my experience, as more people start losing their agency over the code they generate, the system accumulates implicit cruft over time and other code starts depending on it.

Also, reliability is a reasoning problem. So operational excellence becomes scrappy with this way of working. It works for some software, but I don’t know whether this push to YOLO it is actually a good thing. C-levels are putting immense pressure in many big companies for everyone to adopt these tools and magically increase productivity while decreasing headcount to please investors. Not going too well so far.

A good interface doesn’t magically make vibe-coded implementations with little oversight usable. Rewriting it over and over again in the same manner and expecting improvement is not the kind of engineering I want to do.

rednafi··on An Honest Review of Go (2025)
Another tired error-handling take. It ain't pretty but it works.
rednafi··on The Jeff Dean Facts
Another one I have heard is "Jeff Dean's stare can fix bitrot"
rednafi··on The Most Popular Blogs of Hacker News in 2025
Tireless promo works. 3 of the top 5 authors on this list tirelessly promotes themselves everywhere - not just in HN.
rednafi··on Why 451 Is Good for You – Greylisting Perspectives from the Early Noughties
For some weird reason I thought this was about Ray Bradbury's Fahrenheit 451.
rednafi··on Publish on your own site, syndicate elsewhere
Yeah rounded border seems like a good idea.

Also, weird, seems like I don't see the encoding issue on the segal's law.

rednafi··on Publish on your own site, syndicate elsewhere
Thanks for the sub :)

Yeah, the idea was that since RSS is still considered niche by the broader audience, those who are looking for it will probably find it just fine.

← PreviousPage 3 of 22Next →