Lambda Squared is a new conference taking place March 30th in Knoxville, Tennessee. For more information, and to register, visit https://www.lambda-squared.com/.

Midlands Graduate School (MGS) is going to be held in Nottingham, UK, 9–13 April, hosted by the School of Computer Science, the University of Nottingham. For more information and to register visit: https://www.functionalgeekery.com/MGS2018

ElixirConf EU will be taking place April 16th and 17th in Warsaw, Poland. For more information, and to register, visit: http://www.elixirconf.eu/.

BuzzConf will take place the Thursday 26th of April, with workshops on Friday April 27th, in Buenos Aires, Argentina. For more information, and to register, visit: http://buzzconf.org/.

Monadic Party, a 5 day Haskell Summer School, will be taking place in Poznań, Poland the 11th-15th of June. Visit https://monadic.party/ for more information and to register.

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.

In this episode I talk with Eric Normand. We catch up with what he has been up to since last episode, talk re-frame in ClojureScript, his newsletter, Clojure SYNC, online community discussions, and more.

In this episode I talk with Radu Popescu. We talk his introduction to software development, high performance C++, where functional ideas fit in with high performance C++, CernVM File System, Erlang, an overview of where Rust fits between functional languages and C++, and more.

Topics [@2:25]

About SamThe University of Kent
How Sam was introduced to programmingVisual BasicPHP
Writing a Meta-News analysis site
How Sam first came across Erlang
Exposure to Lisp and Scheme
Getting started in ErlangLearn You Some Erlang for Great Good by Fred HerbertProgramming Erlang (2nd Edition) by Joe Armstrong
“If you want to really learn a language, you have to have some sufficiently difficult task, to make you engage with it properly”
Getting a deeper understanding of the nuances of Erlang
Building a web technology company on ErlangYaws
ehtml
Moving to write Erlang to run on Unikernerl as a final projectUnikernelsXen
How a final project worksRichard Mortier
Migrating the Erlang Virtual Machine to run on bare metalHydrOS
Distributed Operating System
What is the goal of the HydrOS project
Idea of process mobility across devicesArchain
What is a block-chain
What is Archain
How block-chain differs from Git or CRDTs
Proof-of-work
How Archain works to incentivize distribution of archive data
What kinds of information does Archain hope to Archive
Preventing the “Orwellian Memory Hole”Internet Archive
Some of the limitations of the Internet Archive
How Erlang fits with building a block-chain
Simulating large networks
Archain as a platform for writing distributed applicationsSam’s talk at CodeMesh 2017Code BEAM STO 2018

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

In this episode I talk with Fred Herbert. We talk his introduction to Erlang, making languages accessible to the community, productionization as a phase of software, property testing, we wrap up with a tease of how “Everything is Terrible”, and much more.

Topics [@2:35]

About Oskar
How Oskar moved from music to programmingPHP for a band website
What made software become more interesting to move into developmentWordPress
What made to move to looking into other languages
Object-Oriented Programming in PHPC# and .NETJavaScalaHaskell
“Absorbing every advice from people that I respected”
How Oskar was exposed to HaskellLearn You A Haskell
Programming Scala as Java, but with a better syntax
What were the “Ah-Ha” moments when starting to learn Haskell
Static-Dispatch in Haskell vs Dynamic-Dispatch in Java
Implementing an Event StoreEvent Sourcing
Making the move from Haskell in side projects to working in Haskell
Functional JavaScriptReact
Reactive Programming
Implementing functional ideas from Haskell to JavaScript
Giving mini-trainings on functional programming concepts
Dual Feedback loop between play projects and applying to work problems
First work project in HaskellOdenGo languagePureScript
Using a language to deliver small tooling for yourself
Trying to use the best tooling
How Oskar thinks about picking tooling
The Unix Philosophy of “doing one thing and one thing well”
DocumentationSphinxreStructuredTextHyper
PureScript middleware like Express and Connect in Node.js
Representing middleware as a state-machine verified by a type system
Why run PureScript in a Node.js environment?
“That’s a question I always get asked when people ask me about Hyper”Row Polymorphism
Migrating an existing Node.js app to PureScriptpurerlCowboyHardy Jones mentioning purerl on Magic Read Alongservant
Overview of upcoming talk “Finite State Machines – Your Compiler Wants In”Idris
“This is a very nice hammer, but you don’t want to apply it everywhere”CodeMeshHaskell eXchange 2018

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

In this episode I talk with Micheal Sperber. We talk his introduction to programming and functional programming languages, important commonalities across languages, power of syntactic abstraction, teaching programming to beginners and experienced programmers, Concurrent ML, and more.

Topics [@3:03]

About Micheal
How Micheal got into software
How Micheal’s interest in teaching related to his interest in software
Micheal journey of learning different languagesBASICC
Germany’s National Competition of Programmers for high school students
Finding a community of people to learn from
How Micheal came across functional programming
LISPStructure and Interpretation of Computer ProgramsSchemeHopeMirandaHaskell
MLOCamlClojureErlangF#ScalaElixir
What is the core that Micheal finds across functional languages
Immutability
Type Based Design (regardless of static or dynamic typed)
Macros as the “feature wish” for all languages
Hygienic Macros
Power of a common, well known, syntactic abstraction
What Micheal has found about teaching functional languages
“Your students are different than you”
“You have to put some distance between what you teach and what you love”Racket
“You need to have languages designed for teaching, and tooling designed for teaching”Dr. Racket
Commonality of teaching beginning programmers and teaching experienced professionals
Common principles for teaching as starting points
“Keep excitement out of it”Program by DesignHow to Design Programs
Design Recipe
Using types about your data to match information in your problem statement
Lessons from taking the teachers’ excitement out of the curriculum
“Here’s this thing, we don’t care if you love it or not, just do your thing”
Letting the students get excited for themselves.
Difference in thinking in types between dynamically and statically typed languagesConcurrent ML
Overview of similarity and differences in concurrency across functional programming languages
Messages and immutable data
Erlang process model for concurrency
Overview of Concurrent ML
Rendezvous
Algebra of Rendezvous
“It’s like Christmas when you pull it out of the box”
Composition of Rendezvous across different concurrent mechanisms
Wittgenstein “The limits of your language are the limits of your world”
Going back to other concurrency mechanisms after knowing about Concurrent MLcore.async
Concurrent ML as a way of thinkingStandard ML of New Jersey
Extracting Concurrent ML concepts as a library
StarConcurrent Programming in ML
Concurrent ML as the best book on concurrent programmingJohn Reppy Ph.D. thesis
Concurrent ML book on covers multiple paradigmsMike’s upcoming CodeMesh presentationInternational Conference on Functional ProgrammingFunktionale ProgrammierungBOB Konf

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