Categories
Podcasts

Functional Geekery Episode 21 – Andrea Magnorsky

In this episode I talk with Andrea Magnorsky. We talk about her introduction to Functional Programming, F#, and we end by talking about her user group Functional Kats.

Our Guest, Andrea Magnorsky

@silverspoon on Twitter
http://www.roundcrisis.com/
batcatgames.com
Onikira – Demon Killer

Announcements

Erlang User Conference will be taking place in Stockholm, Sweden on the 11th and 12th of June. The largest Erlang event in Europe will feature talks about Erlang/OTP and Elixir innovations, and much more. Visit http://www.erlang-factory.com/euc2015 to find out more and to register. And get a 10% discount on the two days of conference when using the code ‘FnGeekery10’.

I will be giving an Introduction to Erlang workshop at LambdaConf 2015 in Boulder, Colorado. LambdaConf will be taking place the 22nd-24th of May, and has offered a 10% discount of registration with code LambdaConf-Functional-Geekery. For more information and to register go to http://www.degoesconsulting.com/lambdaconf-2015/.

Sponsors

This episode is sponsored by PurelyFunctional.tv. For high quality videos on Clojure, from an intro to Clojure to an in depth look at core.async, Eric Normand has you covered. Videos are downloadable allowing them to be viewed offline and at your leisure, and include exercises to help ensure your learning through interaction. Listeners get a 25% discount off everything with coupon code GEEK. Visit http://purelyfunctional.tv/geekery, and make sure to thank them for being a sponsor.

Topics

About Andrea
How Andrea got interested in functional programming
Phil Trelford
CodeMesh 2013
Andrea’s CodeMesh 2014 presentation
“I don’t think I’m ready for that” is the sign you really are
Seven Languages in Seven Weeks
The poor marketing of F# in the beginning of the language
26 effective Ways to introduce F# into your Organization
FSCheck
FSUnit
Fake
FSCheck and Property Testing
Introducing F# into an existing project
Interoperation between F# and the rest of .NET
No technical reasons to not use F# instead of C# anymore, all are people reasons
Moving code from C# to F#
Andrea on Mostly Erlang podcast
F# on Macs and Mono
Rachel Reese
tryfsharp.org
F# Koans
Going back to Haskell after learning F#
Game Programming in Haskell by Elise Huard
The power of Discriminated Union Types
Pattern Matching in F#
Active Patterns
Active Patterns example
Functional Composition Operators

[0..10] |> List.map (fun x-> x*2)

NULLs in F#
Unit, None, and Option Types
Functional Kats User Group
@functionalkats on Twitter
https://github.com/FunctionalKatas
NDC Oslo
FsReveal
MBrace

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

Categories
Podcasts

Functional Geekery Episode 20 – Eric B. Merritt

In this episode I talk with Eric Merritt. We talk about his background in Erlang, static typing and using OCaml, as well as micro kernels, and the importance operations plays in the developer role.

Our Guest, Eric B. Merritt

@ericbmerritt on Twitter
http://blog.ericbmerritt.com/
[email protected]
https://github.com/afiniate

Announcements

Erlang Factory San Fransisco is coming up on the 26th-27th of March. Guest speakers include Alan Kay, José Valim, Robert Virding, Joe Armstrong, Mike Williams, John Hughes, Bruce Tate and many more. Listeners get a 10% discount when you use the code FnGeekery. To find out more visit http://www.erlang-factory.com/sfbay2015/home

I will be giving an Introduction to Erlang workshop at LambdaConf 2015 in Boulder, Colorado. LambdaConf will be taking place the 22nd-24th of May, and has offered a 10% discount of registration with code LambdaConf-Functional-Geekery. For more information and to register go to http://www.degoesconsulting.com/lambdaconf-2015/.

Sponsors

This episode is sponsored by PurelyFunctional.tv. For high quality videos on Clojure, from an intro to Clojure to an in depth look at core.async, Eric Normand has you covered. Videos are downloadable allowing them to be viewed offline and at your leisure, and include exercises to help ensure your learning through interaction. Listeners get a 25% discount off everything with coupon code GEEK. Visit http://purelyfunctional.tv/geekery, and make sure to thank them for being a sponsor.

Topics

Eric’s Background
Erlang Camp
Erlang and OTP in Action
relx
Eric’s adventures in looking at a number of different languages
Martin Logan one of Eric’s co-authors on Erlang and OTP in Action
Martin J. Logan was a guest on Episode 13
Greenspun’s tenth rule applied to OTP
Erlang has a driver that is not about curiosity, but about scalability
Using a ! in Erlang to send a message is equivalent to using Assembly in C
Erlware
Joxa
“Erlang Runtime System is brilliant”
Why build a LISP on the Erlang VM
Core Erlang
Eric doesn’t love the lack of typing
Dialyzer and Success Typing
Dialyzer is sadly not a replacement for static typing
Static Typing is the next step from Garbage Collection for compliers
Erlang is typed at it’s core
Would love to write a language with static typing on the Erlang VM
Distribution of work between dynamic languages and statically typed languages
The importance of using -spec preprocessor in Erlang
rebar3
Why Eric thinks static typing is extremely important
Eric’s move to use OCaml for his side work
Jane Street’s Async
Using AWS to offset the cost of not having Erlang’s concurrency in OCaml
The problems of lack of static typing as systems grow large
The feeling of confidence when an OCaml program compiles and passes it’s tests
Missing the idea of processes for modeling problem space in OCaml like Erlang has
Microkernels
Erlang on Xen and Mirage for OCaml
Erlang on embedded hardware
Running applications on bare hardware
BSD Rump Kernels
Amazon Machine Image
Open Stack
Docker
The move away from multi-user systems
Operations and Development are the same now
The importance of automating from time to check in to deployment
AWS Cloud Formation
DevOps.com
Chef
Puppet
Ansible
Packer
Resources for understanding the actor model
Akka
Mozart Oz
AliceML
Gambit Scheme
Thinking of Actor Model and distributed concepts as microservices
Eventual Consistency
CAP Theorem
Gossip Protocol
Vector Clocks
Bloom
Concurrency is the future
Look for other articles on DevOps.com
Declarative approach to deployments
Keep and eye on rebar3 for Erlang
https://github.com/afiniate
Beerly Functional Meetup

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

Categories
Podcasts

Functional Geekery Episode 19 – Julie Moronuki and Chris Allen

In this episode I talk with Julie Moronuki and Chris Allen. In this episode we talk about learning Haskell as a non-programmer, and some of the lessons we can learn as we try and teach others.

Our Guests, Julie Moronuki and Chris Allen

Julie is @argumatronic on Twitter
Julie’s blog
Chris is @bitemyapp on Twitter
Chris’ website http://bitemyapp.com/
Haskell Book

Announcements

Erlang Factory San Fransisco is coming up on the 26th-27th of March. Guest speakers include Alan Kay, José Valim, Robert Virding, Joe Armstrong, Mike Williams, John Hughes, Bruce Tate and many more. Listeners get a 10% discount when you use the code FnGeekery. To find out more visit http://www.erlang-factory.com/sfbay2015/home

Sponsors

This episode is sponsored by PurelyFunctional.tv. For high quality videos on Clojure, from an intro to Clojure to an in depth look at core.async, Eric Normand has you covered. Videos are downloadable allowing them to be viewed offline and at your leisure, and include exercises to help ensure your learning through interaction. Listeners get a 25% discount off everything with coupon code GEEK. Visit http://purelyfunctional.tv/geekery, and make sure to thank them for being a sponsor.

Topics

Julie’s blog post LEARNING HASKELL AS A NONPROGRAMMER
How Julie got into learning Haskell from Chris
Similarity between Haskell and Julie’s linguistic background
Julie’s excitement of realizing she can make computer do something
The initial hump of understanding static, runtime, compile time, and interacting with the computer
Learn You a Haskell for Great Good!: A Beginner’s Guide
No resources for someone completely new to programming
Chris’ guide to learning Haskell
CIS 194 from University of Pennsylvania
NICTA course
Haskell: The Craft of Functional Programming (3rd Edition) (International Computer Science Series) by Simpon Thompson
Chris experience teaching people new to programming
Chris’ surprise at Julie’s level of curiosity
Confusion of Types for non-programmers and programmers alike
Why Metaphors and Analogies are generally problematic in teaching
Explaining folding to explaining recursion, and textual unrolling of recursion
SUDDENLY, THE OPPOSITE HAPPENED and A FUNCTIONAL APPROACH TO TALKING ABOUT FEELINGS
Some of the best posts, show how things work step-by-step
Chris’ Monad Transformers talk
Interactive teaching helps, but doesn’t scale as well as blog posts
“Types give you a language for talking about the structure of things”
Alternate between specifics and high-level generalizations when teaching
Dialogs from the IRC channel
Different options for putting together static content to teach someone
Importance of directing readers to resources to fill in the gaps of what they may not know
Would like to see something that takes a person from beginner to building a real application
Oliver Charles’ 24 Days of GHC Extensions
Oliver Charles on Twitter at @acid2
Gabriel Gonzalez’s blog
Chris’ Christmas wish is more people writing/talking about the operational side of Haskell
Erlang War Story Example
Importance of setting expectations up front about learning Haskell
Importance of getting to know your students and their background
How to (Actually) Mentor Someone
Chris would love to see more progression and series blog posts on intermediate material
Haskell Book
Chris’ How I Start post on Haskell

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

Categories
Podcasts

Functional Geekery Episode 18 – Eric Normand

In this episode I talk with Eric Normand. We cover Eric’s background in Clojure, his Clojure videos, core.async, teaching new topics to people, the Pre-Conj Prep for 2014, and his Clojure Gazette.

Our Guest, Eric Normand

@ericnormand on Twitter
http://www.lispcast.com/
http://www.clojuregazette.com/
http://www.purelyfunctional.tv/

Announcements

Seven More Languages in Seven Weeks by Bruce Tate is going to production. If you were wanting to find out more after Episode 15, make sure to check out the book.

