\n \n \n\n```","creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-03-04T16:42:30.541139","updated":"2023-03-04T16:46:22.714430","deleted":false,"nsfw":false,"embed_title":null,"embed_description":null,"embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/814973","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5633,"post_id":52064,"comments":0,"score":2,"upvotes":2,"downvotes":0,"published":"2023-03-04T16:42:30.541139","newest_comment_time_necro":"2023-03-04T16:42:30.541139","newest_comment_time":"2023-03-04T16:42:30.541139","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":49432,"name":"A simple timer in Clojure","url":"https://youtu.be/69MDk8IwmtE","body":null,"creator_id":2134,"community_id":131,"removed":false,"locked":false,"published":"2023-02-27T14:05:14.831384","updated":null,"deleted":false,"nsfw":false,"embed_title":"A simple timer in Clojure","embed_description":"Notes: https://clojure-diary.gitlab.io/2023/02/27/a-simple-timer-in-clojure.html","embed_video_url":"https://www.youtube.com/embed/69MDk8IwmtE","thumbnail_url":"https://jeremmy.ml/pictrs/image/76c8c2f2-b68f-4e11-969d-3e1ee9ed2aaf.jpeg","ap_id":"https://lemmy.ml/post/778026","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":2134,"name":"mindaslab","display_name":null,"avatar":"https://lemmy.ml/pictrs/image/1gyXtR9CaL.jpg","banned":false,"published":"2020-04-25T06:37:35.949054","updated":"2021-12-14T07:38:19.531037","actor_id":"https://lemmy.ml/u/mindaslab","bio":null,"local":false,"banner":null,"deleted":false,"inbox_url":"https://lemmy.ml/u/mindaslab/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5491,"post_id":49432,"comments":0,"score":2,"upvotes":2,"downvotes":0,"published":"2023-02-27T14:05:14.831384","newest_comment_time_necro":"2023-02-27T14:05:14.831384","newest_comment_time":"2023-02-27T14:05:14.831384","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":49263,"name":"Clojure book beta release 0","url":"https://clojure-diary.gitlab.io/2023/02/26/clojure-book-beta-release-0.html","body":null,"creator_id":2134,"community_id":131,"removed":false,"locked":false,"published":"2023-02-27T02:45:00.256743","updated":null,"deleted":false,"nsfw":false,"embed_title":"Clojure book beta release 0","embed_description":"","embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/777344","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":2134,"name":"mindaslab","display_name":null,"avatar":"https://lemmy.ml/pictrs/image/1gyXtR9CaL.jpg","banned":false,"published":"2020-04-25T06:37:35.949054","updated":"2021-12-14T07:38:19.531037","actor_id":"https://lemmy.ml/u/mindaslab","bio":null,"local":false,"banner":null,"deleted":false,"inbox_url":"https://lemmy.ml/u/mindaslab/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5480,"post_id":49263,"comments":0,"score":3,"upvotes":3,"downvotes":0,"published":"2023-02-27T02:45:00.256743","newest_comment_time_necro":"2023-02-27T02:45:00.256743","newest_comment_time":"2023-02-27T02:45:00.256743","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":49203,"name":"cljs-showcase helps showcasing your ClojureScript library in an interactive way using SCI","url":"https://borkdude.github.io/cljs-showcase/","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-26T23:06:39.745979","updated":null,"deleted":false,"nsfw":false,"embed_title":null,"embed_description":null,"embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/777132","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5478,"post_id":49203,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-02-26T23:06:39.745979","newest_comment_time_necro":"2023-02-26T23:06:39.745979","newest_comment_time":"2023-02-26T23:06:39.745979","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":48845,"name":"Symbolic Programming in Clojure","url":"https://www.cs.utexas.edu/users/novak/cs378.pdf","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-25T22:15:30.825916","updated":null,"deleted":false,"nsfw":false,"embed_title":null,"embed_description":null,"embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/773809","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5446,"post_id":48845,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-02-25T22:15:30.825916","newest_comment_time_necro":"2023-02-25T22:15:30.825916","newest_comment_time":"2023-02-25T22:15:30.825916","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":48473,"name":"Node Babashka now works with Deno","url":"https://github.com/babashka/nbb","body":"start nbb nREPL server from Deno\n\n deno run -A npm:nbb nrepl-server\n\nConnect the editor, such as [Calva](https://calva.io/) to the REPL, and run code:\n\n\n![](https://lemmy.ml/pictrs/image/6ba616b1-4398-4b2e-a777-f9304f33be1e.png)","creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-24T23:59:03.432827","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - babashka/nbb: Scripting in Clojure on Node.js using SCI","embed_description":"Scripting in Clojure on Node.js using SCI. Contribute to babashka/nbb development by creating an account on GitHub.","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/4237e236-ecc4-429d-80fd-f4c53e27a4fa.png","ap_id":"https://lemmy.ml/post/771657","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5428,"post_id":48473,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-02-24T23:59:03.432827","newest_comment_time_necro":"2023-02-24T23:59:03.432827","newest_comment_time":"2023-02-24T23:59:03.432827","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":48080,"name":"A quick example of implementing TodoMVC using 260 lines of Babashka and htmx","url":"https://github.com/prestancedesign/babashka-htmx-todoapp","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-24T01:39:45.524114","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - prestancedesign/babashka-htmx-todoapp: Quick example of a todo list SPA using Babashka and htmx","embed_description":"Quick example of a todo list SPA using Babashka and htmx - GitHub - prestancedesign/babashka-htmx-todoapp: Quick example of a todo list SPA using Babashka and htmx","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/99926248-35d0-427b-9541-6353711ca633.png","ap_id":"https://lemmy.ml/post/769009","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5390,"post_id":48080,"comments":0,"score":3,"upvotes":3,"downvotes":0,"published":"2023-02-24T01:39:45.524114","newest_comment_time_necro":"2023-02-24T01:39:45.524114","newest_comment_time":"2023-02-24T01:39:45.524114","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":47789,"name":"Making a Hilbert curve on is page in ClojureScript and allowing the reader to manipulate the code in","url":"https://larzeitlin.github.io/scittle-hilbert-curve.html","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-23T16:46:17.324291","updated":null,"deleted":false,"nsfw":false,"embed_title":null,"embed_description":null,"embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/767588","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5361,"post_id":47789,"comments":0,"score":2,"upvotes":2,"downvotes":0,"published":"2023-02-23T16:46:17.324291","newest_comment_time_necro":"2023-02-23T16:46:17.324291","newest_comment_time":"2023-02-23T16:46:17.324291","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":47788,"name":"cljs-thread makes using webworkers take less work","url":"https://github.com/johnmn3/cljs-thread","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-23T16:41:00.885845","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - johnmn3/cljs-thread","embed_description":"Contribute to johnmn3/cljs-thread development by creating an account on GitHub.","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/00671f4a-c709-4715-be4a-cee60bead06e.png","ap_id":"https://lemmy.ml/post/767586","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5360,"post_id":47788,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-02-23T16:41:00.885845","newest_comment_time_necro":"2023-02-23T16:41:00.885845","newest_comment_time":"2023-02-23T16:41:00.885845","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":47467,"name":"Model-driven systems with zen-lang","url":"https://www.youtube.com/watch?v=1QxhoV67Sys","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-22T20:52:17.960666","updated":null,"deleted":false,"nsfw":false,"embed_title":"Model-driven systems with zen-lang (by Nikolai Ryzhikov)","embed_description":"The London Clojurians are happy to present:Title: **Model-driven systems with zen-lang**Speaker: **Nikolai Ryzhikov**Nikolai Ryzhikov (https://twitter.com/ni...","embed_video_url":"https://www.youtube.com/embed/1QxhoV67Sys","thumbnail_url":"https://jeremmy.ml/pictrs/image/e5fdbe00-169d-4fbd-8809-c501362c80b1.jpeg","ap_id":"https://lemmy.ml/post/765739","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5332,"post_id":47467,"comments":0,"score":2,"upvotes":2,"downvotes":0,"published":"2023-02-22T20:52:17.960666","newest_comment_time_necro":"2023-02-22T20:52:17.960666","newest_comment_time":"2023-02-22T20:52:17.960666","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":47451,"name":"play Tetris in the console using Babashka","url":"https://github.com/babashka/babashka","body":"`bb -Sdeps '{:deps {io.github.borkdude/console-tetris {:git/sha \"2d3bee34ea93c84608c7cc5994ae70480b2df54c\"}}}' -m tetris.core`\n\nsource here https://github.com/borkdude/console-tetris","creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-22T20:50:50.182253","updated":"2023-02-22T20:51:46.566623","deleted":false,"nsfw":false,"embed_title":"GitHub - babashka/babashka: Native, fast starting Clojure interpreter for scripting","embed_description":"Native, fast starting Clojure interpreter for scripting - GitHub - babashka/babashka: Native, fast starting Clojure interpreter for scripting","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/a7fc1c0c-9b55-4be1-9981-293b89198f6e.png","ap_id":"https://lemmy.ml/post/765738","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5331,"post_id":47451,"comments":0,"score":2,"upvotes":2,"downvotes":0,"published":"2023-02-22T20:50:50.182253","newest_comment_time_necro":"2023-02-22T20:50:50.182253","newest_comment_time":"2023-02-22T20:50:50.182253","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":45903,"name":"generating PNGs programmatically using node Babashka","url":null,"body":"install NPM modules\n\n npm install nbb canvas\n\ncreate draw.cljs file with the code below\n\n```\n(ns draw.core\n (:require\n [\"fs\" :as fs]\n [\"canvas\" :refer (createCanvas)]))\n\n(def width 400)\n(def height 400)\n(def canvas (createCanvas width height))\n(def ctx (.getContext canvas \"2d\"))\n\n(set! (.-fillStyle ctx) \"#764abc\")\n(.fillRect ctx 0 0 width height)\n\n(set! (.-fillStyle ctx) \"#fff\")\n(set! (.-textAlign ctx) \"center\")\n(set! (.-font ctx) \"bold 50pt 'PT Sans'\")\n(.fillText ctx \"Hello World\" (/ width 2) (/ height 2))\n\n(set! (.-strokeStyle ctx) \"#fff\")\n(.beginPath ctx)\n(.arc ctx 75 75 50 0 (* 2 js/Math.PI) true)\n(.moveTo ctx 110, 75)\n(.arc ctx 75 75 35 0 js/Math.PI false)\n(.moveTo ctx 65 65)\n(.arc ctx 60 65 5 0 (* 2 js/Math.PI) true)\n(.moveTo ctx 95 65)\n(.arc ctx 90 65 5 0 (* 2 js/Math.PI) true)\n(.closePath ctx)\n(.stroke ctx)\n\n(.writeFileSync fs \"./hello.png\" (.toBuffer canvas \"image/png\"))\n```\nand run\n\n npx nbb draw.cljs\n\n\n![](https://lemmy.ml/pictrs/image/6e9f8574-7a09-46d5-a3ed-19e82a730256.png)","creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-18T23:22:05.388058","updated":null,"deleted":false,"nsfw":false,"embed_title":null,"embed_description":null,"embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/760708","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5213,"post_id":45903,"comments":0,"score":2,"upvotes":2,"downvotes":0,"published":"2023-02-18T23:22:05.388058","newest_comment_time_necro":"2023-02-18T23:22:05.388058","newest_comment_time":"2023-02-18T23:22:05.388058","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":45506,"name":"Histogram from sum of throw of dice pair using Clojure","url":"https://youtu.be/mxEbAABquw8","body":"\n\n#Clojure #statistics #Probability #programming #software","creator_id":2134,"community_id":131,"removed":false,"locked":false,"published":"2023-02-17T16:11:47.296855","updated":null,"deleted":false,"nsfw":false,"embed_title":"Histogram from sum of throw of dice pair using Clojure","embed_description":"Notes: https://clojure-diary.gitlab.io/2023/02/17/histogram-from-sum-of-throw-of-dice-pair-using-clojure.html","embed_video_url":"https://www.youtube.com/embed/mxEbAABquw8","thumbnail_url":"https://jeremmy.ml/pictrs/image/ed2c129e-56ed-41c7-8ad2-4a6a76c020ef.jpeg","ap_id":"https://lemmy.ml/post/759382","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":2134,"name":"mindaslab","display_name":null,"avatar":"https://lemmy.ml/pictrs/image/1gyXtR9CaL.jpg","banned":false,"published":"2020-04-25T06:37:35.949054","updated":"2021-12-14T07:38:19.531037","actor_id":"https://lemmy.ml/u/mindaslab","bio":null,"local":false,"banner":null,"deleted":false,"inbox_url":"https://lemmy.ml/u/mindaslab/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5187,"post_id":45506,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-02-17T16:11:47.296855","newest_comment_time_necro":"2023-02-17T16:11:47.296855","newest_comment_time":"2023-02-17T16:11:47.296855","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":45182,"name":"A reactive signals DSL for fullstack web UI, with compiler-managed network sync","url":"https://github.com/hyperfiddle/electric","body":"an explanation of the idea here\nhttps://hyperfiddle.notion.site/UIs-are-streaming-DAGs-e181461681a8452bb9c7a9f10f507991\n","creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-16T21:58:57.123675","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - hyperfiddle/electric: a signals DSL for fullstack web UI, with fine-grained reactive network","embed_description":"a signals DSL for fullstack web UI, with fine-grained reactive network - GitHub - hyperfiddle/electric: a signals DSL for fullstack web UI, with fine-grained reactive network","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/aec303ca-9b83-4305-814e-9b43bd7a12a0.png","ap_id":"https://lemmy.ml/post/758378","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5162,"post_id":45182,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-02-16T21:58:57.123675","newest_comment_time_necro":"2023-02-16T21:58:57.123675","newest_comment_time":"2023-02-16T21:58:57.123675","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":44874,"name":"Example of a functional programming refactoring pattern","url":"https://codescene.com/engineering-blog/example-of-a-functional-programming-refactoring-pattern","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-15T22:28:10.193328","updated":null,"deleted":false,"nsfw":false,"embed_title":"Example of a functional programming refactoring pattern","embed_description":"In this post we'll demonstrate an example of a functional refactoring pattern, keep on reading for more details!","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/77cbc72e-ea1a-4243-84fd-93788a48c4f3.png","ap_id":"https://lemmy.ml/post/757186","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5122,"post_id":44874,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-02-15T22:28:10.193328","newest_comment_time_necro":"2023-02-15T22:28:10.193328","newest_comment_time":"2023-02-15T22:28:10.193328","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":44722,"name":"Scanning for Pythagorean Triplet's in Clojure","url":"https://www.youtube.com/watch?v=BCI-4kWKj7g","body":null,"creator_id":2134,"community_id":131,"removed":false,"locked":false,"published":"2023-02-15T16:58:49.935317","updated":null,"deleted":false,"nsfw":false,"embed_title":"Scanning for Pythagorean Triplet's in Clojure","embed_description":"Notes: https://clojure-diary.gitlab.io/2023/02/15/scanning-for-pythagorean-triplets-in-clojure.html","embed_video_url":"https://www.youtube.com/embed/BCI-4kWKj7g","thumbnail_url":"https://jeremmy.ml/pictrs/image/7a632645-e6b0-40f4-9cd8-e59284552e75.jpeg","ap_id":"https://lemmy.ml/post/756769","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":2134,"name":"mindaslab","display_name":null,"avatar":"https://lemmy.ml/pictrs/image/1gyXtR9CaL.jpg","banned":false,"published":"2020-04-25T06:37:35.949054","updated":"2021-12-14T07:38:19.531037","actor_id":"https://lemmy.ml/u/mindaslab","bio":null,"local":false,"banner":null,"deleted":false,"inbox_url":"https://lemmy.ml/u/mindaslab/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":5116,"post_id":44722,"comments":0,"score":2,"upvotes":2,"downvotes":0,"published":"2023-02-15T16:58:49.935317","newest_comment_time_necro":"2023-02-15T16:58:49.935317","newest_comment_time":"2023-02-15T16:58:49.935317","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":42858,"name":"Exploring various ways of flattening route trees","url":"https://www.pixelated-noise.com/blog/2023/02/09/flatten-routes/index.html","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-10T16:25:11.575820","updated":null,"deleted":false,"nsfw":false,"embed_title":null,"embed_description":null,"embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/750733","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":4924,"post_id":42858,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-02-10T16:25:11.575820","newest_comment_time_necro":"2023-02-10T16:25:11.575820","newest_comment_time":"2023-02-10T16:25:11.575820","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":38858,"name":"Clojure port written in Haxe targeting multiple platforms","url":"https://github.com/ClojureHaxe/ClojureHaxe","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-02-02T12:34:08.034021","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - ClojureHaxe/ClojureHaxe: Clojure port written in Haxe targeting multiple platforms","embed_description":"Clojure port written in Haxe targeting multiple platforms - GitHub - ClojureHaxe/ClojureHaxe: Clojure port written in Haxe targeting multiple platforms","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/f7b660b4-83d2-47ea-90c8-ba242c0af322.png","ap_id":"https://lemmy.ml/post/742284","local":false,"language_id":37,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":4371,"post_id":38858,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-02-02T12:34:08.034021","newest_comment_time_necro":"2023-02-02T12:34:08.034021","newest_comment_time":"2023-02-02T12:34:08.034021","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":37379,"name":"A Primer on Clojure Macros","url":"https://blog.janetacarr.com/a-primer-on-clojure-macros/","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-29T20:47:42.245295","updated":null,"deleted":false,"nsfw":false,"embed_title":"A Primer on Clojure Macros","embed_description":"One day my squad mate at a Clojure startup committed a macro to the codebase, and I was quick to reprimand them for it as the same functionality could have been implemented with Clojure core functions. Peeling back the decision rationale, I discovered my colleague had never learned the first","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/77295999-9a6d-4716-831a-325470a5f981.png","ap_id":"https://lemmy.ml/post/737667","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":4253,"post_id":37379,"comments":0,"score":3,"upvotes":3,"downvotes":0,"published":"2023-01-29T20:47:42.245295","newest_comment_time_necro":"2023-01-29T20:47:42.245295","newest_comment_time":"2023-01-29T20:47:42.245295","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":37190,"name":"Mentat Collective","url":"https://github.com/mentat-collective","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-29T14:10:59.962915","updated":null,"deleted":false,"nsfw":false,"embed_title":"Mentat Collective","embed_description":"Mentat Collective has 25 repositories available. Follow their code on GitHub.","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/5e64d150-21ec-4727-9708-59a8c5007390.png","ap_id":"https://lemmy.ml/post/737129","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":4239,"post_id":37190,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-01-29T14:10:59.962915","newest_comment_time_necro":"2023-01-29T14:10:59.962915","newest_comment_time":"2023-01-29T14:10:59.962915","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":37025,"name":"Proletarian: A durable job queuing and worker system for Clojure backed by PostgreSQL.","url":"https://github.com/msolli/proletarian","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-29T02:09:03.197923","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - msolli/proletarian: A durable job queuing and worker system for Clojure backed by PostgreSQL.","embed_description":"A durable job queuing and worker system for Clojure backed by PostgreSQL. - GitHub - msolli/proletarian: A durable job queuing and worker system for Clojure backed by PostgreSQL.","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/d62e806f-da5a-439a-8014-308e6abc2fcb.png","ap_id":"https://lemmy.ml/post/736415","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":4230,"post_id":37025,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-01-29T02:09:03.197923","newest_comment_time_necro":"2023-01-29T02:09:03.197923","newest_comment_time":"2023-01-29T02:09:03.197923","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":36809,"name":"Re-frame Database Best Practices + Code Examples","url":"https://ericnormand.me/guide/database-structure-in-re-frame","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-28T15:16:04.848909","updated":null,"deleted":false,"nsfw":false,"embed_title":"Re-frame Database Best Practices + Code Examples","embed_description":"How do we structure the Re-frame Database without regretting the decisions we make? This tutorial collects the best practices from my own experience and the experiences of other.","embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/735576","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":4217,"post_id":36809,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-01-28T15:16:04.848909","newest_comment_time_necro":"2023-01-28T15:16:04.848909","newest_comment_time":"2023-01-28T15:16:04.848909","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":35452,"name":"Emmy is an implementation of the scmutils system for math and physics investigations in the Clojure ","url":"https://github.com/mentat-collective/emmy","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-27T12:34:59.303955","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - mentat-collective/emmy: The Emmy Computer Algebra System.","embed_description":"The Emmy Computer Algebra System. Contribute to mentat-collective/emmy development by creating an account on GitHub.","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/054f5a81-d66a-4be5-b850-817f3f055b71.png","ap_id":"https://lemmy.ml/post/733081","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":3736,"post_id":35452,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-01-27T12:34:59.303955","newest_comment_time_necro":"2023-01-27T12:34:59.303955","newest_comment_time":"2023-01-27T12:34:59.303955","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":33820,"name":"Consistent Hashing with Clojure","url":"https://medium.com/helpshift-engineering/consistent-hashing-with-clojure-5804f95960f8","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-24T14:24:59.815165","updated":null,"deleted":false,"nsfw":false,"embed_title":"Consistent Hashing with Clojure","embed_description":"In this post, let’s try and understand what Consistent Hashing is, when it is needed and how to implement it in Clojure. Consistent…","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/f58b3390-dcc9-4114-9bf0-b9af2e8d42f6.png","ap_id":"https://lemmy.ml/post/727611","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":3550,"post_id":33820,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-01-24T14:24:59.815165","newest_comment_time_necro":"2023-01-24T14:24:59.815165","newest_comment_time":"2023-01-24T14:24:59.815165","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":33468,"name":"bb-dialog library for building TUIs","url":"https://www.pixelated-noise.com/blog/2023/01/20/bb-dialog-announcement/index.html","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-23T17:28:33.085827","updated":null,"deleted":false,"nsfw":false,"embed_title":null,"embed_description":null,"embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/726330","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":3525,"post_id":33468,"comments":0,"score":2,"upvotes":2,"downvotes":0,"published":"2023-01-23T17:28:33.085827","newest_comment_time_necro":"2023-01-23T17:28:33.085827","newest_comment_time":"2023-01-23T17:28:33.085827","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":33447,"name":"A small clojure tool for making little control UIs while using the REPL","url":"https://github.com/adam-james-v/solenoid","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-23T16:47:02.468400","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - adam-james-v/solenoid: A small clojure tool for making little control UIs while using the repl!","embed_description":"A small clojure tool for making little control UIs while using the repl! - GitHub - adam-james-v/solenoid: A small clojure tool for making little control UIs while using the repl!","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/a3f3cadd-4c28-4a8e-b094-5acce3d336ab.png","ap_id":"https://lemmy.ml/post/726259","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":3524,"post_id":33447,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-01-23T16:47:02.468400","newest_comment_time_necro":"2023-01-23T16:47:02.468400","newest_comment_time":"2023-01-23T16:47:02.468400","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":33412,"name":"2D/3D geometry toolkit for Clojure/Clojurescript","url":"https://github.com/thi-ng/geom","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-23T16:03:52.968464","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - thi-ng/geom: 2D/3D geometry toolkit for Clojure/Clojurescript","embed_description":"2D/3D geometry toolkit for Clojure/Clojurescript. Contribute to thi-ng/geom development by creating an account on GitHub.","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/23ae27f5-6d2f-4104-9034-1331acfac185.png","ap_id":"https://lemmy.ml/post/726230","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":3521,"post_id":33412,"comments":0,"score":2,"upvotes":2,"downvotes":0,"published":"2023-01-23T16:03:52.968464","newest_comment_time_necro":"2023-01-23T16:03:52.968464","newest_comment_time":"2023-01-23T16:03:52.968464","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":31955,"name":"Simple TUIs with Babashka and Gum","url":"https://rattlin.blog/bbgum.html","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-19T23:35:57.530338","updated":null,"deleted":false,"nsfw":false,"embed_title":"Simple TUIs with Babashka and Gum","embed_description":null,"embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/719063","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":3415,"post_id":31955,"comments":0,"score":3,"upvotes":3,"downvotes":0,"published":"2023-01-19T23:35:57.530338","newest_comment_time_necro":"2023-01-19T23:35:57.530338","newest_comment_time":"2023-01-19T23:35:57.530338","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":29019,"name":"Run Obsidian Clojure(Script) codeblocks in Babashka.","url":"https://github.com/filipesilva/obsidian-babashka","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-12T22:38:09.955806","updated":null,"deleted":false,"nsfw":false,"embed_title":"GitHub - filipesilva/obsidian-babashka: Run Obsidian Clojure(Script) codeblocks in Babashka.","embed_description":"Run Obsidian Clojure(Script) codeblocks in Babashka. - GitHub - filipesilva/obsidian-babashka: Run Obsidian Clojure(Script) codeblocks in Babashka.","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/a358a238-cf17-4f93-8931-da30731c336f.png","ap_id":"https://lemmy.ml/post/705985","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":3035,"post_id":29019,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-01-12T22:38:09.955806","newest_comment_time_necro":"2023-01-12T22:38:09.955806","newest_comment_time":"2023-01-12T22:38:09.955806","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":27301,"name":"Using Clerk for Advent of Code","url":"https://www.juxt.pro/blog/using-clerk-for-aoc/","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-08T20:43:55.986480","updated":null,"deleted":false,"nsfw":false,"embed_title":"JUXT Blog: Using Clerk for Advent of Code","embed_description":"Notebooks <3 Clojure","embed_video_url":null,"thumbnail_url":"https://jeremmy.ml/pictrs/image/ecb35426-b7cc-4bf5-9dd5-c0764f97a1a2.jpeg","ap_id":"https://lemmy.ml/post/698413","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":2960,"post_id":27301,"comments":0,"score":3,"upvotes":3,"downvotes":0,"published":"2023-01-08T20:43:55.986480","newest_comment_time_necro":"2023-01-08T20:43:55.986480","newest_comment_time":"2023-01-08T20:43:55.986480","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0},{"post":{"id":25990,"name":"Babashka Babooka: Write Command-Line Clojure","url":"https://www.braveclojure.com/quests/babooka/","body":null,"creator_id":68,"community_id":131,"removed":false,"locked":false,"published":"2023-01-05T16:01:16.846121","updated":null,"deleted":false,"nsfw":false,"embed_title":"Babashka Babooka: Write Command-Line Clojure","embed_description":null,"embed_video_url":null,"thumbnail_url":null,"ap_id":"https://lemmy.ml/post/692893","local":false,"language_id":0,"featured_community":false,"featured_local":false},"creator":{"id":68,"name":"yogthos","display_name":"☆ Yσɠƚԋσʂ ☆","avatar":"https://lemmy.ml/pictrs/image/086900f4-4c1a-49b9-8695-ea31168bb89d.jpeg","banned":false,"published":"2020-01-18T04:02:39.254957","updated":"2022-10-11T01:56:21.689068","actor_id":"https://lemmy.ml/u/yogthos","bio":null,"local":false,"banner":"https://lemmy.ml/pictrs/image/dLiPH2B6YG.jpg","deleted":false,"inbox_url":"https://lemmy.ml/u/yogthos/inbox","shared_inbox_url":"https://lemmy.ml/inbox","matrix_user_id":null,"admin":false,"bot_account":false,"ban_expires":null,"instance_id":20},"community":{"id":131,"name":"clojure","title":"Clojure programming language discussion","description":"**Clojure is a Lisp that targets JVM and JS runtimes**\n\n**Finding information about Clojure**\n\n* [History of Clojure](https://download.clojure.org/papers/clojure-hopl-iv-final.pdf)\n* [Clojure Homepage](https://clojure.org)\n* [A Clojure Newbie Guide](http://www.clojurenewbieguide.com/)\n* [Clojure Documentation](http://clojure-doc.org/)\n* [Clojure Cheat Sheet](https://clojure.org/cheatsheet)\n* [ClojureScript Cheat Sheet](https://himera.herokuapp.com/index.html)\n* [Clojure by Example](http://kimh.github.io/clojure-by-example/)\n* [Clojure beginner resources](https://gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f)\n\n**API Reference**\n\n* [ClojureDocs API reference](http://clojuredocs.org/)\n* [cljdoc](https://cljdoc.org/)\n\n**Clojure Guides**\n\n* [Clojure Distilled Beginner Guide](http://yogthos.github.io/ClojureDistilled.html)\n* [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n* [Clojure for the Brave and True](http://www.braveclojure.com/)\n* [Clojure from the ground up](https://aphyr.com/tags/Clojure-from-the-ground-up)\n* [ClojureScript in 15 minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes)\n* [ClojureScript Workshop](http://www.niwi.be/cljs-workshop/)\n\n**Practice Problems**\n\n* [Wonderland Katas](https://github.com/gigasquid/wonderland-clojure-katas)\n* [Clojure Koans](http://clojurekoans.com/)\n\n**Interactive Problems**\n\n* [Rich4Clojure](https://github.com/PEZ/rich4clojure)\n* [ClojureScript Koans](http://clojurescriptkoans.com/)\n* [codewars](http://www.codewars.com/?language=clojure)\n* [Clojurecademy](https://clojurecademy.com/)\n\n**Clojure Videos**\n\n* [Clojure TV](http://www.youtube.com/clojuretv)\n* [Clojure Content on InfoQ](http://www.infoq.com/clojure/)\n* [Full Disclojure](https://vimeo.com/channels/fulldisclojure)\n* [The Clojure Language](https://www.youtube.com/playlist?list=PLAC43CFB134E85266)\n\n**The Clojure Community**\n\n* [Ask Clojure](https://ask.clojure.org/)\n* [Clojure user groups](https://clojure.org/community/user_groups)\n* [ClojureScript user groups](https://groups.google.com/forum/#!forum/clojurescript)\n* [Clojure Slack Channel](http://clojurians.net/)\n* [Clojurians-Zulipchat](http://clojurians.zulipchat.com/)\n* [Clojure Discord](https://discord.gg/discljord)\n* [Clojureverse: a forum for and by the Clojure community](http://clojureverse.org/)\n* [matrix/riot-im Clojure room](https://riot.im/app/#/room/#clojure:matrix.org)\n\n**Clojure Books**\n\n* [The Joy of Clojure](http://www.amazon.com/Joy-Clojure-Michael-Fogus/dp/1617291412)\n* [Clojure Programming](https://www.amazon.com/dp/1680502468/ref=cm_sw_r_tw_dp_U_x_nv0YCbRY1MNKB)\n* [Clojure In Action](http://www.amazon.com/Clojure-Action-Amit-Rathore/dp/1935182595/)\n* [Programming Clojure](http://www.amazon.com/Programming-Clojure-Stuart-Halloway/dp/1934356867)\n* [Web Development with Clojure](https://pragprog.com/book/dswdcloj2/web-development-with-clojure-second-edition)\n* [Clojure Cookbook](http://clojure-cookbook.com/)\n* [Professional Clojure](http://www.wrox.com/WileyCDA/WroxTitle/Professional-Clojure.productCd-1119267277.html)\n* [Living Clojure](http://shop.oreilly.com/product/0636920034292.do)\n* [Getting Clojure](https://pragprog.com/book/roclojure/getting-clojure)\n\n**Tools & Libraries**\n\n* [Leiningen](http://leiningen.org/) - Package management\n* [nREPL](https://nrepl.org) - Networked REPL\n* [Gorilla REPL](http://gorilla-repl.org/) - A rich REPL for Clojure in the notebook style\n* [Clojars](https://clojars.org/) - Clojure library repository\n* [The Clojure Toolbox](http://www.clojure-toolbox.com/) - a list of popular Clojure libraries\n* [(clj-templates)](https://clj-templates.com/) - templates for Leiningen and Boot\n\n**Clojure Editors**\n\n* [Emacs CIDER](https://docs.cider.mx)\n* [clojure-mode.el](https://github.com/clojure-emacs/clojure-mode) - Emacs mode\n* [Emacs Prelude](https://prelude.emacsredux.com) - a gentler Emacs mode\n* [Cursive](https://cursive-ide.com) - Clojure support for IntelliJ\n* [Calva](https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva) - Calva – Visual Studio Code\n* [Vim Iced](https://github.com/liquidz/vim-iced) - Vim\n* [vim-fireplace](https://github.com/tpope/vim-fireplace) - another Vim editor\n* [Conjure](https://github.com/Olical/conjure) - even more Vim\n\n**Web Platforms**\n\n* [Clams](https://github.com/standardtreasury/clams)\n* [Fulcro](https://fulcro.fulcrologic.com/) \n* [Hoplon](http://hoplon.io/)\n* [Luminus](http://www.luminusweb.net/)\n* [Kit](https://kit-clj.github.io/)\n* [Pedestal](http://pedestal.io/)","removed":false,"published":"2020-01-18T04:06:17.307714","updated":"2023-01-29T13:26:33.331635","deleted":false,"nsfw":false,"actor_id":"https://lemmy.ml/c/clojure","local":false,"icon":"https://lemmy.ml/pictrs/image/d6d6815b-d384-4ead-89fd-8d1b971029aa.png","banner":"https://lemmy.ml/pictrs/image/dd5a5d9d-3ab0-4f96-a7cb-5b2c594c67b3.jpeg","hidden":false,"posting_restricted_to_mods":false,"instance_id":20},"creator_banned_from_community":false,"counts":{"id":2897,"post_id":25990,"comments":0,"score":1,"upvotes":1,"downvotes":0,"published":"2023-01-05T16:01:16.846121","newest_comment_time_necro":"2023-01-05T16:01:16.846121","newest_comment_time":"2023-01-05T16:01:16.846121","featured_community":false,"featured_local":false},"subscribed":"NotSubscribed","saved":false,"read":false,"creator_blocked":false,"my_vote":null,"unread_comments":0}]},null]} Clojure programming language discussion - Jeremmy
Clojure programming language discussion
!clojure@lemmy.ml
help-circle
rss








Notes for this video: https://clojure-diary.gitlab.io/2023/03/06/frequencies-in-clojure.html
fedilink

Pinball with Scittle/ClojureScript
page source: ``` <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> button { height: 100px; } </style> </head> <body> <canvas id="myCanvas"></canvas> <button id="button-restart">Restart</button> <p>In non-touch browsers use Z or . or <- for left flipper and / or x or -> for right flipper, r for restart <div id="log"></div> <script src="scittle.js"> </script> <script type="application/x-scittle"> ;; based on https://matthias-research.github.io/pages/tenMinutePhysics/index.html (defn log [msg] (let [el (js/document.getElementById "log") new-el (js/document.createElement "div")] (set! (.-innerHTML new-el) msg) (.insertAdjacentElement el "beforeend" new-el))) (log "logging on page instead of console") (set! (.-log js/console) log) (set! (.-error js/console) log) (js/console.log "logging enabled") (def canvas (js/document.getElementById "myCanvas")) (def c (.getContext canvas "2d")) (set! (.-width canvas) (- js/window.innerWidth 20)) (set! (.-height canvas) (- js/window.innerHeight 100)) (def offset 0.02) (def flipper-height 1.7) (def c-scale (/ (.-height canvas) flipper-height)) (def sim-width (/ (.-width canvas) c-scale)) (def sim-height (/ (.-height canvas) c-scale)) (defn c-x [[pos-x _pos-y]] (* pos-x c-scale)) (defn c-y [[_pos-x pos-y]] (- (.-height canvas) (* pos-y c-scale))) (defn vdot [[va vb] [na nb]] (+ (* va na) (* vb nb))) (defn vlen [[vx vy]] (js/Math.sqrt (+ (* vx vx) (* vy vy)))) (defn vscale [[vx vy] s] [(* vx s) (* vy s)]) (defn vadd [[ax ay] [bx by]] [(+ ax bx) (+ ay by)]) (defn vsub [a b] (vadd a (vscale b -1))) (defn norm [v] (vscale v (/ 1 (vlen v)))) ;; the vector 90deg perpendicular to v in counter clockwise direction (defn vperp [[vx vy]] [(* -1 vy) vx]) (defonce physics-scene (atom {:gravity [0.0 0.0] :dt (/ 1.0 60.0) ;; slow down sim :balls [] :obstacles [] :flippers [] :score 0})) (defn flipper-tip [flipper] (let [{:keys [length sign pos rotation rest-angle]} flipper angle (+ rest-angle (* sign rotation)) tip [(* (js/Math.cos angle) length) (* (js/Math.sin angle) length)] tip (vadd pos tip)] tip)) (defn make-ball [_] (let [radius (+ 0.05 (* (rand) 0.1)) mass (* js/Math.PI radius radius) pos [(* (rand) sim-width) (* (rand) sim-height)] vel [(+ -1.0 (* 2.0 (rand))) (+ -1.0 (* 2.0 (rand)))] restitution 1.0] {:radius radius :mass mass :pos pos :vel vel :restitution restitution})) (defn draw-disc [c x y radius] (.beginPath c) (.arc c x y radius 0.0 (* 2.0 js/Math.PI)) (.closePath c) (.fill c)) (defn draw [] (let [ps @physics-scene] (.clearRect c 0 0 (.-width canvas) (.-height canvas)) ;; border (do (set! (.-strokeStyle c) "#009900") (set! (.-lineWidth c) 5) (.beginPath c) (let [[first-bp & rest-bl] (:border ps)] (.moveTo c (c-x first-bp) (c-y first-bp)) (doseq [bp rest-bl] (.lineTo c (c-x bp) (c-y bp))) (.lineTo c (c-x first-bp) (c-y first-bp)) (.stroke c)) (set! (.-lineWidth c) 1)) ;; poly-segments (do (set! (.-strokeStyle c) "orange") (set! (.-lineWidth c) 5) (.beginPath c) (let [[first-po & rest-po] (:poly-obstacle ps)] (.moveTo c (c-x first-po) (c-y first-po)) (doseq [po rest-po] (.lineTo c (c-x po) (c-y po))) (.lineTo c (c-x first-po) (c-y first-po)) (.stroke c)) (set! (.-lineWidth c) 1)) ;; balls (set! (.-fillStyle c) "#FF0000") (doseq [ball (:balls ps)] (let [orig-fill-style (.-fillStyle c)] (set! (.-fillStyle c) (get ball :color "#FF0000")) (draw-disc c (c-x (:pos ball)) (c-y (:pos ball)) (* (:radius ball) c-scale)) (set! (.-fillStyle c) orig-fill-style)) ;; obstacles (set! (.-fillStyle c) "#FF8000") (doseq [obstacle (:obstacles ps)] (draw-disc c (c-x (:pos obstacle)) (c-y (:pos obstacle)) (* (:radius obstacle) c-scale))) ;; flippers (set! (.-fillStyle c) "#FF0000") (doseq [flipper (:flippers ps)] (let [flipper-id (:id flipper) active (get-in ps [:flippers-active flipper-id]) flipper-color "#FF0000"] (set! (.-fillStyle c) flipper-color)) (let [flipper-pos (:pos flipper)] (.translate c (c-x flipper-pos) (c-y flipper-pos)) (.rotate c (- (* -1.0 (:rest-angle flipper)) (* (:sign flipper) (:rotation flipper)))) (.fillRect c 0.0 (* -1.0 (:radius flipper) c-scale) (* (:length flipper) c-scale) (* 2.0 (:radius flipper) c-scale)) (draw-disc c 0 0 (* (:radius flipper) c-scale)) (draw-disc c (* (:length flipper) c-scale) 0 (* (:radius flipper) c-scale)) (.resetTransform c)) ;; score (let [] (set! (.-fillStyle c) "black") (set! (.-font c) "24px sans-serif") (.fillText c (str "score: " (:score ps)) 10 30)))) (defn setup-scene-alter [ps] (-> ps (assoc :balls (let [radius 0.03 mass (* js/Math.PI radius radius) restitution 0.2 ] [{:radius radius :mass mass :pos [0.92 0.5] :vel [-0.2 3.5] :restitution restitution :color "gray"} {:radius radius :mass mass :pos [0.08 0.5] :vel [0.2 3.5] :restitution restitution :color "black"} ])) (assoc :border [[0.74 0.25] [(- 1.0 offset) 0.4] [(- 1.0 offset) (- flipper-height offset)] [offset (- flipper-height offset)] [offset 0.4] [0.26 0.25] [0.26 0.0] [0.74 0.0] ]) (assoc :obstacles [{:radius 0.1 :pos [0.25 0.6] :push-vel 2.0} {:radius 0.1 :pos [0.75 0.5] :push-vel 2.0} {:radius 0.12 :pos [0.7 1.0] :push-vel 2.0} {:radius 0.1 :pos [0.2 1.2] :push-vel 2.0} ]) (assoc :flippers (let [radius 0.03 length 0.2 max-rotation 1.0 rest-angle 0.5 angular-velocity 10.0 restitution 0.0] [{:id :left :pos [0.26 0.22] :radius radius :length length :rest-angle (* -1.0 rest-angle) :max-rotation max-rotation :angular-velocity angular-velocity :restitution restitution :sign 1.0 :rotation 0.0 :current-angular-velocity 0.0} {:id :right :pos [0.74 0.22] :radius radius :length length :rest-angle (+ js/Math.PI rest-angle) :max-rotation max-rotation :angular-velocity angular-velocity :restitution restitution :sign -1.0 :rotation 0.0 :current-angular-velocity 0.0}])) (assoc :poly-obstacle (let [tl [0.45 1.6] bl [0.55 1.4] br [0.60 1.4] tr [0.50 1.6]] [tr br bl [0.52 1.46] [0.50 1.4] [0.45 1.4] [0.49 1.52] tl])) (assoc :gravity [0.0 -3.0]) (assoc :score 0))) (defn setup-scene [] (swap! physics-scene setup-scene-alter)) (defn simulate-flipper [flipper dt active] (let [{:keys [rotation angular-velocity max-rotation current-angular-velocity sign]} flipper prev-rotation rotation rotation (if active (min (+ prev-rotation (* dt angular-velocity)) max-rotation) (max (- prev-rotation (* dt angular-velocity)) 0.0)) current-angular-velocity (/ (* sign (- rotation prev-rotation)) dt)] (assoc flipper :rotation rotation :current-angular-velocity current-angular-velocity))) (defn simulate-flippers [ps] (let [{:keys [flippers dt flippers-active]} ps] (map (fn [flipper] (let [active (get flippers-active (:id flipper))] (simulate-flipper flipper dt active))) flippers))) (defn simulate-ball [ball dt gravity] (let [ball (update ball :vel (fn [vel] (vadd vel (vscale gravity dt)))) ball (update ball :pos (fn [pos] (vadd pos (vscale (:vel ball) dt))))] ball)) (defn closest-point-on-segment [p a b] ;; p,a,b are all vectors ;; find point c on line ab where dist p to c is smallest ;; this is where line pc is 90degrees to line ab ;; the length of line ac is vdot ap times normal of ab ;; (with the rule 'project line on normal for side length') ;; to find point c from length ac can do a+ratio c vs ab * ab ;; c = a + t(b - a) ;; n = (b - a)/|b - a| ;; ac = (p - a) dot n ;; ab = (b - a) dot n ;; t = ac / ab ;; t = (p - a) dot (b - a)/|b-a| / (b - a) dot (b - a)/|b - a| ;; the lenght |b - a| is a scalar in numerator and denominator, so they cancel out ;; t = (p - a)dot(b - a) / (b - a)dot(b - a) ;; also note that point c must lie on the line between a and b, so t is clamped between 0 and 1 (let [bmina (vsub b a) tden (vdot bmina bmina) t (if (zero? tden) ;; don't div zero 0.0 (let [tnum (vdot (vsub p a) bmina)] (/ tnum tden))) t (min 1.0 (max 0.0 t)) c (vadd a (vscale bmina t))] c)) (defn handle-segments-collision [ball segments] ;; if incoming vel vector is d then outgoing vector r is ;; r = d - 2(d dot n)n where n is normal from c ;; r is draw the velocity vector through the border, fold it along the border. then the result is twice the side of the triangle side (d dot n) (a number), in the direction of n (a vector) (let [ball-pos (:pos ball) ball-radius (:radius ball) ball-vel (:vel ball) ball-restitution (:restitution ball) closest-point+pc-length-seq (map (fn [[a b]] (let [c (closest-point-on-segment ball-pos a b) dist (vlen (vsub ball-pos c))] [c dist a b])) segments)] (if (not (seq closest-point+pc-length-seq)) ball ;; no border defined (let [closest (apply min-key (fn [[point dist]] dist) closest-point+pc-length-seq) [point-on-border dist a b] closest cp (vsub ball-pos point-on-border) n (vscale cp (/ 1 dist)) [dist cp n] (if (zero? dist) ;; the center of the ball is precisely on the border (let [bmina (vsub b a) n (vperp bmina) dist (vlen n)] [0.000001 n (vscale n (/ 1 dist))]) [dist cp n]) ;; the border point are ordered such that nperpab should always point towards the playing area (from a to b the perp normal, is 90deg counter clock wise pointing into playing field) abn (let [bmina (vsub b a)] (vscale bmina (/ 1 (vlen bmina)))) abnperp (vperp abn) abnperpdotcp (vdot abnperp cp) ball-outside (neg? abnperpdotcp) r (if (or ;; no matter how far beyond border turn the velocity inwards again ball-outside ;; only handle ball hit if actually hitting from within the field (and (not ball-outside) (< dist ball-radius)) ) (let [n (if ball-outside (vscale n -1.0) n) ;; without restitution fac is 2.0, 1.0 to the border plus 1.0 from the border to mirror the velocity ;; we need full mirroring (1.0) and restitution in the infield side fac (+ 1.0 (* 1.0 ball-restitution)) d ball-vel r (vsub d (vscale n (* fac (vdot d n)))) ] r) ball-vel) ;; if ball in border due to timestep, push it out new-pos (if ball-outside ;; ball center outside field ;; this doesn't do a full reflection, but places ball back on border (vadd ball-pos (vscale n (* -1 (+ ball-radius dist)))) (if (< dist ball-radius) ;; ball center inside field but partially through border (vsub ball-pos (vscale n (* -1 (- ball-radius dist)))) ball-pos))] (assoc ball :vel r :pos new-pos )) ))) (defn handle-border-collision [ball border] (let [all-border-segments (partition 2 ;; n 1 ;; step [(first border)] ;; pad seq border)] (handle-segments-collision ball all-border-segments))) (defn orientation [[px py] [qx qy] [rx ry]] ;; from p to q do we need to turn clockwise or counterclockwise to get to r ;; math represents comparing the slope of the line p to q to the slope q to r (let [val (- (* (- qy py) (- rx qx)) (* (- qx px) (- ry qy)))] (cond (= val 0) :colinear (> val 0) :clockwise :else :counterclockwise))) ;; based on https://stackoverflow.com/a/28390934 (defn cross= [or1 or2] (or (and (= or1 :clockwise) (= or2 :counterclockwise)) (and (= or1 :counterclockwise) (= or2 :clockwise)))) (defn crossing-segment [ball [a b]] (or ;; ball overlaps with radius on line a b (let [ball-pos (:pos ball) c (closest-point-on-segment ball-pos a b) pos-to-c (vsub ball-pos c) dist (vlen pos-to-c)] (and (< dist (:radius ball)) ;; is the ball coming from outside? (<= 0.0 (vdot pos-to-c (vperp (vsub b a)))))) ;; crossing through segment but only from outside (when-let [last-vel-change-pos (:last-vel-change-pos ball)] (let [pos (:pos ball) c last-vel-change-pos d pos] (and (cross= (orientation a b c) (orientation a b d)) (cross= (orientation c d a) (orientation c d b))))))) (defn vcross [[vx vy] [wx wy]] (- (* vx wy) (* vy wx))) (defn distance-to-cross-line [[a b] [c d]] (let [;; find distance to segment ;; https://stackoverflow.com/a/565282 p a pr b r (vsub pr p) q c qs d s (vsub qs q) u (vcross (vsub p q) (vscale r (/ 1.0 (vcross s r))))] ;; from 0 to 1 where on line from c to d u)) (defn handle-poly-obstacle-collision [ball points] (let [segments (partition 2 ;; n 1 ;; step [(first points)] ;; pad seq points) crossing-segments (filter (partial crossing-segment ball) segments)] (if (seq crossing-segments) (let [ball-line [(:last-vel-change-pos ball) (:pos ball)] nearest-segment (apply min-key (fn [segment] (distance-to-cross-line segment ball-line)) crossing-segments) ball (assoc ball :restitution 0.6)] (-> (handle-segments-collision ball [nearest-segment]) (update :points (fnil + 0) 5))) ball))) (defn handle-wall-collision [ball] (let [[world-size-x world-size-y] [sim-width sim-height] {[pos-x pos-y] :pos radius :radius} ball] (cond (< pos-x radius) (-> ball (assoc-in [:pos 0] radius) (update-in [:vel 0] * -1)) (> pos-x (- world-size-x radius)) (-> ball (assoc-in [:pos 0] (- world-size-x radius)) (update-in [:vel 0] * -1)) (< pos-y radius) (-> ball (assoc-in [:pos 1] radius) (update-in [:vel 1] * -1)) (> pos-y (- world-size-y radius)) (-> ball (assoc-in [:pos 1] (- world-size-y radius)) (update-in [:vel 1] * -1)) true ball))) (defn handle-obstacle-collision [ball obstacle] (let [ball-pos (:pos ball) ball-radius (:radius ball) ball-vel (:vel ball) obs-pos (:pos obstacle) obs-radius (:radius obstacle) obs-push-vel (:push-vel obstacle) dir (vsub ball-pos obs-pos) dist (vlen dir)] (if (< (+ ball-radius obs-radius) dist) ball ;; no collision (let [n (vscale dir (/ 1.0 dist)) ;; pushout corr (- (+ ball-radius obs-radius) dist) new-pos (vadd ball-pos (vscale n corr)) ;; v is vel component in direction of n v (vdot ball-vel n) new-vel (vadd ball-vel (vscale n (- obs-push-vel v)))] (-> ball (assoc :vel new-vel :pos new-pos) (update :points (fnil + 0) 1)))))) (defn handle-obstacles-collision [ball obstacles] (reduce handle-obstacle-collision ball obstacles)) (defn handle-ball-collision [ball-i ball-j] (let [restitution (min (:restitution ball-i) (:restitution ball-j)) dir (vsub (:pos ball-j) (:pos ball-i)) dir-len (vlen dir) ;; distance between the 2 centers of ball-i and ball-j ] (if (or (== dir-len 0.0) (>= dir-len (+ (:radius ball-i) (:radius ball-j))) ;; not colliding, space between balls ) [ball-i ball-j] ;; balls are colliding (let [norm-dir (vscale dir (/ 1.0 dir-len)) corr (/ (- (+ (:radius ball-i) (:radius ball-j)) dir-len) 2.0) ;; undo the overlap created by doing simulation in time steps ball-i (update ball-i :pos vadd (vscale norm-dir (* -1 corr))) ball-j (update ball-j :pos vadd (vscale norm-dir corr)) v1 (vdot (:vel ball-i) norm-dir) v2 (vdot (:vel ball-j) norm-dir) m1 (:mass ball-i) m2 (:mass ball-j) new-v1 (/ (- (+ (* m1 v1) (* m2 v2)) (* m2 (- v1 v2) restitution)) (+ m1 m2)) new-v2 (/ (- (+ (* m1 v1) (* m2 v2)) (* m1 (- v2 v1) restitution)) (+ m1 m2)) ball-i (update ball-i :vel vadd (vscale norm-dir (- new-v1 v1))) ball-j (update ball-j :vel vadd (vscale norm-dir (- new-v2 v2)))] [ball-i ball-j])))) (defn handle-flipper-collision [ball flipper] (let [flipper-pos (:pos flipper) flipper-tip-pos (flipper-tip flipper) flipper-radius (:radius flipper) ball-pos (:pos ball) ball-radius (:radius ball) closest (closest-point-on-segment ball-pos flipper-pos flipper-tip-pos) dir (vsub ball-pos closest) dist (vlen dir)] (if (< (+ ball-radius flipper-radius) dist) ball (let [impact-norm (vscale dir (/ 1.0 dist)) pos-corr (vscale impact-norm (- (+ ball-radius flipper-radius) dist)) {:keys [current-angular-velocity]} flipper ball-vel (:vel ball) contact-pos (vadd closest (vscale impact-norm flipper-radius)) radius (vsub contact-pos flipper-pos) surface-vel (-> (vperp radius) (vscale current-angular-velocity)) v (vdot ball-vel impact-norm) vnew (vdot surface-vel impact-norm) vchange (vscale impact-norm (- vnew v))] (-> ball (update :pos vadd pos-corr) (update :vel vadd vchange))) ))) (defn handle-flippers-collision [ball flippers] (reduce handle-flipper-collision ball flippers)) (defn simulate-balls [{:keys [dt gravity balls border obstacles flippers poly-obstacle]}] (reduce (fn [balls i] (let [old-i-ball-vel (get-in balls [i :vel]) balls (update balls i simulate-ball dt gravity) balls (reduce (fn [balls j] (let [ball-i (get balls i) ball-j (get balls j) [ball-i ball-j] (handle-ball-collision ball-i ball-j)] (-> balls (assoc i ball-i) (assoc j ball-j)))) balls (range (inc i) ;; note: going from i forward can miss collisions if our simulate-ball makes us now hit a ball <i (count balls))) ;; not needed, the wall is the black rectangle, now we use the green machine border ;;balls (update balls i handle-wall-collision) balls (update balls i handle-obstacles-collision obstacles) balls (update balls i handle-poly-obstacle-collision poly-obstacle) balls (update balls i handle-flippers-collision flippers) balls (update balls i handle-border-collision border) ;; track last velocity change position, so we can track if a ball crossed a line new-i-ball-val (get-in balls [i :vel]) balls (if (not= old-i-ball-vel new-i-ball-val) (assoc-in balls [i :last-vel-change-pos] (get-in balls [i :pos])) balls)] balls)) balls (range (count balls)))) (defn simulate [] (swap! physics-scene (fn [{:keys [gravity dt balls] :as ps}] (let [ps (assoc ps :flippers (simulate-flippers ps)) balls (simulate-balls ps) points (transduce (keep :points) + 0 balls) balls (mapv (fn [b] (dissoc b :points)) balls)] (-> ps (assoc :balls balls) (update :score + points)))))) (defn sim-update [] (simulate) (draw) (js/window.requestAnimationFrame sim-update)) (defn on-touch-start [event] (.preventDefault event) ;; fix android ontouchend event touches empty (let [rect (.getBoundingClientRect canvas) mid-x (/ (.-width rect) 2.0)] (dotimes [i (.. event -touches -length)] (let [touch (aget (.-touches event) i) is-left (< (.-clientX touch) mid-x) flipper-id (if is-left :left :right) touch-identifier (.-identifier touch)] (swap! physics-scene assoc-in [:flippers-active flipper-id] touch-identifier))))) (defn on-touch-end [event] (dotimes [i (.. event -changedTouches -length)] (let [touch (.item (.-changedTouches event) i) touch-identifier (.-identifier touch)] (when-let [flipper-id (some (fn [[flipper-id touch-id]] (when (= touch-id touch-identifier) flipper-id)) (get @physics-scene :flippers-active))] (swap! physics-scene update :flippers-active dissoc flipper-id))))) (defn flipper-id-from-key [k] (cond (or (= k "z") (= k ".") (= k "ArrowLeft")) :left (or (= k "x") (= k "/") (= k "ArrowRight")) :right)) (defn reg-listeners [] (.addEventListener canvas "touchstart" on-touch-start false) (.addEventListener canvas "touchend" on-touch-end false) (.addEventListener js/document.body "keydown" (fn [event] (let [k (.-key event)] (when-let [flipper-id (flipper-id-from-key k)] (swap! physics-scene assoc-in [:flippers-active flipper-id] k))))) (.addEventListener js/document.body "keyup" (fn [event] (let [k (.-key event)] (when-let [flipper-id (flipper-id-from-key k)] (swap! physics-scene update :flippers-active dissoc flipper-id)) (when (= k "r") (setup-scene))))) (.addEventListener (js/document.getElementById "button-restart") "click" (fn [] (setup-scene)))) (defn start [] (reg-listeners) (setup-scene) (sim-update)) (start) </script> </body> </html> ```
fedilink





start nbb nREPL server from Deno deno run -A npm:nbb nrepl-server Connect the editor, such as [Calva](https://calva.io/) to the REPL, and run code: ![](https://lemmy.ml/pictrs/image/6ba616b1-4398-4b2e-a777-f9304f33be1e.png)
fedilink





`bb -Sdeps '{:deps {io.github.borkdude/console-tetris {:git/sha "2d3bee34ea93c84608c7cc5994ae70480b2df54c"}}}' -m tetris.core` source here https://github.com/borkdude/console-tetris
fedilink

generating PNGs programmatically using node Babashka
install NPM modules npm install nbb canvas create draw.cljs file with the code below ``` (ns draw.core (:require ["fs" :as fs] ["canvas" :refer (createCanvas)])) (def width 400) (def height 400) (def canvas (createCanvas width height)) (def ctx (.getContext canvas "2d")) (set! (.-fillStyle ctx) "#764abc") (.fillRect ctx 0 0 width height) (set! (.-fillStyle ctx) "#fff") (set! (.-textAlign ctx) "center") (set! (.-font ctx) "bold 50pt 'PT Sans'") (.fillText ctx "Hello World" (/ width 2) (/ height 2)) (set! (.-strokeStyle ctx) "#fff") (.beginPath ctx) (.arc ctx 75 75 50 0 (* 2 js/Math.PI) true) (.moveTo ctx 110, 75) (.arc ctx 75 75 35 0 js/Math.PI false) (.moveTo ctx 65 65) (.arc ctx 60 65 5 0 (* 2 js/Math.PI) true) (.moveTo ctx 95 65) (.arc ctx 90 65 5 0 (* 2 js/Math.PI) true) (.closePath ctx) (.stroke ctx) (.writeFileSync fs "./hello.png" (.toBuffer canvas "image/png")) ``` and run npx nbb draw.cljs ![](https://lemmy.ml/pictrs/image/6e9f8574-7a09-46d5-a3ed-19e82a730256.png)
fedilink

#Clojure #statistics #Probability #programming #software
fedilink

an explanation of the idea here https://hyperfiddle.notion.site/UIs-are-streaming-DAGs-e181461681a8452bb9c7a9f10f507991
fedilink


















Clojure programming language discussion
!clojure@lemmy.ml
    Create a post

    Clojure is a Lisp that targets JVM and JS runtimes

    Finding information about Clojure

    API Reference

    Clojure Guides

    Practice Problems

    Interactive Problems

    Clojure Videos

    The Clojure Community

    Clojure Books

    Tools & Libraries

    Clojure Editors

    Web Platforms

    • 0 users online
    • 2 users / day
    • 2 users / week
    • 2 users / month
    • 6 users / 6 months
    • 1 subscriber
    • 108 Posts
    • 1 Comment
    • Modlog
    Lemmy
    A community of privacy and FOSS enthusiasts, run by Lemmy’s developers

    What is Lemmy.ml

    Rules

    1. No bigotry - including racism, sexism, ableism, homophobia, transphobia, or xenophobia. Code of Conduct.
    2. Be respectful. Everyone should feel welcome here.
    3. No porn.
    4. No Ads / Spamming.

    Feel free to ask questions over in: