Dogalog: A realtime Prolog-based livecoding music environment
https://github.com/danja/dogalog
#HackerNews #Dogalog #Prolog #livecoding #music #environment #realtime #music #technology #innovation
Dogalog: A realtime Prolog-based livecoding music environment
https://github.com/danja/dogalog
#HackerNews #Dogalog #Prolog #livecoding #music #environment #realtime #music #technology #innovation
@dcnorris I am not so good at graphics, so I stick to story-telling, much like in this blog post:
https://blog.khinsen.net/posts/2025/06/20/computational-reproducibility.html
But your idea of taking inspiration from Maslow's hierarchy is great!
@khinsen Thanks for your encouragement! Whereas I'd at first thought of Maslow's hierarchy as just a basic pattern to follow, I now think there may be a kind of 'isomorphism' here:
Physiologic Needs: any part of the analytic pipeline (from data to results) that isn't fully scripted à la #reproducibleresearch is effectively DEAD.
Safety Needs: scripts not under source control, unstructured analysis data sets (spreadsheets≈crime), and indeed all unnecessarily imperative pipeline elements (e.g., shell scripts instead of makefiles) create an UNSTABLE and UNSAFE environment for analytic work. (Where applicable, safeguarding sensitive data also belongs in this tier.)
Love & Belonging: code reviews, documentation [incl. tests, pace Dijkstra], preregistration, conference presentations, preprints, and peer review at all stages of the work; using and crediting community-contributed software.
Esteem: contributing reusable code, bug reports, bug fixes, etc. to a community of scientific software users; contributing thoroughly reproducible and criticizable analyses in peer review.
Self-Actualization: At this stage, the values achieved have to be one's own, I think. Examples might be achieving technical transcendence by doing the whole project in #CommonLisp, #Guix or (for me) ISO #Prolog 🧘, or formally proving correctness of algorithms. Another example would be that others extend & improve upon your work. Finally, #scicomm could be regarded as a true pinnacle.
Teaching Prolog and logic programming with Jupyter Notebooks. ~ Galileo Sartor, Adam Wyner. https://ceur-ws.org/Vol-4117/PEG-Short-1.pdf #Prolog #LogicPO
Teaching Prolog and logic programming with Jupyter Notebooks. ~ Galileo Sartor, Adam Wyner. https://ceur-ws.org/Vol-4117/PEG-Short-1.pdf #Prolog #LogicPO
Learn #Prolog Now!
「 We want to emphasize the practical aspects of Prolog. Prolog is something you do. You can't learn a programming language simply by reading about it, and if you really want to get the most out of this course, we strongly advise you to get hold of a Prolog interpreter (you'll find pointers to some nice ones on this website) and work through all the Practical Sessions that we provide 」
𝗣𝗿𝗼𝗹𝗼𝗴 𝗯𝘆 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
A short course developed specifically for anyone who struggled with the traditional university courses and textbooks.
The focus is on concepts, and building confidence through short hands-on examples and exercises.
I actually had a lot of fun writing it myself ! 😄
𝗣𝗿𝗼𝗹𝗼𝗴 𝗯𝘆 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
A short course developed specifically for anyone who struggled with the traditional university courses and textbooks.
The focus is on concepts, and building confidence through short hands-on examples and exercises.
I actually had a lot of fun writing it myself ! 😄
Upcoming talk by me on packing #ScryerProlog in #guix in Dusseldorf, November.
https://hsd-pbsa.de/veranstaltung/scryer-prolog-meetup-2025/
Emphases from me will cover the importance of #ReproducibleResearch and the gains from how Guix is well suited to not only providing precision for configuring but longevity of software stacks
If you feel any #ImposterSyndrome as a programmer about calling yourself an "engineer", just start writing your backend server software in #Erlang. Yes, you'll have to learn #Prolog syntax. Yes, you'll have to learn how to do fully functional programming with only immutable data structures. Yes, it is fully asynchronous and designed for reliability and fault tolerance. Yes, it is highly dynamic and can do things like update running software remotely with new code with zero downtime.
If you feel any #ImposterSyndrome as a programmer about calling yourself an "engineer", just start writing your backend server software in #Erlang. Yes, you'll have to learn #Prolog syntax. Yes, you'll have to learn how to do fully functional programming with only immutable data structures. Yes, it is fully asynchronous and designed for reliability and fault tolerance. Yes, it is highly dynamic and can do things like update running software remotely with new code with zero downtime.
The Mini #CommonLISP I have been working on now runs on CP/M with 2416 free cons cells. Enough to load Ken Kahn's tiny PROLOG and run a few simple queries.
The #AgonLight (18MHz eZ80) loads the LISP part of the code (236 lines) in 11 seconds. Simple programs run at acceptable speed, but slightly more complex PROLOG queries take minutes. 😊
#LISP#CPM#PROLOG#Z80
The Mini #CommonLISP I have been working on now runs on CP/M with 2416 free cons cells. Enough to load Ken Kahn's tiny PROLOG and run a few simple queries.
The #AgonLight (18MHz eZ80) loads the LISP part of the code (236 lines) in 11 seconds. Simple programs run at acceptable speed, but slightly more complex PROLOG queries take minutes. 😊
#LISP#CPM#PROLOG#Z80