Artwork

Content provided by Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://ppacc.player.fm/legal.
Player FM - Podcast App
Go offline with the Player FM app!

Ep 111: Loopify!

28:54
 
Share
 

Manage episode 401175559 series 2463849
Content provided by Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://ppacc.player.fm/legal.

Each week, we discuss a different topic about Clojure and functional programming.

If you have a question or topic you'd like us to discuss, tweet @clojuredesign, send an email to [email protected], or join the #clojuredesign-podcast channel on the Clojurians Slack.

This week, the topic is: "trying again". We throw our code in a loop, and it throws us for a loop.

Our discussion includes:

  • Sportify continues!
  • When is it time to stop developing?
  • How do we handle retries?
  • What if you need to recur from catch?
  • How do we recover mid-process?
  • Where should the recovery logic go?
  • Is there a way to get all the critical context at the same level?
  • What should you preserve across a recur?
  • What does it mean to be "loop native"?
  • What is the basic structure for any automation?
  • What is a "single application state"?

Selected quotes

  • It's a lot like having a project on a workbench. You have all of the tools and all the information laid out before you on that workbench. Nothing is tucked in a drawer or inside a cabinet.

  • That's a very important lesson for any developer: you can always stop—at least after it's working.

  • Nothing in the world is solved except by adding another level of abstraction.

  • I was not expecting that level of mutation! I was expecting a Kafka log written in stone!

  • The positive is it has everything. The negative is it has everything.

  • We would like more loop-native code inside of our cloud-native application.

  • Are you suggesting that just because we can, it doesn't mean we should? We're programmers! If the language lets us do it, it must be a good idea!

  • One of the reasons why I like Clojure is because it specifically tells me that I can't do some things that are bad to do.

  • All of the context is in one map. It has everything in it. One map to rule them all!

  • Might this be the fabled "single application state"?

  • We have the thinking function, the doing function, and the assimilate function.

Links

  continue reading

118 episodes

Artwork

Ep 111: Loopify!

Functional Design in Clojure

94 subscribers

published

iconShare
 
Manage episode 401175559 series 2463849
Content provided by Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://ppacc.player.fm/legal.

Each week, we discuss a different topic about Clojure and functional programming.

If you have a question or topic you'd like us to discuss, tweet @clojuredesign, send an email to [email protected], or join the #clojuredesign-podcast channel on the Clojurians Slack.

This week, the topic is: "trying again". We throw our code in a loop, and it throws us for a loop.

Our discussion includes:

  • Sportify continues!
  • When is it time to stop developing?
  • How do we handle retries?
  • What if you need to recur from catch?
  • How do we recover mid-process?
  • Where should the recovery logic go?
  • Is there a way to get all the critical context at the same level?
  • What should you preserve across a recur?
  • What does it mean to be "loop native"?
  • What is the basic structure for any automation?
  • What is a "single application state"?

Selected quotes

  • It's a lot like having a project on a workbench. You have all of the tools and all the information laid out before you on that workbench. Nothing is tucked in a drawer or inside a cabinet.

  • That's a very important lesson for any developer: you can always stop—at least after it's working.

  • Nothing in the world is solved except by adding another level of abstraction.

  • I was not expecting that level of mutation! I was expecting a Kafka log written in stone!

  • The positive is it has everything. The negative is it has everything.

  • We would like more loop-native code inside of our cloud-native application.

  • Are you suggesting that just because we can, it doesn't mean we should? We're programmers! If the language lets us do it, it must be a good idea!

  • One of the reasons why I like Clojure is because it specifically tells me that I can't do some things that are bad to do.

  • All of the context is in one map. It has everything in it. One map to rule them all!

  • Might this be the fabled "single application state"?

  • We have the thinking function, the doing function, and the assimilate function.

Links

  continue reading

118 episodes

All episodes

×
 
Loading …

Welcome to Player FM!

Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.

 

Quick Reference Guide

Listen to this show while you explore
Play