I wrote a book about setting up a small gleam project, covers organization of the project in general. A draft is live at https://escherize.com/gleam-katas
Author here. TL;DR: 10 domain-expert subagents, one per major backend area. Happy to talk about why we shaped them this way, what's worked, what hasn't (e.g. routing on overlapping domains is tricky).
Experimenting with exhaustive tagged-union support based on Clojure's defmulti.
I think it might be better to go the other way, and have a pattern-matchey form generate the defmethods instead, but I need to gain tacit knowledge about it first.
I might be wrong, but: What has science got to say about who should be admitted to schools, or more broadly what the priority of civilization should be? I think you're trying to universalize some of y(our) internalized beliefs into axioms.
Babashka has saved me a lot of time. I actually think it is the quickest and easiest way to get started learning Clojure, to a point. No startup time didn't seem like a big deal for my workflow until I got instant startup time when running script, and starting repls -- The kind of repl where you can inspect and act on anything in your program.
Babashka tasks is fantastic too! Multi-threaded, simple, and very few surprises.
Case and cond are nice, but they suffer from the expression problem. When you want to let other people add methods to your code without modifying the source you need to use multimethods (or protocols).
If your method only needs 1 argument then why should the other ones matter? I don't see a problem here. clj-kondo will guide people to name them as _ or _thing anyway so you don't even need to think about it.
It's not a book, but I think the most high quality introduction to Godot is by HeartBeast on youtube. I went through his "Pixel Platformer" video "Godot action RPG" playlist. These were quick and got me everything I needed to get started.
Here are some games I made as a hobbyist with godot, in increasing complexity:
Good to see people coming to the same conclusions we have had for a while using Clojure. There's an up and coming runtime data validation framework called Malli that I use for these sorts of files.
You can get many of the benefits but also run custom validations (dictate how two keys in a map relate to eachother, or force a be of a certain shape instead of just a string).
I am a logseq user. The nice things about it include:
- all your usual backlinks, graph views, etc.
- saves files as plaintext
- md or org mode files
- operates on / syncs / saves plaintext files
- edit locally, or sync with a git repo
- accessible from mobile (via your github repo)
So I use this with org-mode files, and on my laptop I edit files locally (I have it pointed at a git repo), which is very reliable. Then the phone simply reads from (and writes to) the same git repo.
Since it runs on git, the interoperability of the notes is really nice. If I edit the same page on 2 machines or delete a file, it's just a simple merge conflict that I can use my favorite git merge tool to fix.
Not to mention the developer is extremely active and helpful.