Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Blog Pricing
Podcast Image

The Eric Normand Podcast

News Education

Activity Overview

Episode publication activity over the past year

Episodes

Showing 1-100 of 242
Page 1 of 3 Next → »»

All about the stratified design lens

25 Sep 2023

Contributed by Lukas

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

All about the time lens

19 Sep 2023

Contributed by Lukas

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

All about the volatility lens

11 Sep 2023

Contributed by Lukas

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

All about the architecture lens

31 Jul 2023

Contributed by Lukas

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

All about the executable specification lens

24 Jul 2023

Contributed by Lukas

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

All about the composition lens

10 Jul 2023

Contributed by Lukas

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.

All about the operation lens

03 Jul 2023

Contributed by Lukas

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

Data lens

26 Jun 2023

Contributed by Lukas

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

All about the domain lens

19 Jun 2023

Contributed by Lukas

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

How does executable specifications compare with other modeling paradigms?

12 Jun 2023

Contributed by Lukas

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

What is the title of my new book?

05 Jun 2023

Contributed by Lukas

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

What are the domain modeling lenses?

29 May 2023

Contributed by Lukas

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

How is domain modeling evolving these days?

22 May 2023

Contributed by Lukas

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

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

15 May 2023

Contributed by Lukas

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

What is the "reify to an interpreter" refactoring?

08 May 2023

Contributed by Lukas

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

How to teach an essential skill in domain modeling?

24 Apr 2023

Contributed by Lukas

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 se...

What is an isomorphism?

17 Apr 2023

Contributed by Lukas

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

Applying domain modeling to an existing data structure

10 Apr 2023

Contributed by Lukas

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

What is the commutative property?

20 Feb 2023

Contributed by Lukas

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

Why is the associative property important?

13 Feb 2023

Contributed by Lukas

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

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

30 Jan 2023

Contributed by Lukas

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

What is the closure property?

23 Jan 2023

Contributed by Lukas

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

All about level three, algebraic modeling

09 Jan 2023

Contributed by Lukas

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

Why do we need to model time?

26 Dec 2022

Contributed by Lukas

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

How do you make a function total?

19 Dec 2022

Contributed by Lukas

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

What is a mutation function?

12 Dec 2022

Contributed by Lukas

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

What is Signature-Driven Development?

06 Dec 2022

Contributed by Lukas

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

What's the problem with using arrays for pizza toppings?

28 Nov 2022

Contributed by Lukas

Is deferring decisions about our domain a good idea?

21 Nov 2022

Contributed by Lukas

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

Can domain modeling be taught?

14 Nov 2022

Contributed by Lukas

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

Why domain modeling?

07 Nov 2022

Contributed by Lukas

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

How do we evaluate a data model?

31 Oct 2022

Contributed by Lukas

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

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

24 Oct 2022

Contributed by Lukas

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

When do we want to refer to things by name?

17 Oct 2022

Contributed by Lukas

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

Collections in domain models

10 Oct 2022

Contributed by Lukas

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

Layout of Domain Modeling book

03 Oct 2022

Contributed by Lukas

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

The power of runnable specifications

29 Aug 2022

Contributed by Lukas

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

What is a domain model?

22 Aug 2022

Contributed by Lukas

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.

What is a high-level language?

15 Aug 2022

Contributed by Lukas

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

Rewrites

08 Aug 2022

Contributed by Lukas

How is Smalltalk so small? Four rewrites.

Is the abstract stuff at the top or the bottom?

24 Apr 2022

Contributed by Lukas

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

The Christopher Alexander Effect

07 Feb 2022

Contributed by Lukas

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

My feelings about static vs dynamic typing

31 Jan 2022

Contributed by Lukas

Can't we all just get along?

Computer Science as Empirical Inquiry: Symbols and Search

10 Jan 2022

Contributed by Lukas

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

How far can we stretch technical debt?

15 Nov 2021

Contributed by Lukas

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'...

How to avoid premature optimization?

08 Nov 2021

Contributed by Lukas

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

What is domain modeling?

01 Nov 2021

Contributed by Lukas

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

Computer Programming as an Art

27 Sep 2021

Contributed by Lukas

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

Programmer as Navigator

30 Aug 2021

Contributed by Lukas

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

The Humble Programmer

02 Aug 2021

Contributed by Lukas

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 re...

What's the relationship between abstraction and generality?

19 Jul 2021

Contributed by Lukas

Do abstract and general mean the same thing? I don't think so. I've actually stopped using the term 'abstraction' because it's so laden with semantic ...

Why is data so powerful?

12 Jul 2021

Contributed by Lukas

In this episode, we explore why Clojure's stance of not wrapping data much is so powerful in the world we live in.

What if data is a really bad idea?

05 Jul 2021

Contributed by Lukas

In this episode, I read from and discuss a comment thread between Rich Hickey and Alan Kay.

On the criteria to be used in decomposing systems into modules

28 Jun 2021

Contributed by Lukas

In this episode, I read from David Parnas's important paper on modularity.

What is missing from Stratified Design?

14 Jun 2021

Contributed by Lukas

In this episode, I explore the notion of fit and how it is missing from the Stratified Design paper.

