Functional Geekery Episode 104 – Debasish Ghosh

In this episode I talk with Debasish Ghosh. We talk his introduction to Scala, domain modeling, lawful abstractions, extracting algebraic patterns from a code base, and more.

Our Guest, Debasish Ghosh

https://debasishg.blogspot.com/
@debasishg on Twitter

Conference Announcements

Compose Melbourne will be taking place August 28th and 29th. For more information and to register, visit http://www.composeconference.org/2017-melbourne/.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

PWLConf 2017 will be taking place September 28th in St. Louis, MO, before Strange Loop. Visit http://pwlconf.org/ for more information and to stay updated on latest announcements.

Open FSharp will be taking place the 28th-29th of September in San Francisco, California. Visit openfsharp.org for more information and to register.

elm-conf is returning to St. Louis on September 28, 2017 for a day of learning, speaking, and connecting with the Elm language community. For more information and to register visit http://www.elm-conf.us/.

RacketCon is October 7th & 8th at the University of Washington, with keynote speakers Dan Friedman and Will Byrd. Visit http://con.racket-lang.org/ for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

CodeMesh is coming up November 8th and 9th in London. For more information, and to keep an eye open for registration, visit http://www.codemesh.io/.

Moonconf will be taking place the 9th-11th of November. For more information visit http://moonconf.org/.

LambdaDays 2018 will be taking place February 22nd and 23rd in Kraków, Poland. For more information, and to register, visit http://www.lambdadays.org/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@5:12]

About Debasish
C++
Java
Ruby
Python
Scala
Lightbend
Spark
Kafka
Setting the stage for discovering Scala
Spring
Hibernate
Unification of object-oriented and functional paradigms
Structure and Interpretation of Computer Programs
Scalaz
Haskell
Cats
Scheme
Scala bringing a statically typed language with higher-order functions
IntelliJ IDEA
Generating getters and setters as the way you do enterprise development
Setting the stage for domain modeling
Domain Driven Design by Eric Evans
Bounded Context
“Domain model is possibly the most important artifact in the life-cycle of a project”
DSLs in Action
Why Functional Programming Matters by John Hughes
Functional Modules and how they relate to Bounded Contexts
First reaction Scala
Starting in Scala by writing tests
Design Patterns in Dynamic Programming presentation by Peter Norvig
Bridge and Strategy patterns as higher-order functions
First encounter with Scalaz
Algebraic Design
Monoid as a design pattern in functional programming
“Use the least powerful abstraction that applies to your use case”
How algebraic types work in Scala
Money as a Monoid
Importance of Lawful Abstractions
Domain models, Algebraic laws and Unit tests
Mining your codebase for Algebraic patterns
Refining abstractions to less powerful abstractions after initial identification
References to where to understand the different algebraic types
Typeclassopedia
Functional Programming in Scala
Functional and Reactive Domain Modeling
Rúnar’s Episode of Functional Geekery
Haskell productivity pyramid
Functional and Reactive Domain Modeling
Functional Conf
India Erlang & Elixir Factory lite
Scala eXchange 2017

As always, a giant Thank You goes to David Belcher for the logo design.

Functional Geekery Episode 103 – Justin Schneck

In this episode I talk with Justin Schneck. We talk embedded Erlang and Elixir with the Nerves Project, where Nerves fits in the landscape of embedded systems, prototyping vs deployment, and much, much more.

Our Guest, Justin Schneck

http://mobileoverlord.com/
@mobileoverlord on Twitter
mobileoverlord on Github
Nerves Project
@NervesProject on Twitter

Conference Announcements

Elixir.LDN will be taking place on August 17th. To help encourage inclusion and diversity 30 Free Scholarship places are available. Visit http://www.elixir.london/ to find out more and register.

Compose Melbourne will be taking place August 28th and 29th. For more information and to register, visit http://www.composeconference.org/2017-melbourne/.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

