![Mostly Lazy artwork](https://is4-ssl.mzstatic.com/image/thumb/Podcasts/v4/16/ce/7f/16ce7f55-6b32-c67c-eba5-680a0149a8f3/mza_2840753328367761987.png/100x100bb.jpg)
Episode 9 with Kevin Lynagh and Paul deGrandis: web dev ennui, CRDTs, and core.logic
Mostly Lazy
English - January 04, 2013 05:26 - ★★★★★ - 4 ratingsTechnology News Tech News clojure programming software lisp java jvm functional Homepage Download Apple Podcasts Google Podcasts Overcast Castro Pocket Casts RSS feed
Paul deGrandis (@ohpauleez) and Kevin Lynagh (@lynaghk) are two anchors of the Clojure community, perhaps especially of the ClojureScript wing. Both Portlanders, they’ve been elbow-deep in core.logic and a ton of ClojureScript tools and libraries like shoreleave, cljx, c2, and more. They’ve stormed the Clojure world in the past year or two, going from zero […]
Paul deGrandis (@ohpauleez) and Kevin Lynagh (@lynaghk) are two anchors of the Clojure community, perhaps especially of the ClojureScript wing. Both Portlanders, they’ve been elbow-deep in core.logic and a ton of ClojureScript tools and libraries like shoreleave, cljx, c2, and more. They’ve stormed the Clojure world in the past year or two, going from zero to taking up residence in #clojure to speaking about Clojure and ClojureScript everywhere.
Kevin is the founder of Keming Labs, which specializes in “building data-driven UIs”; Paul has worked at all sorts of places like Etsy, Comcast, and TutorSpree.
Enjoy!
(Recorded on December 14th, 2012. Apologies for the clipping on Paul’s audio. Donations welcome to help get him get an internet connection that doesn’t use carrier pigeons.
Listen:
http://downloads.mostlylazy.com/episodes/mostly-lazy-009.mp3
Or, download the mp3 directly.
Discrete Topics
Many questions and topics came from tweets to @MostlyLazy (watch for scheduled show announcements and send us topics and questions!)
Abusing pmap
java.util.concurrent (learn it, use it!)
“JavaScript |ˈʤɑːvəˌskrɪpt| (n.): Super janky shit.”
The rise of the “JavaScript Craftsman”
“What was the first piece of software you sold?”
Running ClojureScript on top of node.js
Conrad Barski‘s WebFui (presented at Clojure Conj 2012)
Separating code and content or not
Enlive vs. Hiccup, Enlive + Hiccup
Functional Reactive Programming & co.
flapjax
Reactive Demand Programming
A reasonable lightweight summary of RDP
…compared to FRP
An (the only?) implementation: Sirea
“Local state is poison”
“FRP is like MVC”
TodoFRP (post your implementations now!!!11!)
reflex: “Automatic state propagation in ClojureScript”
“Web application development ennui”
“The web was built by amateurs” (alan kay)
John McCarthy on the W3C: “When w3c decided to not use [s-expressions], but instead imitate SGML [for HTML], that showed a certain capacity to make mistakes — which, probably, they haven’t lost.”
NaCl (Google Native Client)
Commutative Replicated Data Types (CRDTs)
Mark Shapiro et al., “A comprehensive study of Convergent and Commutative Replicated Data Types” (pdf)
A presentation by Marc Shapiro @ Microsoft Research surveying the content of this paper
Eventual consistency vs. strong consistency vs. strong eventual consistency
Implementations
statebox
riak_dt: “Riak core app for storing convergent data types”
knockbox (Clojure, in-process)
Bloom and BloomL (pdf) are languages (~ Ruby DSLs) that use CRDTs / lattices as their primary data types
“Keep CALM and Query On”, a presentation by Joe Hellerstein from RICON 2012 discussing lattices, CRDTs, Bloom, etc.
Related: operational transforms
Coin-change kata
test.generative
core.logic (provides an awesome unifier)
kibit: a static code analysis / linter tool for Clojure
cljx: “Smart Clojure/ClojureScript code sharing”
Websockets
superseded by WebRTC?
socket.io — dynamic transport fallbacks for web app communications
Chrome Frame — replaces the guts of IE with Chrome
ClojureScript miscellanea