206 karma · joined August 22, 2016
poetry should handle this, and you also get hashes for free!
I think Prolog (another commenter pointed it out) and datalog do this to some extend.
which means that once a message is received you cannot re-authenticate it, so evidence on any device is no better than with unencrypted messaging. This is in contrast with classic public key authentication like PGP which provides further evidence that the message is legit and was indeed sent by who it says.
One process per container is indeed strange in a lot of use cases, you lose the self-contained advantage of a container...
What's weird about the Tcl syntax is that there is barely any. It's very dynamic so only the top-level of a file is parseable as a list of commands, anything else like a procedure depends on the implementation of the command which can be overridden at any time.
It's even used by built-in commands like expr and if which essentially implement a mini expression language which is different from Tcl.
I only had issues a couple times with broken packages, then you can either not update at all or remove those packages. It should also be possible to keep the older version of those packages in the nix config but I did not look into it.
> Also, systems might seem automated but when we pull away the curtain we see large amounts of low paid labour, everything from crowd work categorising data to the never-ending toil of shuffling Amazon boxes.
So the artificial and intelligent part is a tiny piece of the task, most of it is done through humans and logistics.
I feel that a more principled way to navigate between these trade offs and awareness from the application and database of the current consistency guarantees of the data would help to make more robust systems. E.g. you'd want strong consistency by default, with a fallback to strong eventual consistency when the network is poor and the use-case allows it (e.g. not for changing your password, but ok for posting a comment). It needs to be reflected in the UI, and ideally you want the trade off to be decided at each level in a consistent way (client, local database, core database, ...).
> TS It's certainly the case that a lot of CRDTs are really complicated, especially in those instances where they represent some sort of complex interrelated state. A classic example would be the CRDTs used for document editing, string interjection, and that sort of thing. But the vast majority of machine-generated data is of the write-once, delete-never, update-never, append-only variety. That's the type of data yielded by the idempotent transactions that occur when a device measures what something looked like at one particular point in time. It's this element of idempotency in machine-generated data that really lends itself to the use of simplistic CRDTs.
So for this particular use case, the CRDT is simple and they want to favor availability over consistency. I'm not sure if they provide further guarantees, e.g. from the description in the article it seems that temporary holes in the time series would be allowed if updates would arrive out-of-order.
The article also mentions Cassandra, it seems they went for a different design so progress is more quickly visible in the DB (among other reasons I suppose).
> What we wanted was a topology that looked similar to consistent hashing databases like DynamoDB or Riak or Cassandra, but we also wanted to make some minor adjustments, and we wanted all of the data types to be CRDTs [conflict-free replicated data types]. We ended up building a CRDT-exclusive database. That radically changes what is possible, specifically around how you make progress writing to the database.
We also do have this conditional test hierarchy, but again it's hard to properly define when the system under test behaves unexpectedly...
It's something I've been meaning to try with other languages.
I don't really use many of the Gnome apps as I'm mainly in the browser or terminal, but various things like the video player, image viewer, document viewer, recorder, webcam app, process monitor, all seem to have converged to being very narrow focused and simplified. I usually like the simplicity, and if I need more I turn to specialized software.