Clojure Weekly, May 31st, 2016
Welcome to another issue of the Clojure Weekly! The Weekly is a collection of bookmarks, normally 4/5, pointing at articles, docs, screencasts, podcasts and anything else that attracts my attention in the clojure-sphere for the last 7 (or so) days. I add a small comment so you can decide if you want to look at the whole thing or not. That’s it, enjoy!
Clojure - spec Guide The Clojure world was taken by surprise by the alpha release of a new 1.9 feature called "spec". The reaction has been 90% positive, with people rushing to blog about how to use it and what you can do with it. One of the most important aspect in my opinion is the fact that it was included in Clojure core (unlike core.async for example). This implies that Clojure wants to embrace and push down to all developers a new vision about how types could be used to write a different Clojure. Is also important to note that spec doesn't want to be a type system but more a constraint checker. spec goal is to increase the likeliness of spotting bugs before live (with property based testing) and get out of the way when the code is finally released.
17th Annual Scheme and Functional Programming Workshop 2016 Just to announce this co-located workshop with ICFP 2016 in Japan. The workshop is accepting presentations (not just papers) and Clojure talks are welcome. The rest of ICFP is also interesting, with workshops from other languages (Erlang, Haskell, OCaml for example) and paper discussions. If you want to see in which direction the functional world is going, this is the place to be.
skejserjensen/eclojure: Extending Software Transactional Memory in Clojure with Side-Effects and Transaction Control eClojure was presented at the last european Lisp simposium. It is a fork of Clojure that implements changes to the STM (LockingTransaction and Ref mainly) to enable synchronisation of side effects inside a transaction. I have to admit that even looking at the slides it wasn't illuminating about what exactly the changes are achieving. Unfortunately the code is missing commit diffs, so it's almost impossible to understand what changed. So, if you understand what it does, leave me a message below.
eratosthenesia/lispc: "Lispsy" Lisp(ish) to C Converter (designed for CLISP) Similar to Ferret, this is a CL to C compiler. Like Ferret the main driving reason to have Lisp translated into C is low level interoperability with drivers or hardware. The readme, which is also a tutorial, includes a CUDA example. Why as a Clojurian should you be interested? Because it's fascinating to know how a Lisp program parses itself and generates another language!
Clojure Remote 2016 - YouTube Juicy Clojure Remote conference videos are out. There are a couple I definitely want to see, possibly more, like for example, DrogalisM, ZachT, ColinJ and EricN. Others have intriguing title so I might skim over to see what they are about. In any case, differently from normal conferences, you get to see the speaker and his slides really close and clean, not to speak about the crystal quality audio, which is nice :)
jmgimeno/okasaki-clojure: Clojure implementation of some data structures described in Okasaki's book A translation of Okasaki's purely functional data structures in Clojure. Each namespace contains a data structure, including an helper "datatype" namespace that with some core.match is able to emulate some of the ML features, like pattern matching for instance. With this in place the author was able to translate more literally from ML. It seems enough easy to read and it contains tests for each data structure.
jstepien/flip: ╯°□°╯︵ʍoɹɥʇ Yes, this project is for fun, but there is some interesting idea there, namely the use of ascii art and unicode to visually mean something. Next time you need to throw an exception, use this little library and throw the exception literally and visually! Not recommending to use in your product project tho :)
(defn podcast [themes] | (conj themes 'Clojure 'ClojureScript)) Fantastic news! I'm an avid podcast listener and the Functional Geekery + Cognicast combo aren't nearly enough to keep me busy. Hopefully this is a core technical Clojure podcast, no fluff just stuff, which is what I like the most. It's based in Europe, which means that hopefully we'll get more coverage of what's happening in Clojure land this side of the pond. Keep up the great job.

















