I'm exploring how I show lists in my documentation. I like boxes for tidiness, but it's much less space efficient. Which do you prefer?
I should also survey how other sites handle this.
One month after configuring my VPS to reboot weekly, and I'm *still* finding services that aren't properly configured to start on boot.
I'm developing a newfound appreciation for tools like Chaos Monkey.
I've been impressed with code written by Fable in my testing:
Difftastic: found small optimisations in a hot loop I'd already profiled extensively. Helped me prototype Dijkstra to A* too (hard to find a good heuristic).
Garden: Found some real bugs in my simplistic typechecker.
When talking about a match or a switch statement, I've typically seen people talk about individual 'cases' or 'arms'.
TIL Zig uses 'prongs' instead!
Today I learnt about clippy::clone_on_ref_ptr, which complains about t.clone() on a Rc<Thing>. You write Rc::clone(t) instead, so it's obvious it's a cheap clone.
It's a nice approach, because it makes the expensive clones more obvious.
I've had good results by prompting an LLM "review your changes" in the same session when I don't like the initial output.
I'm surprised this is effective: I would think it's redundant when you're running with a high effort setting.
I find that I'm choosing AI tools based on the quality of the harness rather than the model.
For example, I'm using Claude Code Web because its model of remote VMs is extremely convenient. I'm using Perplexity because it's tuned really well for web searches.
My $2/month VPS has stopped and can't even boot, so I've switched provider.
It seems like most server providers don't want to offer <$5 machines, and I imagine it's hard to make money at the low end. Several providers require a one-off setup fee too.
I'm writing a Path type in my programming language but not sure what methods belong on a Path.
Should I have some_path.read_string() or fs::read_string(some_path) instead?
I love .method() for IDE completion, but I don't want Path to be cluttered. I'm also trying to avoid UFCS.
Go has an os.Root API that allows you to enforce all paths are subdirectories of a given root. It fixes users accessing foo/../../../etc/passwd and similar.
Seems like a really nice solution for a relatively common problem.
I've just realised that Community Fibre, my ISP, offers 5 Gb/s packages in some London addresses!
I'm struggling to imagine a use case for such a high residential bandwidth. When I switched to 1 Gb/s I needed to upgrade my wifi router to actually take advantage.
What's the nicest way of doing clientside form validation without annoying the user?
I keep finding forms that show red errors when I write 'wilfred@' for an email or '0' for a telephone number because I haven't finished inputting the value.
Some novel (to me) AI workflows from OpenAI in
https://openai.com/index/open-source-codex-orchestration-symphony/
(1) Adding the ability for the LLM to create follow-up tasks in the issue tracker.
(2) Identifying weaknesses in the spec by implementing in several different languages.
LLVM's lit tool for testing files is the most successful testing DSL I've ever seen. It's used a decent number of projects outside of LLVM.
By contrast I don't see many folks using e.g. Cucumber these days.
nREPL is a really interesting protocol for developer tools. It's extensible, but one of the basic operations is eval().
If your nREPL server doesn't support a given operation, you can just send an eval request to achieve the same result!