Check out Proxmox + https://tteck.github.io/Proxmox/ + lxc container snapshots on the NAS and set up Proxmox backup server on the Pi. I find such a setup to be "all benefit, no giving up anything", contrary to NixOS.
A new programming language based on "mutable value semantics" has been renamed from Val to Hylo. It was a frequent complaint that the former name was too similar to other existing languages like V, Vala, and Vale. Mutable value semantics is a new way to efficiently pass around data structures without having explicit references/pointers present in the language and complicating semantics. Pointers are basically relegated to a status of a possible optimization that the compiler can perform at the assembly level.
AFAIU, SM2 computes the datetime of a next review, whereas Ebisu models a probability of remembering a given flashcard. It seems it’s a more straightforward representation that’s more amenable to implementing functionalities like “show me 10 least remembered cards”.
There was a point when this was joke poking fun at emacs users. With time, it makes more and more sense. Foot pedals offload some strain from your hands to your feet which in theory sounds healthier when it comes to joints. They may even improve blood circulation to your feet. Something which is quite desirable given the sedentary nature of computer work.
There's also Falcon[1] Chrome extension which does full text indexing on your browser history so if you read something and can't either Google it or find it in the browser's history, Falcon will broaden the search scope.
https://queue.acm.org/detail.cfm?id=1814327 followed by http://varnish-cache.org/docs/trunk/phk/notes.html have completely transformed how I view and architect software. I basically started to strive to leave as much memory management as possible to the kernel thus not only simplifying my code but also making it behave better as citizens in the country that the operating system is, if you will.
> One of the major reasons behind the superior performance of async/await futures relative to threads/goroutines/etc. is that async/await compiles to a state machine in the manner described in this post, so a stack is not needed.
That's a great optimization but doesn't that mean it also breaks stack traces?
For my ideal work desktop, I want to have tools assigned per task that I can easily assemble until that task is achieved. As a spitball idea: Cmd-space, type in "research open sourcing my kindle", and get given a browser and some sort of note collector. Collect the various things from the session into my note, refile the entire stack as a project, and move on to the next task. In the future, I can access the actual project and receive a workspace with terminals, an IDE or whatever else I need to Get the Thing Done, archived versions of the sites I opened, etc. Ideally, the environment would be designed to reduce distractability.
I'd willing to donate money, work, or both. Is anyone working on something like that?
I wish there was one too, but programmer-oriented types are not the same thing as machine-oriented types. Compiling to fast code requires the latter one: types like u32, not Dict[String, int]. Current Python typing efforts tend to focus on programmer-oriented types.
Tomas Vondra goes over this in the talk. There's a rationale for that behavior: pulling out a USB stick out of the USB socket may have been what's triggered the fsync() failure. In that case, there's no way the kernel will be able to retry reliably.
With pip for instance, it often happens that a transitive dependency gets updated inadvertently breaking your code. This follows from the assumption that all packages follow semantic versioning perfectly and keep backward compatibility where they should. This is not the case in practice and experience has shown it is unrealistic to have that assumption. A better way is to rely on exact versions of packages (up to a single bit) and not on semantic versioning.