miniblog.

What piece of syntax has the most different meanings? I realised today that `as` is extremely overloaded. It can be used for aliasing imports (Python), type casts (Rust), binding pattern match variables (OCaml), type assertions (Hack) and probably many others.
I'm fascinated to learn that there's a black market for GitHub stars: https://dagster.io/blog/fake-stars E.g. they can be financially valuable if you're trying to raise money for your start-up.
Plan9: exploring a radically different operating system and UI design, running it on a Raspberry Pi: https://thedorkweb.substack.com/p/a-week-with-plan-9
In OCaml I can use Merlin to destructure `flavour ()` and it gives me the whole `match flavour () with | Vanilla -> ()`. It's nice. In Rust I have to write `match flavour() {}` before rust-analyzer can autofill the match arms, which is more typing. I'm not sure why.
GitHub is adding a notion of a queue for pull requests, so you know if your PR is green relative to the PR that will land first! Reminds me of Bors for Rust.
It's surprisingly fiddly to parse unfinished multiline expressions in a REPL. In Garden, my toy language, the parser distinguishes 'incomplete' from other others, so I can keep appending text and re-parsing until something useful comes out.
Photo
The Tomorrow Corporation has built its own game programming stack with live reload, time travel debugging, and even the ability to serialise the entire game state and replay it between testers! https://www.youtube.com/watch?v=72y2EC5fkcE
Solving Fizzbuzz using Euler's totient theorem rather than conditionals:
@nachobarrientos@emacs.ch Gosh, really? Helpful has reasonable unit tests IMO, although it definitely uses a bunch of obscure Emacs APIs.
The next version of difftastic will support Ada!
PhotoPhoto
Are there any FOSS licensees that explicitly allow people to train AI models on the source code? This seems like a useful addition, and there's already precedent with the "classpath exception" for the GPL.
On building a full-featured REPL, handling errors, and the different REPL APIs in the Clojure ecosystem:
Displaying value information in an IDE is tricky. For union types, it's more helpful to see the inferred type (Option<Player> versus null). For product types it's often nicer to see an example value. For primitive types I almost always want a value (0 versus int).
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 like the notion of "pac-man complete", the idea that your programming language needs enough effects/IO to do a 2D game: https://prog21.dadgum.com/23.html We should have more levels of language capability. 'Can do Hello World' and 'can do fizzbuzz' are useful for a new language.
Showing 151-165 of 245 posts