Episode 9 with Kevin Lynagh and Paul deGrandis: web dev ennui, CRDTs, and core.logic
Archived series ("Inactive feed" status)
When? This feed was archived on December 06, 2020 21:06 (). Last successful fetch was on December 13, 2018 02:01 ()
Why? Inactive feed status. Our servers were unable to retrieve a valid podcast feed for a sustained period.
What now? You might be able to find a more up-to-date version using the search function. This series will no longer be checked for updates. If you believe this to be in error, please check if the publisher's feed link below is valid and contact support to request the feed be restored or if you have any other concerns about this.
Manage episode 125339636 series 165862
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.mp3Or, 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
- Functional Reactive Programming & co.
- flapjax
- Reactive Demand Programming
- A reasonable lightweight summary of RDP
- …compared to FRP
- An (the only?) implementation: Sirea
- Behavioural Programming
- “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
- Mark Shapiro et al., “A comprehensive study of Convergent and Commutative Replicated Data Types” (pdf)
- Coin-change kata
- test.generative
- core.logic (provides an awesome unifier)
- Websockets
- superseded by WebRTC?
- socket.io — dynamic transport fallbacks for web app communications
- Chrome Frame — replaces the guts of IE with Chrome
- ClojureScript miscellanea
10 episodes