286 karma · joined September 6, 2021
https://commons.wikimedia.org/wiki/File:USASCII_code_chart.s...
Also, if error wrapping hurts you so much (I don't use it), just implement a project-specific error that works how you want. This could be something that is JSON serializable, that captures a line number at each return site, etc. It will take like 10 minutes to get your project's errors working exactly how you want.
My projects usually do -
log.SetFlags(log.LstdFlags | log.Lshortfile)
// ...
if err != nil {
log.Println(err)
return errors.New("Error doing the thing.")
}
That essentially logs a stack trace with line numbers up the whole error chain, each return adding the outer context. I only ever use errors.Is for os.ErrNotExist.When using Claude Code or Codex, that is all gone. Claude Code is extremely eager to reach the end goal to the point that it feels like a fever dream to write code with it. In the end, I have low confidence about edge cases and fit into the project's architectural and design goals.
On top of that, I enjoy programming, reverse engineering, etc. and I feel that the LLMs, while able to solve some problems or deliver some features, take that fun away. I'm trying really hard to find a workflow with them that I'm confident in, but I fear that workflow is just chat, search, and being a rubber duck for my thoughts.
It was faster to rg to search files, drop into WSL and run find for file name searches. The start menu was laggy, explorer was laggy (open up a folder with a couple dozen OGG files and it won't render for a solid minute). Mystery memory usage from privileged processes I had little control over. Once I realized that the one game I play (Overwatch) ran on Linux I decided to swap back.
I installed Linux Mint earlier this year and I've been extremely happy. The memory consumption is stable and low, and if something is broken I have the control to fix it. It just feels so much less hostile. This is largely possible thanks to the work Steam has done with Proton. The last real barrier is kernel level anti-cheat which prevented me from trying out this years Call of Duty. Oh well!
I guess it had an active connection through the game end though, maybe web sockets. I was afraid it wasn't recorded because I played quite well!
Tauri is much slower to build, I think this is just the nature of Rust though. Stats here. [1]
1. https://github.com/Elanis/web-to-desktop-framework-compariso...
Windows just seems to have zero focus on performance though. React based start menu with visible lag, file Explorer (buggily) parsing files to display metadata before listing them, mysterious memory leaks not reflected in task manager processes.
I installed Linux Mint. While it didn't just work (TM), and I had to go into recovery mode to install Nvidia drivers, it worked well enough. I can run Overwatch via Steam and pull comparable FPS to Windows (500 FPS on a 3090 with dips into the 400s). Memory usage is stable and at a very low baseline.
It is nice to come back to Linux, and with games I don't really have a need to run Windows anymore.
First the good. Git LFS solves the issue of checking out a massive repository in whole.
Git can work pretty well if your annotations are in a text based format and stored one annotation per file. That makes it easy to track and attribute annotation changes.
What I'm building can serve as a backend to labeling. There is a built in workflow for reviewing changes, objects have different statuses (in annotation, included in release, etc.), reproducible releases, things like that.
It is really designed for collaboration with untrusted third parties. Imagine someone making a pull request for a binary annotation format. To review it you would have to clone it, load it in an annotation tool, then go and tie what you saw to what is in the pull request. What do you do it like 90% of the annotations are correct? Reject everything? Very tough, also assumes your annotater can make a pull request.
Mine will still require you to bring your own annotation tool, but makes it much easier to integrate the review process.
Wanting to store versions of the datasets efficiently I started building a version control system for them. It tracks objects and annotations and can roll back to any point in time. It helps answer questions like what has changed since the last release and which user made which changes.
Still working on the core library but I'm excited for it.