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. 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 hosts@podcastinit.com) 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 Email Picks Tobias Cuisinart Burr Mill Coffee Grinder Ruud Pythonista (Python for iOS) Python Notes for Professionals Fluent Python by Luciano Ramalho Links Salabim GitHub Dining Philosophers Animation Elevator Animation Rotterdam Discrete Event Simulation Container Terminal Automation Basic Algol Pascal Operations Research Continuous Simulation Simula Coroutines SymPy Another DES in Python: SimPy DES in Julia: SimJulia DES in R: Simmer DES in Delphi/Pascal: Tomas Pillow PyPy Delphi PyGame PyQT TkInter Inspect Module OpenCV Blender The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA