Discussion
Loading...

#Tag

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp last week

Dogalog: A realtime Prolog-based livecoding music environment

https://github.com/danja/dogalog

#HackerNews #Dogalog #Prolog #livecoding #music #environment #realtime #music #technology #innovation

GitHub

GitHub - danja/dogalog: livecoding prolog style

livecoding prolog style. Contribute to danja/dogalog development by creating an account on GitHub.
  • Copy link
  • Flag this post
  • Block
Konrad Hinsen
Konrad Hinsen
@khinsen@scholar.social  ·  activity timestamp 3 weeks ago

@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!

Konrad Hinsen's blog

David C. Norris 🇺🇦 🐸
David C. Norris 🇺🇦 🐸
@dcnorris@scicomm.xyz replied  ·  activity timestamp 2 weeks ago

@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.

  • Copy link
  • Flag this comment
  • Block
Jan :rust: :ferris: boosted
José A. Alonso
José A. Alonso
@Jose_A_Alonso@mathstodon.xyz  ·  activity timestamp 3 weeks ago

Teaching Prolog and logic programming with Jupyter Notebooks. ~ Galileo Sartor, Adam Wyner. https://ceur-ws.org/Vol-4117/PEG-Short-1.pdf #Prolog #LogicPO

  • Copy link
  • Flag this post
  • Block
José A. Alonso
José A. Alonso
@Jose_A_Alonso@mathstodon.xyz  ·  activity timestamp 3 weeks ago

Teaching Prolog and logic programming with Jupyter Notebooks. ~ Galileo Sartor, Adam Wyner. https://ceur-ws.org/Vol-4117/PEG-Short-1.pdf #Prolog #LogicPO

  • Copy link
  • Flag this post
  • Block
jbz
jbz
@jbz@indieweb.social  ·  activity timestamp 4 weeks ago

blobcattea 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 」

https://lpn.swi-prolog.org/lpnpage.php?pageid=top

Learn Prolog Now!

  • Copy link
  • Flag this post
  • Block
theruran 💻 🌐 :cereal_killer: and 1 other boosted
Tariq
Tariq
@rzeta0@mathstodon.xyz  ·  activity timestamp last month

𝗣𝗿𝗼𝗹𝗼𝗴 𝗯𝘆 𝗘𝘅𝗮𝗺𝗽𝗹𝗲

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 ! 😄

https://www.amazon.co.uk/dp/B0BTQ7P69H/

#prolog #logicprogramming

prolog by example book cover
prolog by example book cover
prolog by example book cover
  • Copy link
  • Flag this post
  • Block
Tariq
Tariq
@rzeta0@mathstodon.xyz  ·  activity timestamp last month

𝗣𝗿𝗼𝗹𝗼𝗴 𝗯𝘆 𝗘𝘅𝗮𝗺𝗽𝗹𝗲

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 ! 😄

https://www.amazon.co.uk/dp/B0BTQ7P69H/

#prolog #logicprogramming

prolog by example book cover
prolog by example book cover
prolog by example book cover
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 2 months ago

Learn Prolog Now

https://lpn.swi-prolog.org/lpnpage.php?pageid=top

#HackerNews #LearnProlog #Now #Prolog #Programming #Education #Coding #Skills #HackerNews

Learn Prolog Now!

  • Copy link
  • Flag this post
  • Block
Indieterminacy
Indieterminacy
@indieterminacy@social.coop  ·  activity timestamp 3 months ago

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

#PackageManagement #prolog

  • Copy link
  • Flag this post
  • Block
Raúl Chouza boosted
thezerobit
thezerobit
@thezerobit@anticapitalist.party  ·  activity timestamp 5 months ago

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.

  • Copy link
  • Flag this post
  • Block
thezerobit
thezerobit
@thezerobit@anticapitalist.party  ·  activity timestamp 5 months ago

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.

  • Copy link
  • Flag this post
  • Block
Christine Lemmer-Webber and 1 other boosted
Nils M Holm
Nils M Holm
@AverageDog@mastodon.social  ·  activity timestamp 6 months ago

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

MICRO COMMON LISP 01
2416 NODES

