Skill Piper

Send feedback

CPAN - This Day In History

CPAN - This Day In History

CoRecursive: Coding Stories 1 August 2022

Episode Description

CPAN was the first open-source software module repository. And on this day, Aug 1st, in 1995, CPAN was first announced to a private group of PERL users.

If you are building things today by pulling in various packages from various open source places – and really, who isn’t – then the history of how this world came to be is essential.

Episode Page

Support The Show

Subscribe To The Podcast

Join The Newsletter

...see more

More Episodes


From Prison To Programming

From Prison To Programming

I believe that getting underrepresented groups into software development is a good thing. This is not a controversial opinion until you start talking about felons.    Today's guest is Rick Wolter. He's an iOS developer who served 18 years in prison for second degree murder.  Rick killed somebody and for some that's all they need to know about Rick. But today's episode is about Rick's path to redemption him, teaching himself to code in prison, smuggling in a Python interpreter, and then getting out and trying to get a job as a dev when you're a felon. Episode Page Support The Show Subscribe To The Podcast Join The Newsletter UnderDog Devs

2 September 2022


The History and Mystery Of Eliza

The History and Mystery Of Eliza

I recently got an email from Jeff Shrager, who said he'd been working hard to solve a mystery about some famous code. Eliza, the chatbot, was built in 1964, and she didn't answer questions like Alexa or Siri. She asked questions. She was a therapist chatbot and quickly became famous after being described in a 1964 paper.  But here is the mystery. We're not sure how the original version worked. Joseph Weizenbaum never released the code. But Jeff tracked it down, and some of the things we thought we knew about Eliza turned out to be wrong.   Episode Page Support The Show Subscribe To The Podcast Join The Newsletter

5 July 2022


Why still 80 columns?

Why still 80 columns?

On June 1st, 2014, the following question showed up on hacker news:  "Why is 80 characters, the standard limit for code width." You probably know what happens next. People started to post their opinions and the comments and other people started to disagree. The posts spread around the internet.  So that is going to be today's show: Let's answer this question.   It's a question about traditions and teamwork, and how preexisting idioms shape us and help us, but sometimes restrict us.  Episode Page Support The Show Subscribe To The Podcast Join The Newsletter

1 June 2022


LISP in Space

LISP in Space

Have you ever had a unique approach to a problem and been excited to use it, but you're met with skepticism?   Today's story: what happens if you take someone who's passionate about LISP and put them in an organization where that's just not how they write software.   Today's story is about getting LISP into space. Episode Page Support The Show Subscribe To The Podcast Join The Newsletter

2 May 2022


April Fools' Is Cancelled

April Fools' Is Cancelled

On this day in 2014 "lame april fools' jokes" were banned from hacker news.    Today in our first This-Day-in-History segment, I want to share some of history not just of April Fools', but of tech pranks in general, all leading up to 2014.  Why were pranks and April Fools' jokes traditionally celebrated in tech? Why are they now considered as dang said, "lame?"? And is there anything we can do to save them? Those are today's questions. Episode Page Support The Show Subscribe To The Podcast Join The Newsletter

1 April 2022


The Story Graph with Nadia Odunayo

The Story Graph with Nadia Odunayo

Whenever I work on a side project, I can't help but daydream of it taking off in a big way. For today's guests, something like that did happen.    When Nadia started building her side project, she didn't know that it would end up spreading virally. She didn't know that it would end up competing with an Amazon product. She didn't know that keeping it up would be something that would drive her close to tears. Episode Page Support The Show Subscribe To The Podcast Join The Newsletter

2 March 2022


Serenity OS

Serenity OS

How would you build an operating system?     My answer is I wouldn't. First off, I don't know how. And the second thing is it seems like to large of a task. It took thousands of developers to build Windows XP.  But actually, it is possible to build an operating system from scratch. My guest is doing it. Andreas Kling created SerenityOS starting from an empty Git repository. So today, I find out how he did it, how this is possible. But mainly today, I find out why. Why build an operating system from scratch? And it all started in the 2010s when Andreas worked at Apple.  Episode Page Support The Show Subscribe To The Podcast Join The Newsletter

1 February 2022


The Internet Is Made of Duct Tape

The Internet Is Made of Duct Tape

Today, I have two of my favorite guests together: Krystal Maughan and Don McKay. We are going to be sharing strange and interesting facts about computing. I'm super pumped about this because, sometimes, I learn something new, and I'm excited about it. And I want to tell people about it. And so today is a chance for Don and Krystal and I to share some of these "Oh, my God. Did you guys see this?" stories. Episode Page Support The Show Subscribe To The Podcast Join The Newsletter

2 January 2022


Cocoa Culture

Cocoa Culture

The last episode, I said I wasn't sure there was such a thing as culture, but that's not the case. Every place I've worked has been a bit different, and often those differences had huge impacts on the software we built. The team where people roll their eyes at UX feedback will not have as simple of a product as a team where the user experience is highly valued. If software performance isn't valued, the end result won't be performant. Today, I found an expert on observing developer cultures. Hansen Hsu worked on the AppKit team at Apple, and he's here to talk about this mushy concept called culture. How does it manifest? How does it affect what people build? And how can it lead to beautiful software? Episode Page Support The Show Subscribe To The Podcast Join The Newsletter

2 December 2021


Leaving Debian

Leaving Debian

Today’s story is an insider view of Debian. One of the oldest Linux distributions and probably one of the longest-running volunteer-based open-source projects. Joey Hess is my guest, and he dedicated significant parts of his adult life to working on Debian. He’s going to share what that was like. The good and the bad, and it’s almost all good. It’s a story about open source software, but it’s also about community and teamwork Links: Episode Page Support The Show Subscribe To The Podcast Join The Newsletter

2 November 2021


The Original Remote Developer

The Original Remote Developer

Today's episode is about remote work. Well, sort of. I found someone with a different perspective on remote work and a fantastic story to share, Paul Lutus. I think that he might be the original remote software developer. He left California behind for a lower cost of living in Oregon. And from Oregon, he developed software for Apple. But the kind of surprising thing is he did this in the 1970s! And he did it so well he became rich and even briefly quite famous. Episode Page Subscribe To Podcast Newsletter You can support the podcast and encourage me to keep making it on patreon.

4 October 2021


Quines, Polygot Code, and Other Fun Computations

Quines, Polygot Code, and Other Fun Computations

Today, previous guest and my neighbor Don Mckay and I will discuss items from the endless fascinating Cursed Computer Iceberg Meme. The Iceberg is a giant list of "the peculiarities and weirdness of computers." We each a few items from the list and alternate explaining it to each other. Don's choices are varied, and mine focus on quines and esoteric coding problems. We also share some coding horror stories from our past. You can support the podcast and encourage me to keep making it on patreon. Episode Page Subscribe To Podcast Newsletter

