This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
programming:clojure [2013/09/26 22:27] robert.pergl [Functional Programming] |
programming:clojure [2015/09/20 12:17] (current) |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Clojure / FP Advocacy ===== | ===== Clojure / FP Advocacy ===== | ||
+ | * [[http://www.youtube.com/watch?v=7aYS9PcAITQ|Functional Thinking (video)]] | ||
* [[http://www.braveclojure.com/]] | * [[http://www.braveclojure.com/]] | ||
* [[http://www.infoq.com/presentations/Simple-Made-Easy|Rich Hickey: Simple Made Easy]] | * [[http://www.infoq.com/presentations/Simple-Made-Easy|Rich Hickey: Simple Made Easy]] | ||
* [[http://yogthos.net/blog/49|Why I'm Productive in Clojure]] | * [[http://yogthos.net/blog/49|Why I'm Productive in Clojure]] | ||
* [[http://adambard.com/blog/you-write-php-because-you-dont-know-better?goback=%2Egde_1058217_member_251460226|YOU USE PHP BECAUSE YOU DON'T KNOW BETTER]] | * [[http://adambard.com/blog/you-write-php-because-you-dont-know-better?goback=%2Egde_1058217_member_251460226|YOU USE PHP BECAUSE YOU DON'T KNOW BETTER]] | ||
+ | * [[http://blog.safaribooksonline.com/2013/08/05/clojure-data-uniformity/|Clojure data uniformity]] -- an explanation of benefits of direct data access compared to object-oriented approach. This is also mentioned in [[http://www.youtube.com/watch?v=7aYS9PcAITQ|Functional Thinking (video)]] | ||
===== Functional Programming ===== | ===== Functional Programming ===== | ||
* [[http://www.youtube.com/watch?v=7aYS9PcAITQ&feature=youtu.be|Functional Thinking (video)]] | * [[http://www.youtube.com/watch?v=7aYS9PcAITQ&feature=youtu.be|Functional Thinking (video)]] | ||
Line 27: | Line 29: | ||
* [[http://cemerick.com/2011/07/05/flowchart-for-choosing-the-right-clojure-type-definition-form/?goback=%2Egde_1058217_member_246437578|Flowchart for choosing the right Clojure type definition form]] | * [[http://cemerick.com/2011/07/05/flowchart-for-choosing-the-right-clojure-type-definition-form/?goback=%2Egde_1058217_member_246437578|Flowchart for choosing the right Clojure type definition form]] | ||
* [[http://java.dzone.com/articles/clojure-macros-beginners?utm_source=dlvr.it&utm_medium=twitter&utm_campaign=Feed%3A+javalobby%2Ffrontpage+%28Javalobby+%2F+Java+Zone%29&goback=%2Egde_1058217_member_248790889|Clojure macros for beginners]] | * [[http://java.dzone.com/articles/clojure-macros-beginners?utm_source=dlvr.it&utm_medium=twitter&utm_campaign=Feed%3A+javalobby%2Ffrontpage+%28Javalobby+%2F+Java+Zone%29&goback=%2Egde_1058217_member_248790889|Clojure macros for beginners]] | ||
+ | * [[http://www.infoq.com/presentations/DDD-Clojure|Domain-Driven Design with Clojure]] -- video about Clojure programmes design | ||
==== Learning ==== | ==== Learning ==== | ||
Line 35: | Line 38: | ||
* [[http://www.clojureatlas.com/|Beautiful Clojure concepts visualisation]] | * [[http://www.clojureatlas.com/|Beautiful Clojure concepts visualisation]] | ||
* [[https://github.com/clojure-cookbook/clojure-cookbook|Clojure Cookbook]] | * [[https://github.com/clojure-cookbook/clojure-cookbook|Clojure Cookbook]] | ||
+ | * [[https://tbaldridge.pivotshare.com/?m_sort=view&m_order=desc|Video tutorials]] | ||
+ | * [[http://aphyr.com/tags/Clojure-from-the-ground-up|Clojure from the ground up]] | ||
==== Specific / Advanced Topics ==== | ==== Specific / Advanced Topics ==== | ||
* [[http://www.infoq.com/articles/in-depth-look-clojure-collections?goback=%2Egde_1058217_member_248368199|On sequences and immutability]] | * [[http://www.infoq.com/articles/in-depth-look-clojure-collections?goback=%2Egde_1058217_member_248368199|On sequences and immutability]] | ||
Line 46: | Line 50: | ||
* [[http://pluralsight.com/training/Courses/TableOfContents/clojure-concurrency-tutorial|Clojure concurrency tutorial]] | * [[http://pluralsight.com/training/Courses/TableOfContents/clojure-concurrency-tutorial|Clojure concurrency tutorial]] | ||
* [[https://github.com/MichaelDrogalis/dire|Dire: decomplecting error behaviour]] | * [[https://github.com/MichaelDrogalis/dire|Dire: decomplecting error behaviour]] | ||
+ | * [[http://pluralsight.com/training/Courses/TableOfContents/clojure-concurrency-tutorial|Clojure concurency tutorial]] | ||
+ | |||
+ | === desktop GUI === | ||
+ | * [[https://github.com/daveray/seesaw|Seesaw]] | ||
==== Web Development ==== | ==== Web Development ==== | ||
* [[http://clojurewebdev.com/workshop/slides/?goback=.gde_1058217_member_263530163|Ultimate overview]] | * [[http://clojurewebdev.com/workshop/slides/?goback=.gde_1058217_member_263530163|Ultimate overview]] | ||
+ | * [[https://github.com/magomimmo/modern-cljs|ClojureScript tutorials]] | ||
* [[http://pedestal.io/|Pedestal Framework]], [[https://github.com/taylorSando/pedestal-todo/blob/master/beginners.md?goback=.gde_1058217_member_264211873|Pedestal Beginner's Guide]], [[http://e-string.com/articles/the-simplest-possible-clojure-pedestal-app|Small example]] | * [[http://pedestal.io/|Pedestal Framework]], [[https://github.com/taylorSando/pedestal-todo/blob/master/beginners.md?goback=.gde_1058217_member_264211873|Pedestal Beginner's Guide]], [[http://e-string.com/articles/the-simplest-possible-clojure-pedestal-app|Small example]] | ||
+ | * [[http://hoplon.io|Hoplon: A Simpler way to program the web]] | ||
* [[http://htmltohiccup.herokuapp.com/|Online HTML->Hiccup converter]] | * [[http://htmltohiccup.herokuapp.com/|Online HTML->Hiccup converter]] | ||
* [[https://github.com/macourtney/Conjure|Conjure: web framework a-la Django or Rails]] | * [[https://github.com/macourtney/Conjure|Conjure: web framework a-la Django or Rails]] | ||
Line 62: | Line 72: | ||
* {{:programming:clojurescript_up_and_running.pdf|Book ClojureScript Up and Running}} | * {{:programming:clojurescript_up_and_running.pdf|Book ClojureScript Up and Running}} | ||
+ | * [[https://github.com/shaunlebron/How-To-Debug-CLJS|How to debug CLJS]] | ||
* [[https://github.com/magomimmo/modern-cljs|ClojureScript tutorials]] | * [[https://github.com/magomimmo/modern-cljs|ClojureScript tutorials]] | ||
* [[http://himera.herokuapp.com/index.html|ClojureScript compiler as a web service]] | * [[http://himera.herokuapp.com/index.html|ClojureScript compiler as a web service]] | ||
* [[https://github.com/cemerick/austin|The ClojureScript browser-REPL]] | * [[https://github.com/cemerick/austin|The ClojureScript browser-REPL]] | ||
* [[http://keminglabs.com/blog/cljs-app-designs/|A sampler of ClojureScript application designs]] | * [[http://keminglabs.com/blog/cljs-app-designs/|A sampler of ClojureScript application designs]] | ||
+ | * [[https://github.com/Flamefork/node-webkit-cljs|ClojureScript wrapper for Node Webkit]] | ||
+ | * [[http://zaiste.net/2014/02/web_applications_in_clojure_all_the_way_with_compojure_and_om/?goback=%2Egde_1058217_member_5839217728912658435|Web with Om (Facebook's React)]] | ||
=== Mixed resources === | === Mixed resources === | ||
* [[http://alexott.net/en/clojure/video.html|Various videos]] | * [[http://alexott.net/en/clojure/video.html|Various videos]] | ||
- | |||
- | |||
===== Tools and IDEs ===== | ===== Tools and IDEs ===== | ||
You definitely need [[http://leiningen.org|Leiningen]] for easy project management. There is a multitude of IDE's available, however none is absolutely perfect, yet... | You definitely need [[http://leiningen.org|Leiningen]] for easy project management. There is a multitude of IDE's available, however none is absolutely perfect, yet... | ||
Line 96: | Line 107: | ||
* [[https://github.com/marick/Midje|Midje: gracious testing library]] | * [[https://github.com/marick/Midje|Midje: gracious testing library]] | ||
* [[https://github.com/Engelberg/instaparse|Instaparse: library for parsing]] | * [[https://github.com/Engelberg/instaparse|Instaparse: library for parsing]] | ||
+ | * [[http://www.clojure-toolbox.com/|A categorised directory of libraries and tools for Clojure]] | ||
+ | * [[https://github.com/rbrush/clara-rules|Clara Rules: forward chaining rules in clojure]] | ||
===== Interesting Solutions ===== | ===== Interesting Solutions ===== | ||
* [[http://www.flyingmachinestudios.com/programming/building-a-forum-with-clojure-datomic-angular/?goback=.gde_1058217_member_263505831|Forum]] | * [[http://www.flyingmachinestudios.com/programming/building-a-forum-with-clojure-datomic-angular/?goback=.gde_1058217_member_263505831|Forum]] | ||
Line 102: | Line 114: | ||
* [[http://swannodette.github.io/2013/08/17/comparative/|Autocompleter in ClojureScript]] | * [[http://swannodette.github.io/2013/08/17/comparative/|Autocompleter in ClojureScript]] | ||
* [[http://www.markhneedham.com/blog/2013/08/26/clojureenlive-screen-scraping-a-html-file-from-disk/|Screen scraping]] | * [[http://www.markhneedham.com/blog/2013/08/26/clojureenlive-screen-scraping-a-html-file-from-disk/|Screen scraping]] | ||
+ | * [[http://keminglabs.com/c2/|C2: Clojure(Script) data visualization]] | ||
===== Technical Topics ===== | ===== Technical Topics ===== | ||
* {{:programming:pppj13.pdf|Performance analysis of JVM-Hosted Languages}} | * {{:programming:pppj13.pdf|Performance analysis of JVM-Hosted Languages}} | ||
- | |||
- |