The Eric Normand Podcast podcast artwork

PODCAST · education

The Eric Normand Podcast

An off-the-cuff stream of Functional Programming ideas, skills, patterns, and news from Functional Programming expert Eric Normand of LispCast. Formerly known as Thoughts on Functional Programming.

  1. 242

    All about the stratified design lens

    In this episode, I introduce the stratified design lens, which talks about how and why we split things into layers.

  2. 241

    All about the time lens

    In this episode, I introduce the time lens, and I posit a law about representing time in complex domains.

  3. 240

    All about the volatility lens

    In this episode, I introduce the volatility lens, which seeks to help us write code that deals with a changing world.

  4. 239

    All about the architecture lens

    In this episode, I introduce the architecture lens, its questions, and its goal of modeling architectural domains to manage complexity.

  5. 238

    All about the executable specification lens

    In this episode, I introduce the executable specification lens, its questions, and its goal of getting to runnable, testable code as quickly as possible.

  6. 237

    All about the composition lens

    In this episode, I introduce the composition lens, its questions, and its goal of figuring what's true when you perform multiple operations in a row.

  7. 236

    All about the operation lens

    In this episode, I introduce the operation lens, its questions, and its goal of capturing the use cases of your software.

  8. 235

    Data lens

    In this episode, I introduce the data lens, its questions, and its goals of capturing relationships among data values in data.

  9. 234

    All about the domain lens

    In this episode, I introduce the domain lens, its questions, and its goal.

  10. 233

    How does executable specifications compare with other modeling paradigms?

    In this episode, I compare executable specifications to UML, DDD, and software design.

  11. 232

    What is the title of my new book?

    I've found a better title for my book: Executable Specifications. Listen to find out why it's better.

  12. 231

    What are the domain modeling lenses?

    I'm organizing my new book in terms of lenses. Each lens focuses our attention on one important aspect of software design. In this episode, I briefly introduce each lens.

  13. 230

    How is domain modeling evolving these days?

    I talk about the progress I've made on my book and why I'm throwing it away and starting over.

  14. 229

    Why don't I encounter more type errors when programming in Clojure?

    I give another reason why I don't encounter so many type errors in Clojure.

  15. 228

    What is the "reify to an interpreter" refactoring?

    Watch the creation of a simple refactoring to turn functions into data.

  16. 227

    How to teach an essential skill in domain modeling?

    One important skill in domain modeling is learning to see the semantics of your language, past the habits you've developed. To do that, it helps to see the same example in multiple languages. So how do I show examples in multiple languages without expanding the size of my book?

  17. 226

    What is an isomorphism?

    An isomorphism is a one-to-one mapping from two sets, and encoding your domain model involves finding a mapping between the real world and your code. So does domain modeling involve isomorphism?

  18. 225

    Applying domain modeling to an existing data structure

    Domain modeling also works after you've already got lots of code. How can we apply domain modeling analysis to existing data structures?

  19. 224

    What is the commutative property?

    We discuss the commutative property, why we use it, and three different possible meanings.

  20. 223

    Why is the associative property important?

    We look at several examples where the associative property gives us expressive power.

  21. 222

    What is the process for coming up with a good conceptual model?

    We describe a three-step process for discovering conceptual models.

  22. 221

    What is the closure property?

    I discuss the closure property, which creates operations that can be nested. It's one thing that makes an API feel like a DSL.

  23. 220

    All about level three, algebraic modeling

    What do I mean by algebra? And how do we get from level 0 to level 3?

  24. 219

    Why do we need to model time?

    All sophisticated models need to include time. We discuss two main ways to do that.

  25. 218

    How do you make a function total?

    It is easier to reason about total functions. And you can make any pure function total using three techniques!

  26. 217

    What is a mutation function?

    Mutation functions let you represent changing state over time. They are easily reified, used as reducing functions, and can operate on nested data.

  27. 216

    What is Signature-Driven Development?

    Signature-Driven Development means starting with function signatures before you implement them. I also discuss why we implement the hardest function first.

  28. 215
  29. 214

    Is deferring decisions about our domain a good idea?

    I wonder when to deal with business rules. Do they belong in the domain layer?

  30. 213

    Can domain modeling be taught?

    I answer a listener's questions about whether domain modeling is a skill that can be taught.

  31. 212

    Why domain modeling?

    We explore why focusing on the domain model can improve your software quality.

  32. 211

    How do we evaluate a data model?

    We talk about how you can evaluate the two parts of a domain model.

  33. 210

    What is a domain model and how do we think about them?

    In this episode, I talk about the three-part model of domain modeling and what it means about how they are used.

  34. 209

    When do we want to refer to things by name?

    In a domain model, when should we refer to things by name, and when should we nest a subcomponent?

  35. 208

    Collections in domain models

    When do we use collections in domain models, and how do we think about the states they represent?

  36. 207

    Layout of Domain Modeling book

    In this episode, I talk about the three parts of my book, which mirror the three levels of domain modeling.

  37. 206

    The power of runnable specifications

    I talk about the advantages of writing a spec directly in your production language.

  38. 205

    What is a domain model?

    In this episode, I continue the exploration of the definition of domain model to serve as a base layer of understanding to write my next book.

  39. 204

    What is a high-level language?

    We've all heard the term _high-level language_. Initially, it referred to the step from assembly languages to compiled languages. But it has another definition, which has to do with how well the language lets you think.

  40. 203

    Rewrites

    How is Smalltalk so small? Four rewrites.

  41. 202

    Is the abstract stuff at the top or the bottom?

    I explore a new perspective about what abstraction means and how it can cause problems.

  42. 201

    The Christopher Alexander Effect

    Why does some design advice work for some people, but not for others? And why do some agile practices work for some people, but not for others? I call that The Christopher Alexander Effect and explain how it works.

  43. 200
  44. 199

    Computer Science as Empirical Inquiry: Symbols and Search

    In this episode, I excerpt from and comment on Allen Newell's and Herbert Simon's 1975 ACM Turing Award Lecture.

  45. 198

    How far can we stretch technical debt?

    Technical debt is a metaphor used to explain the tradeoff we all face when we have a deadline. How much is it worth to rush the code out the door? It's a good metaphor, but the term is often used these days to mean 'code I don't like'. In this episode, I examine the parts of the metaphor and ways in which technical debt differs from financial debt.

  46. 197

    How to avoid premature optimization?

    I explore why clean code is a lagging indicator and how the domain model is a leading indicator of maintenance cost.

  47. 196

    What is domain modeling?

    I begin exploring the process of domain modeling with a definition.

  48. 195

    Computer Programming as an Art

    I read from the 1974 Turing Award Lecture by Don Knuth.

  49. 194

    Programmer as Navigator

    We read and discuss the 1973 ACM Turing Award Lecture by Charles W. Bachman.

  50. 193

    The Humble Programmer

    We read from and comment on Edsger Dijkstra's 1972 Turing Award Lecture called The Humble Programmer. Is the problem with programming that we don't recognize our own limitations? We'll explore that and more.