2 September 2021


Full-Time Open Source

Full-Time Open Source

Today's show: How to Quit Your Job and Work on Open Source Full Time. This story has it all, balancing open source work and full-time employment, building up enough supporters and enough savings to leave your job. The hardest part to me which is explaining leaving your job to your significant other and to your family and friends. And also what do you do if your project succeeds, and then someone forks it and builds a commercial business around it? There's a lot more as well dealing: with hacker news feedback, how to improve upon the C programming language and how to be super ambitious without seeming arrogant. Sponsor the podcast: If you go to patreon.com/adamgordonbell, you can find the Patreon page for the podcast, and if you are enjoying these episodes and want me to keep putting more time into them, think about setting up a recurring donation. Links: Andrew’s personal website Zig

2 August 2021


The Most Popular Database In The World

The Most Popular Database In The World

On today's show, I'm talking to Richard Hipp about surviving becoming core infrastructure for the world. SQLite is everywhere. It's in your web browser, it's in your phone, it's probably in your car, and it's definitely in commercial planes. It's where your iMessages and WhatsApp messages are stored, and if you do a find on your computer for *.db, you'll be amazed at how many SQLite databases you find. Today, Richard is going to share his story. It's the story of creating a small open source project and having it grow beyond your wildest ambitions. It's the story of following that success wherever it leads: From relationships with tech-giants to interesting testing procedures and more. Episode Page Subscribe To Podcast Newsletter

2 July 2021


From Competitive Programming to APL

From Competitive Programming to APL

Today on the show, we have solving algorithmic programming problems. You know when you interview for a job to write CSS and they ask you to reverse a binary tree on the whiteboard using C and in constant memory space? It's that kind of thing. These problems have their roots in algorithmic programming contests. And our guest, Conor Hoekstra, is a former competitor. Episode Page

2 June 2021


Ethereum Rescue

Ethereum Rescue

Today I talk to Dan Robinson about trying to get someone their money back on Ethereum. He's going to be battling this murky world of blockchain high-frequency bots. Along the way, we'll learn how trades are executed on Ethereum and a bit of game theory and political philosophy. It's an entertaining peek into a world that seems like pure science fiction to me, a world where nobody's in charge, where there's no regulation, and where these forces of greed and idealism are in direct conflict with each other Episode Page / Transcript

2 May 2021


Apple 2001

Apple 2001

David Shayer worked at Apple for 14 years, and he has a wild experience to share. Apple has a unique culture, and David will give us an insider view of what it was like for him at Apple during the 2000s, roughly between 2001 to 2015 when Apple transformed into the powerhouse that it is today. David worked as a Software Engineer but for the hardware organization with Apple. He worked on a few special projects at Apple: at least one of them was top secret. But he is also going to share the struggles of building file systems and working on really short timelines and having development plans upended by Steve jobs. Episode Page

3 April 2021


Video Game Programming From Scratch

Video Game Programming From Scratch

I'm not really a big gamer, but lately, I've fallen down this rabbit hole into the world of Casey Muratori, and this project that he started on Twitch in 2014. He is building a video game from scratch and explaining it all as he goes along. Casey is a professional video game and game engine, creator. He has been doing it for over 30 years. His approach to development feels a little bit like it's from the 1970s. Yet, it resonates with many smart people who are learning how to truly build things and understand fundamentals from Casey. Casey has a lesson about learning and teaching for us all.   Episode Page

1 March 2021


Reinforcement Learning At Facebook with Jason Gauci

Reinforcement Learning At Facebook with Jason Gauci

If you ever wanted to learn about machine learning you could do worse than have Jason Gauci teach you. Jason has worked on YouTube recommendations. He was an early contributor to TensorFlow the open-source machine learning platform. His thesis work was cited by DeepMind. But what I find so fascinating with Jason is he recognized this problem that was being solved the wrong way and set out to find a solution to it. So that's the show today. Jason is going to share his story. Links: ReAgent.ai Programming Throwdown Episode Bonus

1 February 2021


2020 Year End

2020 Year End

Welcome to the year-end episode. Today is all the bonus questions. Often times I have questions that I want to ask guests, but they don't quite fit the overall theme of the episode. So today we're going to do a whole episode of those extra questions. I have previously recorded questions for Brian Kernaghan, the creator of AWK among many other things. I have questions for Sean Allen, who works at Microsoft Research, and a couple of other people. Episode Page: http://corecursive.com/060-2020-year-end Slack Channel: https://rebrand.ly/corec_slack Twitter: https://twitter.com/adamgordonbell

1 January 2021


Frontiers of Performance with Daniel Lemire

Frontiers of Performance with Daniel Lemire

Did you ever meet somebody who seemed a little bit different than the rest of the world? Maybe they question things that others wouldn’t question or said things that others would never say. Daniel is a world-renowned expert on software performance, and one of the most popular open source developers, if you measure by get up followers. Today, he’s gonna share his story. It involves time at a research lab, teaching students in a new way. It will also involve upending people’s assumptions about IO performance.  Elon Musk And Julia Roberts will come up a little bit more than you might expect. Episode Page Episode Transcript Links: Daniel's Blog Daniel's Github Parsing JSON Really Quickly: Lessons Learned

1 December 2020


The Birth of Unix with Brian Kernighan

The Birth of Unix with Brian Kernighan

As Brian Kernighan said “UNIX since the start has become a vehicle for creating and using programming languages.” Brian initiated work on what would become the UNIX system. He helped develop it to run on a minicomputer and would eventually be ported to other computers. In this episode, Brain will go in-depth on how the UNIX was built. Episode Page Episode Transcript “If you wanted, you could go sit in your office and think deep thoughts or program, or write on your own blackboard or whatever, but then come back to the common space when you wanted to.“ - Brian Kernighan “I found it easier to program when I was trying to figure out the logic for myself rather than trying to figure out where in the infinite stack of documentation was the function I needed. So for me, programming is more like creating something rather than looking it up, and too much of today's programming is more like looking it up.” - Brian Kernighan “If what I find challenging or hard or whatever is also something that other people find hard or challenging or whatever, then if I do something that will improve my lot, I'm perhaps improving their lot at the same time.” - Brian Kernighan Links: Brian's Homepage Book: Unix: A History and a Memoir Book: Millions, Billions, Zillions: Defending Yourself in a World of Too Many Numbers Book: Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security

1 November 2020


To The Assembly

