miniblog.

Software is typically malleable. What software is the hardest to change? For me, the obvious cases are APIs near the bottom of the stack (e.g. imagine changing a Linux syscall) or systems with a large number of users (due to Hyrum's Law).
I really appreciate that GitHub has separate icons for pass and fail in CI. I've worked with Jenkins plugins that rely on red/green colour too much.
TIL that you can give your threads names! https://doc.rust-lang.org/std/thread/index.html#naming-threads
I've released difftastic 0.44! In this release: * Support for Racket and Newick * Better handling of parse errors * Nicer syntax highlighting https://github.com/Wilfred/difftastic/releases/tag/0.44.0
A surprising amount of important software functions by developers doing each other favours by reviewing pull requests.
Generated Code Generates Overconfident Coders: https://www.deeplearning.ai/the-batch/issue-180/ A study of programmers found that using a LLM for completion produced buggier code but users were more confident in it. I wonder if this generalises to other completion techniques?
TIL that coreutils has a lightweight version of the `finger` command, appropriately named `pinky`!
Another unusual feature of Elm's error messages: it uses the first person ("I was partway through parsing a record, but I got stuck here"). It reads pretty well to me, but this is a surprisingly divisive topic.
https://elm-lang.org/news/compiler-errors-for-humans mentions the importance of layout and paragraphs for compile error messages. Perhaps tools should do line wrapping if the terminal is very wide? It's definitely more comfortable to read.
I think GitHub Copilot (and LLMs for coding more generally) are best seen as a complement to traditional IDE completion. Textual word completion is useful even when you have type-aware method completion. Copilot feels like a more powerful case of word completion.
https://github.com/repository-settings/app is an elegant use of GitHub apps: you can define a .toml for repository settings, which lets you change these settings with a commit!
Playing with VS Code also reminds me how overloaded the tab key can be. It might do indentation, or LSP completion, or snippet completion, or Copilot completion. In Emacs I've configured these operations on separate keys (e.g. yasnippet on SPC) which is less surprising.
I've been playing with GitHub Copilot, and it feels unlike any other completion tool I've used. In a bunch of cases, it can write short snippets that are exactly what I want. (I tested it on a toy interpreter I'm working on. I'm tweaking how statements are represented.)
Are there any advantages to having a statement/expression separate in a new programming language? I understand that it makes sense for existing languages, but "everything is an expression" seems to be increasingly popular.
I've heard of snake_case and kebab-case, but Train-Case is new to me! I presume it's supposed to look like a train pulling a carriage? (From https://crates.io/crates/heck)
The Zen of Emacs, and the ability to extend *anything* incrementally, contrasted with VS Code design principles: https://vivekhaldar.com/articles/a-spiritual-successor-to-emacs/
I'm fascinated to learn that people are discovering weaknesses in state-of-the-art bots for playing Go, such that a novice player can reliably win: https://goattack.far.ai/human-evaluation This suggests that self-play doesn't always generalise: it's not sufficient to beat earlier versions.
I'm increasingly persuaded that a page-per-function organisation of docs is the best. For example, this command in Redis has its own page: https://redis.io/commands/acl-cat/ Using a whole page enables you to have several examples without overwhelming the reader.
"If it compiles it probably works" is definitely more common in some languages. What PL features make this more likely? My current theory is that pattern matching on enums with exhaustiveness checking is the primary cause. Especially when null has been replaced with Option.
I'm really impressed by the styling options in https://carbon.now.sh for producing images of code. I'm often dissatisfied with my options for displaying code samples in slides, this might be a better option. Line numbers and (light background) syntax highlighting matter.
Showing 161-180 of 235 posts