Generality in Artificial Intelligence

07 Jun 2021

Contributed by Lukas

In this episode, I read and comment on excerpts from John McCarthy's 1971 Turing Award Lecture.

Some Comments from a Numerical Analyst

31 May 2021

Contributed by Lukas

In this episode, I read and comment on an excerpt from the 1970 Turing Award Lecture by James Wilkinson.

Don't overcomplicate the onion architecture

24 May 2021

Contributed by Lukas

When using the onion architecture, you need to consider the dependencies (actions depend on calculations), but also you need to consider the semantic ...

Is Haskell the best procedural language?

17 May 2021

Contributed by Lukas

Functional programming is a mindset that distinguishes actions, calculations, and data. That's where it derives its power. Simply applying the discipl...

Do forces really exist?

10 May 2021

Contributed by Lukas

Force is an important concept in Newtonian mechanics. But do forces really exist? In fact, it is an abstraction invented by Newton. The insight revolu...

Could we build Newtonian mechanics on purpose?

03 May 2021

Contributed by Lukas

One of the greatest domain models ever built was Newtonian mechanics. Why did it take physics, as a field, thousands of years to figure it out? What c...

How is domain modeling related to Starbucks?

26 Apr 2021

Contributed by Lukas

We discuss two phases of domain modeling, one easy and one difficult.https://lispcast.com/how-is-domain-modeling-related-to-starbucks/

Is design a noun or a verb?

29 Mar 2021

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/is-design-a-noun-or-a-verb/

Has software design taken a wrong turn?

22 Mar 2021

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/has-software-design-taken-a-wrong-turn/

Form and Content in Computer Science

08 Feb 2021

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/form-and-content-in-computer-science/

One Man's View of Computer Science

25 Jan 2021

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/one-mans-view-of-computer-science/

Computing Then and Now

18 Jan 2021

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/computing-then-and-now/

The Synthesis of Algorithmic Systems

11 Jan 2021

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/the-synthesis-of-algorithmic-systems/

Is Clojure a language for hipsters?

14 Dec 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/is-clojure-a-language-for-hipsters/

Lambda: The Ultimate GOTO

07 Dec 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/lambda-the-ultimate-goto/

Can Programming Be Liberated from the von Neumann Style?

09 Nov 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/can-programming-be-liberated-from-the-von-neumann-style/

Do we use metacircular evaluators in real life?

19 Oct 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/do-we-use-metacircular-evaluators-in-real-life/

The Next 700 Programming Languages

12 Oct 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/the-next-700-programming-languages/

What makes some API's become DSL's?

03 Aug 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/what-makes-some-apis-become-dsls/

What is software design?

27 Jul 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/what-is-software-design-definition/

Why Functional Programming Matters

13 Jul 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/why-functional-programming-matters/

My response to Out of the Tar Pit

29 Jun 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/my-response-to-out-of-the-tar-pit/

Out of the Tar Pit

22 Jun 2020

Contributed by Lukas

For audio, video, and links: https://lispcast.com/out-of-the-tar-pit/

What is software architecture?

16 Mar 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/what-is-software-architecture/

The Early History of Smalltalk

03 Feb 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/the-early-history-of-smalltalk/

Lisp: A language for stratified design

20 Jan 2020

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/lisp-a-language-for-stratified-design/

Year-end update 2019

12 Dec 2019

Contributed by Lukas

Show notes:For audio, video, and text transcripts: https://lispcast.com/year-end-update-2019/

Are monads practical?

05 Dec 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/are-monads-practical/

Where does structural similarity come from?

25 Nov 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/where-does-structural-similarity-come-from/

Do you need immutability for functional programming?

21 Nov 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/do-you-need-immutability-for-functional-programming/

Algebra is about composition

18 Nov 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/algebra-is-about-composition/

What do product and sum types have to do with data modeling?

14 Nov 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/what-do-product-and-sum-types-have-to-do-with-data-modeling/

Can you have a clean domain model?

11 Nov 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/can-you-have-a-clean-domain-model/

What is abstraction?

07 Nov 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/what-is-abstraction-2/

Why does stratified design work?

04 Nov 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/why-does-stratified-design-work/

Why are algebraic properties important?

31 Oct 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/why-are-algebraic-properties-important/

Functional programming is a set of skills

28 Oct 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/functional-programming-is-a-set-of-skills/

The commercialization of computers

24 Oct 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/the-commercialization-of-computers/

Two kinds of data modeling

21 Oct 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/two-kinds-of-data-modeling/

What are product and sum types?

17 Oct 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/what-are-product-and-sum-types/

Why do I prefer Clojure to Haskell?

14 Oct 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/why-do-i-prefer-clojure-to-haskell/

Why do I like Denotational Design?

10 Oct 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/why-do-i-like-denotational-design/

What is the difference between a domain model and business rules?

07 Oct 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/what-is-the-difference-between-a-domain-model-and-business-rules/

Where does the power of Nil Punning come from?

30 Sep 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/power-of-nil-punning/

What is Nil Punning?

26 Sep 2019

Contributed by Lukas

For audio, video, and text transcripts: https://lispcast.com/what-is-nil-punning/

Page 1 of 3 Next → »»