Functional Geekery Episode 16 – Matthew Podwysocki

In this episode I talk with Matthew Podwysocki. We talk about Reactive Programming and Functional Reactive Programming, and the Reactive Extensions project. We also touch on Matt’s recent passion about hardware, and how that aligns with his interest in reactive programming.

Our Guest, Matthew Podwysocki

@mattpodwysocki on Twitter
@reactivex on Twitter
Reactive Extensions Portal


Listeners of Functional Geekery get 10% off CodeMesh 2014 when you use offer code fngeekery10.
The ErlangCamp organizers are giving listeners of Functional Geekery 15% off the price of tickets for ErlangCamp 2014 with offer code FNG15. This discount applies to tickets for dinner with the speakers as well.
Global Day of Coderettreat is November 15th. To find a Coderetreat in your area, or to organize one go to


Reactive Extensions and Microsoft Open Technologies
Reactive Manifesto
Microsoft Excel – One of the worlds largest reactive programming environments
More event driven, register an interest in a piece of data
Not pull based, but more pushed based if interested
Responding to a Stimulus
Functional Reactive Programming
Conal Elliot and Paul Hudak
Functional Reactive Animation
Dynamic and Evolving Values, or values over time
Continious notion of time
Behaviors and Events
Reactive Extensions has concept of virtural time
Aggregation of events
Stock ticker example
Buffers and Windows
Arbitrary queries over streaming data
Reactive allows to take the data as it comes along and slice and dice in any number of ways
“If you can do an operation in SQL you can do an operation on events.”
“Not only is SQLServer whatever a database, but so is your mouse”
Advantage is you can do things without external state hanging around.
“It is simple enough you could have probably invted it youself”
RxJava at Netflix
ReactiveCocoa at Github
RxPython and RxRuby
Interesting things between langagues when porting reactive extensions to other langauges
Reactive Extensions Portal
Intro to Rx
Intro to Reactive Programming by André Staltz
Matt’s recent passion is hardware
Chris Williams and JSConf
Internet of Things
Robots Conf
“When everything you think about is a sensor, you can also think of as a database”

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

Functional Geekery Episode 15 – Bruce Tate

In this episode I talk with Bruce Tate. We talk about his books Seven Languages in Seven Weeks, and Seven More Languages in Seven Weeks, and cover what drove him to write the books, and what he thinks about the languages covered. We also touch on the other Seven in Seven books in the series, and what it takes if someone were to decide they wanted to write one.

Our Guest, Bruce Tate

@redrapids on Twitter


Listeners of Functional Geekery get 10% off CodeMesh 2014 when you use offer code fngeekery10.
The ErlangCamp organizers are giving listeners of Functional Geekery 15% off the price of tickets for ErlangCamp 2014 with offer code FNG15. This discount applies to tickets for dinner with the speakers as well.
Global Day of Coderettreat is November 15th. To find a Coderetreat in your area, or to organize one go to


Background of Seven Languages in Seven Weeks
Fear driven learning
“Prag” Dave Thomas
Beyond Java
Bruce’s intro to Ruby
Prevailing attitude of “One true language”
Learning for the sake of learning
The Free Lunch is Over
What languages would the next big language be?
Seven Languages in Seven Weeks was the project to try to answer that question
What is the story of where the industry is moving?
Joe Armstrong
Book was about the process of learning the languages
Mr Miyagi is the character for Factor
Clojure originally described as Mary Poppins meets The Matrix
Napoleon Dynamite as Perl
Forrest Gump as Pascal
The Griswolds as Visual Basic
“Object Oriented Programmer tries Haskell”
Dave Thomas’ ElixirConf talk
Why Ruby is limited in the long haul
Seven More Languages in Seven Weeks
“I told myself I’d never do this again”
Layering ideas on top of other languages
Idris and dependent typing
Elm for functional and reactive programming comping down to JavaScript
Evan Czaplicki
Thinking of functions of values across time
Two big Ah-Ha moments with working with Idris
Found himself thinking about the type system over code
Compile error found a logic error
The Seven More Languages: Lua, Factor, Elm, Elixir, Julia, miniKanren, and Idris
Bruce’s Presentation at ElixirConf
Elixir bring syntax, macro system, and concurrency model together
José Valim
Elixir is powerful and fast moving because of macro system
Erlang and Elixir as a powerful combination
Hex package management
Why the Cool Kids Don’t Use Erlang by Garrett Smith
Elixir Tooling: Exploring Beyond the Language by Eric Meadows-Jönsson
Seven Web Frameworks in Seven Weeks
Seven Concurrency Models in Seven Weeks
Seven Databases in Seven Weeks
“People want to know breadth”
“We need to be generalists again”
Paul Butcher
Possibility of Seven Historical Languages book
Gratification of A Seven in Seven book

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

