Houston Functional Programmers

OCaml Café
2021-04-13 19:00 - 21:00 (America/Chicago) | Zoom
OCaml Café offers a friendly, low stakes opportunity to ask questions about the OCaml language and ecosystem, work through programming problems that you’re stuck on, and get feedback on your code. Especially geared toward new and intermediate users, experienced OCaml developers will be available to answer your questions.
Whether you’re still trying to make sense of currying or can spot non-tail-recursive code from across the room, we hope that you’ll join us with your questions about OCaml, or just to hang out with the OCaml community.

Claude Rubinson is inviting you to a scheduled Zoom meeting.
Topic: OCaml Café
Time: Apr 13, 2021 07:00 PM Central Time (US and Canada)
Join Zoom Meeting
https://uhd.zoom.us/j/99602029816?pwd=[REDACTED]
Meeting ID: 996 0202 9816
Passcode: [REDACTED]
One tap mobile
+13462487799,,99602029816# US (Houston)
+12532158782,,99602029816# US (Tacoma)
Dial by your location
+1 346 248 7799 US (Houston)
+1 253 215 8782 US (Tacoma)
+1 669 900 6833 US (San Jose)
+1 646 558 8656 US (New York)
+1 301 715 8592 US (Washington DC)
+1 312 626 6799 US (Chicago)
Meeting ID: 996 0202 9816
Find your local number: https://uhd.zoom.us/u/aSIwDXzK
Join by SIP
99602029816@zoomcrc.com
Join by H.323
162.255.37.11 (US West)
162.255.36.11 (US East)
115.114.131.7 (India Mumbai)
115.114.115.7 (India Hyderabad)
213.19.144.110 (Amsterdam Netherlands)
213.244.140.110 (Germany)
103.122.166.55 (Australia Sydney)
103.122.167.55 (Australia Melbourne)
149.137.40.110 (Singapore)
64.211.144.160 (Brazil)
69.174.57.160 (Canada Toronto)
65.39.152.160 (Canada Vancouver)
207.226.132.110 (Japan Tokyo)
149.137.24.110 (Japan Osaka)
Meeting ID: 996 0202 9816
Passcode: [REDACTED]
Join by Skype for Business
https://uhd.zoom.us/skype/99602029816

Debasish Ghosh, "Functional and Algebraic Domain Modeling"
2021-03-24 19:00 - 21:00 (America/Chicago) | Zoom
[Please note that we will be meeting a week later than usual this month: on the 4th Wednesday of March, rather than the 3rd Wednesday.]
From algebra of types to the algebra of domain models – the talk focuses on how an algebraic approach with pure functional programming can help evolve domain models in real life use cases. The secret sauce is “compositionality” – the talk demonstrates how carefully developed combinators compose algebraically to evolve into larger domain abstractions from smaller ones. And this composition is type-safe which implies that most of our domain invariants are statically checked and verified during compilation time. In course of the talk we develop real life use cases and demonstrate the veracity of our algebraic approach. The talk also discusses how to model side-effects as pure algebraic abstractions and make them composable along with the rest of the domain model.
The talk uses Scala, a functional programming language that offers strong typing. And we will see how the strong type system plays an important role in designing type-safe domain models.
Speaker Biography: Foodie, father, husband and Seinfeld fanboy. Senior member of ACM and loves spending time with his beautiful family. Passionate about technology and open source, loves functional programming, math and machine learning. Authored 2 books – (a) DSLs In Action and (b) Functional & Reactive Domain Modeling both published by Manning. Tweets at @debasishg, blogs at “Ruminations of a Programmer” (http://debasishg.blogspot.com).

Connection Info
Claude Rubinson is inviting you to a scheduled Zoom meeting.
Topic: Houston Functional Programmers
Time: Mar 24, 2021 07:00 PM Central Time (US and Canada)
Join Zoom Meeting
https://uhd.zoom.us/j/99098372555
Meeting ID: 990 9837 2555
Passcode: [REDACTED]
One tap mobile
+13462487799,,99098372555# US (Houston)
+16699006833,,99098372555# US (San Jose)
Dial by your location
+1 346 248 7799 US (Houston)
+1 669 900 6833 US (San Jose)
+1 253 215 8782 US (Tacoma)
+1 312 626 6799 US (Chicago)
+1 646 558 8656 US (New York)
+1 301 715 8592 US (Washington D.C)
Meeting ID: 990 9837 2555
Find your local number: https://uhd.zoom.us/u/abaGfErkf
Join by SIP
99098372555@zoomcrc.com
Join by H.323
162.255.37.11 (US West)
162.255.36.11 (US East)
115.114.131.7 (India Mumbai)
115.114.115.7 (India Hyderabad)
213.19.144.110 (Amsterdam Netherlands)
213.244.140.110 (Germany)
103.122.166.55 (Australia)
149.137.40.110 (Singapore)
64.211.144.160 (Brazil)
69.174.57.160 (Canada)
207.226.132.110 (Japan)
Meeting ID: 990 9837 2555
Passcode: [REDACTED]
Join by Skype for Business
https://uhd.zoom.us/skype/99098372555

OCaml Café
2021-03-09 19:00 - 21:00 (America/Chicago) | Zoom
OCaml Café offers a friendly, low stakes opportunity to ask questions about the OCaml language and ecosystem, work through programming problems that you’re stuck on, and get feedback on your code. Especially geared toward new and intermediate users, experienced OCaml developers will be available to answer your questions.
Whether you’re still trying to make sense of currying or can spot non-tail-recursive code from across the room, we hope that you’ll join us with your questions about OCaml, or just to hang out with the OCaml community.

Connection Info
Claude Rubinson is inviting you to a scheduled Zoom meeting.
Topic: OCaml Café
Time: Mar 9, 2021 07:00 PM Central Time (US and Canada)
Join Zoom Meeting
https://uhd.zoom.us/j/95242455982?pwd=[REDACTED]
Meeting ID: 952 4245 5982
Passcode: [REDACTED]
One tap mobile
+13462487799,,95242455982# US (Houston)
+12532158782,,95242455982# US (Tacoma)
Dial by your location
+1 346 248 7799 US (Houston)
+1 253 215 8782 US (Tacoma)
+1 669 900 6833 US (San Jose)
+1 646 558 8656 US (New York)
+1 301 715 8592 US (Washington DC)
+1 312 626 6799 US (Chicago)
Meeting ID: 952 4245 5982
Find your local number: https://uhd.zoom.us/u/af3P5eM4H
Join by SIP
95242455982@zoomcrc.com
Join by H.323
162.255.37.11 (US West)
162.255.36.11 (US East)
115.114.131.7 (India Mumbai)
115.114.115.7 (India Hyderabad)
213.19.144.110 (Amsterdam Netherlands)
213.244.140.110 (Germany)
103.122.166.55 (Australia Sydney)
103.122.167.55 (Australia Melbourne)
149.137.40.110 (Singapore)
64.211.144.160 (Brazil)
69.174.57.160 (Canada Toronto)
65.39.152.160 (Canada Vancouver)
207.226.132.110 (Japan Tokyo)
149.137.24.110 (Japan Osaka)
Meeting ID: 952 4245 5982
Passcode: [REDACTED]
Join by Skype for Business
https://uhd.zoom.us/skype/95242455982

Christopher Bremer, "A More Expressive Foreign Function Interface (with F# Computation Expressions)"
2021-02-24 19:00 - 21:00 (America/Chicago) | Zoom
Note: Due to the winter storm in Houston, we’ve rescheduled this talk for the following week at Wed 2/24 at 7pm. Connection info remains the same.

Abstract: One of the funny things about working with engineers is how differently they think about programming. They use strange languages (MATLAB! ANSYS!) and are far more concerned about vectors and meshes than serialization and data structures. I will talk about how using an expressive language like F# allows me to foster a productive relationship with development engineers. In particular, I will show how I use F# computation expressions to interface with MATLAB in a way that does not sacrifice comprehensibility.
Bio: Chris is a software engineer working in the energy industry. Previously, he was a mathematician studying algebraic geometry and an amateur jazz musician. He lives north of Houston with his family where he enjoys thinking about math and programming, listening to jazz, and reading.

Connection Info
Claude Rubinson is inviting you to a scheduled Zoom meeting.
Topic: Houston Functional Programmers
Time: Feb 17, 2021 07:00 PM Central Time (US and Canada)
Join Zoom Meeting
https://uhd.zoom.us/j/93895136136?pwd=[REDACTED]
Meeting ID: 938 9513 6136
Passcode: [REDACTED]
One tap mobile
+13462487799,,93895136136# US (Houston)
+12532158782,,93895136136# US (Tacoma)
Dial by your location
+1 346 248 7799 US (Houston)
+1 253 215 8782 US (Tacoma)
+1 669 900 6833 US (San Jose)
+1 301 715 8592 US (Washington DC)
+1 312 626 6799 US (Chicago)
+1 646 558 8656 US (New York)
Meeting ID: 938 9513 6136
Find your local number: https://uhd.zoom.us/u/aSIwDXzK
Join by SIP
93895136136@zoomcrc.com
Join by H.323
162.255.37.11 (US West)
162.255.36.11 (US East)
115.114.131.7 (India Mumbai)
115.114.115.7 (India Hyderabad)
213.19.144.110 (Amsterdam Netherlands)
213.244.140.110 (Germany)
103.122.166.55 (Australia Sydney)
103.122.167.55 (Australia Melbourne)
149.137.40.110 (Singapore)
64.211.144.160 (Brazil)
69.174.57.160 (Canada Toronto)
65.39.152.160 (Canada Vancouver)
207.226.132.110 (Japan Tokyo)
149.137.24.110 (Japan Osaka)
Meeting ID: 938 9513 6136
Passcode: [REDACTED]
Join by Skype for Business
https://uhd.zoom.us/skype/93895136136

OCaml Café
2021-02-11 19:00 - 20:00 (America/Chicago) | Zoom
Join us with your questions about the OCaml language, or just to hang out with the OCaml community. Especially geared toward new and intermediate users, experienced OCaml developers will be available to answer your questions about the language and ecosystem.
Whether you’re still trying to make sense of currying or can spot non-tail-recursive code from across the room, we hope that you’ll join us.

Connection Info

Claude Rubinson is inviting you to a scheduled Zoom meeting.
Topic: OCaml Cafe
Time: Feb 11, 2021 07:00 PM Central Time (US and Canada)
Join Zoom Meeting
https://uhd.zoom.us/j/99716496079?pwd=[REDACTED]
Meeting ID: 997 1649 6079
Passcode: [REDACTED]
One tap mobile
+13462487799,,99716496079# US (Houston)
+16699006833,,99716496079# US (San Jose)
Dial by your location
+1 346 248 7799 US (Houston)
+1 669 900 6833 US (San Jose)
+1 253 215 8782 US (Tacoma)
+1 646 558 8656 US (New York)
+1 301 715 8592 US (Washington DC)
+1 312 626 6799 US (Chicago)
Meeting ID: 997 1649 6079
Find your local number: https://uhd.zoom.us/u/aSIwDXzK
Join by SIP
99716496079@zoomcrc.com
Join by H.323
162.255.37.11 (US West)
162.255.36.11 (US East)
115.114.131.7 (India Mumbai)
115.114.115.7 (India Hyderabad)
213.19.144.110 (Amsterdam Netherlands)
213.244.140.110 (Germany)
103.122.166.55 (Australia Sydney)
103.122.167.55 (Australia Melbourne)
149.137.40.110 (Singapore)
64.211.144.160 (Brazil)
69.174.57.160 (Canada Toronto)
65.39.152.160 (Canada Vancouver)
207.226.132.110 (Japan Tokyo)
149.137.24.110 (Japan Osaka)
Meeting ID: 997 1649 6079
Passcode: [REDACTED]
Join by Skype for Business
https://uhd.zoom.us/skype/99716496079

Francois Berenger, "OCaml Batteries Included: An Open-Source Extended Standard Library for OCaml"
2021-01-20 19:00 - 21:00 (America/Chicago) | Zoom (connection info provided in comments)
OCaml is a strongly-typed functional programming language with type-inference, born in France at INRIA. One particularity of OCaml is that while the compiler is developed in a pristine cathedral, the ecosystem of libraries offer a fantastic bazaar. In this bazaar, one can find no less than three alternative standard libraries: Batteries, Containers, and Jane Street’s Base/Core. While the OCaml compiler ships with a library called the stdlib, it is intentionally kept relatively sparse in terms of features and contains non tail-recursive code. On the contrary, the extended standard libraries offer rich feature sets and aim to embed only production-ready (safe) tail-recursive code. First released in 2008, OCaml Batteries Included (“Batteries”) is a community-driven effort that extends the stdlib with additional data structures and functionalities. Dr. Francois Berenger (Kyushu Institute of Technology, Japan), one of Batteries’ active maintainers will give us a tour of Batteries and discuss the pros and cons of competing extended libraries.
Speaker Biography: Francois Berenger, Ph.D. is a chemoinformatics method development postdoc researcher at Kyushu Institute of Technology, Japan. Francois specializes in molecular encoding, molecular similarity search and predictive modeling of chemical datasets. Francois is an active proponent of open-source and open-data in science and one of the active maintainers of “Batteries,” an alternative extended standard library for the OCaml programming language.

Holiday Social
2020-12-16 19:00 - 21:00 (America/Chicago) | Online
In lieu of a speaker, we will gather online for end-of-the-year merrymaking. BYOB!
Connection information is below.

Eric Normand, "Grokking Simplicity"
2020-11-18 19:00 - 21:00 (America/Chicago) | Zoom (connection info provided in comments)
What is functional programming? Sure, there are academic answers, but is there a good definition that encompasses all that we do in day-to-day software engineering? In his forthcoming book Grokking Simplicity, Eric Normand gathers functional programming practices from the industry, distill them down, and teach them to beginners.
In this talk, Eric will present functional programming as a set of skills, not a dogma about programming style. Then we’ll learn some practical skills you can apply at your work, regardless of the programming language or paradigm you use. You’ll get a good sense of the style and scope of the book, and he’ll present some sneak peeks at upcoming chapters.
Eric Normand is a functional programming teacher, writer, and consultant. You can find him teaching functional programming on PurelyFunctional.tv and LispCast.com. He is the host of the podcast Thoughts on Functional Programming and author of Grokking Simplicity, published by Manning. He lives in New Orleans, where he was raised.
λ
Giveaways! Thanks to the generosity of Eric and Manning, we will have copies of Grokking Simplicity to give away and discounts for Manning publications!

Adam Gordon Bell, "Functional Programming is Undefined"
2020-10-21 19:00 - 21:00 (America/Chicago) | Zoom (connection info provided in comments)
Functional Python Programming and Verified Functional Programming in Agda are both books teaching functional programming. Yet the books are about very different things. How can this be? Over the course of 58 interviews, Adam Gordon Bell has interviewed many experts on software development. These include programming language creators, high-performance computing experts, and functional programming gurus. In this session, Adam will share some behind-the-scenes information about the podcast and a collection of insights he has learned from his guests. One of these insights is that functional programming, as a term, is undefined.

Adam is a software engineer and an open-source advocate. He is currently working on the open-source build tool earthly (http://earthly.dev/) . He is the host of the popular software development podcast Corecursive (http://corecursive.com/).

Office Hours
2020-09-16 19:00 - 21:00 (America/Chicago)
This month, we’ll be having office hours in lieu of a speaker. This is a chance to show off works-in-progress, ask questions or generally help others out with any kinds of questions in functional programming languages. Feel free to BYOBeverage and chat if you like.

"That's so META" with John Cavnar-Johnson
2020-08-19 19:00 - 21:00 (America/Chicago)
Please join us this Wednesday night at 7 pm CDT when John Cavnar-Johnson will discuss “That’s so META”, a talk about “metaprogramming” – what is metaprogramming? Join us and find out!

What happens when an ordinary programmer discovers that the META (Most Effective Tactic Available) for the problem at hand is metaprogramming? Metaprogramming (where code treats other code as data) has long been a tool mostly reserved for the “big brain” computer scientists. In this session, I use some existing metaprogramming tools to cobble together a solution to a real world problem (bridging the gap between a relational data model and F# discriminated unions and record types). If an old liberal arts major can pull this off, you can too.
John Cavnar-Johnson is a software developer/architect working as a Principal Consultant for Improving. In the last 30 years, he’s been a corporate developer, IT sysadmin, trainer, software development manager, IT enterprise architect, consultant, and entrepreneur, but mostly he’s spent his time solving problems and hooking stuff together. In his spare time, he likes reading, drinking craft beer, and playing with his grandkids.

Jean Yang of Akita Software
2020-06-17 19:00 - 21:00 (America/Chicago)
I am excited to welcome Jean Yang as our guest for our meetup this Wednesday, June 17 at 7 pm CDT. She will be discussing:

We need API tools as much as we need developer tools
Fuzzing as a formal method for correctness

She is also going to cover some of the work she and her team at Akita Software have been working on.
Please join us! This should be very interesting. We will once again be using Zoom to handle our meetup. The URL is:
https://zoom.us/j/92789988549?pwd=[REDACTED]

Introduction to Pony with Sean T. Allen
2020-05-20 19:00 - 21:00 (America/Chicago)
I am excited to announce that Sean T. Allen will be joining us to provide an informal introduction to the Pony programming language.

Functional Geekery's Steven Proctor
2020-04-15 19:00 - 21:00 (America/Chicago)
I am excited to announce that our virtual guest this month will be Steven Proctor, the host of the Functional Geekery podcast. He will be joining us on Google Hangout to talk about his podcast – how he produces it, how he selects guests and other topics!
I hope you can join us this month on our Hangout on Wednesday, April 15, 2020, 7 pm CDT. I made the invite public so you should be able to RSVP on it as well as get the Hangout URL from there.

Introduction to Erlang with Mark Allen
2020-02-19 19:00 - 21:00 (America/Chicago) | Improving, 10111 Richmond Ave, Suite 100, Houston, TX, 77042, United States
Join us Wednesday February 19, 2020 at 7:00 pm for an introduction to the Erlang programming language and its run-time system. We haven’t had an “Intro to…” talk for a while, so Mark Allen will be leading a session to help you dip your toes into the warm and sometimes slightly weird water of functional programming. No prior experience with functional programming or Erlang is needed. Beginners are welcome.

"Pure Operation-Based Replicated Data Types" with Gyan Aggarwal
2020-01-15 19:00 - 21:00 (America/Chicago) | Improving, 10111 Richmond Ave, Suite 100, Houston, TX, 77042, United States
This month Gyan Aggarwal will present a talk on the paper “Pure Operation-Based Replicated Data Types” by Carlos Baquero, Paulo Sergio Almeida and Ali Shokar. What is a CRDT? It’s a special kind of data type which can be synchronized to the same state across multiple replicas as long as all replicas get all of the messages.
Paper abstract: Distributed systems designed to serve clients across the world often make use of geo-replication to attain low latency and high availability. Conflict-free Replicated Data Types (CRDTs) allow the design of predictable multi-master replication and support eventual consistency of replicas that are allowed to transiently diverge. CRDTs come in two flavors: state-based, where a state is changed locally, shipped and merged into other replicas; operation-based, where operations are issued locally and reliably causal broadcast to all other replicas. However, standard definition of op-based CRDT is very encompassing, allowing even sending the full-state, and thus imposing storage and dissemination overheads as well as blurring the distinction from state-based CRDTs. Pure Operation-Based CRTDs send only operations to other replicas, drawing a clear distinction from state-based CRDTs.
Our talk this month will be on Wednesday, January 15, 2020 at 7:00 pm. Our meeting will be held at Improving, 10111 Richmond Ave, Suite 100, Houston, TX 77042. There is plenty of free parking in front of the building. Click here to get directions.

Holiday Social
2019-12-18 19:00 - 21:00 UTC | Ron’s Pub, 1826 Fountain View Dr, Houston, TX, 77057, United States
Join us as we gather for a few holiday drinks at Ron’s Pub near Fountain View and San Felipe just north of the Galleria on December 18, 2019 from 7 until 8:30 or 9. There’s no speaker and no agenda: you can come and go as you like. Hope to see you there!
We will be back to our usual meetings in January! Have a wonderful holiday season, y’all.

Probabilistic Record Linkage of Hospital Patients with Chris Oakman
2019-11-19 19:00 - 21:00 UTC | The Cannon, 1334 Brittmoore Road, Houston, 77043, United States
How can you tell if a patient is the same person across all the different electronic systems used in a hospital?
Can you be confident with messy data when lives are on the line?
Medical startup Luminare faced this challenge in a hospital setting and used Clojure to save the day and make the nurses happy again.
This talk will explore the challenge of record linking: dealing with dirty data sets, the pros and cons of different solution approaches, and using the Felligi-Sunter method to create a probabilistic algorithm to match records.
Three Main Ideas of the Talk
https://en.wikipedia.org/wiki/Record_linkage
1) What is Record Linkage? ie: how to recognize the problem
2) What is the space of possible solutions? Different kinds of data require different solution approaches. How to recognize which methods will work best with your dataset.
3) Creating a probabilistic algorithm using the Felligi-Sunter method. I will walk the audience through the creation of a real-world probabilistic algorithm using Clojure.
Speaker Bio
Chris Oakman is a software developer, designer, and educator from Houston, TX.
He works at Luminare – a medical startup based out of the Texas Medical Center – and teaches software development at DigitalCrafts – a coding bootcamp school.
He is the author of several open source projects, including the cljs.info cheatsheet, the CLJS logo, and several Parinfer ports and editor plugins.
Location, time and RSVP
We will be meeting at The Cannon, which is nearby the intersection of Beltway 8 and I-10. While our normal meeting time is the third Wednesday, this month we will be meeting on Tuesday November 19, 2019.