PWLConf 2017 will be taking place September 28th in St. Louis, MO, before Strange Loop. Visit http://pwlconf.org/ for more information and to stay updated on latest announcements.

Open FSharp will be taking place the 28th-29th of September in San Francisco, California. Visit openfsharp.org for more information and to register.

elm-conf is returning to St. Louis on September 28, 2017 for a day of learning, speaking, and connecting with the Elm language community. For more information and to register visit http://www.elm-conf.us/.

RacketCon is October 7th & 8th at the University of Washington, with keynote speakers Dan Friedman and Will Byrd. Visit http://con.racket-lang.org/ for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

CodeMesh is coming up November 8th and 9th in London. For more information, and to keep an eye open for registration, visit http://www.codemesh.io/.

Moonconf will be taking place the 9th-11th of November. For more information visit http://moonconf.org/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@4:53]

About Justin
Elixir
Phoenix Framework
Justin’s desire to start his motorcycle from his phone
Arduino
Ecto
Microsoft TDS Driver in Ecto
The Road to 2 Million Websocket Connections in Phoenix
Setting the foundation for the actor model from embedded systems
Raspberry Pi
Raspbian
Erlang Ale
Nerves Project
Justin’s introduction to Nerves
Frank Hunleth
Garth Hitchens
Rosepoint
“Why can’t I just run a Raspberry Pi”
Nerves as suite of helper libraries
Elixir Ale
Nerves as tool to build deployment images
Ability to get minimal opt-in package images
Creating a meal from a grocery kitchen versus at home
Buildroot
What might deployment to production look like
ErlInit
BeagleBone Black
LinkIt Smart
“Anything you can do in Buildroot you can essentially turn into a composable Nerves system.”
“Microcomputers” vs microcontrollers in the Nerves world
Hard real time constraints in Arduino vs soft real time requirements
Nerves.UART
MQTT
EMQ
Le Tote
Key factors Elixir is good at for embedded systems
Wendy Smoak building a cat feeder in Nerves
Bootloader
SystemRegistry
Booting to Erlang/Elixir as process-zero
Dynamic configuration in Nerves
Elixir on Nerves on Lego EV3 brick
Le Tote kiosk on Raspberry Pi or x86
Call to action to get started in Nerves
“Blinking lights as the Hello World of hardware”
Nerves on HexDocs
Nerves Examples
Pi Zero W
Nerves.Firmware.SSH
“Don’t be afraid to do things that have already been done, just for the experience of knowing how to get those things accomplished”
Where to share one’s projects and experiences
#Nerves in Elixir Lang Slack
Elixir Forum
Erlang Factory San Francisco 2017
Erlang User Conference 2017
ElixirConf
LeToteTeam on Github
Thank You to the community

As always, a giant Thank You goes to David Belcher for the logo design.

Functional Geekery Episode 102 – Brian Hicks

In this episode I talk with Brian Hicks. We talk his into to Elm, Elm Conf, the State of Elm Survey, community building, and more.

Our Guest, Brian Hicks

https://www.brianthicks.com/
The JSON Survival Kit – Use code `geekery` for 10% off
@brianhicks on Twitter
brianhicks on Github

Conference Announcements

Compose Melbourne will be taking place August 28th and 29th. For more information and to register, visit http://www.composeconference.org/2017-melbourne/.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

PWLConf 2017 will be taking place September 28th in St. Louis, MO, before Strange Loop. Visit http://pwlconf.org/ for more information and to stay updated on latest announcements.

Open FSharp will be taking place the 28th-29th of September in San Francisco, California. Visit openfsharp.org for more information and to register.

RacketCon is October 7th & 8th at the University of Washington, with keynote speakers Dan Friedman and Will Byrd. Visit http://con.racket-lang.org/ for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

CodeMesh is coming up November 8th and 9th in London. For more information, and to keep an eye open for registration, visit http://www.codemesh.io/.

Moonconf will be taking place the 9th-11th of November. For more information visit http://moonconf.org/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@4:20]

About Brian
NoRedInk
Elm
I Brian got introduced to programming
PHP
Python
Haskell
Functional Programming Principles in Scala Coursera Course
STL Python Group
Learning “You can implement any collection operator with foldl and foldr”
Experience folding functional programming constructs back into Python
Celery
Go
Strange Loop
Make the Back-end Team Jealous
Mantl
Mantl UI frontend
Ansible
Mesos
Kubernetes
First experience getting into Elm
Union Types
start-app
JSON.Decode library
Pipeline operator in Elm
Currying in Elm
Error Messages in Elm
Using the compiler as a tool to guide a refactoring
What prompted putting on Elm Conf
St. Louis Elm user group
Elm Conf US 2017 is taking place September 28
State of Elm Survey
State of Elm Survey 2017 Results
State of Elm Survey 2017 overview
elm-format
Integrating Elm into your existing JavaScript application
style-elements from Matthew Griffith
High level picture of Elm components
“The benefit of Elm is creating apps that don’t break”
“Elm approach to API design is rather like grilling something versus cooking it sous-vide
Teasing Elm Conf 2017
Strange Loop
“I’m happy to recommend restaurants as I am local”
Elm Conf US compared to other Elm Conferences
Elm Europe
Oslo Elm Day
Encouragements for getting more Elm Conferences
Start a Elm user group
Recommendations and places to get started
dreamwriter
builtwithelm.co
Elm Slack
Elm sub-reddit
Elm in Action
The JSON Survival Kit
Use code `geekery` for 10% off
Planet Elm

As always, a giant Thank You goes to David Belcher for the logo design.

Functional Geekery Episode 101 – Adam Chlipala

In this episode I talk with Adam Chlipala. We talk Coq, proof assistants, getting started, tooling, domains for advancement using proofs, Ur/Web, and much, much more.

Our Guest, Adam Chlipala

Adam’s home page

Conference Announcements

BusConf will be taking place the 3rd-5th of August in Frankfurt, Germany. Registration is open, and more information can be found at http://www.bus-conf.org/.

Elixir.LDN will be taking place on August 17th. To help encourage inclusion and diversity 30 Free Scholarship places are available. Visit http://www.elixir.london/ to find out more and register.

Compose Melbourne will be taking place August 28th and 29th. For more information and to register, visit http://www.composeconference.org/2017-melbourne/.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

PWLConf 2017 will be taking place September 28th in St. Louis, MO, before Strange Loop. Visit http://pwlconf.org/ for more information and to stay updated on latest announcements.

Open FSharp will be taking place the 28th-29th of September in San Francisco, California. Visit openfsharp.org for more information and to register.

RacketCon is October 7th & 8th at the University of Washington, with keynote speakers Dan Friedman and Will Byrd. Visit http://con.racket-lang.org/ for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

CodeMesh is coming up November 8th and 9th in London. For more information, and to keep an eye open for registration, visit http://www.codemesh.io/.

Moonconf will be taking place the 9th-11th of November. For more information visit http://moonconf.org/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@5:07]

About Adam
Coq
“Theorem proving is a secret weapon for improving the way we build systems”
Adam’s first encounter with ML
Going from ML to Coq
What theorem proving looks like today
Addictiveness of proving software
Xavier Leroy – creator of OCaml
Good domains of software for proof assistants
Compilers
Overall technology of effective proofs
Interfaces between components
The Science of Deep Specification
@deep_spec on Twitter
Proving at the internal layers of a system
Generative Testing compared to Proof Specifications
QuickChick
What using Coq to do your proofs looks like
Proof General
Coq IDE
“We should be able to take all the mental effort going into unit testing and put it into specifying and proving instead, for at least some important classes of systems.”
How to start moving toward adopting proof systems
Bedrock
Kami
Software Foundations by Benjamin Pierce, et. al.
DeepSpec project summer school
What domains where formal proof systems fit well
Heartbleed
Cryptography
Fiat Cryptography
Systematic Synthesis of Elliptic Curve Cryptography Implementations
TLS 1.3 standard draft
Ur
Ur/Web
Tier-less languages
How Ur/Web works at a high level
Automatically compiling Ur to Server code, Client code, or SQL depending on context of usage
Selling points of Ur/Web for Haskell or ML fans
Object Capability Discipline
The Ur/Web People Organizer
How Higher-Kinded Types fit in Ur/Web
Ur/Web’s concurrency model
TechEmpower Web Framework Benchmarks
Importance of database transactions and their usage in Ur/Web
Automatic retry of transaction failure built into Ur/Web
Fiat
Building a DNS server using Fiat
The End of History? Using a Proof Assistant to Replace Language Design with Library Design
SNAPL 2017

As always, a giant Thank You goes to David Belcher for the logo design.

Functional Geekery Episode 100 – Mark Allen

In this episode I talk with Mark Allen. We talk his introduction to Erlang, deployment, Mark’s various projects, lessons in distributed applications, and much more.

Our Guest, Mark Allen

@bytemeorg on Twitter
mrallen1 on Github

Conference Announcements

EuroClojure will be taking place in Berlin, Germany on July 20th & 21st. Visit http://2017.euroclojure.org/ for more information and to keep updated.

BusConf will be taking place the 3rd-5th of August in Frankfurt, Germany. Registration is open, and more information can be found at http://www.bus-conf.org/.

Elixir.LDN will be taking place on August 17th. To help encourage inclusion and diversity 30 Free Scholarship places are available. Visit http://www.elixir.london/ to find out more and register.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

PWLConf 2017 will be taking place September 28th in St. Louis, MO, before Strange Loop. Visit http://pwlconf.org/ for more information and to stay updated on latest announcements.

Open FSharp will be taking place the 28th-29th of September in San Francisco, California. Visit openfsharp.org for more information and to register.

RacketCon is October 7th & 8th at the University of Washington, with keynote speakers Dan Friedman and Will Byrd. Visit http://con.racket-lang.org/ for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

CodeMesh is coming up November 8th and 9th in London. For more information, and to keep an eye open for registration, visit http://www.codemesh.io/.

Moonconf will be taking place the 9th-11th of November. For more information visit http://moonconf.org/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@4:43]

About Mark
How Mark moved from systems administration to software development
Alert Logic
Erlang
Akka
Microsoft Orleans
Akka.NET
Mark’s first exposure to Erlang
Erlang’s virtues as stumbling blocks to newcomers to Erlang
Understanding loops via recursion
Seeing the power of Erlang with long running concurrent tasks
“[Erlang] makes easy things hard, and hard things easy”
OCaml
Scala
Moving from understanding syntax to thinking in processes
Messages and Mailboxes as a means to concurrency
“If you do have surprises, it’s because you forgot to update that part of the state”
Basho
Making the transition to deeper distributed computing with Erlang
Riak Core
“[In Riak Core] the unit of computation is a VNode”
udon
Reid Draper on Functional Geekery Episode 6
Continuing to fall victim to the fallacies of distributed computing
The Network is Reliable
Deployment story of Erlang
Riak
RabbitMQ
“Your team owns the code… You own the problem the entire time”
AWS and Docker
hex.pm
Project to build a repository behind the company firewall
Elixir
Administrating Erlang
folsom
exometer
Datadog
lager
Error logging and potential to crash the vm with large state
Erlang/OTP release 20.0
Erlang hot-code loading compared to deployment with Amazon AWS and Docker
Ability to patch long running services while still running
“Don’t be intimidated by Erlang”
Way Erlang has changed the way Mark thinks in other languages
Alert Logic is hiring if you want to write Erlang day-to-day
Examples of good Erlang structure
throwdown
Midewest.io
Taipan
parque
udon
kerl
Erlang User Conference 2017
Sagas in Erlang
gisla
Curry On Barcelona
The Sharp Edges of Leaky Abstraction