Topics

How Eric got into Clojure
Lisp 50 conference
Eric’s Lisp background
Clojure Blog space is lacking beginner info
Dump everything you know into your blog
Write a post about everything in the standard library
People need to know the basics
“I can solve any problem just by typing it into Google”
Intro to Clojure videos
Kickstarter as a way to test for an audience
“I like teaching the basics”
Teaching versus just writing what you know
Kyle Kingsbury’s Intro to Clojure – Clojure from the ground up
Web Development in Clojure
core.async videos
Helping a toy factory make their toys more concurrently
The practical side of using core.async
The process of making the core.async videos
Figure out what concepts one needs to know to understand
Pre-Conj Prep
What he could guess as the background of the talk
“I’ve watched every video from every conj”
(not= DSL macros) video
Asked all the speakers if they wanted to do an interview
Clojure Gazette
The history and influences of Clojure
The ability to think at a higher level of abstraction in Clojure
Caution against being the “Smug Lisp Weenie”
What am I missing that others are being smug about
Guy Steele on bringing C/C++ programmers halfway to Lisp
Rich Hickey’s keynote at RailsConf
Find those things in Clojure that you can’t do in other languages
Continuation Style Passing in Go versus core.async
Solution to Callback Hell – core.async in Browsers
Java Concurrency in Practice
Rich Hickey’s Reading List
Import to get concurrency in from the beginning
core.async gives you a local event loop
core.async channels compared to the actor model

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

Categories
Podcasts

Functional Geekery Episode 17 – José Valim

In this episode I talk with José Valim. We cover what prompted him to create a new language, design decisions in Elixir, what is needed for a 1.0 release, and much, much more.

Our Guest, José Valim

@josevalim on Twitter
@elixirlang on Twitter
plataformatec

Announcements

Listeners of Functional Geekery get 10% off CodeMesh 2014 when you use offer code fngeekery10.
Global Day of Coderettreat is November 15th. To find a Coderetreat in your area, or to organize one go to http://coderetreat.org/.
Seven More Languages in Seven Weeks by Bruce Tate is going to production. If you were wanting to find out more after Episode 15, make sure to check out the book.

Topics

Why Elixir
Making Rails Thread-safe
The Free Lunch is Over
“I want the next thing I write to be running on this [Erlang] Virtual Machine”
Things missing from Erlang
Inspirations and Influences for Elixir
The focus on being a very welcoming place
Protocols from Clojure for polymorphism
nil from The Joy of Clojure
The Forming of the Community around Elixir
Introducing Elixir by Simon St. Laurent
Programming Elixir by Dave Thomas
ElixirConf
Feedback from the Community
1.0 as A Solid Foundation for the Language
Elixir kernel
IEx
ExUnit
Mix
EEx – embedded Elixir
Logger – Format error messages nicely for Elixir
Riak
Lager from Basho
Package Management
Hex by Eric Meadows-Jönsson
Integration story between Erlang and Elixir
Starting over on Elixir
Separated “What I wanted from how I wanted it”
Getting to a very small core and build everything around it using macros
Exercise in Patience and taking time to thing about solutions
How Macros Work in Elixir
A Week with Elixir by Joe Armstrong
Ability to support version tagging Elixir code
Robert Virding in #elixir-lang on IRC
Issues shared between Elixir and Erlang
Requirement of all functions need to be defined in a module for code reloading
Ability for Hot Code Loading in Elixir
Extending OTP Behaviors in Elixir
Agents and Tasks for breaking apart a gen_server in Elixir
Agents are about state and Tasks about behavior
Thinking of gen_event as a stream of transformations
Time for the Community and Ecosystem to Grow
elixir-lang.org
Elixir Sips
ElixirConf and talks recorded by Confreaks
ElixirConf in Europe
StrangeLoop Conference and videos
#elixir-lang
elixir-lang-talk and elixir-lang-core mailing lists

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

Categories
Podcasts

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

Announcements

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 http://coderetreat.org/.

Topics

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
Cortana
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
http://rxmarbles.com/
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.

Categories
Podcasts

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

Announcements

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 http://coderetreat.org/.

Topics

Background of Seven Languages in Seven Weeks
Fear driven learning
“Prag” Dave Thomas
Beyond Java
Bruce’s intro to Ruby
cognitect
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?
Ruby
Io
Prolog
Scala
Erlang
Haskell
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
Webmachine
Mix
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.

Categories
Podcasts

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

http://richardminerich.com/
@rickasaurus on Twitter
rickasaurus on Vimeo
rickasaurus on GitHub
BayardRock on GitHub

Announcements

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.

Topics

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.

Categories
Podcasts

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

http://blog.erlware.org
@martinjlogan on Twitter
@erlangcamp on Twitter
@erlware on Twitter

Topics

Martin’s Background
Why Threads are a Bad Idea by John Ousterhaut
Erlware
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
DevOps.com

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

Categories
Podcasts

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

http://blog.adrianbolboaca.ro/
@adibolb on Twitter

Topics

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
CodeRetreat.org
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.