Implementation chicken:
When there's an obvious feature gap in an ecosystem and everyone is waiting for someone else to write it.
I see this most frequently with OSS toolchains. Basic functionality in new programming languages is another common scenario.
I'm debating whether `from foo import *` is a bad feature for my toy programming language.
Forcing `import foo as f` and later `f::bar()` is so much more amenable to local static analysis. You also don't get issues with name clashes.
It's certainly convenient though.
I've released difftastic 0.70! In this release:
* Added Dockerfile and fish shell support
* Improved Dart, Emacs Lisp, Erlang, Java, OCaml, PHP,
Protocol Buffers and TOML.
* A bunch of display and performance fixes.
As a kid I didn't particularly like bosses in games: they were a bother that you couldn't skip. Now, I see so many bosses with *amazing* designs.
I think I'm just less intimidated. Platformers also let you wait until you're ready more often too.
It's surprisingly fiddly to build a lint engine that warns on unused suppressions. Plenty of established linters don't have this feature.
I carefully document `cargo install --locked` for difftastic users, I carefully use `--locked` for CI, and I've just realised that all my release builds totally ignore it! Oops.
Anyone using my prebuilt binaries have been getting different Unicode width calculations in display.
Today in cursed C code:
void foo(int32_t int32_t, int32_t bar);
Since C puts identifiers and typedefs in the same namespace, this code just produces a confusing compile error about the type of bar!
(This occurred in some real code after macro expansion.)
I've learning more about Zellij, and it increasingly feels like a nice tiling window manager for working in terminals.
My mental model for tmux and screen was that their main focus was persistence (detach/attach between SSH sessions). Zellij seems to focus on layout.
I find myself just taking photos of documents for submitting forms, rather than scanning.
Scanning still feels more 'official' (a PDF instead of a JPG) but the sheer convenience of using a phone wins every time. I've rarely seen organisations complain about photos.
Playing with Zellij this week (a terminal multiplexer like screen/tmux) and it's worked great so far.
It's nice having many short-lived, named terminal sessions on a remote machine. Normally I'd have multiple iTerm windows, but they end up with huge histories.
Compiler error messages is such a deep topic. Even in rustc, a mature compiler that invests effort in diagnostic quality, I find interesting issues every few months.
(The majority have been fixed pretty quickly, so it's really rewarding to file issues.)
Today I learnt about yamllint: if you're using YAML, you can at least ensure you're not suffering from the 'Norway problem':
I'm reaching a point where I want a declarative, GitOps style workflow for DNS for my personal projects.
Anyone have opinions? The obvious options seem to be Terraform or DNSControl.
I'm surprised there aren't more interpreted languages with a first party type checker.
Python has several good type checkers, Ruby has Sorbet, and there are others.
Having zero compilation time *and* a full IDE seems like such a compelling design, at least on paper.
I had a third attempt at porting difftastic from Dijkstra to A*, and I've eventually concluded that A* just isn't worth it for the implementation complexity.
I had fun writing it up though, and I've even attempted ASCII art for building intuitions:
Showing 1-15 of 7,640 posts