To The Assembly

How do CPUs work? How do compilers work? How does high-level code get translated into machine code? Today's guest is Matt Godbolt and he knows the answers to these questions. How he became an expert in bare metal programming is an interesting story. Matt shares his origin story and the creation of compiler explorer in today's interview. Episode Page Episode Transcript Links: Compiler Explorer Matt's Github Matt's Blog Matt's YouTube

1 October 2020


Memento Mori

Memento Mori

Preparing our minds for the inevitable - death is pressing. After facing terminal cancer, Kate Gregory reminded herself that this event can still become inspiring by focusing on the positive. In this episode, Kate is going to share her success and explain how you would apply her 5 pieces of advice to your career as a software developer to help you to build a remarkable career for yourself. Episode Page Episode Transcript Links: Gregory Consulting Limited Kate's Classes in Pluralsight Include CPP Kate's Blog

1 September 2020


We are teaching Functional Programming Wrong

We are teaching Functional Programming Wrong

Today Richard Feldman shares his story of going from javascript developer to elm developer to functional programming teacher.  Along the way, Richard finds that people are teaching functional programming wrong.  We are teaching it in a way that misses how most industrial software developers learn best. In this episode, Richard Feldman delves into Elm, his approach, and how to make teaching delightful. Episode Page Episode Transcript Links: Book: Elm in Action A Taze of ATS Elm Language

3 August 2020


Software That Doesn't Suck With Jim Blandy

Software That Doesn't Suck With Jim Blandy

Building Subversion Software is just the tool and it should get out of your way. In this episode, we will discuss Jim Blandy’s insights on how to build and recognize improvements for a great developer tool and find out how he approached the question: “What's the worst software that you use every day?” “Everybody likes imaginary code because imaginary code is always perfect.” -Jim Blandy “You don't want to maximize engagement with your version control system. You just want it to do its job and get out of the way. And so basically if somebody says, you know, this doesn't suck. That's actually pretty much exactly the right thing.” - Jim Blandy “If you're making a series of small incremental changes to a large data structure, then the way that the persistent data structures are trying really hard to share as much data as possible really works in your favor.” -Jim Blandy Episode Page Episode Transcript Links: Subversion Jim's Email Mercurial  GNU Emacs

1 July 2020


Unproven Tech Case Study with Sean Allen

Unproven Tech Case Study with Sean Allen

Choosing The Right Tool For the Job Choosing the right programming language or framework for a project can be key to the success of the project. In today’s episode, Sean Allen Sean shares a story of picking the right tool for a job. The tool he ends up picking will surprise you. His problem: make a distributed stream processing framework, something that can take a fire hose of events and perform customer’s specific calculations on them but the latency needs to be less than a millisecond and the calculations might be CPU intensive. Who would need something like this? The initial use case was risk systems for Wall Street banks.  “Basically programming languages are tools. It's not about ergonomics, it's not about developer experience, it's not about all the things that we normally talk about, it's about getting the job right. For whatever that means it's a means to an end.” - Sean Allen Episode Page Episode Transcript Links: Martin Thompson - Low Latency JVM Basho - Riak Haskell Quicksort Pony Talk Pony Lang

10 June 2020


Krystal's Story

Krystal's Story

Chasing Your Curiosity and Continuous Learning Things are easier to learn when you are passionate about something. A lot of great careers are built on curiosity and obsession including Krystal Maughan our guest for today's episode. Krystal will share her journey as she chased her curiosity in programming wherever it led her. "Everybody has that moment when everything's shiny, you know when it's new and you walk on to campus like Google or whatever. Like the first time, I went to Google IO and I just thought it was like, this is insane." "If you like to learn things, I think that's a gift. I think that's not something that everybody has."  "I think that seeing programming in different ways and seeing that it could be this kind of fun thing that you could break apart and find different ways of executing."  Episode Page Episode Transcript Links: Krystal's Blog Her GSOC Project Interview with Krystal Full Timeline of Krystal's Journey

18 May 2020


Learning a new language with Bruce Tate

Learning a new language with Bruce Tate

There’s joy that can be found in language learning and pain as well. Whether you’re a beginner or an expert, there are still some things you can only discover by picking up a new language.  Bruce Tate will tell us how learning new languages rekindled the spark of joy for him. “I find that learning a new language mixes a lot of joy in that pain, and that's when I grow most rapidly as a developer.” “You can't break somebody else through their own pain. They have to learn their own lessons, and they have to, at some point in the model, they have to feel more and more pain to break through to the expert.” “When you visit other places, when you learn other languages, the world gets smaller.” Episode Page Episode Transcript Links: 7 Languages in 7 Weeks Book 7 More Languages Joy Talk

6 May 2020


Portal Abstractions with Sam Ritchie

Portal Abstractions with Sam Ritchie

Buckle up, on today’s episode Adam interviews Sam about how the abstract algebra and probabilistic data structures helped solve fast versus big data issues that many are struggling with. Sam Ritchie is a machine learning researcher and a mechanical engineer by training. Stop in to hear Adam and Sam’s conversation about portal abstractions that let you leverage work from other fields. You cannot miss this episode! "And that's really all we want to do. Like, we want things where you can pause and wait a while and then load it back out and keep going." - Sam Ritchie "I'm aiming to implement these interfaces and pass these tests and then being able to immediately turn around and have like an approximate sliding window counter that would just work with stripes, like entire machine learning feature generation interface." - Sam Ritchie "I'm really passionate about and the reason this stuff's important is. You want to go mine the literature of what other people have done. You know you want to go be able to plug these things into your work and really just benefit from this incredible community that's been cranking for, you know, again, maybe hundreds of years." - Sam Ritchie Episode Page Episode Transcript Links: Sam's Blog Summing Bird Algebird Reinforcement Learning

17 April 2020


Loving Legacy Code with Jonathan Boccara

Loving Legacy Code with Jonathan Boccara

Legacy code is everywhere. I don't think I've met anyone who doesn't have to deal with legacy code in the substantial portion of his work. Our guest, Jonathan Boccara is a French C++ developer and the author of The Legacy Code Programmer's Toolbox. In this episode, Jonathan will help us understand and build the correct mindset to effectively work with legacy code by using his approach and processes. "An important message I'm trying to get across is that you should not complain if you don't, in turn, intend to improve the code." - Jonathan Boccara "That would be any critique that's technical. One thing that comes up very often is levels of obstruction. If I had to sum up best practices in, in three words, that would be those levels of obstruction." - Jonathan Boccara "The point of code is to make a piece of software run and to make it run in a way that will make customers happy. " - Jonathan Boccara Episode Page Episode Transcript Links: Fluent C++ SE Radio: Understanding Legacy Code Counting words in your code

