Using tmux + helix for several years now. I like helix because I don't want to spend time on extensions. If you like extensions, go with neovim, but it you don't care and ok with switching to helix's bindings (vim-reversed basically), go helix.
And I like tmux because it's simple enough. And works very well.
Watching the interview with Andrew impressed me so much that I started learning Zig yesterday. There is still much to do but my kernel now has it's first userspace program written in Zig.
For now, I'm planning to only implement the further userspace programs in Zig but I might write some parts of the kernel with it as well.
See:
https://t.co/CpvJ37GxeY
I've got an agent in a loop optimizing a renderer with the goal to minimize frame times (and tests to measure). It got times down from 88ms to 2ms and allocations down from ~150K to 500. Sounds good, right? Wrong. This is exactly why agent psychosis is a big fucking problem.
As an experiment, I rewrote the Ghostty core render state in Go, with access to identically laid out data structures as Ghostty and the exact same validation tests. I made a purposely naive renderer (simple, correct, but slow). 88ms per frame with 150,000 allocations (horrendous, lol)!
I then kickstarted a Ralph loop to bring the frame times down. I told it it can't modify input data structures or the public API or tests (they're correct), but it can do anything else it wants. It got to work.
It has worked for about 4 hours. I've spent around $350 on this experiment so far. The results?
88ms => 1.5ms
150K allocs => ~500 allocs
Incredible right? Nope.
My hand-written renderer I ported has frame times (same benchmark) of ~20us (0.020ms) and 0 allocations in the update path.
This is the problem with psychosis and lacking systems understanding. If you don't understand the system, you're going to accept that this is an incredible result. If you understand the system, you'll see better solutions immediately and can do roughly 75x better on throughput.
The people who blindly trust agent output are in the former camp. They're sheeple, overdrinking from a fountain of mediocrity.
Standard disclaimer: I use AI all the time. I like AI. The point I'm making is to not blindly accept results. Think. Analyze. Learn.
I've been building my OS in @rustlang from scratch for a while, and here are the updates from the last few weeks:
1. Implemented a VirtIO block driver to have persistent storage. It only supports synchronized reads/writes and no caching.
2. Implemented a simple VFS with only open, read, write and seek support.
3. Implemented the VSFS (very-simple file system) from the OSTEP book as the concrete filesystem implementation. Works well enough at this stage tbf.
4. Vibe-coded a tool to create a VSFS filesystem image based on a local file tree. (this is not a part of the learning experience, so im not gonna spend my limited time on it)
5. Implemented ELF-loading: Now I can load binaries directly from the filesystem. This way, I was able to split the userspace programs and the kernel binary entirely which is nice.
Next steps:
1. I again have a good amount of tech debt. Especially the task spawning logic now has a lot responsibilities. Need to fix that first.
2. Need to introduce a minimal task lifespan. Currently, we just spawn tasks and they run endlessly. But there is no exit, or parent/child stuff.
Very curious about the motivation of people vibe-coding non-trivial things and sharing it as if it's their work. I'm not against the use of AI or even vibe-coding. I'm just curious let's say you fooled everyone into thinking it's your code, and you got a cool job, how are you going to sustain that in a good team with decent engineers?
@ctatedev Curious how JSON diagnostics is better than say, good error messages like Rust has? For a static non-AI system its ok but why does it matter for an agent?
@AlphaLegion101@ChShersh The tool I was building was using std and the default allocator. What are you talking about? I didn't make it write it from scratch. Indeed it is a skill issue but by the AI.
@AlphaLegion101@ChShersh The tool I was working on is already using std in Rust. It does a bunch of allocations using the global allocator. It shouldn't be hard to assume that using a library is the best choice.
I strongly disagree because I was already using a bunch of libraries when they are needed. These stuff should be able to automatically figure that out or at least ask user in case they are not sure. Most of the people using AI don't even know whether AI writing the JSON parser itself is good or not. So in the hands of people with poor knowledge or even if you dont closely supervise the output, the code will surely become shit.