Functional Geekery Episode 14 – Richard Minerich

In this episode I talk with Richard Minerich. We cover his intro to F#, benefits of using F#, the inter-op story with the rest of the .NET Framework, and the direction of growth for F#.

Our Guest, Richard Minerich
@rickasaurus on Twitter
rickasaurus on Vimeo
rickasaurus on GitHub
BayardRock on GitHub


Listeners of Functional Geekery get 10% off CodeMesh 2014 when you use offer code fngeekery10.

The ErlangCamp organizers are giving listeners of Functional Geekery 15% off the price of tickets for ErlangCamp 2014 with offer code FNG15. This discount applies to tickets for dinner with the speakers as well.


About Richard Minerich
Bayard Rock
How Rick got into F#
Exposure to Clojure via attending Rich Hickey’s Ant Colony Simulation presentation
Rick’s take on a F# ant colony simulation
F# is a ML family language for the .NET runtime
“Less code is more”
Open sourcing of F# and tools
Growing adoption of F#
Bing Advertising system and Halo ranking system are built using F#
Finance Companies picked up F#
F# Type Providers
F# adoption growing in a Alt.NET style
Type Erasure in F#
Properly encoded types, drastically reduces bug
Expressions not statements
F# is single pass, but leads to low dependencies
C# vs F# dependencies in projects blog post
“Put your functions in a data structure and call them after lookup”
Good places to prove out usage of F#
“All problems are better solved in F#” than C#
Pattern Matching to help with complicated domain logic
Great for testing C# code
Simple Made Easy
F# is simple, but with depth
Interoperability between F# and C#
Dependencies availability in F#
Type Providers for calling into other languages
F# expanding to OS X and Linux via Mono
Why Rick has interest in Haskell
Idris and dependent types
F# Tutorials
Presenting at CodeMesh 2014

Editor’s Note – After the call finished recording, Rick mentioned another good place for introducing F# is the build process, by using Fake

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

Functional Geekery Episode 13 – Martin J. Logan

In this episode I talk with Martin J. Logan. We cover his experience with Erlang, why OTP, his book Erlang and OTP in Action, designing processes in an actor based system, Erlang Camp and more.

Our Guest, Martin J. Logan
@martinjlogan on Twitter
@erlangcamp on Twitter
@erlware on Twitter


Martin’s Background
Why Threads are a Bad Idea by John Ousterhaut
How was the adjustment to learning Erlang
Why Object Oriented Programming never made sense as taught
Erlang as an Object Oriented language
Pattern matching, binary streams, and gen_fsm behavior
How Martin was able to stay in Erlang since 1999
Learning Erlang through the mailing list
How the Erlang community has evolved over time
Erlang and OTP in Action
Motivation of writing Erlang and OTP in Action
Why they took the approach to Erlang and OTP in Action they did
Martin and his co-authors as Mr. Miyagi teaching Erlang and OTP
Reticular activation
Practicality as the goal of the book
Ability to distribute systems
Location transparency in Erlang
Aptness of metaphor of Erlang processes as “micro-services”
How to determine right granularity of Erlang processes
Library applications and active applications
Designing for Actor Based Systems
Processes modeled as truly concurrent activities
Erlang Camp
Chicago Erlang user group
“At the end of this user group we are going to announce we are having a conference in the fall”
Teach basics of Erlang and dive into Erlang in two intense days
Repeat attendees help to coordinate the next Erlang Camps
Chicago Erlang Conference
Garrett Smith
LambdaJam from Alex Miller and Dave Thomas
Possibility of a second edition of Erlang and OTP in Action

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

Functional Geekery Episode 12 – Adi Bolboaca