3 April 2020


The Reason For Types with Jared Forsyth on ReasonML and Javascript

The Reason For Types with Jared Forsyth on ReasonML and Javascript

Adam talked to Jared Forsyth about his journey from untyped javascript to using flow and eventually reasonml. Click here to see if you are eligible for a the Springboard scholarship from our sponsor "I mean, I was, I'll admit it I was definitely in the: 'I was scarred by Java and C plus plus in an intro to programming class and I never want to look at types again' Camp" "My first language was Python and followed closely by Javascript. And so I was, I was loving the loosey goosey scripting language. My first experience of using types in JavaScript, I was like is this going to be terrible? Because there's so much overhead in Java and C plus, plus you have to write types for literally everything." Links: Springboard Scholarship Reason Town Podcast ReasonML Jared's Talk on ReasonML React with Reason Talk Types in Javascript

16 March 2020


Karl L Hughes on  Speaking and Conference Talks

Karl L Hughes on Speaking and Conference Talks

Adam talks to Karl Hughes about his path to becoming a conference speaker and the work he has done to make it easier for others to follow in his footsteps. "I didn't start trying to speak at conferences until I was at least seven or eight years into my software development career. So. Just a couple of years ago and before that, I think what helped build confidence was speaking occasionally at meetups. I started talking occasionally at local code bootcamps, just kind of getting to be in front of a crowd and start to build up some like level of self-assuredness and eventually I think the next step was just obvious. I wanted to push myself to do something a little scarier and bigger, and that was like, get in front of people at a real conference. " "And so it is scary. Partly also it's that, you know, because it was my first time, I didn't really know what to expect. I had only been to a couple of tech conferences before. I didn't know what the audiences were going to be like. If there was kind of be this like big tomato throwing thing at the end, they're all just bashed me or if it was going to be like a more of a friendly conversation." Show notes: CFP Land Karl's Personal Site Washing Machine Guy Talk episode webpage

2 March 2020


Don and Adam discuss folds

Don and Adam discuss folds

Today we try a different format. Adam invites his neighbour, Don McKay, over to ask him questions. An interesting discussion on recursion, corecursion and the naming of the podcast unfolds. "John was saying, we conclude that since modularity is the key to successful programming, dah, dah, dah, dah, dah. I think what he means by modularity is okay, we write our fold and it's like three lines long.  Once that exists somewhere, we don't have to have that base case all over our code. We ended up programming a higher declarative level. The other reason is just I really like clean abstractions. There's more to learn but once you do, you're able to kind of have this language where you can talk about these things at a higher level" Why Functional Programming Matters - John Hughes Beautiful Folds - Gabriel Gonzalez Folds in Scala Recursion Training https://corecursive.com/046-don-and-adam-folds/

15 February 2020


David Heinemeier Hansson, Software Contrarian

David Heinemeier Hansson, Software Contrarian

David Heinemeier Hansson talks to Adam about being avoiding a software monoculture. He explains why we should find a programming language that speaks to us, why ergonomics matter and why single page apps and microservices are not for him. "That is the pleasure and privilege of working with the web. No one knows what you built it. It, you could build an in basic, you can build it a Ocaml, you can build in the Haskell, you can build it in whatever Ruby. No one is going to be none the wiser you get to choose" You want to write for the web. I mean, literally every programming language that's ever been invented and known to humankind is serving a webpage somewhere." "There's just something heartwarming in that, that this idea of the monoculture that like this is all just a battle to the death and there's going to be one framework and there's going to be one programming language that lifts is left standing. Programmers are really drawn into that right into that horse race." So much of their technology choices seem to be predicated on like, is this popular? Is this going to be popular next year? Do you know what I mean?" "The crimes against programming humanities that have been done in the service of single page applications are far worse than the ones that have been done in the service of microservices. But then of course, as it is, lots of people combine the two. So it's a fleet of microservices serving a single page application, and that's just where it bam, my head explodes with like, yeah, I would rather retire and fucking, I don't know, make weaved baskets than deal with that shit." "I'm not saying that email is sort of in its base form is wonderful, but you know what is wonderful asynchronous. Write-ups of cohesive, full thoughts, people using actual goddamn paragraphs to describe ideas and proposals, and they put those paragraphs together into form entire, cohesive thoughts. And then letting someone take that in, read those several paragraphs, sit back for more than five minutes. Ponder that. And then respond." Links: The Majestic Monolith On React TDD is Dead RailsConf 2014 Podcast Page

1 February 2020


The Business Of Developer Tools With Lee Edwards

The Business Of Developer Tools With Lee Edwards

How do you build a business around tools for software engineers? Adam talks to Lee Edwards, a VC who spends a lot of time thinking about this question. "When I think about is this a good business, I think about is there value Accruing. The question is just how much. The question about is it a venture-backed business? The very, very oversimplified answer is do you believe you can get $100 million in revenue within 10 years? And those numbers are kind of fudgy. But if you can do that, you can IPO a company and it's kind of amazing that PagerDuty and Twillio each do one thing well and they're multibillion-dollar companies. " "Another interesting thing that venture capitalists talk about behind closed doors and probably never tweet about or say publicly because it makes them look bad. But you do often wonder if the founder of a dev tool company, a lot of times they're really altruistic and you know, I feel this way too, right? But venture capitalists are like, wait, don't give your stuff away for free. And it can sometimes be kind of like a conflict. I think when you're looking for an open-source founder, you need to look for someone as a VC that actually does want to make everyone money." Show Notes: Root VC The Business Value of Developer Relations - Mary Thengvall Code Climate Particle.io FlexPort

18 December 2019


Software in Context with Zach Tellman

Software in Context with Zach Tellman

Adam talks to Author and Clojure advocate Zach Tellman about how great software is built. "If we say something is over-engineered, what we mean is it's too complex or it's too robust or it handles a bunch of situations or scenarios that are not relevant to how we're using it. It's okay for us to create narrow things. It's okay for us to create Powershells instead of bash sort of environments because that narrowness gives us the ability to go and do things we might not otherwise be able to do." "Twitter are built on top of Ruby because that was a reasonable thing. And then it stopped being the reasonable thing. And again, you have this kind of, I dunno, I call it hacker news induction, which is like, well I built this thing and then I built this other thing, which is almost exactly the same thing. And it worked or it didn't work. And therefore I think that this must generalize across all possible applications of this thing, right? So I tried to rails and it was great or it was awful and therefore it is great or awful, you know, in all situations. " Zach's Personal Site Elements Of Clojure Book https://corecursive.com/042-zach-tellman-software-in-context/

2 December 2019


Beautiful and Useless Coding with Allison Parrish

Beautiful and Useless Coding with Allison Parrish

Generative Art involves using the tools of computation to creative ends. Adam talks to Allison Parrish about how she uses word vectors to create unique poetry. Word vectors represent a fundamentally new tool for working with text. Adam and Allison also talk about creative computer programming and building twitter bots and what makes something art. "Computer programming is beautiful and useless. That's the reason that you should want to do it is not because it's going to get you a job, because it has a particular utility, but simply for the same reasons that you would pick up oil paints or do origami or something. It's something that has like an inherent beauty to it that is worthy of studying." "For my purpose as an artist and as like someone who teaches programming to artists and designers, I want to emphasize that it's not only a vocational thing, it's not only a way for building things like to do apps for that matter. It's not only a way to, you know, write useful applications that help to organize communities or help to do scientific work and other like good applications of programming and software engineering. But there is this like very essential, very core part of computer programming that is just joyful. Um, that's about understanding your own mind in different ways and understanding the world in different lands." Experimental Creative Writing with the Vectorized Word Every Icon Word2Vect Allison Parrish's Website Tracery Articulations Every Word

16 November 2019


Tech Evangelism and Open source With Gabriel Gonzalez

Tech Evangelism and Open source With Gabriel Gonzalez

What makes some pieces of technology take off? Why is java popular and not small talk or Haskell. Gabe is a popular blogger, a former Haskell cheerleader, and creator of the Dhal configuration language. Today we talk about marketing and tech evangelism. "One common mistake I see a lot of new open source developers make is they tried to build what I call the hype train. Where they have started a new project that has a lot of poTech Evangelism with Gabriel Gonzalez tential and they advertise on hacker news hoping that, okay, we're gonna generate a lot of hype, maybe get a lot of influx of new contributors, new contributes, new features, generate more hype and so forth." "They hope that there'll be that virtuous cycle that will get them to the mainstream in practice, that never happens. Usually, the thing about contributors is that their needs are always going to be fragmented, right? If you have eight new contributors, they're going to be taking you in eight different directions. You should focus on one direction and sometimes that means not only doing a lot of work yourself, but it's explicitly saying no to something and saying this is not where I want to take the product right now." Links: Crossing the Chasm Dhall Lang Adam's SE Radio Interview with Gabe Haskell For All - Gabe's Blog

1 November 2019


Structure and Interpretation of Computer Programs with Hal Abelson

Structure and Interpretation of Computer Programs with Hal Abelson

Adam talks to Hal Abelson about the textbook he coauthored in 1984, SICP and why it is still popular and influential today. "If you pick up almost any computing book it starts out 'here are these datatypes, these operations that you do' and somewhere around 20 or 30% through the book, they show you how to define a function or a procedure. Whereas we really take the opposite approach. We say the key thing is abstraction. So we kind of start there." "The axe [the book] is grinding is that people write programs to do one particular thing. And then the price of that is that a whole lot of software engineering ends up being trying to get out of the hole you dug yourself into because you made a program that was too specific." SICP Lectures The Structure and Interpretation of Computer Programs  Hal Interview https://corecursive.com/039-hal-abelson-sicp/

1 October 2019


Open Source Health and Diversity with Heather C Miller

Open Source Health and Diversity with Heather C Miller

Heather C Miller is an Assistant Processor at CMU. She is concerned that key open source projects are at risk of failure and no one is paying attention. Adam talks to her about open source, how it grows, the diversity problems it has and much more. Heather also shares some interesting stories about the early days of Scala and her ideas for increasing diversity in tech. Heather's JuliaCon keynote Digital Infrastructure Scala Center https://corecursive.com/038-heather-miller-open-source/

15 September 2019


Compiling to Bytecode with Thorsten Ball

Compiling to Bytecode with Thorsten Ball

What do compilers do? What is the runtime of a language? What does it mean to compile something down to bytecode and what executes the byte code. Throsten Ball Answers these questions in this interview with Adam. "A virtual machine is a computer built-in software, a CPU built-in software" "Compilers can be slow. You know, I grew up running Linux and I had Gentoo running, so I basically let my computer run for the whole night to compile my window manager. So I do know how slow compilers can be and the reason they're slow is because you're paying the upfront costs that an interpreter pays at runtime. You're paying a little bit more because you're doing additional optimizations. You're shifting the cost to a point in time where you're happy to pay it." Writing a compiler in GO GCC Codebase Mirror LLVM Codebase TCC Compiler C in 4 functions 8CC - small self hosting compiler https://corecursive.com/037-thorsten-ball-compilers/

1 September 2019


Bartosz Milewski on Category Theory

Bartosz Milewski on Category Theory

Today Adam talks to Bartosz Milewski. He is the author of a famous blog series, lecture series and now book on Category Theory for programmers. The world of functional programming is rife with terminology imported from abstract algebra and Category Theory. In fact, it may be one of the most valid criticisms of functional programming is the use of Category-Theoretic terminology that can be unwelcoming to newcomers. Category theory can also be a tool to teach us to see software development in a different light and it can teach us to build better software. Bartosz is also just an interesting person, if you haven't heard of him yet, you are in for a treat. Bartosz's Website Blog Series Book Lecture Series https://corecursive.com/035-bartosz-milewski-category-theory/

15 August 2019


Jimmy Koppel on Advanced Software Design

Jimmy Koppel on Advanced Software Design

How do we create great software? What are the important skills need to properly review a PR? How do you identify assumptions of a code base and the stable contracts of a software module? Jimmy Koppel is working on his Ph.D. in the field of program synthesis at MIT.  He was previously paid 100 thousand dollars to drop out of university by Peter Thiel, but yet still graduated with two degrees.   The most interesting, however, about Jimmy is he is working hard to teach the world how to design better software. Due to his time working on program synthesis, he developed some unique insights into what makes software good, and what makes it bad, and he spends time teaching people his insights. Three Level of Software Peter Thiel 20 under 20 Benjamin Franklin Method  You are a Program Synthesizer Jimmy's Coaching Program Episode Page: https://corecursive.com/036-jimmy-koppel-advanced-software-design/

1 August 2019


Typescript

Typescript

