From bcb6c83538b3a90d1d8f74e291a11219654f6e4a Mon Sep 17 00:00:00 2001
From: EuAndreh <eu@euandre.org>
Date: Wed, 30 Apr 2025 11:06:27 -0300
Subject: src/content/en/slide/: Move existing slide files to appropriate
 location

---
 .../en/slide/2020/11/14/local-first-hype.adoc      | 252 +++++++++++++++++++++
 1 file changed, 252 insertions(+)
 create mode 100644 src/content/en/slide/2020/11/14/local-first-hype.adoc

(limited to 'src/content/en/slide/2020/11/14/local-first-hype.adoc')

diff --git a/src/content/en/slide/2020/11/14/local-first-hype.adoc b/src/content/en/slide/2020/11/14/local-first-hype.adoc
new file mode 100644
index 0000000..bb27074
--- /dev/null
+++ b/src/content/en/slide/2020/11/14/local-first-hype.adoc
@@ -0,0 +1,252 @@
+= On "local-first": beyond the CRDT silver bullet
+
+# On local-first
+
+Beyond the CRDT silver bullet
+
+---
+
+# Part 1
+
+Exposition
+
+---
+
+## "cloud apps" vs "old-fashioned apps"
+
+---
+
+## Target
+
+- documents
+- files
+- personal data repositories
+
+Not: banking services, e-commerce, social networking, ride-sharing, *etc*.
+
+---
+
+## 7 Ideals for local-first software
+
+---
+
+### 1 - No Spinners: Your Work at Your Fingertips
+
+---
+
+### 2 - Your Work Is Not Trapped on One Device
+
+---
+
+### 3 - The Network Is Optional
+
+---
+
+### 4 - Seamless Collaboration with Your Colleagues
+
+---
+
+### 5 - The Long Now
+
+---
+
+### 6 - Security and Privacy by Default
+
+---
+
+### 7 - You Retain Ultimate Ownership and Control
+
+---
+
+## Towards a Better Future
+
+CRDTs (Conflict-free Replicated Data Types) as a Foundational Technology
+
+---
+
+### Use case
+
+```
+# in node A and node B
+s = "Hello, World"
+
+# in node A
+s = "Hello, Alice"
+
+# in node B
+s = "Hello, Bob"
+```
+
+How to reconcile those?
+- `Hello, ABloibce`
+- `Hello, AliceBob`
+- `Hello, BobAlice`
+- `Hello, Alice`
+- `Hello, Bob`
+
+---
+
+Existing CRDTs differ:
+- performance
+- storage
+- compression
+- metadata overhead
+
+---
+
+Hint towards the "automerge" CRDT
+
+---
+
+*show comparison table, page 9*
+
+---
+
+# Part 2
+
+Critique
+
+---
+
+### Software license
+
+> In our opinion, maintaining control and ownership of data does not mean that
+> the software must necessarily be open source.
+
+---
+
+#### Example 1 - intentional restriction
+
+```bash
+#!/bin/sh
+
+TODAY=$(date +%s)
+LICENSE_EXPIRATION=$(date -d 2020-10-27 +%s)
+
+if [ $TODAY -ge $LICENSE_EXPIRATION ]; then
+  echo 'License expired!'
+  exit 1
+fi
+
+echo $((2 + 2))
+```
+
+```bash
+# today
+$ ./useful-adder.sh
+4
+# tomorrow
+$ ./useful-adder.sh
+License expired!
+```
+
+---
+
+#### Example 2 - unintentional restriction
+
+```bash
+# today
+$ useful-program
+# ...useful output...
+
+# tomorrow, with more data
+$ useful-program
+ERROR: Panic! Stack overflow!
+```
+---
+
+### local-first **requires** free software
+
+Otherwise "The Long Now" (ideal nº5) is lost
+
+---
+
+### Denial of existing solutions
+
+> In principle it is possible to collaborate without a repository service,
+> e.g. by sending patch files by email, but the majority of Git users rely
+> on GitHub.
+
+Solution: either  GitHub+CRDTs or `git` **`send-email`**
+
+---
+
+### Plain text formats
+
+> Git is highly optimized for code and similar line-based text file
+
+It even pulls software to the plain text direction, e.g.:
+- delivery-templates
+- `common-core.protocols.config`
+
+Why not exploit that more?
+
+---
+
+### Ditching of web applications
+
+> The architecture of web apps remains fundamentally server-centric
+
+Disagree.  Contrast [PouchDB][pouchdb] with Android [Instant Apps][instant-apps]
+
+[pouchdb]: https://pouchdb.com/
+[instant-apps]: https://developer.android.com/topic/google-play-instant
+
+???
+
+Talk on dynamic content
+
+---
+
+### Costs are underrated
+
+- storage
+- backups
+- maintenance
+
+Example: blog vs vlog
+
+---
+
+### Real-time collaboration a bit overrated
+
+It is only possible on the presence of reliable, medium-quality network
+connection
+
+> X also works when inside an elevator, subway or plane!
+
+<!-- 🤦‍ -->
+
+---
+
+### On CRDTs and developer experience
+
+> For an app developer, how does the use of a CRDT-based data layer compare to
+> existing storage layers like a SQL database, a filesystem, or CoreData?  Is a
+> distributed system harder to write software for?
+
+Yes.
+
+See "[A Note on Distributed Computing][note-dist-comp]"
+
+[note-dist-comp]: https://web.archive.org/web/20130116163535/http://labs.oracle.com/techrep/1994/smli_tr-94-29.pdf
+
+---
+
+## Conclusion
+
+Why this is a "paper I love": it took offline-first and ran with it.
+
+But a pinch of CRDT won't make the world local-first.
+
+The tricky part is the end of the sentence: "**in spite of the Cloud**".
+
+---
+
+## Thank you!
+
+References:
+
+1. "[Local-First Software: You Own Your Data, in spite of the Cloud](https://martin.kleppmann.com/papers/local-first.pdf)", by M. Kleppmann, A. Wiggins, P. Van Hardenberg and M. F. McGranaghan
+1. [The Morning Paper](https://blog.acolyer.org/2019/11/20/local-first-software/) article
+1. "[A Note on Distributed Computing](https://web.archive.org/web/20130116163535/http://labs.oracle.com/techrep/1994/smli_tr-94-29.pdf)", by J. Waldo, G. Wyant, A. Wollrath and S Kendall
-- 
cgit v1.2.3