As always, a giant Thank You goes to David Belcher for the logo design.

Functional Geekery Episode 99 – Christiano Haesbaert

In this episode I talk with Christiano Haesbaert. We talk his experience with the BSD kernel; foray into OCaml and MirageOS, and how OCaml fits in the realm of “systems languages”.

Our Guest, Christiano Haesbaert

@haesbaert_cf on Twitter
haesbaert on Github

Conference Announcements

Scala Wave 2017 will be taking place July 7th and 8th. Visit scalawave.io to find out more and to register.

EuroClojure will be taking place in Berlin, Germany on July 20th & 21st. Visit http://2017.euroclojure.org/ for more information and to keep updated.

BusConf will be taking place the 3rd-5th of August in Frankfurt, Germany. Registration is open, and more information can be found at http://www.bus-conf.org/.

Elixir.LDN will be taking place on August 17th. To help encourage inclusion and diversity 30 Free Scholarship places are available. Visit http://www.elixir.london/ to find out more and register.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

PWLConf 2017 will be taking place September 28th in St. Louis, MO, before Strange Loop. Visit http://pwlconf.org/ for more information and to stay updated on latest announcements.

Open FSharp will be taking place the 28th-29th of September in San Francisco, California. Visit openfsharp.org for more information and to register.

RacketCon is October 7th & 8th at the University of Washington, with keynote speakers Dan Friedman and Will Byrd. Visit http://con.racket-lang.org/ for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

CodeMesh is coming up November 8th and 9th in London. For more information, and to keep an eye open for registration, visit http://www.codemesh.io/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@4:58]

About Christiano
OCaml
MirageOS
How Christiano was introduced to software
Starting out with Linux
Learning how to program to understand System Administration
K&R book
Linux Kernel interest
OpenBSD
The Little Schemer
Bitrig
Writing kernel code
MirageOS and running DNS in a Unikernel
Xen
Learning OCaml
Real World OCaml
“[In C] you learn to trust nothing”
Overview of MirageOS
Mirage Pioneer Projects Page
Writing a DHCP server in OCaml
C vs OCaml as systems languages
Control vs Data
Inria
OCaml Labs
Power of OCaml for control protocols
Nik Swamy on Functional Geekery about HTTPS in F*
Removing responsibility from the human side and letting the compiler take care of it
Mapping a protocol specification to OCaml versus C
“OCaml made me a lazy C programmer, because I started trusting stuff”
Creating Monsters by pulling in ideas that don’t fit from another language
Co-worker from Haskell and 2,000 line header file
Fuzz Testing in Mirage and OCaml
Docker and MirageOS
linuxkit
Being proved right with DHCP from usage and lack of bug reports
Writing a SSH library in OCaml
OpenSSH
Working on removing side-effects in SSH library (aside from entropy)
TLS Library in OCaml
OCaml TLS paper: Not-quite-so-broken TLS
“Call for request to have ability to zero out memory for security reasons”
Suggestions on getting started in OCaml or MirageOS
Real World OCaml
Mirage Pioneer Projects Page
#ocaml IRC Channel on Freenode
#mirage IRC Channel on Freenode
MirageOS Hackathon in Marrakech

As always, a giant Thank You goes to David Belcher for the logo design.

Functional Geekery Episode 98 – Scott Wlaschin

In this episode I talk with Scott Wlaschin. We talk on the topic of his upcoming book Domain Modeling Made Functional, and using F# (and ML family type system languages) with Domain Driven Design.

Our Guest, Scott Wlaschin

@ScottWlaschin on Twitter
F# for fun and profit
Domain Modeling Made Functional

Conference Announcements

Curry On Barcelona will be taking place June 19-20th. For more information, visit http://www.curry-on.org/2017/.

Scala Wave 2017 will be taking place July 7th and 8th. Visit scalawave.io to find out more and to register.

O’Reilly Fluent Conference will be taking place June 19–22, 2017 in San Jose, California. Visit http://www.oreilly.com/pub/cpc/61309 to find out more and to register, and use code USRG for 20% off.

EuroClojure will be taking place in Berlin, Germany on July 20th & 21st. Visit http://2017.euroclojure.org/ for more information and to keep updated.

BusConf will be taking place the 3rd-5th of August in Frankfurt, Germany. Registration is open, and more information can be found at http://www.bus-conf.org/.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

PWLConf 2017 will be taking place September 28th in St. Louis, MO, before Strange Loop. Visit http://pwlconf.org/ for more information and to stay updated on latest announcements.

Open FSharp will be taking place the 28th-29th of September in San Francisco, California. Visit openfsharp.org for more information and to register.

RacketCon is October 7th & 8th at the University of Washington, with keynote speakers Dan Friedman and Will Byrd. Visit http://con.racket-lang.org/ for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

CodeMesh is coming up November 8th and 9th in London. For more information, and to keep an eye open for registration, visit http://www.codemesh.io/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@5:41]

About Scott
Scott on Functional Geekery Episode 66
Scott on Three Devs and a Maybe
Programming Like Functions Matter with Jimmy Burrell and Scott Wlaschin
The Tale of State and Behaviour, Part 1 with Scott Wlaschin
The Tale of State and Behaviour, Part 2 with Scott Wlaschin
Scott’s upcoming book Domain Modeling Made Functional
How the book came about
F#
Using F# for Business Domain modeling
Balancing the formalistic mathematical side with the humanistic side of software
Building the thing right vs building the right thing
Domain-Driven Design
F#’s ability to evolve software while keeping aligned to the domain
Ability to lean on the compiler more in ML family languages
Ease, simplicity, and conciseness of adding new domain types
Domain types as concepts separated from their underlying serialization format
Benefit of immutable data in the domain
Ability to focus on domain logic and not defensive programming
Evolving type definitions as the domain logic evolves
Refactoring transformations vs state mutation changes
Abstraction vs Concretion in modeling the domain
Sum/Product Types vs Generic Types in modeling the domain
Ability to model against types without knowing what the types actually are
Monoid – ability to combine two types to make a larger type
“The principles don’t change”
Getting more people to talk about integrating Domain Driven Design and functional programming
Trying to organize the narrative of a book
Overview of what the book’s audience and organization will be
“I wanted to make something approachable”
Demystifying functional programming
Showing people with the focus on practical things over academic things
Lessons learned on not building the right thing
Outline of Scott’s book
Order processing system as example domain
Thirteen ways of looking at a turtle
Upcoming appearances
NDC Oslo
NDC Sydney
Open FSharp conference
NDC Conferences’ videos on Vimeo

As always, a giant Thank You goes to David Belcher for the logo design.

Functional Geekery Episode 97 – Colin Barrett

In this episode I talk with Colin Barrett. We talk his intro to Objective C; exploration to Haskell, OCaml, and other languages; diving deep into functional programming; functional Swift; and more.

Our Guest, Colin Barrett

@cbarrett on Twitter
https://www.patreon.com/cbarrett

Conference Announcements

Curry On Barcelona will be taking place June 19-20th. For more information, visit http://www.curry-on.org/2017/.

Scala Wave 2017 will be taking place July 7th and 8th. Visit scalawave.io to find out more and to register.

O’Reilly Fluent Conference will be taking place June 19–22, 2017 in San Jose, California. Visit http://www.oreilly.com/pub/cpc/61309 to find out more and to register, and use code USRG for 20% off.

EuroClojure will be taking place in Berlin, Germany on July 20th & 21st. Visit http://2017.euroclojure.org/ for more information and to keep updated.

BusConf will be taking place the 3rd-5th of August in Frankfurt, Germany. Registration is open, and more information can be found at http://www.bus-conf.org/.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

PWLConf 2017 will be taking place September 28th in St. Louis, MO, before Strange Loop. Visit http://pwlconf.org/ for more information and to stay updated on latest announcements.

