Set up a Python virtual environment in a new, empty directory:
brew install python # or equivalent on your OS
python3 -m venv venv
source venv/bin/activate
const ROOT_ID = '00000000-0000-0000-0000-000000000000' | |
/** | |
* Miniature implementation of a subset of Automerge. Supports the following: | |
* - only map, list, and primitive datatypes (no table, text, counter, or date objects) | |
* - no undo/redo | |
* - no conflicts on concurrent updates to the same field (uses last-writer-wins instead) | |
* - no API for creating new changes (you need to create change objects yourself) | |
* - no buffering of changes that are missing their causal dependencies | |
* - no saving or loading in serialised form |
theory | |
Consensus_Demo | |
imports | |
Network | |
begin | |
datatype 'val msg | |
= Propose 'val | |
| Accept 'val |
Mark Hayter is Senior Engineering Director in the Chrome OS Hardware team at Google, and currently a visitor from industry with the Computer Architecture team in the Computer Lab.
Notes from Coed:Ethics conference, London, 13 July 2018
import java.io.ByteArrayOutputStream; | |
import java.io.IOException; | |
import org.apache.avro.Schema; | |
import org.apache.avro.generic.GenericData; | |
import org.apache.avro.generic.GenericDatumReader; | |
import org.apache.avro.generic.GenericDatumWriter; | |
import org.apache.avro.generic.GenericRecordBuilder; | |
import org.apache.avro.io.BinaryDecoder; | |
import org.apache.avro.io.BinaryEncoder; | |
import org.apache.avro.io.DecoderFactory; |
# Parameters: | |
prob_nodefail = 0.001 # Probability of a single node failing | |
replication_factor = 3 # Number of copies of each partition (r) | |
partitions_per_node = 256 # Number of partitions per node | |
max_nodes = 10000 # Maximum number of nodes to consider | |
# (n - r)! / n! == r! / (n choose r) | |
# Intuitively: the fraction of the n! possible permutations of n nodes that | |
# results in the replicas of one particular partition to be mapped to three | |
# particular nodes, in a particular order. |
This update was sent by email to the TRVE Data mailing list on 1 December 2016. Please subscribe to the mailing list or follow us on Twitter for future updates.
Hello TRVE Data supporters,
Here's an update on what we've been doing in November.
Hello TRVE Data supporters,
Sorry for the lack of an update last month. Here's what we've been up to in September and October.
Diana and Martin presented an introduction to end-to-end encryption protocols at the Strange Loop conference in St Louis, and repeated the talk in Cambridge. We illustrated network communication and man-in-the-middle attacks by passing pieces of cardboard back and forth on the stage -- a visualisation that went down well with the audience.
Alastair and Martin have been working together with Dominic Mulligan and Victor Gomes, also researchers in Cambridge, on formalising our JSON CRDT definition using the Isabelle proof assistant. We are converting the hand-written convergence proof in our paper into a machine-checkable proof,
Hi everyone, the month of May has flown by, and it's time for our second monthly update for the TRVE DATA project.
In case you missed it, last month's update is here: https://gist.github.com/ept/627b4f102a0a036cee0b941a8b8e31c2
Here's what's new in May: