miniblog.

Bootstrapping a full GCC toolchain from an extremely minimal hex editor has an astounding number of steps: https://github.com/fosslinux/live-bootstrap/blob/master/parts.rst I didn't realise just how many tools are self-hosting. Not just GCC, but also flex, bison, automake and even perl!
What languages have changed the most since their creation? JS? IIFEs and prototypes to modules and classes. C++? Plain pointers to smart pointers. There must be more dramatic examples.
Pharo 9 will also be available as a Linux package in several major distros! https://thepharo.dev/2021/04/09/installing-pharo-in-linux-using-the-system-package-manager/ For most languages this is no big deal, but it's much harder for a deeply mutable image-based environment.
Pharo 9 refactoring demonstrates some clever analysis: if you extract a method from an expression, it can find other occurrences of that expression in the class hierarchy! https://pharoweekly.wordpress.com/2021/04/01/pharo-90-refactoring-support-improves-steadily/
A clever approach to JS dependencies during development: Snowpack hosts npm libraries which you can reference directly! https://www.snowpack.dev/guides/streaming-imports#how-streaming-imports-work
TIL you can return values from loops in Rust: https://doc.rust-lang.org/reference/expressions/loop-expr.html#continue-expressions I've only ever seen this in Common Lisp / Elisp!
Renaming code often exposes further needs for refactoring: https://www.fluentcpp.com/2021/04/23/make-bad-code-look-bad/ (I found the example really compelling!)
It's amazing how quickly leaked credentials get harvested and used to create VMs mining cryptocurrencies: https://johnmathews.eu/i-leaked-credentials-onto-a-public-github-repo.html
TIL that &mut [T] in Rust means that you can modify the items in a slice, but you can't change its size. It's surprisingly handy: I'd just been using &mut Vec<T> everywhere previously.
Why Lisp? It has its pros and cons.
This is the most creative form of Linux usage I've seen in ages! From
Photo
The number of tools a programming language is expected to provide is growing over time. This in-depth article describes what Rust provides: you can't just ship a compiler these days. Source:
Photo
Want to move to a code autoformatter, but worried about git history? Black even documents how to teach git to ignore your formatting commit! https://github.com/psf/black#migrating-your-code-style-without-ruining-git-blame
Spectre vulnerabilities remain a problem in browsers, and the PoC even works on new Apple silicon! https://security.googleblog.com/2021/03/a-spectre-proof-of-concept-for-spectre.html
Python programmers use Linux significantly more than Mac or Windows, and Windows usage declines with experience level: https://www.jetbrains.com/lp/python-developers-survey-2020/#DevelopmentTools
It's not easy to display a log file nicely in a browser. The file might be huge. Users expect to be able to link to lines. It might have colour or control codes. I've been pretty impressed with the GitHub actions UI, compared with other CI tools. https://github.blog/2021-03-25-how-github-actions-renders-large-scale-logs/
A 9V battery with wi-fi, so it can notify you when your smoke alarm is activated: https://getroost.com/product-battery.html I'm not sure I'd ever buy one, but it's an innovative way to build a noninvasive integration.
I have a couple of projects that have had a bunch of releases, but no v1.0 yet. In some respects a v0.33 release has more positive associations (a history of support and bugfixes) than a v1.0. I don't have a good solution.
Emergent behaviour of agents in early text adventure games (The Hobbit, released 1982): https://if50.substack.com/p/1982-the-hobbit
Languages with large ecosystems often develop interoperable languages. Scala, Clojure, F# and Typescript all benefit from compatible packages in the "primary" language. I think Rust will eventually see these too. What will they look
Showing 241-260 of 345 posts