miniblog.

One striking downside of string interpolation is that accurate syntax highlighting becomes much harder. It's very easy to add some form of nesting, which breaks the "simple lexer" approach to highlighting.
I'm really impressed that PINE64 hosts its website on a cluster using purely dogfooded hardware! https://www.pine64.org/2020/06/05/rockpro64-cluster-move-june-5-10/
Why GHC still uses its own native code generator, and long term development prospects with LLVM: https://andreaspk.github.io/posts/2019-08-25-Opinion%20piece%20on%20GHC%20backends.html
Heapless is a neat Rust library that provides versions of data structures like Vec that don't use the heap. It's a familiar API, but some are necessarily different (e.g. Vec::push returns a result) https://japaric.github.io/heapless/heapless/index.html
I'm optimistic about the potential of RISC-V and excited to see where it goes. I wasn't expecting to see a *soldering iron* with a RISC-V processor though! https://pine64.com/product/pinecil-smart-mini-portable-soldering-iron/
Hosting a Docker registry on IPFS! The global P2P content-addressable filesystem seems like a good fit for Docker images. https://github.com/miguelmota/ipdr
I rather like how Scheme treats boolean literals (#f and #t) as syntactically distinct from normal variables. The syntax feels tidier than overloading variable names. (Though I'm still amused that 0x12 is a valid variable name in emacs lisp!)
Results from The International Obfuscated C Code Contest are out, and the winner has a devious program using the Turing-completeness of printf! Yikes. https://www.ioccc.org/2020/carlini/index.html
Why reinventing the technology stack is incredibly hard, but a fruitful exercise: https://news.ycombinator.com/item?id=24480117
Quantifying Gnome contributions by frequency, tenure, and affiliated companies: https://hpjansson.org/blag/2020/12/16/on-the-graying-of-gnome/ Whilst the methodology can't be perfect, it's a nice way of measuring contribution trends.
I've been tinkering with some garbage collection approaches for a toy language. Comparing refcounting with mark-and-sweep, the latter seems less error-prone. 'Values in list X but not in Y' is less scary to implement than 'every incref should have a decref'. Agree/disagree?
Fleck is a Clojure-ish lisp inside bash, based on the Make-A-Lisp (MAL) project! MAL is a really fun project to play with, but this is the first time I've seen someone build a project on top of it. https://github.com/chr15m/flk
On livestreaming programming: https://numenta.com/blog/2019/05/14/numenta-live-streaming-research-meetings-on-twitch/
"Conventional commits" https://www.conventionalcommits.org/ encourages a convention of prefixing your commit messages with e.g. "fix: problem", "feat: button". I've been playing with it, and it's really nice to easily see what features/fixes happened since the last release.
Photo
TIL that AMD64 instructions generally don't support immediates greater than 32-bit: https://c9x.me/notes/2015-09-19.html If you really need a large immediate value, you need to use MOV into a register first.
Reflections on the Rust design process: https://smallcultfollowing.com/babysteps/blog/2019/04/19/aic-adventures-in-consensus/
Explicitly configuring a 'hyper' key for global shortcuts, regardless of the current active application: https://prodtyping.com/blog/hyperkey-hammerspoon Nice idea -- making the desktop more like a modeless UI!
TIL that nasm does optimisation! It will convert `mov rax, 1` to `mov eax, 1` unless you specify -O0. Handy, but surprised me when tinkering with some machine code.
It's well known that certain compiler optimisations matter way more than others (e.g. inlining). Is there a similar principle for linters? I find red squiggles under unused/undefined variables the single most useful check.
Training a public machine learning model on private data can leak the original training data: https://ai.googleblog.com/2020/12/privacy-considerations-in-large.html
Showing 1,201-1,220 of 7,508 posts