miniblog.

A funny side effect of building software in Rust: my machine OOMs much more during development. I'm not entirely sure why. I think Rust makes it easy to allocate data quickly, and sooner or later you write an infinite loop when coding.
I'm experimenting with Hammerspoon on macOS as an application switcher. `Option-Space F` is Firefox, `Option-Space E` is Emacs, etc. The problem with `Alt-Tab` is that the order changes based on recency. I'm hoping that a repeatable command will be nicer to use.
@tristanC That's an option! There's often cases where you know what the user wanted though, so you can provide a sensible AST that the toolchain can handle. For example, a malformed string literal can still be parsed a string so type checking etc can be helpful.
Counter-intuitively, if you're writing a parser for a programming language, you need it to be a total function. As soon as you build IDE tooling, you need ASTs from invalid or incomplete input. The parser should return (Ast, List<Error>) rather than Result<Ast, Error>.
Today I learnt that the original name for DOS was QDOS, for "Quick and Dirty Operating System"! https://en.wikipedia.org/wiki/DOS#QDOS (Seems rather unfortunate that they dropped the Q.)
I've been compilation buffers in Emacs recently and I really appreciate the error and warning counts shown in the modeline. I've added the equivalent feature to deadgrep: it shows result counts! Really useful when you're doing big refactorings. https://github.com/Wilfred/deadgrep
Today I learnt that Lua projects often use *3* spaces for indentation! https://github.com/luarocks/lua-style-guide/blob/master/README.md#indentation-and-formatting I initially thought something was very wrong with editor config.
What are the most interesting upcoming scripting languages? Scripting remains an important part of the programming language ecosystem. Optimise time to first feature. Allow mutation of the running system to experiment. Interactive inspection of data.
Sometimes programming tools are so good that you miss them when using other languages. I see these mentioned the most frequently: * IntelliJ (for Java) * Slime+Emacs (for Common Lisp) * Pharo (for Smalltalk) I'm struck that they all have bespoke UIs.
Are there any package managers that treat changelogs as a first class concept? I end up looking for a CHANGELOG.md or a CHANGES.txt in the source code repository every time. The lack of standard prevents package hosting services being able to show changes.
Here's a weird UI pattern I haven't seen before. This sanitizer will keep things clean for 24 hours, so the time counts *down*. Every time I see it, it looks like 24 hour clock showing the wrong time!
I've dabbled with 'conventional commits' for a personal project but I found they slowed me down. It's not always easy to categorise a commit as a fix, a chore etc. Sometimes refactorings also fix bugs. Do you use them? I can imagine a large, mature project benefitting more.
It's rare to see ANSI escape codes for URLs in the wild, but cargo has it! This example links to https://doc.rust-lang.org/cargo/reference/profiles.html#default-profiles, describing the different profiles. Considering releases vs debug is a source of confusion for new users expecting better performance, this seems wise.
The niche of short, environment-specific scripts, and the consequences for programming language design choices: https://brrt-to-the-future.blogspot.com/2021/03/why-bother-with-scripting.html
It is remarkably hard to escape command line arguments safely on Windows, and the standard libraries of multiple languages have needed patching: https://flatt.tech/research/posts/batbadbut-you-cant-securely-execute-commands-on-windows/
Exploring design ideas using AI as a learning assistant, for creative exploration: https://andymatuschak.org/hmwl/
Installed Linux on a new laptop yesterday, and needed to find a USB stick in a dusty drawer. The stick previously had Arch Linux Installer 2021 on it! I can't think of any other uses for the device these days.
It's always seemed odd to me that the Rust stdlib is so lean (no random numbers, regex, HTTP) yet clippy is so big (correctness, performance, style preferences, even 'too many arguments'). Maybe it's because cargo is mature but clippy doesn't have an extension ecosystem?
USB-A connectors seem absolutely massive when the majority of my connectors are USB-C. With hindsight, maybe the original USB standard could have been smaller. USB 1 came out in 1996, way before the modern smartphone, so I assume it was more focused on desktop devices.
I'm still trying to find a sweet spot between 'show the general syntax' and 'show a concrete example' in the CLI docs for difftastic. https://difftastic.wilfred.me.uk/usage.html I'm currently showing the syntax, immediately followed by an example. What do you think?
Showing 181-200 of 7,506 posts