How do we make javascript easier to work with? Chris Krycho has been using typescript to add types to javascript since 2016. Chris is a software developer at LinkedIn who, at his previous gig, worked on converting one of the largest Ember apps in the world to TypeScript. I was shocked by the size. Chris also loves Rust and types and is a former C and FORTRAN programmers. He hosted a podcast called the New Rustacean, which he has retired from. Today we talk about TypeScript and when you should use it. We also talk about Language Server Protocols, Rust, working with large codebases, Structural types, row polymorphism and talking code over audio. Chris's Blog TypeScript New Rustacean Chris's Typescript Refinement types in TypeScript Winning Slowly Podcast https://corecursive.com/034-chris-krycho-typescript/

15 July 2019


Rethinking Technological Positivism with Cory Doctorow

Rethinking Technological Positivism with Cory Doctorow

Self-driving cars or armed autonomous military robots may make use of the same technologies. In a certain sense, we as software developers are helping to build and shape the future. What does the future look like and are we helping build the right one? Is technology a force for liberty or oppression. Cory Doctorow is one of my favorite authors and also a public intellectual with a keen insight into the dangers we face a society. In this interview, I ask him how to avoid ending up in a techno-totalitarian society. We also talk about Turing, DRM, data mining and monopolies.   The coming war on general computation  Cory's Personal Site  Radicalized (and other books)  EFF  Website for Page

15 June 2019


Crafting Interpreters With Bob Nystrom

Crafting Interpreters With Bob Nystrom

Bob Nystrom is the author of Crafting Interpreters. I speak with Nystrom about building a programming language and an interpreter implementation for it. We talk about parsing, the difference between compiler and interpreters and a lot more. If you are wondering why many languages have hand-rolled parser implementations yet much work on build language implementations focuses on parser and tokenizer generators then Bob's insights will be eye-opening. Also, if you've ever used regexes to pull strings apart into structured data, and I sure have, then Bob's perspective on the simplicity of hand-rolled parsers will certainly open up some new possibilities for you. Links: http://craftinginterpreters.com/ http://gameprogrammingpatterns.com/ http://journal.stuffwithstuff.com/

31 May 2019


Rethinking databases and Noria with Jon Gjengset

Rethinking databases and Noria with Jon Gjengset

Can we make databases faster and remove the need for caching reads in an external cache? Can we make a distributed SQL based relational database that outperforms memcached? Jon Gjengset and the PDOS team at MIT CSAIL have done just that with Noria. Today I talk to Jon about Noria, about building a database in rust and his efforts to teach people intermediate rust via live coding sessions. Jon was great to talk to. He really was able to explain to me how Noria is able to do what it does and where it is in terms of maturity. The key, besides Rust and evmaps, is that Noria uses materialized views to do query optimization ahead of time, on write. The devil is in the details though, of course. And the details, in this case, are turning declarative SQL into a dataflow program that handles cache updates on new writes. http://corecursive.com/030-rethinking-databases-with-jon-gjengset/ Show notes: Noria Project pdos group at MIT Noria Paper Noria Article Jon's Rust Streaming

30 April 2019


Learning to Think with Andy Hunt - Pragmatic Programmers guide to being productive

Learning to Think with Andy Hunt - Pragmatic Programmers guide to being productive

Andy Hunt is a celebrity in the world of software development. Or at least he is one to me. The Pragmatic Programmer is a classic book on software development book. He is an author of the agile manifesto and started the book company that has published many great books, including several by recent guests. Today I talk to Andy about how software engineers can get better at thinking and learning. How can we develop this meta-skill and how can being aware of common mistakes our brain make us more productive? Show notes: The Pragmatic Programmer  Pragmatic Thinking and Learning  Conglommora  Webpage for Episode

15 April 2019


Data and Scale with Pat Helland - The long view on distributed databases

Data and Scale with Pat Helland - The long view on distributed databases

Pat Helland has a wealth of knowledge on building distributed data stores. He has been working on distributed data stores since 1978, when he worked on the tandem fault-tolerant database. Since then he has been involved in many distributed database projects. Here is the key thing, he is also a master at explaining the key ideas of distributed systems using simple language and practical everyday examples. Can you get married on the phone? How are messaging systems and idempotence like regional offices communicating via fax machine? These are the type of metaphor that Pat uses. Today, Pat sits down with me and teaches me about dealing with data in a distributed, fault tolerant, infinitely scaling world. Webpage : http://corecursive.com/028-data-pat-heland/ Links: Pat's articles ON ACM QUEUE Mind your state for your state of mine  Consistency Eventually Standing on Distributed Shoulders of Giants The Singular Success of SQL Life Beyond Distributed Transactions

31 March 2019


Abstraction and Learning with Runar Bjarnason

Abstraction and Learning with Runar Bjarnason

What is abstraction?  Can we have a precise definition of abstraction that, once understood, makes writing software simpler?  Runar has thought a lot about abstraction and how we can choose the proper level of abstraction for the software we write.  In this interview, he explains these concepts using examples from the real world, from SQL, from effectful computing and many other areas. We also talk about how to learn and acquire the skills necessary to understand abstract concepts like very polymorphic code and category theory. Runar also explains his latest project unison computing and how it uses the correct level of abstraction to rethink several foundation ideas in software development.   Links: Constraints Liberate Maximally Powerful, Minimally Useful Unison Computing Webpage for show

15 March 2019


Modern Systems Programming And Scala Native With Richard Whaling

Modern Systems Programming And Scala Native With Richard Whaling

Richard Whaling has an interesting perspective on software development. If you write software for the JVM or if you are interested in low level system programming, or even doing data heavy or network heavy IO programming then you will find this interview interesting. We discuss how to build faster software in a modern fashion by using glibc and techniques from system programming. This means using raw pointers and manual memory management but from a modern language. Richard also shares some perspectives on better utilizing the underlying operating system and how we can build better software by depending on services rather than libraries. Links: Beej's Guide to C Beej's Guide to Unix Interprocess Communication Beej's Guide to Network Programming Gary Bernhardt's Destroy All Software Screencasts (Web Server from Scratch, Malloc from scratch, shell from scratch) Stevens & Rago Systems Programming books: Advanced Programming UNIX Environment Unix Network Programming - Sockets UNIX Network programming - Interprocess Communication

22 February 2019


Burn out and recreational coding with Jamis Buck

Burn out and recreational coding with Jamis Buck

A decade ago Jamis Buck was not loving his job. He was an important open source contributor. He worked for the hottest trendiest software company at the time, 37 signals, creator of ruby on rails. He was on top of the world but also he was burnt out. Today Jamis talks about how he overcame burn out.  We discuss how his struggle lead him to write a book about generating mazes and another about building a ray tracer. His books are great fun, and all about recreational programming.  You will learn to build things with a focus not on the latest trends in software development and not even a specific programming language.  The focus instead is on fun.

25 January 2019


Software as a Reflection of Values With Bryan Cantrill

Software as a Reflection of Values With Bryan Cantrill

Which operating system is the best? Which programming language is the best? What text editor? Bryan Cantrill, CTO of Joyent says that is the wrong question. Languages, operating systems and communities have to make trade offs and they do that based on their values. So the right language is the one who's values align with you and your projects goals. This simple idea carries a lot of weight and I think has the potential to lift up technical discussions to a higher level of discourse. You will find it to be a helpful frame next time you need to make a technical decision. Bryan is also pretty excited about how the values of the rust community align with his values for system software. Also we cover Oberon, Clean and Simula 4, none of which I've never heard of and how IBM System/370 's Global Trace Facility doesn't hold a candle to Dtrace. Webpage for this episode Show Links: Software Values Slides The Design and Implementation of the FreeBSD Operating System Microsoft should buy github All Bryan's Talks Slack Channel for Site

18 December 2018


The Little Typer With Daniel Friedman and David Thrane Christiansen

The Little Typer With Daniel Friedman and David Thrane Christiansen

When it comes to type systems "I am, so far, only in the dependent types camp" - Daniel P. Friedman You can write more correct software and even rigorous mathematical proofs.  Prepare for some mind stretching. Previous guests like Edwin Brady and Stephanie Weirich have discussed some of the exciting things a dependent type system can do Miles Sabin said dependent types are surely the future. This interview is to get us ready for the future. Daniel P. Friedman is famous for his "Little" series of books. Little Schemer, Little prover, Little MLer and so on. These books are held in high regard. Here is a quote from Doug Crockford:  "Little Schemer teaches one thing, a thing that is very difficult to teach, a thing that every profession programmer should know, and it does it really well. These are lessons that stick with you." The latest one is the little typer and its about types. Specifically dependent types. Dan's coauthor is David Thrane Christiansen, Idris contributor, and host of a podcast about type theory that is way over my head. Together they are going to teach us how the programming skills we already have can be used to develop rigourus mathematical proofs. Stay tuned to the end for my guide to working thru the book. Originally published at CoRecursive here Join Our Slack Community

1 December 2018


Big Ball Of Mud

Big Ball Of Mud

Evolving software under constrained resources is a challenge, and I think we kid ourselves when we don't admit this. Software that is providing value often grows in scope until it is a mess.  Today I talk to Wade Waldron about how avoid this situation or recover from it. Big ball of mud is the title of a paper presented at the 1997 Patterns Languages of Programs conference and I think it is super interesting. The researchers went out into the field to see what architectures software in industry were following. Big Ball of mud is what they found, along with other 6 other patterns with names like "sweep it under the rug" and reconstruction, which is the throw it away and start again pattern. Links: Big Ball Of Mud Paper Hexagonal Architecture Reactive Foundations Course Reactive Advanced Course Check out other episodes like this Philip Wadler: https://corecursive.com/021-gods-programming-language-with-philip-wadler/ This podcast originally published here : https://corecursive.com/22-big-ball-of-mud-architecture-and-services-with-wade-waldron/

14 November 2018


God's Programming Language - Philip Wadler on Haskell

God's Programming Language - Philip Wadler on Haskell

Today I talk to Professor Philip Wadler, a very accomplished programming language researcher.  Phil walks us through a principle that has guided his career.  That principle is that typed lambda calculus is not invented but a discovery of a deep truth. It is something connected to the mathematical underpinning of the universe itself. It follows from this that functional programming languages are therefore more correct or more deeply justified and fundamental than other languages.  I am probably stating things in a stronger fashion than Phil is comfortable with, but I like fp, so I can be a little hyperbolic. While explaining this principle, that has guided his career, Phil takes us through the history of computer science.  We start with Turing and Alonzo Church.  Eventually we get to what the movie Independence Day got wrong and what language a theoretical creator deity would program in. Show notes: talk paper   Web page for this episode CoRecursive On Twitter CoRecursive On Itunes

22 October 2018


Test in Production and being On-Call with Charity Majors

Test in Production and being On-Call with Charity Majors

"Metrics and Dashboards can die in a fire and every software engineer should be on-call" - Charity Majors Today's Interview is with Charity Majors. We talk about how to make it easier to debug production issues in today's world of complicated distributed systems.  A warning, There is some explicit language in this interview. I originally saw a talk by Charity where she said something like fuck your metrics and dashboards, you should test in production more. It was a pretty hyperbolic statement, but backed up with a lot of great insights. I think you'll find this interview similarly insightful. Charity and her company are probably best known for popularizing the concept that observability in the key to being able to debug issues in production. Also if you are a talented developer with functional programming skills, I've got a job offer for you. My employer Tenable is hiring.  Tenable is a pretty great place to work. Here is a job link. Show notes: Facebook Scuba Observability Talk the-engineer-manager-pendulum HoneyComb.io   Show Link

31 August 2018


Domain Driven Design And Microservices

Domain Driven Design And Microservices

Today I talk to Vaughn Vernon about how Domain Driven Design can help with designing microservices.  The guidelines that Vaughn has developed in his work on DDD can provide guidance for where service and consistency boundaries should be drawn.  We also talk about the platform he is developing for applying these DDD concepts using the actor model, Vlingo. Show Notes: Implementing DDD Book Vlingo Platform Vlingo Source

17 August 2018


Http4s  and Functional Web Development With Ross Baker

Http4s and Functional Web Development With Ross Baker

The promise of functional programming is code that is easier to reason about, test and maintain. Referential transparency means there is no extra context to worry about, we can just focus on inputs and outputs. Examples of functional programming in the small are plentiful. Fibonacci is easy to write as a function but what about fp in the large? Http4s is a web framework written in scala that takes a pure functional approach to building http services. Ross Baker is a contributor to http4s and he explains the benefits of this approach. We also touch on the benefits of working remotely, since he and I have both been doing it for some time. Links: Http4s Presentation on Http4s  Today I talk with @rossabaker about http4s and the benefits of a pure functional approach to building http services

27 July 2018


Moves and Borrowing In Rust With Jim Blandy

Moves and Borrowing In Rust With Jim Blandy

The surprising thing about rust is how memory management works.  Rust has the concepts of moves and borrowing.  If you have heard about Rust, you may have heard people talking about the borrow checker and trying to make it happy. In this interview, Jim Blandy walks us through what these concepts mean and how they work.  We also talk about how to avoid fighting with the borrow checker at all and why the conceptual model that Rust adopts, though it may seem unusual at first, is actually more representative of how computers work and therefore an easier programming model.

3 July 2018


Dependent Types in Haskell with Stephanie Weirich

Dependent Types in Haskell with Stephanie Weirich

