Functional Geekery
Episode 6 - Reid Draper
In this episode I talk with Reid Draper. We cover Reid’s intro to functional programming through Haskell, working in Erlang, distributed systems, and property testing; including his property testing tool simple-check, which has since made it into a Clojure contrib project as test.check.
Our Guest, Reid Draper
reiddraper.com
@reiddraper on Twitter
reiddraper on Github
Topics
Basho
Riak and Riak CS
Reid’s appearance on The Cognicast
The Echo Nest
Two camps of approaching learning a language, project based and learning the language for the language sake
Learn You a Haskell for Great Good
Papers on Haskell and ML to help learn functional programming
Paxos and Raft papers
Consensus
Lamport papers
Amazon Dynamo paper
What about Erlang helps with building Distributed systems
Messaging between nodes in Erlang
The ability to debug live systems with Erlang
Dealing with distributed systems that are not replicated
The Eight Fallacies of Distributed Computing and Fallacies of Distributed Computing Explained
“A static website with only one browser connected is a distributed system”
Immutability and Eventual Consistency
Importance of Idempotent commands in Distributed Systems
Property Based Testing
Quick Check
Erlang Quick Check and Proper
simple-check [It has since been moved to be Clojure contrib project as test.check]
Thinking in Properties about functions
Static vs Dynamic typing and Gradual typing
core.typed by Ambrose Bonnaire-Sergeant
Dialyzer from Kostis Sagonis
Agda
Idris
“Learn one dynamically typed and one statically typed with a good type system”
Typer for Erlang
Webmachine
Riak and RiakCS as example of large scale distribute/Erlang systems
Haskell, Coq, Agda, Idris
Implementation of Functional Programming Languages by Simon Peyton Jones
A giant Thank You to David Belcher for the logo design.