Functional Geekery Episode 08 – Jessica Kerr

In this episode I talk with Jessica Kerr. In this episode we talk bringing functional programming concepts to object oriented languages; her experience in Scala, using the actor model, and property testing; and much more!

Our Guest, Jessica Kerr
@jessitron on Twitter and


Jessica’s ├śreDev Talk
Jessica’s Ruby Midwest Talk
Bring Just Enough of the Ideas from Functional Programming Back to Java and C#
Use Static/Class Level Methods to Make Needed Data Explicit
Designate Methods That Modify State When Working in Object Oriented Languages
Isolation as the Dual/Reverse to Encapsulation
Guava library for Working in Java
Readable Code vs Familiar Code
Use Code Reviews to Spread Practices
Scala as a Hybrid Language and the Blessings and Curses Therein
Reasons One Might Choose Scala
Akka Concurrency by Derek Wyatt
The Actor Model
Testing with Scala
Introducing a Functional Language by Writing Tests in that Language
Property Based Testing
ScalaCheck: The Definitive Guide
Commonalities Between Git and Functional Concepts
Directed Acyclic Graphs
Importance of Immutable Data in Functional Programming
Using a Functional Language to do Spikes to Solidify Ideas
Kansas City Developer Conference
Jessica’s Upcoming Appearances
GOTO Chicago
QCon New York 2014
GOTO Amsterdam 2014
ScalaDays 2014
Scala Puzzlers
Ribbon Farm

A giant Thank You to David Belcher for the logo design.

Episode 7 – Angela Harms and Jason Felice on avi

In this episode I talk with Angela Harms and Jason Felice about avi. We talk about the motivation of a vi implementation written in Clojure, the road map of where avi might used, and expressivity of code.

Our Guests, Angela Harms and Jason Felice

Angela Harms: @angelaharms on Twitter and
Jason Felice: @eraserhd on Twitter and
avi on Github


Angela’s guest appearance on RubyRogues podcast
How Jason and Angela got into Clojure
Podcast with creator of VsVim
Why pick Clojure to write avi in
Greenspun’s Tenth rule but for vi plugins
Where the vision of avi is going
Do not defeat a Vimmer’s muscle memory
How Immutable state is helping
What might make a MVP for avi
Midje and testing framework style
Expressivity of the avi’s tests
The example tests on github
Angela and Jason’s obsessiveness on expressivity and Clojure’s impact on it
Issues and discussion about avi on github are much appreciated

A giant Thank You to David Belcher for the logo design.

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 on Twitter
reiddraper on Github


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
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
“Learn one dynamically typed and one statically typed with a good type system”
Typer for Erlang
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.

Episode 5 – Colin Jones

In this episode I talk with Colin Jones, software craftsman at 8th Light. We cover Colin’s work on the Clojure Koans, making the transition from Ruby to Clojure, how functional programming affects the way he does object oriented design now, and his venture into learning Haskell.

Our Guest, Colin Jones

Colin on 8th Light
Colin’s blog posts at 8th Light
@trptcolin on Twitter
trptcolin on


8th Light
Colin’s background on getting into programming
Clojure Koans
Learning Clojure by writing the Clojure Koans
Teaching as a way to learn
Colin’s blog post Clojure Libs and Namespaces
Colin’s blog post Quoting Without Confusion
Clojure Doc site
Possible use of nREPL to connect to a live running system
8th Light’s experience with Clojure
Using Object-Oriented constructs in Functional languages, and vice-versa
Colin’s SOLID Clojure presentation
Speclj works on ClojureScript as well
Learn You a Haskell for Great Good
The other book that was recommended to Colin: Haskell: The Craft of Functional Programming
Deliberate Practice with feedback
Colin is writing a book on macros in Clojure from Pragmatic Press
On Lisp by Paul Graham
Let Over Lambda by Doug Hoyte
David Nolen (@swannodette on Twitter)
Concepts, Techniques, and Models of Computer Programming
Michael Bernstein (@mrb_bk on Twitter)
Michael Fogus (@fogus on Twitter)
Out of the Tar Pit on CiteSeer
Apprenticeship at 8th Light
8th Light University on Friday afternoons

A giant Thank You to David Belcher for the logo design.

Episode 4 – Zach Kessin

In this episode I talk with fellow podcaster Zach Kessin. We cover his background in software development and podcasting, the background of Erlang, process recovery, testing tools, as well as profiling live running systems in Erlang.

Our Guest, Zach Kessin

@zkessin on twitter
zkessin on
Mostly Erlang
@mostlyerlang on twitter


Structure and Interpretation of Computer Programs
Programming HTML5 Applications
Building Web Applications with Erlang
Listing to podcasts as part of a commute
365 Days of Astronomy
Mostly Erlang
Ohio State University astronomy professor Richard Pogue and his lectures
Zach’s episode of JavaScript Jabber
Background of Erlang
Actor Model
Erlang Links/Monitors
Behaviors in Erlang
Process Recovery in Erlang
Robert Virding
Kostis Sagonis
PropEr and Property Based Testing
Episode 16 & Episode 27 of Mostly Erlang
Testing Erlang
Moore’s Law is over and mega-cores are the future
Immutability in Erlang
Joe Armstrong
Simon Peyton Jones
Profiling Covering in Running Code
webmachine diagram
Mostly Erlang – 029 Teaching Kids to Code
Ruby Rogues – 141 RR Teaching Kids with Ron Evans
Introducing Erlang by Simon St. Laurent
Learn You Some Erlang for Great Good
Erlang Factory
Chicago Boss

A giant Thank You to David Belcher for the logo design.

Episode 3 – Fogus

In this episode I talk with Fogus, author of The Joy of Clojure and Functional JavaScript. We cover his history with functional languages, working with JavaScript in a functional style, and digging into the history of software development.

Our Guest, Fogus


Joy of Clojure
Chris Houser
Relevance (Now Cognitect)
Missing the interesting conversations as part of Clojure.core team
Fogus’ previous functional language experience
What about Lisp appeals to Fogus
Progression of Imperative to Functional to Logic programming
Functional JavaScript
Douglas Crockford
Jeremy Ashkenas
Ostrich purity
Bilby and Fantasy Land by Brian McKenna
Structuring and organizing functional programs
How to build your knowledge of the history of computing
Reading for the Rushed
Follow footnotes/bibliography/references
10 Technical Papers Every Programmer Should Read (At Least Twice)
The History of Programming Languages Volume 2
A Programming Language by Kenneth Iverson
Structure and Interpretation of Computer Programs (from
Any book written before 1990
Production Rule Systems in Clojure
Infinite Jest
House of Leaves

A giant Thank You to David Belcher for the logo design.

Episode 2 – Craig Andera

In this episode I talk with fellow podcaster Craig Andera. We talk about working in Clojure, ClojureScript and Datomic, as well as making the transition to functional programming from C#, and working in Clojure on Windows. I also get him to give some recommendations on things he learned from guests on his podcast, The Cognicast.

Our Guest, Craig Andera

Craig Andera


Craig’s podcast, The Cognicast
Mostly Lazy and Chas Emerick
Making the transition from C# to Clojure
Stuart Holloway
Justin Gehtland
Structure and Interpretation of Computer Programs
Gerald Sussman and Hal Abelson
Out of the Tar Pit
Design Patterns
Some of the differences between Common Lisp and Scheme and Clojure
Sharing code between Clojure and ClojureScript
EDN and Reader Literals
The “Holy Grail” of same language everywhere; client, server and database
Rich Hickey’s Simple Made Easy
Real-World Datomic: An Experience Report
Room Key
Datomic as an append only database
The ease/difficulty of thinking about storing data in Datomic
Amazon’s DynamoDB
Tim Ewald
Working back in DynamoDB after working with Datomic
Developing in Clojure on Windows
XServer on Linux Virtual Machine in Windows
The Cognicast
Good episodes for those unfamiliar with The Cognicast (formerly Think Relevance The Podcast)
Maggie Litton on Think Relevance The Podcast Episode 46
Michael Nygard on Think Relevance The Podcast Episode
Pick a random episode and listen
Rich Hickey on core.async
Design Implementation podcast
Reid Draper talking about Haskell and Erlang
Where to find Cognitects
Clojure DC
Reston Hack Nights
Baltimore Clojure
Craig’s Github page
Tim Ewald’s Clojure/conj presentation
Russ Olsen’s Clojure/conj presentation
Cognitect team page

A giant Thank You to David Belcher for the logo design.

Podcast Feed Fixed

I had someone point out early this morning that the feed was broken. I had previously made an update to the post, and it looks like that change lost the media file settings when I updated the post. The feed and media on that post appears to be back and working again.

Sorry for the inconvenience for those that were trying to listen while the feed was broken.

If you ever notice issues you can let me know by using the contact information on the About page, or tweeting to me at @fngeekery. You can also use those contact forms for any suggestions about future show guests and topics you would like me to reach out to have an episode about.

Thanks for your support!


Episode 1 – Robert C. Martin

In this episode I talk with Robert C. Martin, better known as Uncle Bob. We run the gamut from Structure and Interpretation of Computer Programs, introducing children to programming, TDD and the REPL, compatibility of Functional Programming and Object Oriented Programming

Our Guest, Robert C. Martin
8th Light


Structure and Interpretation of Computer Programs
Ignite Your Coding
SICP Videos
Domain Driven Design
Stuart Holloway
Functional Programming as intro to programming?
Myth of not being able to build real apps with functional languages
TDD vs REPL (Read Eval Print Loop)
Transformation Priority Premise
Test Driving Functional Programs
Midje by Brian Marick
SOLID Principals Relation to Functional Programming
Clean Code and Readability
Ward Cunningham
Katas/Project Euler/Koans
Clojure Koans
Functional Programming and Object Oriented Compatibility
Michael Feathers
Introducing Functional Programming to Work Environment
Lack of History In A Young Industry
8th Light

A giant Thank You to David Belcher for the logo design.

Status update – Dec 22nd 2013

Sorry for the delay everyone. I was hoping to have the first episode up last Tuesday night, but had some technical issues. When I tried to upload the finished mp3 file, I found out the upload limit was set to 8MB. I was in contact with technical support for my hosting provider, and they have been helpful, but there has been a delay between support emails. I am in progress of changing hosting plans, and will get the first episode up as soon as possible.

I currently have one episode waiting to be uploaded, and I recorded the second one on Friday, and will be editing that over the next few evenings.

Please keep checking back for further updates, and you can also follow @fngeekery, which is the official Twitter account for this site/podcast.

I will be filing this under things to remember if I start another podcast in the future, or if anyone else asks about what it takes to get a podcast going. ;)

Thank you for you patience.