HN user

jamesdsadler

38 karma

Elixir/React/GraphQL developer and co-founder of Alembic. (alembic.com.au)

Posts1
Comments17
View on HN

Git does use diffs extensively its algorithms, just not in its representation of history. Git's "domain model" is blobs, trees, commits, branches and tags.

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.

Can anyone recommend some good cryptography books/links for someone that would like get up to speed on best practices for building secure systems? Ideally the full gamut of beginner to advanced.

What are the classic/authoritative texts in this space?

If you don't have a stage then you don't get to edit/stage/edit/stage/fix/commit, right? I use that workflow a lot. I generally like incrementally building and refining my next commit. The stage/index is one of Git's most innovative features IMHO.

If the Planck length is Lorentz-invariant but macro-scale objects are not then does that not imply there is a special universal reference frame against which to measure velocity?

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.

There is no "extent" to which CRDTs are conflict free, CRDTs are by definition always 100% conflict free.

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.

Yes, I think we are in agreement. The algorithm can use heuristics to produce a best-effort pleasing result that captures user intent but if two users want opposite things to happen it has to fall back to a tie breaker.

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.

To the extent that CRDTs are conflict-free it only means that two edits can commute (be applied in any order) and every party that has applied the same set of edits will produce the same result.

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.

You are paid only in food and accommodation. This initially stuck me as terrible, but then I noticed that the company only hooks you up with startups local to where you are travelling. This is not remote work so do not expect 'back home bucks'.

The requirement for a LinkedIn page is sub-optimal. Allow a Github login plus CV, maybe?

It seems to me like an accurate reflection of reality though. When governments and corporations propose legislation in secret it is never going to be in citizen's best interests. On the national and international scale democracy almost doesn't exist. We are being governed by the rich elite and being able to vote is just a sideshow.

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.

Let's Learn GraphQL 11 years ago

It's a decent course and I appreciate the effort. I'd rather have given my consent to being put on a public leaderboard though.

lisant.io is a lightweight full text bookmarking service and a feed reader.

The full-text bookmarking works via a bookmarklet that snapshots the DOM of the current page and uses a heuristic content extraction engine to clean up the content.

lisant.io provides a full-text search feature across all your bookmarked content and feeds that you subscribe to. For feeds that don't provide content within the feed itself, the search is limited to article metadata.

Also, any tweet that you favourite that contains a link will be added to your bookmarks.

lisant.io is a premium service with a short (1 week) trial. There's no free plan. This is absolutely intentional: we're bootstrapping this with our own time and money we don't want to support a free tier.

We take your data seriously:

- at any time, you can cancel your plan and you can download an archive of all of your bookmarks and subscriptions.

- we take nightly backups of the entire database.

lisant.io also works just great on your mobile!