Taking a quick look at #miniKanren for logic programming (specifically the implementation embedded in Clojure)..
Taking a quick look at #miniKanren for logic programming (specifically the implementation embedded in Clojure)..
@screwlisp @kentpitman regarding the discussion we had after the #LispyGopherClimate show ended, MiniKanren is logic programming language embedded in Scheme (sort-of like a Prolog implemented in Scheme and coded with S-expressions), and you can use machine leaning methods like neural networks to guide the search tree of the goal solver mechanism. This paper is an example of what I was talking about.
Even before LLMs were invented, MiniKanren was able to do program synthesis using purely symbolic logic. They developed a prototype called Barliman where you would provide example input->output pairs as constraints, and using a constraint solver, could generalize those examples to a function that generates any output for any input. As a simple example, you could give it the following input-output pairs:
…and the constraint solver could determine that you are trying to implement the append function for lists and write the code automatically — without LLMs, using purely symbolic logic.
As you might expect, the solver could be very slow, or even diverge (never returning an answer). The paper I mentioned above talks about using neural networks to try to guide the constraint solver to improve the performance and usefulness of the results returned by the solver.
Now imagine applying this technique to other domains besides code generation or optimization, for example, auto-completion, or cache pre-fetching, and building it into a programmable computing environment like Emacs. You could have a tool like “Cursor,” but instead of using LLMs, it uses classical computing and constraint solvers, while taking a fraction of the amount of energy that LLMs use.
#tech #software #AI #LLM #MachineLearning #NeuralNetwork #ConstraintLogic #ConstraintSolver #LogicProgramming #Prolog #MiniKanren #Emacs #Lisp #Scheme #SchemeLang #ProgramSynthesis
The #Haskell #Unfolder is two years old! Join us for a new episode tomorrow, 2025-04-16, at 1830 UTC, live on YouTube. This time, the topic is logic programming with typedKanren, which is a typed version of #miniKanren embedded into Haskell.
https://www.youtube.com/watch?v=ukk5JDRYQSc&list=PLD8gywOEY4HaG5VSrKVnHxCptlJv2GAn7&index=42
I'm learning about relational programming and writing my notes at
https://wip.jroi.dev/relational-programming.html
As always, these notes are work-in-progress :)
So to jump on my soapbox about this whole #xz thing: it has become my personal mission at work to say that bash is not good enough, after being seriously burned by it in production.
Now, I am fully on-board the bandwagon of writing my release "scripts" in #Rust. To be specific, I am hoping that I eventually get to the point where I have built a tool where I can do the entire release process end-to-end with very strong types. Does this fix the problem with #xz? No! But I can see many ways it reduces the scope.
The only other language I'd be interested in using if I wasn't doing this in Rust? #miniKanren, hands down. But that's not feasible today without a lot of bootstrapping, and Rust gives me a lot out of the gate even if I have to solve the deployment problem before I can deploy the tool that I want to use to solve the deployment problem. Fortunately, this is well-trod ground.
Suppose that's not good enough. Bourne shell is still a shitty programming language, and in particular it is really dang hard to read, especially if you're worried about malicious insiders. Which we are. Now we have another problem. The #1 selling point for autotools vs all other build orchestrators is "no build dependencies if you're working from tarballs," and the only reason that works is you can count on /bin/sh to exist on anything that purports to be Unix. If we want to stop using /bin/sh, we're going to have to make people install something else first, and that something else needs to be a small and stable Twinkie. Python need not apply (sorry, Meson). What's small and stable enough? Lua is already too large, and at the same time, too limited. There's one language that's famous for being tiny, flexible, and pleasantly readable once you wrap your head around it: Forth. If I had investments to live off, I would be sorely tempted to take the next year or so and write my own Forth that was also a shell language and a build orchestrator, and then have a look at rewriting Autoconf in *that.* This is the castle in the air.
I'm a book learner. I feel like I can learn anything that there is at least one incredible book dedicated to, but without literature I can sink my teeth into, I will never succeed in picking up a new skill distinct from those I already possess.
TLDR: looking for a genuinely good #CSS book that gets into the meaty bits and doesn't treat the reader like toddler.
Around the time of covid, I decided I was going to tear down my react website that I hated ever since it went up, and build it with just HTML & CSS. So I did what any yak shaver would do, and built an ad-hoc CSS preprocessor in #Scheme, without knowing anything about modern CSS. And it worked well enough at first, but in the process I started to learn about all the new features of CSS (I'm not a webdev), and so I figured I should first dive in and then design a DSL that enables "Graphic Design By Wishful Thinkful", originally intending to use #miniKanren for relational styling & generative design patterns. But every CSS book I tried was simply "do this example and another one, and another, accumulate lots of examples without any insight into CSS design strategy", and my AuDHD can't handle that — I need something worth fixating on or I'm doomed. And thus I've gone without a website for years, and accumulated lots of blog entries in my zettlekasten which I still have yet to share.
But I also can't let go of the idea of creating a system that would make a JS-free website enjoyable for *me* to maintain, and I've always found writing CSS to be painfully tedious and time consuming, a google oriented configuration process, while I also recognize how powerful it is.
And I also have genuine aesthetic/design skills! I've been hired to create installations for Hermes, Adidas, Nike, and countless others, all around the world. My "art" has been shown at the Venice Biennale, Art Basel, and countless major venues from Pioneer Works to the Brooklyn Museum (before public funds became illegal to grant to BDS activists, and I subsequently dropped out of an art world that will readily obey and tally the State's red lines we cross and work to keep us in check, excluding not only BDS activists but also Marxist-Leninists, Korean unification activists and other uncompromising dissidents). But I havent found any good book that makes CSS interesting, although I believe that it genuinely is.
So what is the best resource for getting deep with modern CSS? Does it even exist?! I feel like it must.
wreckto-verso: experiments with the #verse calculus in #minikanren from Will Byrd
(here using #chez #scheme)
https://github.com/webyrd/wreckto-verseo