In this episode I talk with Adi Bolboaca. I we talk about his experience of facilitating Coderetreats and some of the different things he has noticed in relation to functional languages being used during the sessions.

Our Guest, Adi Bolboaca
@adibolb on Twitter


What is Coderetreat
How have functional languages shown up in Coderetreats
Conway’s Game of Life in APL
Conway’s Game of Life in Clojure from Clojure Programming
The types of solutions seen from functional languages
The tendency to not have good variable and functions names in functional languages
The lack of stressing the importance of clean code in functional languages
Single Responsibility Principle in functional languages
The exchange of ideas between people with different language paradigms experience
Challenges used to push people to a more functional style in object-oriented languages
The one guy doing Haskell during a Coderetreat
Interesting solutions seen from people using Erlang
Unexpected languages seen in Coderetreats
Pharo Smalltalk
The uniqueness of Perl programmers’ solutions
The regional distribution of functional languages showing up in Coderetreats
Lack of resources for clean code in functional programming and design
Importance of design and architecture in software
Global Day of Coderetreat

Updated Tuesday, July 29 2014: Global Day of Code Retreat 2014 has been announced.

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

Functional Geekery Episode 11 – Simon Peyton Jones

In this episode I talk with Simon Peyton Jones. I ask him about his background in Functional Programming, the growing popularity of Haskell, things he would like to bring into Haskell further, and his work with Computing At School.

Our Guest, Simon Peyton Jones

Simon Peyton Jones


Computer Science at School
How Simon Peyton Jones got into Functional Programming
SK Combinators
Implementation of Functional Programming Languages (Amazon, online)
Creation of Haskell
Haskell as a Laboratory for Innovation
Interview on Software Engineering Radio
Core of Haskell as Lambda Calculus
System F
Growing Popularity of Haskell
Hackage and Cabal
Concurrency in Haskell
Haskell as a part of an Ideas Pipeline and Exemplar
“When the limestone of imperative programming is worn away the granite of functional programming will be revealed underneath”
Static Typing in Haskell vs Weaker Type Systems
Type Inference
Incomplete programs

  • Example 1: f x = sort _ ++ x
  • Example 2: f x = funny_lib_fn _ _ _

Things thinking about for future of Haskell
Refinement Types and Liquid Haskell
Larger Scale Modularity in Haskell and Software Components
Cloud Haskell
Refinements Examples

  • Example 1: f :: Int -> Int
  • Example 2: f :: (x:Int) -> {y:Int | y > x }
  • Example 3: g :: (x:Int -> {y:int | y>x}) -> …

Combination of Modularity at Package Level with Refinement Types as part of Component Contract
Bringing Computer Science as Subject Discipline to England National School Curriculum
What the curriculum looks like
Number of Programming Environments aimed at Children in School
Programming is Only Part of Computer Science
Computer Science Unplugged
How to Participate at the Local Level Even
Join Computing At School

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

Ten Episodes of Functional Geekery Live

This is a cross post from my blog:, but I wanted to make sure it was announced here for those who may not visit my personal blog.

I just released the tenth episode of my podcast Functional Geekery.

I had been thinking about doing a podcast for a while, in return of all the information I get out of listening to other podcasts as part of my “Automobile University”, but could never come up with the niche. It occurred to me about 3am in the morning when I was taking a shift to get our little one, Ada (yes, after that Ada) who was about 5 months old at the time, back to sleep; the best ideas to come when you are least prepared to think about them.

I told my wife about my “crazy idea”, and explained to her what my goal was, and got her support for this experiment I was wanting to do, and told her I could do this in a very lean manner. I had a headset with microphone already, and told her it would just be a domain, hosting, and recording setup. My goal was to see if I couldn’t start a podcast for only about $100 investment with all things totaled. I would shoot to see if I could get at least 10 episodes done, to amortize the cost to be about $10 an episode.

I figured if nobody listened, but I could have 10 interesting conversations, the learning and exposure to ideas from those conversations would easily outweigh that initial investment, and the podcast would give me a good way to reach out to people I would love to talk to but probably wouldn’t have had the opportunity to talk to anytime soon.

