It was a build system which was a pure pleasure to work with, last not least I think because it did not try to solve problems which turn out intractable in the general case.
They are not going to have these supply-chain issues.
1,256 karma · joined May 9, 2016
It was a build system which was a pure pleasure to work with, last not least I think because it did not try to solve problems which turn out intractable in the general case.
They are not going to have these supply-chain issues.
I think we are witnessing the beginning of the end of the fossil age - and its end will take more than a few companies down with it, which are way too attached to the massive use of fossil fuels.
I guess that's counting accidents per distance. Which is a weird metric if you compare a vehicle that is going some 560 miles per hour with one that is going not even 55 mph on average.
By that metric, using a space shuttle is safer than commuting by bicycle in Europe (which is not only extremely safe if you wear a helmet, cycling will statistically make your life longer instead of shorter, in spite of the accident risk, so large are the health advantages..)
So, you are trusting all web pages you view? Because these are unknown code running on your box which probably has some beefy private data.
In some sectors and domains, it is not a problem if a program fails and crashes. And it is also not a problem if a change in error handling makes an internal library backwards-incompatible (*). In such environments, errors are not costly, and it is more important to quickly write code, than that it is always correct. This is even more valid in distributed computing environments which have redundancy.
In other domains, a crash could be deadly (like in an autonomous car) or could cost millions of dollars (like with the Ariane rocket) - and backwards-incompatible changes in libraries might be not tolerable neither (for example, in industrial automation, where core libraries are used for 20+ years).
(*) One point to consider which might not be obvious to most people: When extending a function, which has, say, an enumeration as one argument, it is always possible to extend it by adding new enumeration values to its input parameters, just like one can add keyword arguments with a default value. This modification is always backwards compatible.
But backwards compatibility breaks if one adds enumeration values, or new kinds of errors, or new Exception types to the *output parameters* of a function - because the code of its clients must now be modified to handle all possible cases. If one takes semantic versioning seriously, this is a breaking change. And one can argue that in a statically-typed language used for safety-critical systems, the compiler should always catch that.
So, why not use Scheme ?
Except that Guile is an implementation of Scheme, which is essentially a somewhat minimalist variant of Lisp. So in this case, a real programming language was included intentionally as configuration language.
And this is the same concept as why GNU Emacs is an editor written in Lisp on top of C routines - very similar how data science is often done in Python on top of Numpy and several other packages.
https://guix.gnu.org/en/manual/en/html_node/Defining-Package...
A weird way to use Rust since you can do a lot of messaging within the process, and use the computing power much more efficiently.
RPC is essentially messaging and message-passing. Message-passing is a way to avoid mutable shared state - this is the model with which Go became successful.
RPC surely has its use but message passing is another, and very often inferior, solution to the problem set where Rust has excellent own solutions for.
Isn't that already, in this strong generality, an almost always wrong assumption?
Sure, one can do massively parallel or embarrassingly parallel computation.
Sure, graphic cards are parallel computers.
Sure, OS kernels use multiple cores.
Sure, languages and concepts like Clojure exist and work - for a specific domain, like web services (and for that, Clojure works fascinatingly well).
But there are many, even conceptually simple algorithms which are not easy to parallelize. There is no efficient parallel Fast Fourier Transform I know of.
Now, when there are riots, it is well known that police has human "super-recognizers", which can scan thousands of photos and identify suspect individuals on a whim.
Can we, today, be sure that ATMs do not record serial numbers of the bank notes they dispense?
https://how.complexsystems.fail/
I cannot read that one without thinking in the descriptions and analyses of disasters like the sinking of the MS Titanic, the Chernobyl disaster, the loss of the Challenger space shuttle, or the Fukushima disaster. Many, many points in the article seem correct for all of them.
1. The package definitions are just a normal, battle-proven, very well defined general-purpose, functional-style supporting programming language (Scheme).
2. There is no conceptual difference between a package definition in the public Guix system, and a self-written package definition which a developers makes to build and test his own package, or to build and run a specific piece of software. The difference is equally small as between using an Emacs package, and configuring that package in ones .emacs configuration file.
And none of these languages is less powerful than Lisp, lack Unicode support, or whatever, so this can't be the reason.
I think it has become clear that germ loads can be reduced significantly with filtering and ventilation.
Exactly that.
To add, problems with mold are often due to insufficient insulation in some patches of the wall (like near windows), combined with humid air and insufficient ventilation. A properly insulated house should not form mold. But it is necessary to get humidity out, that's correct.
And that build-up of the stuff is a big difference to where we were living before (Edinburgh) where that kind of ventilation was basically unnecessary because no window closed that hermetical (well we lived in one of those wonderful 140 year-old houses in New Town).
In the end, with good insulation, it becomes increasingly important to have some active ventilation - it is also more economical, because it saves on heating. And that is in fact becoming more widespread with new family houses.
BTW it is a nice combo with the Guix package manager ontop when one needs recent libraries and stuff for development. Saves a ton of time.