* (maplist #'reverse '(1 2 3 4 5))
((5 4321) (5432) (543) (54) (5))

* (do ((a '(hello beautiful lisp world) (cdr a)))
    ((null a) (terpri))
    (prin (car a)))

HELLO BEAUTIFUL LISP WORLD
T

* (defmacro kwote (x) *',x)
KWOTE

* (kwote (foo bar))
(FOO BAR)

* (load 'prolog)
T

* (defparameter *db*
    '(((man socrates))
     ((mortal (\\ x)) (man (\\ x)))))

* (prolog *db* '(mortal (\\ who)))

WHO = SOCRATES
NIL
MICRO COMMON LISP 01 2416 NODES * (maplist #'reverse '(1 2 3 4 5)) ((5 4321) (5432) (543) (54) (5)) * (do ((a '(hello beautiful lisp world) (cdr a))) ((null a) (terpri)) (prin (car a))) HELLO BEAUTIFUL LISP WORLD T * (defmacro kwote (x) *',x) KWOTE * (kwote (foo bar)) (FOO BAR) * (load 'prolog) T * (defparameter *db* '(((man socrates)) ((mortal (\\ x)) (man (\\ x))))) * (prolog *db* '(mortal (\\ who))) WHO = SOCRATES NIL
MICRO COMMON LISP 01 2416 NODES * (maplist #'reverse '(1 2 3 4 5)) ((5 4321) (5432) (543) (54) (5)) * (do ((a '(hello beautiful lisp world) (cdr a))) ((null a) (terpri)) (prin (car a))) HELLO BEAUTIFUL LISP WORLD T * (defmacro kwote (x) *',x) KWOTE * (kwote (foo bar)) (FOO BAR) * (load 'prolog) T * (defparameter *db* '(((man socrates)) ((mortal (\\ x)) (man (\\ x))))) * (prolog *db* '(mortal (\\ who))) WHO = SOCRATES NIL
  • Copy link
  • Flag this post
  • Block
Nils M Holm
Nils M Holm
@AverageDog@mastodon.social  ·  activity timestamp 6 months ago

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

MICRO COMMON LISP 01
2416 NODES

* (maplist #'reverse '(1 2 3 4 5))
((5 4321) (5432) (543) (54) (5))

* (do ((a '(hello beautiful lisp world) (cdr a)))
    ((null a) (terpri))
    (prin (car a)))

HELLO BEAUTIFUL LISP WORLD
T

* (defmacro kwote (x) *',x)
KWOTE

* (kwote (foo bar))
(FOO BAR)

* (load 'prolog)
T

* (defparameter *db*
    '(((man socrates))
     ((mortal (\\ x)) (man (\\ x)))))

* (prolog *db* '(mortal (\\ who)))

WHO = SOCRATES
NIL
MICRO COMMON LISP 01 2416 NODES * (maplist #'reverse '(1 2 3 4 5)) ((5 4321) (5432) (543) (54) (5)) * (do ((a '(hello beautiful lisp world) (cdr a))) ((null a) (terpri)) (prin (car a))) HELLO BEAUTIFUL LISP WORLD T * (defmacro kwote (x) *',x) KWOTE * (kwote (foo bar)) (FOO BAR) * (load 'prolog) T * (defparameter *db* '(((man socrates)) ((mortal (\\ x)) (man (\\ x))))) * (prolog *db* '(mortal (\\ who))) WHO = SOCRATES NIL
MICRO COMMON LISP 01 2416 NODES * (maplist #'reverse '(1 2 3 4 5)) ((5 4321) (5432) (543) (54) (5)) * (do ((a '(hello beautiful lisp world) (cdr a))) ((null a) (terpri)) (prin (car a))) HELLO BEAUTIFUL LISP WORLD T * (defmacro kwote (x) *',x) KWOTE * (kwote (foo bar)) (FOO BAR) * (load 'prolog) T * (defparameter *db* '(((man socrates)) ((mortal (\\ x)) (man (\\ x))))) * (prolog *db* '(mortal (\\ who))) WHO = SOCRATES NIL
  • Copy link
  • Flag this post
  • Block

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.1-alpha.40 no JS en
Automatic federation enabled
Log in
  • Explore
  • About
  • Members
  • Code of Conduct