Wilfred Hughes
wilfredh@mastodon.social
<p>Programming languages, human factors, and a healthy dose of Emacs.</p>
Posts
-
View post
Language design question: what type should `while True {}` have? Bottom: It doesn't contain any `break` statements. Unit: Treat loops with/without `break` consistently. I already have lints that warn on unreachable code after diverging loops, so the Unit case feels surprising.
-
View post
Difftastic 0.69 is out! This is a pretty big release: * Semantically insignificant commas are now ignored * Difftastic now respects .gitattributes * Added assembly support and improved 13 other languages https://github.com/Wilfred/difftastic/releases/tag/0.69.0
-
View post
I sometimes see blog posts lamenting how inconsistent UIs are in modern apps. When did consistency peak? Windows 3? After the release of Aqua for macOS? The era when Bootstrap was the default CSS framework for many web developers?
-
View post
Writing type params with &lt;&gt; (e.g. List&lt;Int&gt;) seems the most natural to me: probably because I encountered that syntax first. Between C++, Java and TypeScript I think it&#39;s the most common too. List[Int] seems to be next most common (Scala, Python) but TIL Gleam uses List(Int)!
-
View post
What is the lowest resolution image that is still recognisable? I made a space invader craft project at one point and spent a bunch of time wondering if I had enough materials.
-
View post
Are there any developer experience advantages for `x := 1` over `let x = 1`? A `let` keyword probably improves parsing error behaviour, and makes declarations more visible. := is more concise though.
-
View post
Really elegant developer tool: Go&#39;s inline IDE feature is used with deprecation markers, so call sites are autofixed from OldApi() to NewApi() based on the implementation of OldApi. https://go.dev/blog/inliner
-
View post
I&#39;m adding uptime data to my personal LLM bot. Does this information belong in the system prompt? That was my initial plan, but I&#39;m thinking that a tool would be better. Tools let me see information provenance (&quot;queried the uptime tool&quot;). There&#39;s also a small caching benefit.
-
View post
I&#39;ve started naming my servers digiocean1.example.com, digiocean2.example.com and so on. I wish I&#39;d done this much earlier. I already have domain names for the actual deployed services, but it quickly gets confusing when you start moving things around.
-
View post
I&#39;m experimenting with imitating window UI elements when showing code snippets on my website. What do you think? Do the familiar dots of the title bar help, or is it just confusing decoration? First image is the current style, the second image has the window UI.
-
View post
Excellent series on Self, both the programming model and the tool chain. I love how opening an inspector on a value (e.g. nil) then shows a link to all occurrences of the value in other open inspectors! https://blog.rfox.eu/en/Programming/Series_about_Self/Environment_and_the_programming_language_Self_part_one_environment.html
-
View post
I&#39;m surprised there aren&#39;t more tools out there for starting a new project with some default config files. There&#39;s `cargo new` but it&#39;s Rust specific and very minimal. create-react-app is React specific. The only option I know of is cookiecutter. Surely it&#39;s a common problem?
-
View post
My 3.5yo is learning to use a mouse, and it&#39;s super interesting. He&#39;s mastered clicks and drags, but he hasn&#39;t yet figured out lifting up the mouse when run out of mouse pad. That&#39;s a tricky case where you deliberately break the relationship between mouse and cursor movement.
-
View post
The author of rust-analyzer discussing how language features help or hinder fast IDEs. If you allow `from m import *` you can&#39;t analyse files in isolation, and it&#39;s even harder in Rust. https://matklad.github.io/2026/02/25/against-query-based-compilers.html
-
View post
Reviewing some of my earliest web projects: they have a mix of Postgres, MySQL and Mongo. These days I just use sqlite for all my personal projects. It&#39;s really good at my scale and makes deploying very easier.
-
View post
LLMs have been really helpful for me porting some JS projects to TS. Since the types are erased and annotations are optional, I can go gradually and safely with more minimal human oversight. (I&#39;m not sure if it&#39;ll significantly help robustness, but it&#39;s lovely for navigation.)
-
View post
Some excellent safety improvements in C++26: hardening the standard library against out-of-bounds bugs, and a safer semantics for uninitialised local variables: https://herbsutter.com/2026/03/29/c26-is-done-trip-report-march-2026-iso-c-standards-meeting-london-croydon-uk/
-
View post
Rust and RISC-V both feel like they&#39;ve reached critical mass and I&#39;d guess that they&#39;ll be used more in 5 years than they are today. What other technologies fit this description?
-
View post
I&#39;ve released difftastic 0.68! A smaller update, but still worth upgrading: * Improved Bash, C, Go, Lua, Nix, Perl, Python, Rust, Scala, Swift and YAML parsing. * Minor display and git compatibility fixes. https://github.com/Wilfred/difftastic/releases/tag/0.68.0
-
View post
I enjoyed this article about personal project programming, but I particularly liked this definition: &quot;Production code has a phone number to call when it breaks&quot; https://hannahilea.com/blog/houseplant-programming/