I want to give a sincere heartfelt Thank You to all my guests so far, and everybody else I have reached out to so far to get initial conversations going about being a guest. Everyone has been much more receptive and open than I could have ever imagined. Everybody has been kind, and the worst I have gotten was some deferrals due to busy schedules, which I can appreciate. This is been even more honoring, as most of the people I have reached out to had likely never heard of me when I sent my emails to them asking if they would do me the honor of being a guest on the podcast I was starting. Thank you all for your support, and kindness, and if you ever have more things you would like to talk about, all of you always have an open invitation back.

I also want to thank everybody who has listened, and shared the podcast with others. I have gotten much better reception and response that I realistically imagined. Thank you for your shares, (re)tweets, comments, and suggestions. If you have anything else you want to share I would love to hear from you. If you need to find the best way to contact me, just head over to Functional Geekery’s About page.

Don’t worry, I am not planning on going anywhere at this point. I have another recording “in the can”, and am working to line up some more great guests. I also have a large list of people I would love to talk to at some point, and would hate to end before I got to use the podcast as a reason to be able to have a interesting conversation with them as well. ;)

As always, a giant Thank You goes out to David Belcher for the logo, who took my rough idea of a logo, and transformed it into something brilliant.

And an even bigger THANK YOU goes out to my wife, who has let me pursue this “crazy idea”.

Your host,

Functional Geekery Episode 10 – Paul Holser

In this episode I talk with Paul Holser. We start out by talking about his junit-quickcheck project, being a life long learner and exploring ideas about computation from other languages, and what Java 8 is looking like in with the support of closures and lambdas.

Our Guest, Paul Holser
@pholser on Twitter


The Container Store
JUnit Theories
Real World Haskell
Haskell QuickCheck
Prime Factors Kata
Interest in trying to tackle shrinking for junit-quickcheck
Bringing functional ideas back into Java
Try to push the envelope of what you can do in a language
Being a life long student
MOOCs (Massive Open Online Course)
Why work in Java
Being willing to suck at something to afford learning opportunities
Ways to bring ideas from functional languages back to co-workers
Be gentle and persistent
How well Java 8 brings functional ideas back to Java
Work to use lambdas as matchers in JUnit
Single Abstract Method Types
Steve Yegge’s Execution in the Kingdom of Nouns
Support of closures and lambdas in Java 8
New Optional Type in Java 8
Dallas Area Java MUG at Improving Enterprises
Coursera Courses and other MOOCs
Functional Programming Principles in Scala on Coursera
Principles of Reactive Programming on Coursera

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

Functional Geekery Episode 9 – William E. Byrd

In this episode I talk with William Byrd. We talk about miniKanren and the differences between functional, logic and relational programming. We also cover the idea of thinking at higher levels of abstractions, and comparisons of relational programming to topics such as SQL, property testing, and code contracts.

Our Guest, William Byrd
@webyrd on Twitter and


U Combinator Lab
Will’s overview of how he got into LISP and Relational Programming
Daniel Friedman and Indiana University
Logic Programming
Zebra Puzzle – Who owns the Zebra?
Oleg Kiselyov
The Reasoned Schemer
Purely Relational Arithmetic System
The Ability to Reorder Statements and Keep the Same Semantics
Functional vs Logic vs Relational
Interview of Will on InfoQ
How Far Can We Get Being Purely Declarative
Constraint Logic Programming
Bob Harpers’ Post on Static vs Dynamic Typing
Analogies Between Typing and Logic Programming
Dependent Type Systems, e.g. Agda and Idris
The Discovery of Functional Programming and Signs of Logic Programming
Functional JavaScript by Fogus – (Note: There was Episode with Fogus on Functional JavaScript)
Trying to Understand the Implementation of miniKanren to Understand Thinking Operationally
The ability to be able to let go of implementation details and think at a more abstract level
Pointers on Where to Dig Into Relational Programming – For all things miniKanren
Will’s Dissertation
Scheme Workshop Paper
Will is Working on a Book as Starting Place for Relational Programming
The Art of Prolog
Prolog Programming for Artificial Intelligence by Ivan Bratko
Thanks to Everyone Who Has Worked on miniKanren
Clojure/Conj and Strangeloop talks on miniKanren

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

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.

Update: May 6th 2014
Added link to Scala Puzzlers.
Also, Jessica has informed me that she had to cancel her appearance at ScalaDays.