aktau
Is my suspicion wrong? Are models getting better fast enough that they'll be able to add new feature (or fix bugs) and clean up even despite a mountain of AI tech debt [1]
[1]: I say AI tech debt because it tends to have some characteristics that are different from human tech debt, such as apparent lack of intentionality (which makes Chesterton's fence evaluation much harder). Perhaps if we make the AI write down somewhere, as briefly as possible, why it wrote each chunk of code...
It was discussed in https://news.ycombinator.com/item?id=45670052 and others chimed in with their own (like bkt(1) and up(1)).
The main differences I see:
- memo doesn't need to be built (its a shell script)
- once keeps output cache in a running daemon. By contrast, memo stores content under /tmp with whatever the best compression available is (it prefers zstd). There's trade-offs in that. More pareto-optimal from the security front may be to have a sort of session key and to compress-then-encrypt files on disk.Can you give some examples where Go is lacking and Java is great? (Ideally builtin things, and if not builtin, then things where Go doesn't have an externally developed alternative).
> I also use Clojure and can observe my running app with a full REPL.
Does this work with other JVM languages, like Java, too?
The parent did mention:
> ...and is simple to deploy.
Also, my experience with Java programs is that the memory overhead is even higher than Go (where it's a ~2x of what the program holds as heap due to the GOGC=100 default).
This is IIUC possible using the mlock(2) family of syscalls: https://man7.org/linux/man-pages/man2/mlock.2.html. (On Linux, though I'm guessing other UNIXen and operating systems have it or something equivalent.)
I ordered a Xyber NAS (N150) back when they were still in stock, wiped the Ubuntu that came with it and built up a NixOS config [1]. The power usage is very good (12W with 2 internal SSDs, bluetooth, wifi and a bunch of services running).
If it dies, I won't be too sad since it was about $210. But it's doing pretty well (24/7) so far.
[1]: This ended up being useful. The built-in eMMC chip that I had installed the OS on gave out after ~1 month of usage and I had to reinstall. Thanks to the NixOS config, it took me much less time.
Mac hardware is some of the best there is, but I lost faith in macOS around 2015 when I experienced a bug where XNU would shut down my device without warning if the wireless driver produced an invalid packet. (The shutdown code was in the open-source XNU part of Darwin. I don't know why the invalid packet was produced, perhaps there was a hardware issue, but the response shouldn't have been to hard reset the device immediately.)
Running Linux on this hardware, and being to use most of its capabilities, is awesome. Thanks to all the AsahiLinux contributors (directly and indirectly) for their work.
What are the mechanics of this? You mentioned bash so I asssume you don't "control" all the tooling. Is it running in a VM with an overlay filesystem that takes snapshots at every file interaction? Or perhaps outside a VM but containerized with a FUSE-based overlay filesystem?
One thing I'm wondering about (and was happy to see) is how you seem to have your (childhood) friends close by, at least on occasion.
I live in Europe and am considering what a move somewhere else in Europe (+/- 1000km) would mean. Seeing much less of my long-time friends, I imagine. But Austin seems much further from the earlier places you've stated you've lived. Did some of your friends just move with you? Are they visiting often?
I'm curious about this. Do you mean a layer of paint-like substance that makes the walls isolate better?
I'm quite sure go test compilates can spawn themselves, I'm doing it on many platforms.
But, the test setup I was referring to was explicitly not that: the tests are spawning the main binary, not themselves. Using bazel+runfiles this is pretty easy to do. With the pure Go build tool, I'm not sure what approach I'd use to "guarantee" that I get a binary build for the same environment as the test.
Faking responses I often do with environment variables, like:
ts := httptest.NewServer(...)
cmd := exec.Command(...)
cmd.Env = append(os.Environ(), fmt.Sprintf("MYCLI_PROD_ADDR=%s", ts.URL))
Of course, it's better still to go down this turtle stack (e.g. by spawning a local instance of your backend server instead of some faked handlers), but that adds more cost. I find the trade-off OK here.I use this with Baguette/Crostini on ChromeOS to get some light gaming done. Works very well [3].
[1]: https://docs.mesa3d.org/drivers/virgl.html
[2]: https://docs.mesa3d.org/drivers/venus.html
[3]: For Baguette, the Crostini-replacement, one needs to do a minor amount of tweaking to get 3D acceleration to work well (https://www.reddit.com/r/Crostini/comments/1sftdu1/comment/o...).
It surprises me that no-one has mentioned Munich's premier city park though: the English Garden (Englischer Garten): https://maps.app.goo.gl/ug5fg8KUBHPWvRPD7.
It is, frankly, amazing. I've never seen infrastructure of this kind so close to the people, so sprawling and so well kept. People swim in side arms of the Isar too, many floating (see pictures near the start at https://maps.app.goo.gl/krgaM2tTKdzCzW398, where people surf on the mini-river).
Of the places I've been, Munich is by far the best one in this area (and many others) that I know.
It made me think about the Javascript present on my blog. The site works fine without JS (syntax high-lighting is pre-baked server-side).
There is some optional JS enhancement:
- MathJax is used for turning LaTeX expressions into nice graphics on the client-side. A search reveals this could be done on the server-side, but I'd need to deal with the node.js ecosystem.
- PJAX is enabled [1]. This is completely optional, but it noticeably made page navigation faster (feel instant), especially when navigating between pages already visited (forwards/backwards).
UPDATE: Reading https://triptychproject.org/, it seems like what PJAX does is item #3: "Partial page replacement"[1]: The library is at https://www.aktau.be/js/pjax-standalone.js. It is invoked at the end of <body>:
pjax.connect({
"container": "content",
"complete": function() { MathJax.typesetPromise(); }, // Reload mathjax after a pjax load.
"autoAnalytics": false
});I can't really do that. For some things (urgent and important), loved ones need to be able to reach me.
But yes, a lot of this advice would work.
I hope to find the strength to be more like that. Also to give a better example to others.
I notice making the screen go grayscale (can configure volume up+down to do this in android) already makes doom-anything much less long-lived. The next step, since apparently I can't go cold turkey, is to try one of these alternative minimalist launchers to see if it helps. And to teach people that if they want something from me urgently, they need to call.
On the topic of watches, I used a smartwatch the company gifted me for a while. Went back to an analog watch. Much better.
Quote:
...i hate the code it generates, i hate the feeling of getting everything i ask for and nothing i want. I hate the subtle offness around vibe coded things. It is just driving me nuts.
A common reason for breakage is/was:
- Neovim changes some API (deprecating, ...).
- User upgrades Neovim and theres some incompability, OR user upgrade plugin and that plugin assumes a much newer version of Neovim. (I've often seen Neovim plugins "mandate" either the latest stable Neovim or even HEAD).
But: 1. Neovim has been including some popular plugins (or at least their functionality domain) in the past few years. This obviates the need for plugin-for-$THING, and reduces breakage.
2. ISTM that the pace of (new) plugin development in the Neovim-sphere has slowed down.
The latest example of #1 is vim.pack, which is a plugin manager similar to vim-plug, mini.deps (vim.pack is based on mini.deps), lazy et cetera.I can remember removing vim-commentary (from tpope) a while ago because Neovim included something like it in the main distribution. Granted, that specific plugin never broke because it uses the stable viml API.
Sounds great. I hadn't seen an (explicitly) C17 project before. I wonder which features of it they use. I can only find very scant references in the depot (E.g.: https://github.com/RayforceDB/rayforce/blob/6c4b1eddad0ea728...).
Anyone know?
Seeing the screenshots I was kind of expecting this was a pre-emptive multi-tasking OS (forgetting what I read in the submission).
Things that thus surprised me on a cursory look:
- noticed krn_main() ends with `while (1);` [1]. I would've expected a "schedule" call or something. I assume there's no real busy loop burning CPU, maybe it's never meant to reach this code?
- I'm reminded of the "bare metal OS" when I see one of the apps call `krn_\*` functions directly [2].
[1]: https://github.com/luke8086/gentleos32/blob/main/kernel/main...[2]: https://github.com/luke8086/gentleos32/blob/ea691f14635c023d...
The ease of grokking Go (both reading and writing) are big advantages, and facilitated by the "small" feature set of Go.