Salabim: Logistics Simulation with Ruud van der Ham - Episode 151

Summary

Determining the best way to manage the capacity and flow of goods through a system is a complicated issue and can be exceedingly expensive to get wrong. Rather than experimenting with the physical objects to determine the optimal algorithm for managing the logistics of everything from global shipping lanes to your local bank, it is better to do that analysis in a simulation. Ruud van der Ham has been working in this area for the majority of his professional life at the Dutch port of Rotterdam. Using his acquired domain knowledge he wrote Salabim as a library to assist others in writing detailed simulations of their own and make logistical analysis of real world systems accessible to anyone with a Python interpreter.

linode-banner-sponsor-largeDo you want to try out some of the tools and applications that you heard about on Podcast.__init__? Do you have a side project that you want to share with the world? Check out Linode at linode.com/podcastinit or use the code podcastinit2018 and get a $20 credit to try out their fast and reliable Linux virtual servers. They’ve got lightning fast networking and SSD servers with plenty of power and storage to run whatever you want to experiment on.


GoCD is the on-premise open source continuous delivery server created by ThoughtWorks and modeled after the ideas in the Continuous Delivery book by Jez Humble and David Farley.

With GoCD’s comprehensive pipeline modeling, you can model complex workflows for multiple teams with ease. And GoCD’s Value Stream Map lets you track a change from commit to deploy at a glance.

GoCD’s real power is in the visibility it provides over your end-to-end workflow. So you get complete control of and visibility into your deployments, across multiple teams.

Say goodbye to deployment panic and hello to consistent, predictable deliveries.

To learn more about GoCD, visit gocd.org for a free download. Professional Support and enterprise add-ons, including disaster recovery, are available.


Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters.
  • If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind.
  • Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected])
  • To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media.
  • Your host as usual is Tobias Macey and today I’m interviewing Ruud van der Ham about Salabim, a Python library for conducting discrete event simulations

Interview

  • Introductions
  • How did you get introduced to Python?
  • Can you start by explaining what Discrete Event Simulation is and how Salabim helps with that?
    • Can you explain how you chose the name?
  • What was your motivation for creating Salabim and how does it compare to other tools for discrete event simulation?
  • How does discrete event simulation compare with state machines?
  • How is Salabim implemented and how has the design evolved over the time that you have been working on it?
  • I understand that you have done a majority of Salabim was written on an iPad. Can you speak about why you have chosen that as your development environment and your experience working in that manner?
  • What are some examples of the types of models that you can model with Salabim?
    • What would an implementation of one of these models look like for someone using Salabim?
  • What options does a user have to verify the accuracy of a simulation created with Salabim?
  • One of the nice aspects of Salabim is the fact that it provides a visual output as a simulation runs. Can you describe the workflow for someone who wants to use Salabim for modeling and visualizing a system?
  • At what point does a system become too complex to encapsulate in a simulation and what techniques can you use to modularize it to make a simulation useful?
  • When is Salabim not the right tool to use and what would you suggest for people who find themselves in that situation?
  • What have been some of the most complicated or difficult aspects of building and maintaining Salabim?
  • What are some of the new features or improvements that you have planned for the future of Salabim?

Keep In Touch

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA