Prolog, SWI
I am quite willing to use the SWI-Prolog shell as the UI. Just wondering why the default printing of solutions isn't pager-like (more than 1 solution at a time), and a table with variable values in columns.
Every time I upgrade my system I look at the list of packages and wonder whether I could uninstall some of them. I look at their description and try to uninstall them. That lists all the things that will get uninstalled alongside it and so the process repeats, lots of exploring of packages, and then, eventually, they're gone.
And when I reboot, it's my time to cry, maybe… at least that's what I fear. Going to reboot right now to get past that feeling of dread.
@radiojammor Yeah, something that informed the piece but didn’t make it in is developmental economist Amartya Sen’s famous observation that famine doesn’t occur in a functioning democracy—the many famines in many regions over centuries of British control were anthropogenic.
My weekend project was to build a Mastodon bot, and I'm pumped to say it's now live:
@BookchinBot is a simple bot that posts quotes from philosopher and social theorist, Murray Bookchin.
I came across Bookchin's work during my PhD, and found it both important and relevant to the issues we're dealing with today.
So, if you're a nerd about theory like I am, this bot might be for you.
#socialtheory #politicaltheory #philosophy #ecology #socialecology
Ecomimics (adj.): The social science of blindly copying economic policy from another country.
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" 🤣
@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.