Open FSharp will be taking place the 28th-29th of September in San Francisco, California. Visit openfsharp.org for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

CodeMesh is coming up November 8th and 9th in London. For more information, and to keep an eye open for registration, visit http://www.codemesh.io/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@5:33]

About Colin
Adium
How Colin first got exposed to software development
First exposures to programming languages
Objective C
C and C++
Hypercard
Looking into Haskell, OCaml, Ruby and other languages
MacRuby
bracer
Getting into Haskell
Going Broad vs Going Deep
Python
Seven Languages in Seven Weeks
Colin’s experience getting started with Haskell
“Depending on the angle you come at it, you either bounce off, or get hooked”
Real World Haskell
Taking lessons back out of Haskell
Blocks in Python and Objective C
Uncanny Valley of functional programming in Objective C
Getting deep into functional programming and functional reactive programming
Conal Elliott
Swift
Itai Ferber
Swift Evolution List
Smart KeyPaths
Digging into Swift
The dream of a ML family language with Objective C inter-op
Scala
Reactive Cocoa
What is the power of Swift vs Objective C?
“Separating out what to do from how to do it”
Swift compared to Haskell or an ML running server side
Rust
Kotlin
FindBugs
Recommendations for introducing more functional Swift
Kickstarter libraries
Kickstarter Prelude
Kickstarter mobile apps open sourced
Kickstarter iOS app
Functional Swift Conferences
Theorems for free!
Propositions as Types
Structure and Interpretation of Computer Programs
Compose Conference
Upcoming plans for a Front-end Functional meetup in NYC
Brandon Williams

As always, a giant Thank You goes to David Belcher for the logo design.

Functional Geekery Episode 96 – Erik Svedäng

In this episode I talk with Erik Svedäng. We talk his background in functional programming, game development, and creating Carp, a statically typed Lisp for use in game development.

Our Guest, Erik Svedäng

https://eriksvedang.com/
@e_svedang on Twitter
eriksvedang on Github
Carp on Github

Conference Announcements

Elm Europe will be taking place June 8th and 9th in Paris, France. Visit http://elmeurope.org/ for more information and to register.

Erlang User Conference 2017 will be taking place June 8th and 9th in Stockholm, Sweden. Visit http://www.erlang-factory.com/euc2017 for more information and to register.

ZuriHac 2017 will be taking place in Zurich on the 9th-11th of June. For more information, and to register visit https://zurihac.info/

Oslo Elm Day is a one-day conference about Elm taking place June 10th in Oslo, Norway. Visit https://osloelmday.no/ for more information and to register.

Curry On Barcelona will be taking place June 19-20th. For more information, visit http://www.curry-on.org/2017/.

O’Reilly Fluent Conference will be taking place June 19–22, 2017 in San Jose, California. Visit http://www.oreilly.com/pub/cpc/61309 to find out more and to register, and use code USRG for 20% off.

EuroClojure will be taking place in Berlin, Germany on July 20th & 21st. Visit http://2017.euroclojure.org/ for more information and to keep updated.

BusConf will be taking place the 3rd-5th of August in Frankfurt, Germany. Registration is open, and more information can be found at http://www.bus-conf.org/.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

Open FSharp will be taking place the 28th-29th of September in San Francisco, California. Visit openfsharp.org for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@4:50]

About Erik
Carp Language
Desire to make a game
How Erik was exposed to functional programming
Else Heart.Break()
Putting a programming language inside a game
Structure and Interpretation of Computer Programs
Fascination with programming and human languages
Fitting functional programming ideas into game development
Dr. Racket
LINQ
Foundation for starting a new language to do game development with
Clojure
Quill
Haskell
Gloss
F#
Unity
Reasons behind combining types and a Lisp in Carp
Integrating Types and Macros
Typed Racket
Clojure.typed
Lessons in language design for game engine loop performance levels
Rust
Memory management in Carp
Interactivity in developing a game in Carp
Wondering how much should Algebraic Data Types should be brought into a Lisp
Current state of Carp
Where to find out more about Carp
Carp on Gitter
Research.md in Carp repository
Type-Driven Development with Idris

