Stone of Farewell: Good
In the afternoon I finished Stone of Farewell, Memory, Sorrow & Thorn Book 2 by Tad Williams. I liked the book; it is at least as good as the previous one in the series or maybe slightly better.
In the afternoon I finished Stone of Farewell, Memory, Sorrow & Thorn Book 2 by Tad Williams. I liked the book; it is at least as good as the previous one in the series or maybe slightly better.
There are roughly three classes of language features:
- Features that the language is effectively designed around, such that you can’t add it after the fact. Laziness in Haskell, the borrow checker in Rust, etc.
- Features that heavily define how to use the language. Adding these are possible later, but would take a lot of design, engineering, and planning. I’d say pattern matching, algebraic data types, and async fall under here.
- Quality-of-life features that aren’t too hard to add, and don’t meaningfully change a language in its absence. Often syntactic sugar, like Python’s chained evaluators (
if 2 <= x < 10
).Most PLT and language design work is focused around (1) and (2), because those are the most important, but I have a deep fondness for (3)-type features. Because they’re so minor, they’re the most likely to spread between languages, since the overhead of adding them is so small. Since I spend a lot of time in niche obscure languages, I also encounter a lot of cool QoL features that most people might not have seen before. Here’s a few of them!
Source: Microfeatures I'd like to see in more languages, an article by Hillel Wayne.
Today, we are happy to announce the initial release of
turmoil
, a framework for developing and testing distributed systems.Testing distributed systems is hard. Non-determinism is everywhere (network, time, threads, etc.), making reproducible results difficult to achieve. Development cycles are lengthy due to deployments. All these factors slow down development and make it difficult to ensure system correctness.
turmoil
strives to solve these problems by simulating hosts, time and the network. This allows for an entire distributed system to run within a single process on a single thread, achieving deterministic execution. We also provide fine grain control over the network, with support for dropping, holding and delaying messages between hosts.
Source: Announcing turmoil, an article by Brett McChesney.
A data courier, literally carrying a data package inside his head, must deliver it before he dies from the burden or is killed by the Yakuza.
In the evening Alice, Esme, and I watched Johnny Mnemonic. The movie was quite slow and I give it a 6 out of 10.