Type above to search every episode's transcript for a word or phrase. Matches are scoped to this podcast.

Searching…

We're indexing this podcast's transcripts for the first time — this can take a minute or two. We'll show results as soon as they're ready.

No matches for "" in this podcast's transcripts.

Showing of matches

No topics indexed yet for this podcast.

Loading reviews...

ABOUT THIS SHOW

An off-the-cuff stream of Functional Programming ideas, skills, patterns, and news from Functional Programming expert Eric Normand of LispCast. Formerly known as Thoughts on Functional Programming.

HOSTED BY

Eric Normand

CATEGORIES

Frequently Asked Questions

How many episodes does The Eric Normand Podcast have?

The Eric Normand Podcast currently has 50 episodes available on PodParley. New episodes are automatically indexed when they're published to the podcast feed.

What is The Eric Normand Podcast about?

An off-the-cuff stream of Functional Programming ideas, skills, patterns, and news from Functional Programming expert Eric Normand of LispCast. Formerly known as Thoughts on Functional Programming.

How often does The Eric Normand Podcast release new episodes?

The Eric Normand Podcast has 50 episodes. Check the episode list to see recent publication dates and frequency.

Where can I listen to The Eric Normand Podcast?

You can listen to The Eric Normand Podcast on PodParley by clicking any episode. We provide an embedded audio player for direct listening, and you can also subscribe via your preferred podcast app using the RSS feed.

Who hosts The Eric Normand Podcast?

The Eric Normand Podcast is created and hosted by Eric Normand.
URL copied to clipboard!