As always, a giant Thank You goes to David Belcher for the logo design.

Functional Geekery Episode 95 – Dan Friedman

In this episode I talk with Dan Friedman. Dan gives shares stories of his history working with Lisp, including topics such as the power of Lisp, and tips for introducing a language.

Our Guest, Dan Friedman

Dan’s Faculty Page

Conference Announcements

Elm Europe will be taking place June 8th and 9th in Paris, France. Visit http://elmeurope.org/ for more information and to register.

Erlang User Conference 2017 will be taking place June 8th and 9th in Stockholm, Sweden. Visit http://www.erlang-factory.com/euc2017 for more information and to register.

ZuriHac 2017 will be taking place in Zurich on the 9th-11th of June. For more information, and to register visit https://zurihac.info/

Oslo Elm Day is a one-day conference about Elm taking place June 10th in Oslo, Norway. Visit https://osloelmday.no/ for more information and to register.

Curry On Barcelona will be taking place June 19-20th. For more information, visit http://www.curry-on.org/2017/.

O’Reilly Fluent Conference will be taking place June 19–22, 2017 in San Jose, California. Visit http://www.oreilly.com/pub/cpc/61309 to find out more and to register, and use code USRG for 20% off.

EuroClojure will be taking place in Berlin, Germany on July 20th & 21st. Visit http://2017.euroclojure.org/ for more information and to keep updated.

BusConf will be taking place the 3rd-5th of August in Frankfurt, Germany. Registration is open, and more information can be found at http://www.bus-conf.org/.

The Strange Loop coming! It will be held in St. Louis, MO on September 28-30, 2017 at the Peabody Opera House. To submit your CfP, visit http://thestrangeloop.com/.

Open FSharp will be taking place the 28th-29th of September in San Fransisco, California. Visit openfsharp.org for more information and to register.

LambdaWorld will be taking place in Cadiz, Spain on October 26th and 27th. For more information visit and to keep updated visit http://www.lambda.world/.

If you have a conference related to functional programming, contact me, and I will be happy to announce it.

Announcements

Some of you have asked how you can support Functional Geekery, in that vein,
Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can
find out more at https://www.patreon.com/fngeekery.

Topics [@5:03]

About Dan
Dan’s early entry into teaching
Elliott Organick
MAD (Michigan Algorithmic Decoder) language
Multics
LISP 1.5 Programmer’s Manual
Indiana University
The Little Lisper origins
Selectric
Smith Corona
PDP-11
Ben Schneiderman
Getting Tenure
David Wise
CONS should not Evaluate its Arguments
Mitch Wand
Essentials of Programming Languages
Kanren
Oleg Kiselyov
Grasp
Bill Cohagan
Grope
Bob Baron
IBM 360
What about Lisp that appeals now and then to Dan
Brian Smith
Planner
Carl Hewitt
Eugene Charniak
Gerald Sussman
Conniver
Scheme Report (1975)
Higher Order Functions
Coda language
Bob Filman
William Byrd
Simplicity as the over arching model
miniKanren
Prolog
Dan’s 60th Birthday Celebration
Chung-chieh Shan
The Reasoned Schemer
Richard Salter
Implementing languages from scratch in a couple of evenings
Dick Kieburtz
Marigold
Power of macros in Lisp
Matthias Felleisen
Building an Operating System in a week
Racket
Jason Hemann
µKanren
Advice and tips for teaching
Convince students in first two lectures they will be changed
2 or 3 cases max when dealing with recursion
Ackermann function
Carl Eastlund
The Little Prover
David Christiansen
“Little Book” in the works on dependent types
Pie language

As always, a giant Thank You goes to David Belcher for the logo design.