{"id":18854988,"url":"https://github.com/roman01la/rc-cljs-workshop","last_synced_at":"2025-04-14T10:52:34.309Z","repository":{"id":74176577,"uuid":"104734506","full_name":"roman01la/rc-cljs-workshop","owner":"roman01la","description":"ClojureScript Workshop @ ReactiveConf '17","archived":false,"fork":false,"pushed_at":"2017-10-27T17:04:24.000Z","size":125,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-11T02:59:30.415Z","etag":null,"topics":["clojure","clojurescript","workshop"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roman01la.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-25T10:11:15.000Z","updated_at":"2024-08-12T10:51:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"f6813361-6078-46cd-a4b1-194e943d4bc0","html_url":"https://github.com/roman01la/rc-cljs-workshop","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roman01la%2Frc-cljs-workshop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roman01la%2Frc-cljs-workshop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roman01la%2Frc-cljs-workshop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roman01la%2Frc-cljs-workshop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roman01la","download_url":"https://codeload.github.com/roman01la/rc-cljs-workshop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248868815,"owners_count":21174754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clojure","clojurescript","workshop"],"created_at":"2024-11-08T03:52:26.069Z","updated_at":"2025-04-14T10:52:34.303Z","avatar_url":"https://github.com/roman01la.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# [ClojureScript Workshop](https://reactiveconf.com/workshop/introduction-to-clojurescript) @ [ReactiveConf '17](https://reactiveconf.com/2017/)\n\n![](logo.png)\n\nTiming: 4hrs (1:00 PM - 5:00 PM)\n\n## Requirements\n\nIt's nice to know the following:\n\n- React.js\n- Basics of functional programming\n\n## Help during the workshop\n\nHere's a couple of useful resources that will help you during the workshop:\n\n- [ClojureScript Synonyms](https://kanaka.github.io/clojurescript/web/synonym.html) — translation of common things from JavaScript into ClojureScript\n- [ClojureScript Cheatsheet](http://cljs.info/cheatsheet/) — a quick reference to a standard library of the language\n- [ClojureDocs](https://clojuredocs.org/) — documentation website\n- [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide) — a style guide to writing idiomatic Clojure code\n\n## Agenda\n\n- [Intro into Lisp](https://github.com/roman01la/rc-cljs-workshop/blob/master/lisp_basics.pdf)\n- [Intro into Clojure](https://clojure.org/about/rationale)\n- How to read Lisp code\n- How to edit Lisp code\n- Paredit and Parinfer editing modes\n- Lectures \u0026 exercises\n\n## Topics\n\n- [Syntax, variable declaration \u0026 local bindings](https://www.maria.cloud/gist/5947b43a1a990b45c0f6007a91505b3f)\n- [Fighting parens: Threading macro](https://www.maria.cloud/gist/9eddaa7fa40b5957ed6eab46c3f37878)\n- [Primitive data types](https://www.maria.cloud/gist/55b3b59f3b2e58bc6dbe954686e8f6c5)\n- [Control flow](https://www.maria.cloud/gist/5efb1cd1cfae36f4f0a9daafc4391267)\n- [Data structures](https://www.maria.cloud/gist/79d279c216d285fd290ee96b5044204c)\n- [Transforming Collections](https://www.maria.cloud/gist/644f52f501aa7de1e929f88030f415c0)\n- [State \u0026 Identity](https://www.maria.cloud/gist/afabe1d520a3bf13364facd1f593c991)\n- [Destructuring](https://www.maria.cloud/gist/e6f25e53f9274ddad70fdcf5b2de9b48)\n- [Interop with JavaScript](https://www.maria.cloud/gist/f44cd7efc1bc608ccbb82e30f32ec33a)\n- [Namespaces](https://www.maria.cloud/gist/0e9b151cbdce36f877b4eab8e0bb41b2)\n- [Rendering UI](https://www.maria.cloud/gist/339e96930ffaa4e6f6f10a63a592ce46)\n- [Basic concepts of Rum](https://www.dropbox.com/s/pb94uhrlank3tkk/ui.zip?dl=0)\n- [Chat web app source](https://www.dropbox.com/s/t1fv3lmhl6o6kdb/rc-chat.zip?dl=0)\n\n## Setup\n\nNo setup is needed! For this workshop we'll use online coding environments such as [Maria](https://www.maria.cloud/) and [Nightcoders](http://nightcoders.net/).\n\n- [Maria Quickstart](https://www.maria.cloud/quickstart)\n\n## Useful links\n\n- [Community Resources](http://clojure.org/community/resources)\n- [ClojureScript REPL](http://jaredforsyth.com/reepl/)\n- [ClojureScript Synonyms](https://kanaka.github.io/clojurescript/web/synonym.html)\n- [ClojureScript Cheatsheet](http://cljs.info/cheatsheet/)\n- [ClojureScript API](http://cljs.github.io/api/)\n- [ClojureDocs](https://clojuredocs.org/)\n- [The Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide)\n- [Quickref for Clojure Core](https://clojuredocs.org/quickref)\n- [ClojureScript Tutorial](https://www.niwi.nz/cljs-workshop/)\n- [ClojureScript Koans](http://clojurescriptkoans.com/)\n- [Transforming Data with ClojureScript](http://langintro.com/cljsbook/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froman01la%2Frc-cljs-workshop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froman01la%2Frc-cljs-workshop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froman01la%2Frc-cljs-workshop/lists"}