Setting up my new SSD, and I've learnt that TRIM isn't always worthwhile on modern disks: https://www.spinics.net/lists/raid/msg40916.html
miniblog.
Emacs trick I've not seen before: press t in an edebug session!
This pauses for one second at every stop point, effectively stepping for you automatically.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug-Execution-Modes.html#Edebug-Execution-Modes
DigiKam 7 is out, including a much improved ML model for organising photos! https://www.digikam.org/news/2020-07-19-7.0.0_release_announcement/
Since using Google Photos, I've wanted this feature in all the photo apps I use.
On the typical lisp function taking more arguments than its Haskell analogue: https://chrisdone.com/posts/haskell-lisp-philosophy-difference/
I've read about dematerialisation, but it's interesting to see in a computer context.
I've bought an NVMe disk and USB-powered speakers this week. Both had fewer components than the parts they replaced.
Building Docker images with Nix, and a neat discussion of graphing algorithms to decide how to flatten layers: https://grahamc.com/blog/nix-and-layered-docker-images
Rust's backtraces moving to be native Rust: https://github.com/rust-lang/rust/pull/74682/commits/06d565c967bfb7c6ff52a991bbe47b4a2a25de3e
This prevents malformed DWARF info leading to security issues, an avenue for vulnerabilities I'd not considered before. https://twitter.com/Brittain_Ben/status/1288193388588740615
I've been doing more functional programming recently, and realised just how general a for loop is.
We needed a function `int list -> (bool, int) list` that would mark each item if it was the largest seen so far. Pretty straightforward.
Rewriting, debugging, and fuzzing a new manual format in OpenBSD: https://www.openbsd.org/papers/bsdcan15-mandoc.pdf
I particularly enjoyed the root cause analysis of the fuzzing bugs found.
A fresh linux install also makes me realise how few programs I use regularly. I've only installed Emacs, Firefox, a few interpreters/compilers and vlc. I keep thinking I must be missing something, but I haven't needed anything else yet.
OpenBSD replacing sudo with doas, as a simpler, easier to reason about alternative: https://flak.tedunangst.com/post/doas
The motivation resonates with me too: I only ever use sudo for personal usage, not managing complex groups of users with different permissions.
Did a fresh Arch Linux install on a new SSD today. It was easier than I remembered, even with LUKS and LVM set up.
Configuring wifi cards has got much easier: it's really important for the initial bootstrap these days.
I'm fascinated to learn that hard disk repair services will replace individual components in disks for you: https://www.youtube.com/watch?v=0iiEKZhDapo
Needing a clean room is a pretty major hurdle to doing the maintenance yourself.
# mount /dev/MyVolGroup/root /mnt
# mkdir /mnt/home
# mount /dev/MyVolGroup/home /mnt/home
Unix mounting conventions still feel strange to me. Creating a directory in one mount, only to mount something else at the same path. It feels weird to create a dir in the first mount.
Apparently some hardware manufacturers use FreeDOS for their hardware management tools! https://en.wikipedia.org/wiki/FreeDOS#Commercial_uses
I haven't used resumable exceptions much at all. I keep coming across scenarios where I wish the current language had them.
Most recent example: writing a tree-walking interpreter with a step counter. I'd love to throw ScriptExceededLimit with an option of resuming.
Abusing GitHub actions to keep the lights on when you're committing: https://devopsdirective.com/posts/2020/07/stupid-github-actions/
"[peerDependencies are] a commonly misunderstood gem of the npm model" https://lexi-lambda.github.io/blog/2016/08/24/understanding-the-npm-dependency-model/
A neat subgenre of quines: invalid programs that print their own source code!
$ python https://reproducing.py/
File "https://t.co/z9z9h8CFOT", line 1
File "https://t.co/z9z9h8CFOT", line 1
^
IndentationError: unexpected indent
@cstanhope Interesting, I didn't know that about Pascal!
Go does make returning an accumulator a little more concise. Compare with e.g. Python:
def foo():
res = [] # not needed in Go
for x in y:
if z:
res.append(x)
return res
That's the biggest advantage I can see though.
Showing 1,361-1,380 of 7,508 posts