home.social

#repl — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #repl, aggregated by home.social.

fetched live
  1. [Перевод] Я превратил Slack в интерактивную консоль для работающего .NET-приложения

    Автор объясняет, как он использовал скрипты Roslyn и режим сокетов Slack для проверки, отладки и взаимодействия с запущенным приложением.

    habr.com/ru/articles/1060700/

    #roslyn #slack #net #net_development #приложения #скрипты #сокеты #отладка_кода #repl #c#

  2. [Перевод] Я превратил Slack в интерактивную консоль для работающего .NET-приложения

    Автор объясняет, как он использовал скрипты Roslyn и режим сокетов Slack для проверки, отладки и взаимодействия с запущенным приложением.

    habr.com/ru/articles/1060700/

    #roslyn #slack #net #net_development #приложения #скрипты #сокеты #отладка_кода #repl #c#

  3. [Перевод] Я превратил Slack в интерактивную консоль для работающего .NET-приложения

    Автор объясняет, как он использовал скрипты Roslyn и режим сокетов Slack для проверки, отладки и взаимодействия с запущенным приложением.

    habr.com/ru/articles/1060700/

    #roslyn #slack #net #net_development #приложения #скрипты #сокеты #отладка_кода #repl #c#

  4. I am starting to get a hang of developing #rstats in #zed .
    - Step 1: Find the right doc entry zed.dev/docs/repl#r-ark
    - Step 2: Install ark github.com/posit-dev/ark .
    - Step 3: Fiddle with key mappings to make "REPL: run" for "cmd + enter"
    - Step 4: Connect to the interactive #REPL in the console with `jupyter console --existing`

    Et voila, sort of an interactive ression in zed. Thanks @Posit for making you key libraries open source, so I can use my current favorite editor more efficiently

  5. I am starting to get a hang of developing #rstats in #zed .
    - Step 1: Find the right doc entry zed.dev/docs/repl#r-ark
    - Step 2: Install ark github.com/posit-dev/ark .
    - Step 3: Fiddle with key mappings to make "REPL: run" for "cmd + enter"
    - Step 4: Connect to the interactive #REPL in the console with `jupyter console --existing`

    Et voila, sort of an interactive ression in zed. Thanks @Posit for making you key libraries open source, so I can use my current favorite editor more efficiently

  6. I am starting to get a hang of developing #rstats in #zed .
    - Step 1: Find the right doc entry zed.dev/docs/repl#r-ark
    - Step 2: Install ark github.com/posit-dev/ark .
    - Step 3: Fiddle with key mappings to make "REPL: run" for "cmd + enter"
    - Step 4: Connect to the interactive #REPL in the console with `jupyter console --existing`

    Et voila, sort of an interactive ression in zed. Thanks @Posit for making you key libraries open source, so I can use my current favorite editor more efficiently

  7. Reflection on REPL, nREPL, ad-hoc protocols on top of tcp REPLs in the context of editors/IDE/programmatic tooling, what better suites them and stands the test of time.

    batsov.com/articles/2026/05/20

    #clojure #lisp #scheme #repl #nrepl

  8. Reflection on REPL, nREPL, ad-hoc protocols on top of tcp REPLs in the context of editors/IDE/programmatic tooling, what better suites them and stands the test of time.

    batsov.com/articles/2026/05/20

  9. Reflection on REPL, nREPL, ad-hoc protocols on top of tcp REPLs in the context of editors/IDE/programmatic tooling, what better suites them and stands the test of time.

    batsov.com/articles/2026/05/20

    #clojure #lisp #scheme #repl #nrepl

  10. Reflection on REPL, nREPL, ad-hoc protocols on top of tcp REPLs in the context of editors/IDE/programmatic tooling, what better suites them and stands the test of time.

    batsov.com/articles/2026/05/20

    #clojure #lisp #scheme #repl #nrepl

  11. Reflection on REPL, nREPL, ad-hoc protocols on top of tcp REPLs in the context of editors/IDE/programmatic tooling, what better suites them and stands the test of time.

    batsov.com/articles/2026/05/20

    #clojure #lisp #scheme #repl #nrepl

  12. RE: fosstodon.org/@tarsius/1166431

    In 1990 Dr. Peter Lee's 15-212 course at #CarnegieMellon introduced me to Scheme. It's also when I first came to comprehend the power of #Emacs and #EmacsLisp.

    In the first hour, Professor Lee demonstrated elegantly that everything is a list: data are lists and programs are lists. Every list returns a value, and functions are just lists that do calculations! Functions can return lists, of course, and so you can write functions that return functions!

    I ran to the lab to hack Lisp: it wasn't in your pocket, it was in a room worth more than your parents' house. Nothing had ever seemed more natural: write, evaluate, repeat. Hack a nugget, nest lists, add parentheses, hack bigger things. But the magic thing where you write code that returns code remained a mystery: we did lots of cool stuff in that course, but we never got to macros.

    Until 2026.

    The surprise? The surprise is that as each decade passes, I grow to cherish lifelong learning as more and more precious.

    #lisp #scheme #repl #macro #cmu

  13. RE: fosstodon.org/@tarsius/1166431

    In 1990 Dr. Peter Lee's 15-212 course at #CarnegieMellon introduced me to Scheme. It's also when I first came to comprehend the power of #Emacs and #EmacsLisp.

    In the first hour, Professor Lee demonstrated elegantly that everything is a list: data are lists and programs are lists. Every list returns a value, and functions are just lists that do calculations! Functions can return lists, of course, and so you can write functions that return functions!

    I ran to the lab to hack Lisp: it wasn't in your pocket, it was in a room worth more than your parents' house. Nothing had ever seemed more natural: write, evaluate, repeat. Hack a nugget, nest lists, add parentheses, hack bigger things. But the magic thing where you write code that returns code remained a mystery: we did lots of cool stuff in that course, but we never got to macros.

    Until 2026.

    The surprise? The surprise is that as each decade passes, I grow to cherish lifelong learning as more and more precious.

    #lisp #scheme #repl #macro #cmu

  14. RE: fosstodon.org/@tarsius/1166431

    In 1990 Dr. Peter Lee's 15-212 course at #CarnegieMellon introduced me to Scheme. It's also when I first came to comprehend the power of #Emacs and #EmacsLisp.

    In the first hour, Professor Lee demonstrated elegantly that everything is a list: data are lists and programs are lists. Every list returns a value, and functions are just lists that do calculations! Functions can return lists, of course, and so you can write functions that return functions!

    I ran to the lab to hack Lisp: it wasn't in your pocket, it was in a room worth more than your parents' house. Nothing had ever seemed more natural: write, evaluate, repeat. Hack a nugget, nest lists, add parentheses, hack bigger things. But the magic thing where you write code that returns code remained a mystery: we did lots of cool stuff in that course, but we never got to macros.

    Until 2026.

    The surprise? The surprise is that as each decade passes, I grow to cherish lifelong learning as more and more precious.

    #lisp #scheme #repl #macro #cmu

  15. RE: fosstodon.org/@tarsius/1166431

    In 1990 Dr. Peter Lee's 15-212 course at #CarnegieMellon introduced me to Scheme. It's also when I first came to comprehend the power of #Emacs and #EmacsLisp.

    In the first hour, Professor Lee demonstrated elegantly that everything is a list: data are lists and programs are lists. Every list returns a value, and functions are just lists that do calculations! Functions can return lists, of course, and so you can write functions that return functions!

    I ran to the lab to hack Lisp: it wasn't in your pocket, it was in a room worth more than your parents' house. Nothing had ever seemed more natural: write, evaluate, repeat. Hack a nugget, nest lists, add parentheses, hack bigger things. But the magic thing where you write code that returns code remained a mystery: we did lots of cool stuff in that course, but we never got to macros.

    Until 2026.

    The surprise? The surprise is that as each decade passes, I grow to cherish lifelong learning as more and more precious.

    #lisp #scheme #repl #macro #cmu

  16. RE: fosstodon.org/@tarsius/1166431

    In 1990 Dr. Peter Lee's 15-212 course at #CarnegieMellon introduced me to Scheme. It's also when I first came to comprehend the power of #Emacs and #EmacsLisp.

    In the first hour, Professor Lee demonstrated elegantly that everything is a list: data are lists and programs are lists. Every list returns a value, and functions are just lists that do calculations! Functions can return lists, of course, and so you can write functions that return functions!

    I ran to the lab to hack Lisp: it wasn't in your pocket, it was in a room worth more than your parents' house. Nothing had ever seemed more natural: write, evaluate, repeat. Hack a nugget, nest lists, add parentheses, hack bigger things. But the magic thing where you write code that returns code remained a mystery: we did lots of cool stuff in that course, but we never got to macros.

    Until 2026.

    The surprise? The surprise is that as each decade passes, I grow to cherish lifelong learning as more and more precious.

    #lisp #scheme #repl #macro #cmu

  17. @dubiousdisc wrote:
    «The killer feature of Lisps is not macros or structural editing (though those are nice too). The killer feature is REPL-driven development. Writing and testing code are not separate stages; they are intertwined. It's a completely different way to program.»

    The latter two sentences are true (we can add exploration to writing and testing).
    I don't think that there is a _single_ killer feature, though.
    For example, REPLs are available for quite a few languages nowadays, but these languages still don't "feel like" Lisp.

    What is usually called homoiconicity is also important, for example, not so much by itself, but by the way it affects directly or indirectly many aspects of using a language.
    A lot has been said about homoiconicity, of course, but still, let me add an illustration.
    Define a quine as an expression Q in a programming language such that Q is equal to eval(Q).
    Obviously, the precise representation of Q and the precise notion of equality will be language-dependent.
    Now, compare a quine (in the above sense) in a Lisp to a quine in Python.

    With regards to another aspect of the big topic, see also an old paper by Guy Steele called Growing a Language (or Making a Language that Can Grow, or something like that).

    #ComputerProgramming
    #GrowingALanguage
    #Homoiconicity
    #Lisp
    #Programming
    #ProgrammingLanguages
    #Quines
    #ReadEvalPrintLoop
    #REPL

  18. @dubiousdisc wrote:
    «The killer feature of Lisps is not macros or structural editing (though those are nice too). The killer feature is REPL-driven development. Writing and testing code are not separate stages; they are intertwined. It's a completely different way to program.»

    The latter two sentences are true (we can add exploration to writing and testing).
    I don't think that there is a _single_ killer feature, though.
    For example, REPLs are available for quite a few languages nowadays, but these languages still don't "feel like" Lisp.

    What is usually called homoiconicity is also important, for example, not so much by itself, but by the way it affects directly or indirectly many aspects of using a language.
    A lot has been said about homoiconicity, of course, but still, let me add an illustration.
    Define a quine as an expression Q in a programming language such that Q is equal to eval(Q).
    Obviously, the precise representation of Q and the precise notion of equality will be language-dependent.
    Now, compare a quine (in the above sense) in a Lisp to a quine in Python.

    With regards to another aspect of the big topic, see also an old paper by Guy Steele called Growing a Language (or Making a Language that Can Grow, or something like that).

    #ComputerProgramming
    #GrowingALanguage
    #Homoiconicity
    #Lisp
    #Programming
    #ProgrammingLanguages
    #Quines
    #ReadEvalPrintLoop
    #REPL

  19. @dubiousdisc wrote:
    «The killer feature of Lisps is not macros or structural editing (though those are nice too). The killer feature is REPL-driven development. Writing and testing code are not separate stages; they are intertwined. It's a completely different way to program.»

    The latter two sentences are true (we can add exploration to writing and testing).
    I don't think that there is a _single_ killer feature, though.
    For example, REPLs are available for quite a few languages nowadays, but these languages still don't "feel like" Lisp.

    What is usually called homoiconicity is also important, for example, not so much by itself, but by the way it affects directly or indirectly many aspects of using a language.
    A lot has been said about homoiconicity, of course, but still, let me add an illustration.
    Define a quine as an expression Q in a programming language such that Q is equal to eval(Q).
    Obviously, the precise representation of Q and the precise notion of equality will be language-dependent.
    Now, compare a quine (in the above sense) in a Lisp to a quine in Python.

    With regards to another aspect of the big topic, see also an old paper by Guy Steele called Growing a Language (or Making a Language that Can Grow, or something like that).

    #ComputerProgramming
    #GrowingALanguage
    #Homoiconicity
    #Lisp
    #Programming
    #ProgrammingLanguages
    #Quines
    #ReadEvalPrintLoop
    #REPL

  20. @dubiousdisc wrote:
    «The killer feature of Lisps is not macros or structural editing (though those are nice too). The killer feature is REPL-driven development. Writing and testing code are not separate stages; they are intertwined. It's a completely different way to program.»

    The latter two sentences are true (we can add exploration to writing and testing).
    I don't think that there is a _single_ killer feature, though.
    For example, REPLs are available for quite a few languages nowadays, but these languages still don't "feel like" Lisp.

    What is usually called homoiconicity is also important, for example, not so much by itself, but by the way it affects directly or indirectly many aspects of using a language.
    A lot has been said about homoiconicity, of course, but still, let me add an illustration.
    Define a quine as an expression Q in a programming language such that Q is equal to eval(Q).
    Obviously, the precise representation of Q and the precise notion of equality will be language-dependent.
    Now, compare a quine (in the above sense) in a Lisp to a quine in Python.

    With regards to another aspect of the big topic, see also an old paper by Guy Steele called Growing a Language (or Making a Language that Can Grow, or something like that).

    #ComputerProgramming
    #GrowingALanguage
    #Homoiconicity
    #Lisp
    #Programming
    #ProgrammingLanguages
    #Quines
    #ReadEvalPrintLoop
    #REPL

  21. @dubiousdisc wrote:
    «The killer feature of Lisps is not macros or structural editing (though those are nice too). The killer feature is REPL-driven development. Writing and testing code are not separate stages; they are intertwined. It's a completely different way to program.»

    The latter two sentences are true (we can add exploration to writing and testing).
    I don't think that there is a _single_ killer feature, though.
    For example, REPLs are available for quite a few languages nowadays, but these languages still don't "feel like" Lisp.

    What is usually called homoiconicity is also important, for example, not so much by itself, but by the way it affects directly or indirectly many aspects of using a language.
    A lot has been said about homoiconicity, of course, but still, let me add an illustration.
    Define a quine as an expression Q in a programming language such that Q is equal to eval(Q).
    Obviously, the precise representation of Q and the precise notion of equality will be language-dependent.
    Now, compare a quine (in the above sense) in a Lisp to a quine in Python.

    With regards to another aspect of the big topic, see also an old paper by Guy Steele called Growing a Language (or Making a Language that Can Grow, or something like that).

    #ComputerProgramming
    #GrowingALanguage
    #Homoiconicity
    #Lisp
    #Programming
    #ProgrammingLanguages
    #Quines
    #ReadEvalPrintLoop
    #REPL

  22. I am really enjoying the #repl though. A different way of being and building. It's been a long time.

  23. I am really enjoying the #repl though. A different way of being and building. It's been a long time.

  24. I am really enjoying the #repl though. A different way of being and building. It's been a long time.

  25. I am really enjoying the #repl though. A different way of being and building. It's been a long time.

  26. I am really enjoying the #repl though. A different way of being and building. It's been a long time.

  27. Every time I want to leave #lisp or #scheme based language I stumble across awesome talk which reminds me why I love it in the first place.

    fosdem.org/2026/schedule/event

    Damn #repl driven development is so damn awesome. Now a days If I need to write some automation scripts I use #babashka lot instead of #bash or #python

  28. Every time I want to leave #lisp or #scheme based language I stumble across awesome talk which reminds me why I love it in the first place.

    fosdem.org/2026/schedule/event

    Damn #repl driven development is so damn awesome. Now a days If I need to write some automation scripts I use #babashka lot instead of #bash or #python

  29. Every time I want to leave #lisp or #scheme based language I stumble across awesome talk which reminds me why I love it in the first place.

    fosdem.org/2026/schedule/event

    Damn #repl driven development is so damn awesome. Now a days If I need to write some automation scripts I use #babashka lot instead of #bash or #python

  30. Every time I want to leave #lisp or #scheme based language I stumble across awesome talk which reminds me why I love it in the first place.

    fosdem.org/2026/schedule/event

    Damn #repl driven development is so damn awesome. Now a days If I need to write some automation scripts I use #babashka lot instead of #bash or #python

  31. С Vim удобно программировать (часть II)

    Это вторая часть публикации. В первой мы разобрали основные настройки редактора, позволяющие сделать процесс набора программы более удобным. Здесь рассмотрим плагины и скрипты для запуска программ на разных языках из редактора Vim.

    habr.com/ru/articles/1025124/

    #linux #vim #vimrc #bash #diy_или_сделай_сам #repl #ide

  32. С Vim удобно программировать (часть II)

    Это вторая часть публикации. В первой мы разобрали основные настройки редактора, позволяющие сделать процесс набора программы более удобным. Здесь рассмотрим плагины и скрипты для запуска программ на разных языках из редактора Vim.

    habr.com/ru/articles/1025124/

    #linux #vim #vimrc #bash #diy_или_сделай_сам #repl #ide

  33. С Vim удобно программировать (часть II)

    Это вторая часть публикации. В первой мы разобрали основные настройки редактора, позволяющие сделать процесс набора программы более удобным. Здесь рассмотрим плагины и скрипты для запуска программ на разных языках из редактора Vim.

    habr.com/ru/articles/1025124/

    #linux #vim #vimrc #bash #diy_или_сделай_сам #repl #ide

  34. Почему я перестал писать bash-скрипты и написал свой язык

    Время от времени мне нужно выполнить примитивный сценарий в терминале, но каждый раз это заканчивается очередным гуглежом «bash iterate each file» или «bash file has string». А что если скрипты в терминале можно было бы писать прямо как поток декларативных мыслей?

    habr.com/ru/articles/1020728/

    #скриптовый_язык #bash #функциональное_программирование #REPL #автоматизация #open_source #Rust #Lisp #Haskell

  35. Почему я перестал писать bash-скрипты и написал свой язык

    Время от времени мне нужно выполнить примитивный сценарий в терминале, но каждый раз это заканчивается очередным гуглежом «bash iterate each file» или «bash file has string». А что если скрипты в терминале можно было бы писать прямо как поток декларативных мыслей?

    habr.com/ru/articles/1020728/

    #скриптовый_язык #bash #функциональное_программирование #REPL #автоматизация #open_source #Rust #Lisp #Haskell

  36. Почему я перестал писать bash-скрипты и написал свой язык

    Время от времени мне нужно выполнить примитивный сценарий в терминале, но каждый раз это заканчивается очередным гуглежом «bash iterate each file» или «bash file has string». А что если скрипты в терминале можно было бы писать прямо как поток декларативных мыслей?

    habr.com/ru/articles/1020728/

    #скриптовый_язык #bash #функциональное_программирование #REPL #автоматизация #open_source #Rust #Lisp #Haskell

  37. @cwebber So to fix that, let me tell you about the PR for spritely hoot-repl that reduces load times of the #Guile #Scheme web #REPL in #webassembly by at least 30% ☺

    codeberg.org/spritely/hoot-rep

    Though I’m sure you already know, so this is just an "I answered the review" notification, but more interesting than something about LLM agents ☺

    #wasm #programming

  38. @cwebber So to fix that, let me tell you about the PR for spritely hoot-repl that reduces load times of the #Guile #Scheme web #REPL in #webassembly by at least 30% ☺

    codeberg.org/spritely/hoot-rep

    Though I’m sure you already know, so this is just an "I answered the review" notification, but more interesting than something about LLM agents ☺

    #wasm #programming

  39. @cwebber So to fix that, let me tell you about the PR for spritely hoot-repl that reduces load times of the #Guile #Scheme web #REPL in #webassembly by at least 30% ☺

    codeberg.org/spritely/hoot-rep

    Though I’m sure you already know, so this is just an "I answered the review" notification, but more interesting than something about LLM agents ☺

    #wasm #programming

  40. @cwebber So to fix that, let me tell you about the PR for spritely hoot-repl that reduces load times of the #Guile #Scheme web #REPL in #webassembly by at least 30% ☺

    codeberg.org/spritely/hoot-rep

    Though I’m sure you already know, so this is just an "I answered the review" notification, but more interesting than something about LLM agents ☺

    #wasm #programming

  41. @lobsters Lets not forget about debugging - currently it's either print log (crap) or a full trace (heavyweight). Im addressing this in #golang with a #TUI debugger with time travel and a #REPL asyncmachine.dev/wasm but that still doesnt replace actual breakpoints

  42. The new release of #asyncmachine brings #WASM support and browser compat - including #aRPC, #TUI debugging and #REPL. Check out the changelog for v0.18.0 github.com/pancsta/asyncmachin and a dedicated WASM example asyncmachine.dev/wasm (with D2 diagrams).

    This allows to have a single #statemachine #distributed across n servers and m browsers, using efficient diff-based synchronization.

    Looking fwd to #wasmio!

    #golang #workflows #rpc #webassembly #d2 #go #wasmio2026

  43. so, apparently hacking #scheme is going to get even more fun with B.L.U.E., a sane, extendable, lisp-y l, agnostic build system and #Ares, the interactive hacking tool we always sensed was missing from our work. Yes, we now have insightful backtraces in #guile!

    The future has come!

    codeberg.org/lapislazuli/blue
    git.sr.ht/~abcdw/guile-ares-rs

    @abcdw @shepherd

    #guix #fosdem #fosdem2026 #blue #lisp #repl #buildsystem #reproducibility #hacking #fun #coding #interactiveprogramming

  44. so, apparently hacking #scheme is going to get even more fun with B.L.U.E., a sane, extendable, lisp-y l, agnostic build system and #Ares, the interactive hacking tool we always sensed was missing from our work. Yes, we now have insightful backtraces in #guile!

    The future has come!

    codeberg.org/lapislazuli/blue
    git.sr.ht/~abcdw/guile-ares-rs

    @abcdw @shepherd

    #guix #fosdem #fosdem2026 #blue #lisp #repl #buildsystem #reproducibility #hacking #fun #coding #interactiveprogramming

  45. so, apparently hacking #scheme is going to get even more fun with B.L.U.E., a sane, extendable, lisp-y l, agnostic build system and #Ares, the interactive hacking tool we always sensed was missing from our work. Yes, we now have insightful backtraces in #guile!

    The future has come!

    codeberg.org/lapislazuli/blue
    git.sr.ht/~abcdw/guile-ares-rs

    @abcdw @shepherd

    #guix #fosdem #fosdem2026 #blue #lisp #repl #buildsystem #reproducibility #hacking #fun #coding #interactiveprogramming

  46. so, apparently hacking #scheme is going to get even more fun with B.L.U.E., a sane, extendable, lisp-y l, agnostic build system and #Ares, the interactive hacking tool we always sensed was missing from our work. Yes, we now have insightful backtraces in #guile!

    The future has come!

    codeberg.org/lapislazuli/blue
    git.sr.ht/~abcdw/guile-ares-rs

    @abcdw @shepherd

    #guix #fosdem #fosdem2026 #blue #lisp #repl #buildsystem #reproducibility #hacking #fun #coding #interactiveprogramming

  47. so, apparently hacking #scheme is going to get even more fun with B.L.U.E., a sane, extendable, lisp-y l, agnostic build system and #Ares, the interactive hacking tool we always sensed was missing from our work. Yes, we now have insightful backtraces in #guile!

    The future has come!

    codeberg.org/lapislazuli/blue
    git.sr.ht/~abcdw/guile-ares-rs

    @abcdw @shepherd

    #guix #fosdem #fosdem2026 #blue #lisp #repl #buildsystem #reproducibility #hacking #fun #coding #interactiveprogramming

  48. @akkartik Since #Forth is just so great for super concise code, allow me to add another example, here to transpile (a subset of) Forth into GLSL for livecoding shaders. This one is using my old 2015 CharlieVM and you can find all the example source snippets in the readme here:

    github.com/thi-ng/charlie

    The REPL itself live at:
    forth.thi.ng/

    The attached screen capture shows 4 shader examples (longest one is 12 lines of code)

    #Livecoding #REPL #GLSL #Shader #Transpiler

  49. @akkartik Since #Forth is just so great for super concise code, allow me to add another example, here to transpile (a subset of) Forth into GLSL for livecoding shaders. This one is using my old 2015 CharlieVM and you can find all the example source snippets in the readme here:

    github.com/thi-ng/charlie

    The REPL itself live at:
    forth.thi.ng/

    The attached screen capture shows 4 shader examples (longest one is 12 lines of code)

    #Livecoding #REPL #GLSL #Shader #Transpiler

  50. @akkartik Since #Forth is just so great for super concise code, allow me to add another example, here to transpile (a subset of) Forth into GLSL for livecoding shaders. This one is using my old 2015 CharlieVM and you can find all the example source snippets in the readme here:

    github.com/thi-ng/charlie

    The REPL itself live at:
    forth.thi.ng/

    The attached screen capture shows 4 shader examples (longest one is 12 lines of code)

    #Livecoding #REPL #GLSL #Shader #Transpiler