HackerTrans
TopNewTrendsCommentsPastAskShowJobs

amitprasad

no profile record

Submissions

The only sane way to use Linux

amit.prasad.me
5 points·by amitprasad·3 bulan yang lalu·2 comments

The silent death of good code

amit.prasad.me
126 points·by amitprasad·5 bulan yang lalu·96 comments

The Journey Before main()

amit.prasad.me
316 points·by amitprasad·9 bulan yang lalu·143 comments

comments

amitprasad
·2 bulan yang lalu·discuss
Our system somewhat predates ublk; at the time we wrote it, FUSE was the most reasonable option. Moving over to ublk would require re-architecting around block devices rather than filesystems, but is indeed something we're looking at!
amitprasad
·3 bulan yang lalu·discuss
Relevant post: https://modal.com/blog/dollars-per-token-considered-harmful

(disclaimer: I work with the author)
amitprasad
·3 bulan yang lalu·discuss
I’m being a little reductive and ignored Guix purely based on adoption; but you’re completely right. I believe the core argument is that there is a (relatively small) category of these tools of which Nix is the most well-known representative.

Heard on everything else, thank you!
amitprasad
·5 bulan yang lalu·discuss
Just because you or I may invest effort into deep-thinking, it does not mean that others will.

I'm not worried about this at Modal, but I am worried about this in the greater OSS community. How can I reasonably trust that the tools I'm using are built in a sound manner, when the barrier to producing good-looking bad code is so low
amitprasad
·5 bulan yang lalu·discuss
To be clear, I am also having the most fun I've had when it comes to side-projects and even more exploratory things at work. I don't derive all my joy from "Good Code" -- that's silly! I would much rather ship tangible products and features and/or tackle things at home that I wouldn't otherwise.

On the other hand, the other responsibilities of being an engineer have become quite a bit less appealing.
amitprasad
·5 bulan yang lalu·discuss
It's hard to say. Perhaps LLMs of tomorrow will become capable enough to fix the mistakes of LLMs today. If so, great -- I'm worried about nothing.

If not, we could see that LLMs of tomorrow struggle to keep up with the bloat of today. The "interest on tech debt" is a huge unknown metric w.r.t. agents.
amitprasad
·5 bulan yang lalu·discuss
I would be extremely happy to be proven wrong! I love using agents for exploratory prototypes as well as "rote" work, but have yet to see them really pay off when dealing with existing tech debt.

I find that the flaws of agentic workflows tend to be in the vein of "repeating past mistakes", looking at previous debt-riddled files and making an equivalently debt-riddled refactor, despite it looking better on the surface. A tunnel-vision problem of sorts
amitprasad
·5 bulan yang lalu·discuss
Right: Having "Good Code" is an investment into future velocity.

IMO we shouldn't strive to make an entire codebase pristine, but building anything on shaky foundations is a recipe for disaster.

Perhaps the frontier models of 2026H2 may be good enough to start compacting and cleaning up entire codebases, but with the trajectory of how frontier labs suggest workflows for coding agents, combined with increasing context window capabilities, I don't see this being a priority or a design goal.
amitprasad
·5 bulan yang lalu·discuss
There's an opportunity-cost here. I use agents to be more productive. As many have noted, "Good Code" doesn't rank highly compared to actually shipping a product.

The tragedy, for me, is that the bar has been lowered. What I consider to be "good enough" has gone down simply because I'm not the one writing the code itself, and feel less attachment to it, as it were.
amitprasad
·6 bulan yang lalu·discuss
If you're not looking for GPU snapshotting the ecosystem is relatively mature. Specifically, CPU-only VM-based snapshotting techniques are pretty well understood. However, if you need GPUs, this is a notoriously hard problem. IIRC Fly also was planning on using gVisor (EDIT: cloud-hypervisor) for their GPU cloud, but abandoned the effort [1].

Kata runs atop many things, but is a little awkward because it creates a "pod" (VM) inside which it creates 1+ containers (runc/gVisor). Firecracker is also awkward because GPU support is pretty hard / impossible.

[1] https://fly.io/blog/wrong-about-gpu/
amitprasad
·7 bulan yang lalu·discuss
Generic data stores often don’t have this luxury — if you’re designing a system in which data is relatively opaque, you’re often forced to work with bytes. (e.g. rocksdb, etc)
amitprasad
·7 bulan yang lalu·discuss
author here -- agreed on all fronts. Mentioned this in the other comment but I approached the topic from a relatively narrow perspective (I was working on a specific project at the time)

I think it's worth including these things in a future update to the post, but I didn't have the time / need to explore it back then.

In the meantime, I'd point to the following post on Unicode that remains very nice to read >20 years later: https://www.joelonsoftware.com/2003/10/08/the-absolute-minim...
amitprasad
·7 bulan yang lalu·discuss
Unexpected seeing this posted here.

I wrote this post mostly out of interest for a personal project and thus it's not actually a very holistic exploration of the topic. May revisit and update it in the future :)
amitprasad
·8 bulan yang lalu·discuss
How is the 795s7? What do you put it to work on?

Just sprung for one at a good price.
amitprasad
·8 bulan yang lalu·discuss
This is notoriously hard when you start to involve GPUs
amitprasad
·9 bulan yang lalu·discuss
This is heavily language runtime dependent — there’s nothing that fundamentally stops you from doing anything during the phase between jumping to an entry point and the main()
amitprasad
·9 bulan yang lalu·discuss
Not so much the confusion of what little endian is, but how we tend to represent it in notation. Of course this confusion was back when I was first learning things in high school, but I imagine I’m not alone in it
amitprasad
·9 bulan yang lalu·discuss
I think I got stuck in the same rut that I learned address space in whilst writing that diagram. I would tend to agree with you that your model makes much more sense to the student.

Related: In notation, one thing that I used to struggle with is how addresses (e.g. 0xAB_CD) actually have the bit representation of [0xCD, 0xAB]. Wonder if there's a common way to address that?
amitprasad
·9 bulan yang lalu·discuss
You’re right, and I knew this back in February when I wrote most of this post. I must have revised it down incorrectly before posting; will correct. Bit of a facepalm from my side.
amitprasad
·9 bulan yang lalu·discuss
Ah I should have taken the time to verify; It might also have something to do with the way I was compiling / cross-compiling for RISC-V!

More generally, I'm not surprised at the symtab bloat from statically-linking given the absolute size increase of the binary.