Ecomimics (adj.): The social science of blindly copying economic policy from another country.
@sergio_101 don't know how you'd save an image of that life! #Erlang, maybe, then?
The new #LFE site looks great! With a cornucopia of learning and reference material.
https://lfe.io/
#Erlang #Lisp
As it turned out, reverting to distro #orgmode was a simple matter of deleting the site-list/org and restarting, and magically #orgroam is working again, so that's a plus. Lilypond will just need to wait.
I spent years coding in #Prolog, so my general solution to problematic things is "revert back to before your last decision, and make a different one" 🤣
@phiofx@hachyderm.io
> going back to useful ...
As long as there is still general-purpose H/W available .. Which may not be a given.
@LordCaramac
@LordCaramac still using smalltalk every day.
Regarding #email, screw the old #filesystem-centric non #transactional approach btw.
Program crashed while you were modifying a mail? Who knows what the on-disk file looks like now. You had it git-versioned? Good. If all goes well and git or the computer itself doesn't crash while updating things, that might be enough.
Even key-value #databases like #BerkelyDB do it better, and they did so before #SQLite even existed.
So why can't I have tools using DBs?
This is such a simple and useful SQLite hack.
Get the best out of #git and #sqlite by having your database versioned in a human-readable format:
```
# Create a local git repo and a db file
$ git init
$ sqlite3 ./test.db
sqlite> create table test(id int primary key, value text);
$ git add test.db
# Set the diff format for *.db files
git config diff.sqlite3.binary true
git config diff.sqlite3.textconv "echo .dump | sqlite3"
echo '*.db diff=sqlite3' >> .gitattributes
# Do some stuff with the db
$ sqlite3 ./test.db
sqlite> insert into test values(1, 'a');
sqlite> insert into test values(2, 'b');
sqlite> insert into test values(3, 'c');
sqlite> update test set text = 'aaa' where id = 1;
sqlite> delete from test where id = 3;
# Check the diff
$ git diff
diff --git a/test.db b/test.db
index 9d6e6db..c9a7a08 100644
--- a/test.db
+++ b/test.db
@@ -1,4 +1,6 @@
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE test(id int primary key, text text);
+INSERT INTO test VALUES(1,'aaa');
+INSERT INTO test VALUES(2,'b');
COMMIT;
```
https://garrit.xyz/posts/2023-11-01-tracking-sqlite-database-changes-in-git
TIL that in #Erlang, _ can be used in type specifications and has the same meaning as term() or any(). I love this kind of discovery because it makes total sense and is consistent with pattern matching. Erlang is one of these rare sane languages.
What’s sad is realising you live in a world where every exaggerated analogy you used to make a point is actually happening:
Having Google in schools is like having McDonalds in nutrition class. (I find out that McDonalds does, in fact, sponsor nutrition classes in US schools.)
Having a surveillance capitalist sponsor a conference on free and open source/human rights is like having an oil company sponsor a climate conference. (Forget sponsoring, turns out head of #Cop28 runs an oil firm.)
🤬
Which is why I favour the GPL for licensing. It's not perfect, but it does enable us to keep the code free forever.
my cold take on the Threads federation thing is: if you simply consider them not as some mystical "platform" but as any other "instance", then they're an over-sized under-moderated data-scraping instance housing many vile users right up to the point of "technically legal free speech"... and we've all suspended instances before for much less.
I have a question about #cryptobro thought (for want of a better term) processes.
When something like [this](https://web3isgoinggreat.com/?id=nft-trader-hack) happens, how is it a "#hack"? The whole point of #SmartContracts, as I understand them, is that the code is the contract. Whatever is in the code is *by definition* the contract and anything the code allows forms the terms and conditions of the contract.
So how can this be called a "hack" or a "#theft". You're literally abiding by the terms of the contract!
I run my own #selfhosted Mastodon server, so hadn't really felt the need for domain blocking. However, the whole Threads stuff got me looking into it.
I feel that there is a quite a bit of risk in using aggregated block lists. Given that the sources seem to be only a handful of instances, it feels that one could easily over block using these lists.
vanilla Emacs, colors
@alan thanks. I had seen that search result. Installed and using now. It does feel less in-your-face than font-lock with --color=no