At Strange loop 2017, a wandered into a talk where I saw some code that deeply surprised me. The code could have been python if you squinted, passing dictionaries around, no type annotations anywhere. Yet key look up in the dictionary was validated at compile time. It was a compile time error to access elements that didn't exist. Also the dictionary was heterogeneous, the elements had different types, and it was all inferred and validated at compile time. What I was seeing was Dependent types in Haskell. In today's interview Stephanie Weirich explains her efforts to add dependent types to haskell and how that example worked.   Shows Notes: Dependent Types in Haskell Talk https://www.cis.upenn.edu/~sweirich/ https://github.com/sweirich @fancytypes Dependent Types Regex

13 June 2018


Micro Services vs Monoliths With Jan Machacek

Micro Services vs Monoliths With Jan Machacek

I don't know a lot about micro services.  Like how to design them and what the various caveats and anti-patterns are.  I'm currently working on a project that involves decomposing a monolithic application into separate parts, integrated together using Kafka and http.   Today I talk to coauthor of upcoming book, Reactive Systems Architecture : Designing and Implementing an Entire Distributed System.  If you want to learn some of the hows and whys of building a distributed system, I think you'll really enjoy this interview.  The insights from this conversation are already helping me. Contact Jan Machacek is the CTO at Cake Solutions. Videos long lived micro services  Book - Reactive System Architecture

6 June 2018


Rust And Bitter C++ Developers With Jim Blandy

Rust And Bitter C++ Developers With Jim Blandy

Rust, the programming language, seems to be really trendy these days.  Trendy to me means shows up a lot on hacker news.  Rust is really interesting language though, and I think the growing popularity is deserved.   Today I talk with Jim Blandy, one of the authors of Programming Rust.  We talk about what problems rust is trying to solve, the unique language features and type system of rust. It includes both algebraic data types, type classes, and generics.  There is even a proposal somewhere for adding HKT.  We also touch on why it is so hard to secure code. Jim works on Firefox and his insights into the difficulty of writing secure code are super interesting. Show notes Rust Programming Rust Book MESI protocol  Constraint-based Verification of Parameterized Cache Coherence Protocols Formal Methods in System Design Rust Validation  -  3d game demo - (not sure where this is, post in comments if you find it) integer overflow

16 May 2018


Erlang And Distributed Systems with Steven Proctor

Erlang And Distributed Systems with Steven Proctor

Today's interview is with Steven Proctor, the host of the functional geekery podcast.  We talk about distributed programming in general and specifically how erlang supports distributed computing.  We also talk about things he's learned about functional programming and applying FP principles to various non FP contexts.   Contact Proctor: Functional Geekery Podcast @stevenproctor @fngeekery

2 May 2018


Purescript And Avocados with Justin Woo

Purescript And Avocados with Justin Woo

Purescript is a functional programming language that compiles to javascript.  It is a strict haskell dialect that can run anywhere that javascript does. Justin Woo is a self described Purescript evangelist and enthusiast. We talk about purescript vs elm and working with expressive type systems.  Justin also had some great metaphors about phantom types and masking tape as well as avacados and testing.   Contact Justin: twitter github website Show notes: Purescript purescript training videos     My team at Tenable is hiring.  We are a distributed team of scala developers working on static analysis of docker containers (among other things). We are a team of smart people, working fairly autonomously on interesting problems.  We are one of many teams working on interesting problems at Tenable.  I think its a great place to work. I am in Peterborough, in Canada, and our team has people working in the US, Ireland and the UK as well. Here is the job posting:  https://www.linkedin.com/jobs/view/586241797/ Tell them Adam sent you, or you can email me directly at work abell at tenable.com or use this link to apply.

4 April 2018


FP Interview: Throw Away the Irrelevant with John A De Goes

FP Interview: Throw Away the Irrelevant with John A De Goes

Today's interview is with John A De Goes. We talk about performance problems with monad transformer on the jvm, various flavours of IO monads and reasoning about polymorphic type signatures.  On the lighter side of things, we discuss how to write technical articles well, flame wars and Zee vs Zed pronunciation.     Show Notes: John's Website and Twitter Descriptive Variable Names: A Code Smell Data Structures Are Antithetical to Functional Programming A Modern Architecture for FP

21 March 2018


Functional Programming Interview: Total Swift Programming

Functional Programming Interview: Total Swift Programming

In simple terms, a total function is a function that produces a well defined output for all possible inputs.  A total program is a program composed of only total functions.   A non-total, or partial function, would be a function that can fail given certain inputs.  Such as taking the head of a list, which can fail if giving an empty list and is therefore non-total. Total programming can be done in any language, however many languages make this easier.  Some, going so far as to require proof of totality. In this interview Andre Videla discusses how the swift program language encourages programming in a total style.  He also discusses his love of Idris, proof assistants and how his research into haskell, idris and dependant types have made him a better swift programmer.   Links: Total Programming In Swift

12 February 2018


Functional Programming Interview: Idris, Proofs and Haskell with Edwin Brady

Functional Programming Interview: Idris, Proofs and Haskell with Edwin Brady

Edwin Brady is the creator of the Idris programming language and Author of the book Type-Driven Development with Idris and a computer science lecturer.  The book, the language and Edwin himself all seem to be chock full of ideas for improving the way computer programming is done, by applying ideas from programming language theory.   In this interview, we discuss dependent types, type holes, interactive and type-driven development, theorem provers, Curry–Howard correspondence, dependant haskell, total functional programming, British vs American spelling and much more.     Links: The Book Idris Lectures at OPLSS Idris Language Site

29 January 2018


Functional Programming Interview: Domain Driven Design meets Functional Programming

Functional Programming Interview: Domain Driven Design meets Functional Programming

In object oriented languages, modeling a complex problem domain is a well understood process.  Books like Domain Driven Design contain techniques for breaking down a problem domain and earlier books like the gang of four book catalogue design patterns for modeling these domains in an object oriented way. In today’s interview Debashish Ghosh explains how to model a complex problem domain in a functional paradigm.  His solution focuses on modelling the behaviour of the software system rather than nouns it will contain.  He also focuses on an algebraic approach to api design and discusses how abstract algebra provides tools for building better software. Episode Page Episode Transcript “I first come up with what I call the algebra of the behaviors. The algebra of the behaviors refers to the basic contract, which the behavior is supposed to support, which the behavior is supposed to honor. So that's the algebra.” -Debashish Ghosh Links: Debashish's Book

22 January 2018

Skill Piper
HomeBlogAboutContactNewsletter

© 2022 Skill Piper. All rights reserved

Twitter