jamesdsadler
Joined 13 years ago
Joined 13 years ago
At a lower layer than that (the pack files) it does use binary diffs to store similar objects as deltas to save on disk space.
TL;DR diffs play an important part in git's machinery at different levels of abstraction. They just aren't part of how it represents its domain model.
What are the classic/authoritative texts in this space?
If I have understood the article correctly one would be able to measure the length of a spaceship relative to the Planck length and deduce velocity, entirely locally (i.e. onboard the spaceship).
This is a fundamental departure from general relativity which says there is no special frame of reference.
CRDTs are always conflict-free. I am not disagreeing with that. I was trying to draw attention to the fact that just because the CRDT always commutes does not mean that a user does not perceive there to have been a conflict - out of a multiple contradictory edits the commute operation will ensure only one succeeds. So yes, the CRDT itself is conflict free, but it wasn't my point.
They aren't magic. The deal with tie breakers when they have to. I've seen posts where suggestions of building a CRDT-based source control system are being bandied around with claims that there will be no conflicts - sure, there won't be. Will the code make sense or even compile - probably not.
A conflict to a CRDT is one thing and a conflict to a user is something else entirely.
In an extreme example, if the CRDT state-space was 1-bit and user A wants to make it a 0 and user B wants to make it a 1 a choice must be made by the algorithm.
At the low-level that the CRDT is operating on there will be no conflicts.
But that does not mean that the user never perceives there to be conflicts. No matter what the consensus system used be it CRDTs or OT at some point the converge operation has to impose a total ordering to pick a "winner" in the case of conflicting user edits.
If editing a block of text and two users try to replace the same word with another word there are a number of possible outcomes
1) One of the edits "wins" 2) The word is replaced by the concatenation of each user's replacement. 3) Nobody wins and the edit is reverted.
In all cases at least one party perceives to themselves to have "lost". But it generally doesn't matter because humans doing the editing will make repairs to nonsensical edits in real time.
There has to be a tie-breaker when multiple users try to make different edits to the same region of text. At least that's my current understanding.
So, not screwed yet.
The requirement for a LinkedIn page is sub-optimal. Allow a Github login plus CV, maybe?
Democracy as it is currently implemented is fundamentally flawed because it puts politicians and political parties in power. I mean, it fundamentally is about giving other's power. That is a freaking crude proxy to furthering citizen's interests. It's a blunt instrument. People in power can be influenced/corrupted/manipulated disproportionately by corporations and others with power. Citizens are disenfranchised and mostly powerless.
IMHO the ultimate expression of democracy would not to vote others into office, but to propose and collectively edit new legislation and vote on that. Skip the politician middlemen, go straight to the issues that matter. I imagine that citizens would be allocated a number of non-transferable expiring vote-credits that they can use to spend on pushing legislation.
In summary: until the very nature of democracy evolves we are destined to inhabit a dystopian world that serves only the interests of the elite.