OK, then, new GitHub repository, simulated-genetics, looking at the problem of generating thousands of character models for games, while ensuring that characters who are supposed to be related to one another have similar appearance.
This is very, very pre-alpha, but far enough along to be interesting.
The available open source libraries for generating human models (MakeHuman, ManuelBastioniLab) appear to be written in #Python. I need something like this, but I'm working primarily in #Clojure. I'm wondering whether it would be easier to load one of the existing libraries into Jython and try to call that from #Clojure, or just to bite the bullet and build my own from scratch.
one thing that I appreciate in #fennel is the ability to learn from the history of lisps
#clojure made a big splash and gathered criticism from the Old Guard of lispers by using parens a lot more sparingly than Common Lisp or Scheme; for example let bindings are done inside square brackets instead of a double-layer of parens:
(let [x 1 y 2] ...)
vs
(let ((x 1) (y 2)) ...)
apart from just being tidier, this had the benefit of greater consistency: in Clojure, when you saw an open paren, it usually meant a call to a function or macro, instead of ... some other structure in the language
however, Clojure still had plenty of exceptions to this; I think last I counted there were 7 or 8 distinct things an open paren could mean
in Fennel, we decided that wasn't what we wanted; parens always mean a call to a function/macro ... or in a binding context it could mean binding multiple values:
<sigh>
And when I install the latest Gradle, I still get failures, because the Gradle scripts of the current version of jMonkeyEngine (which is what I'm trying to build) are too modern for Gradle 4.4.1 but too old for Gradle 8.7.
Now I remember why I do everything in #Clojure these days: very stable APIs!
In my ignorance, I didn't have faith in #LISP because it is a very old programming language, and in my circle of acquaintances and friends, I never saw anyone using it. Behold, as almost always, I was wrong!!! What magnificent language. It's no wonder that #Clojure is there!
At work, I am #FrontEnd engineer, but after it, I spend my time with #Clojure. Today my friend, #Python engineer, wrote about purely C-like syntax that it looks like #Lisp. I couldn’t stand this and sent him a picture of some Clojure code, which indeed looks like Lisp. I received the following image back from him. So the question is, should we talk about the brackets-blindness symptoms here?😃
@simon_brooke Hey buddy, checked out #Scheme/#Scsh yesterday, super intriguing stuff. Actually, I've been digging into #Lisp and its dialects lately. Got curious about why there are so many dialects, you know?
Recently dabbled in #Clojure, which got me looking at Lisp in a new light. Unlike #Haskell, which is awesome for sure, #Lisp has been out of academia and in the market for quite a while... found it pretty cool.
Don't even know where to start. I'm working with "integrant" in #clojure project and every bit of state is managed, I can start/stop/suspend/resume, #repl experience and testing is fantastic.
Is such technique unique and happens only in clojure?
@mluts yes, I have exactly the same problem in Python with sqlalchemy. Shared global session is great when it works. #integrant and #clojure are definitely spoiling us :)
In other news, wherefore-art-thou now supports arbitrary genders -- 'male' and 'female' are supplied as default, but as data, not hardwired into the code, so you can add as many others as you want, or remove male and female if you want to.
I'm happy to say that ever since I started using Flatpak's desktop #Penpot package, its become one of my favorite programs and I use it every day day now. And it just got a slick new upgrade. So now I finally have a #clojure application in my daily repertoire.
Way better than #Figma, which has become total garbage ever since #Adobe bought it.
About 5,000 years after the ice has melted, with widespread forest;
About 5,000 years after that, after 200 generations of human settlement.
This is pure simulation, not actual data; but the land it shows as flooded is either still lochs and wetlands, or land we know has historically been drained. The areas of settlement are plausible, and map onto historical settlements.
Comparison between my simulated drainage for the Isle of Man and the actual on the ground river courses. This is getting pretty good. It isn't yet perfect, but promising!
This is work towards being able to create a complete naturalistic environment from either just a heightmap, or a combination of a heightmap, a rainfall map, and soil permeability map.
I've spent some of today finding bottlenecks in my world-simulating cellular automaton, and I can now simulate 10,000 years of history from the middle of the Ice Age to the middle of the Iron Age over 40,000 square kilometres (at kilometre scale) in slightly under two minutes of wall-clock time. It's utterly caning my poor computer, but it doesn't crash.
@pmonks Surprisingly, I'm just using the stock #Clojure map function. About ten years ago, working on this exact problem, I put a lot of work into trying to write my own map functions which I hoped would be more efficient at parallelisation than the standard Clojure implementation; but they none of them were.