Web

Exploring Indico: A Full Featured Event Management Platform - Episode 208

Summary

Managing an event is rife with inherent complexity that scales as you move from scheduling a meeting to organizing a conference. Indico is a platform built at CERN to handle their efforts to organize events such as the Computing in High Energy Physics (CHEP) conference, and now it has grown to manage booking of meeting rooms. In this episode Adrian Mönnich, core developer on the Indico project, explains how it is architected to facilitate this use case, how it has evolved since its first incarnation two decades ago, and what he has learned while working on it. The Indico platform is definitely a feature rich and mature platform that is worth considering if you are responsible for organizing a conference or need a room booking system for your office.

Announcements

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!
  • Bots and automation are taking over whole categories of online interaction. Discover.bot is an online community designed to serve as a platform-agnostic digital space for bot developers and enthusiasts of all skill levels to learn from one another, share their stories, and move the conversation forward together. They regularly publish guides and resources to help you learn about topics such as bot development, using them for business, and the latest in chatbot news. For newcomers to the space they have the Beginners Guide To Bots that will teach you the basics of how bots work, what they can do, and where they are developed and published. To help you choose the right framework and avoid the confusion about which NLU features and platform APIs you will need they have compiled a list of the major options and how they compare. Go to pythonpodcast.com/discoverbot today to get started and thank them for their support of the show.
  • You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register.
  • 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 and tell your friends and co-workers
  • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing Adrian Mönnich about Indico, the effortless open-source tool for event organisation, archival and collaboration

Interview

  • Introductions
  • How did you get introduced to Python?
  • Can you start by describing what Indico is and how the project got started?
    • What are some other projects which target a similar use case and what were they lacking that led to Indico being necessary?
  • Can you talk through an example workflow for setting up and managing an event in Indico?
    • How does the lifecycle change when working with larger events, such as PyCon?
  • Can you describe how Indico is architected and how its design has evolved since it was first built?
    • What are some of the most complex or challenging portions of Indico to implement and maintain?
  • There are a lot of areas for exercising constraint resolution algorithms. Can you talk through some of the business logic of how that operates?
  • Most of Indico is highly configurable and flexible. How do you approach managing sane defaults to prevent users getting overwhelmed when onboarding?
    • What is your approach to testing given how complex the project is?
  • What are some of the most interesting or unexpected ways that you have seen Indico used?
  • What are some of the most interesting/unexpected lessons that you have learned in the process of building Indico?
  • What do you have planned for the future of the project?

Keep In Touch

Picks

Links

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

Building GraphQL APIs in Python Using Graphene with Syrus Akbary - Episode 192

Summary

The web has spawned numerous methods for communicating between applications, including protocols such as SOAP, XML-RPC, and REST. One of the newest entrants is GraphQL which promises a simplified approach to client development and reduced network requests. To make implementing these APIs in Python easier, Syrus Akbary created the Graphene project. In this episode he explains the origin story of Graphene, how GraphQL compares to REST, how you can start using it in your applications, and how he is working to make his efforts sustainable.

Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute.
  • And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial.
  • 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.
  • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing Syrus Akbary about Graphene, a python library for building your APIs with GraphQL

Interview

  • Introductions
  • How did you get introduced to Python?
  • What is GraphQL and what is the benefit vs a REST-based API?
    • How does it compare to specifications such as OpenAPI (formerly Swagger) or RAML?
  • Can you explain what Graphene is and your motivation for building it?
    • In addition to the Python implementation there is also a JavaScript library. Is that primarily for use as a client or can it also be used in Node for serving APIs?
  • What is involved in building a GraphQL API?
    • What does Graphene do to simplify this process?
  • How is Graphene implemented and how has that evolved since you first started working on it?
    • Is there a set of tests for verifying the compliance of Graphene or a specific API with the GraphQL specification?
  • What are some of the most complex or confusing aspects of building a GraphQL API?
  • What are some of the unique capabilities that are offered by building an application with GraphQL as the communication interface?
  • While reading through documentation in preparation for our conversation I noticed the Quiver project. Can you explain what that is and how it fits with the other Graphene projects?
    • What is it doing under the hood to optimize serving of the API?
  • For someone who is interested in adding a GraphQL interface to an existing application, what would be involved?
  • The documentation mentions creation of a schema, as well as defining queries. Is it possible for a client to craft queries that don’t match directly with those defined in the server layer?
  • What are some of the most interesting or surprising uses of Graphene and GraphQL that you have seeen?
  • What are some cases where it would be more practical to implement an API using REST instead of GraphQL?
  • What are some references that you would recommend for anyone who wants to learn more about GraphQL and its ecosystem?
  • What are your plans for the future of Graphene?

Keep In Touch

Picks

Links

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

AIORTC: An Asynchronous WebRTC Framework with Jeremy Lainé - Episode 191

Summary

Real-time communication over the internet is an amazing feat of modern engineering. The protocol that powers a majority of video calling platforms is WebRTC. In this episode Jeremy Lainé explains why he wrote a Python implementation of this protocol in the form of AIORTC. He also discusses how it works, how you can use it in your own projects, and what he has planned for the future.

Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute.
  • And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial.
  • 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.
  • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing Jeremy Lainé about AIORTC, an asynchronous implementation of the WebRTC and ObjectRTC protocols in Python

Interview

  • Introductions
  • How did you get introduced to Python?
  • Can you start by explaining what the WebRTC and ObjectRTC protocols are?
    • What are some of the main use cases for these protocols?
  • What is AIORTC and what was your motivation for creating it?
    • How does it compare to other implementations of the RTC protocols?
    • Why do you think there haven’t been any other Python implementations?
  • What are some of the benefits of having a Python implementation of the RTC protocol?
  • How is AIORTC implemented?
    • What have been some of the most difficult or challenging aspects of implementing a WebRTC compliant library?
    • What are some of the most interesting or useful lessons that you have learned in the process?
  • What is involved in building an application on top of AIORTC?
    • What would be required to integrate AIORTC into an existing application built with something such as Flask or Django?
  • What are some of the most interesting uses of AIORTC that you have seen?
  • What are some of the projects that you would like to build with AIORTC?
  • What are some cases where it would make more sense to use a different library or framework for your WebRTC projects?
  • What are your plans for the future of AIORTC?

Keep In Touch

Picks

Links

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

Django, Channels, And The Asynchronous Web with Andrew Godwin - Episode 180

Summary

Once upon a time the web was a simple place with one main protocol and a predictable sequence of request/response interactions with backend applications. This is the era when Django began, but in the intervening years there has been an explosion of complexity with new asynchronous protocols and single page Javascript applications. To help bridge the gap and bring the most popular Python web framework into the modern age Andrew Godwin created Channels. In this episode he explains how the first version of the asynchronous layer for Django applications was created, how it has changed in the jump to version 2, and where it will go in the future. Along the way he also discusses the challenges of async development, his work on designing ASGI as the spiritual successor to WSGI, and how you can start using all of this in your own projects today.

Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute.
  • 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.
  • Join the community in the new Zulip chat workspace at podcastinit.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing Andrew Godwin about Django Channels 2.x and the ASGI specification for modern, asynchronous web protocols

Interview

  • Introductions
  • How did you get introduced to Python?
  • Can you start with an overview of the problem that Channels is aiming to solve?
  • Asynchronous frameworks have existed in Python for a long time. What are the tradeoffs in those frameworks that would lead someone to prefer the combination of Django and Channels?
  • For someone who is familiar with traditional Django or working on an existing application, what are the steps involved in integrating Channels?
  • Channels is a project that you have been working on for a significant amount of time and which you recently re-architected. What were the shortcomings in the 1.x release that necessitated such a major rewrite?
    • How is the current system architected?
  • What have you found to be the most challenging or confusing aspects of managing asynchronous web protocols both as an author of Channels/ASGI and someone building on top of them?
    • While reading through the documentation there were mentions of the synchronous nature of the Django ORM. What are your thoughts on asynchronous database access and how important that is for future versions of Django and Channels?
  • As part of your implementation of Channels 2.x you introduced a new protocol for asynchronous web applications in Python in the form of ASGI. How does this differ from the WSGI standard and what was your process for developing this specification?
    • What are your hopes for what the Python community will do with ASGI?
  • What are your plans for the future of Channels?
  • What are some of the most interesting or unexpected uses of Channels and/or ASGI?

Keep In Touch

Picks

Links

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

The Masonite Web Framework With Joe Mancuso - Episode 174

Summary

Masonite is an ambitious new web framework that draws inspiration from many other successful projects in other languages. In this episode Joe Mancuso, the primary author and maintainer, explains his goal of unseating Django from its position of prominence in the Python community. He also discusses his motivation for building it, how it is architected, and how you can start using it for your own projects.

Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute.
  • 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.
  • Join the community in the new Zulip chat workspace at podcastinit.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing Joe Mancuso about Masonite, the modern and developer centric python web framework.

Interview

  • Introductions
  • How did you get introduced to Python?
  • What is Masonite and what was the motivation for creating it?
    • How does it fit in the current landscape of Python web frameworks?
  • Why might someone choose to use Masonite over Python frameworks?
    • If someone isn’t already decided on using Python, what are some reasons that they might choose Masonite over frameworks in other languages?
  • Can you describe the framework architecture and how it has evolved over the lifetime of the project?
  • What are some examples of projects that have been built with Masonite and what aspects of the framework are they leveraging?
  • For someone who is starting a new project with Masonite what are some of the concepts that they should be familiar with?
    • What is their workflow for starting their project?
    • How does that workflow change when working with an existing application?
  • What are some of the plans that you have for the future of Masonite?

Keep In Touch

Picks

Links

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

The Past, Present, and Future of Twisted with Moshe Zadka - Episode 170

Summary

Twisted is one of the earliest frameworks for developing asynchronous applications in Python and it has yet to fulfill its original purpose. It can be used to build network servers that integrate a multitude of protocols, increase the performance of your I/O bound applications, serve as the full web stack for your WSGI projects, and anything else that needs a battle tested and performant foundation. In this episode long time maintainer Moshe Zadka discusses the history of Twisted, how it has evolved over the years, the transition to Python 3, some of its myriad use cases, and where it is headed in the future. Try it out today and then send some thanks to all of the people who have dedicated their time to building it.

Preface

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • When you’re ready to launch your next app you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute.
  • To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons.
  • 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.
  • Join the community in the new Zulip chat workspace at podcastinit.com/chat
  • Your host as usual is Tobias Macey and today I’m interviewing Moshe Zadka about Twisted, the original multi-function tool for asynchronous operations and network protocols in Python

Interview

  • Introductions
  • How did you get introduced to Python?
  • For anyone who isn’t familiar with Twisted can you share a brief overview of what it is?
    • What was the original motivation for creating it?
    • How did you get involved with the project and what is your current role in the team?
  • How can people learn to use Twisted?
    • What are some of the common difficulties that new users encounter?
  • What did you learn working on Twisted?
  • Who uses Twisted?
    • When is Twisted the wrong choice?
    • What are some examples of systems that aren’t using Twisted but should be?
  • What are some of the ways that Twisted has evolved and changed over the years?
  • What are some of the ways people can support Twisted?
  • What are some of the plans for the future of Twisted?

Keep In Touch

Picks

Links

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

Dramatiq: Distributed Task Queue For Python 3 with Bogdan Popa - Episode 141

Summary

A majority of projects will eventually need some way of managing periodic or long-running tasks outside of the context of the main application. This is where a distributed task queue becomes useful. For many in the Python community the standard option is Celery, though there are other projects to choose from. This week Bogdan Popa explains why he was dissatisfied with the current landscape of task queues and the features that he decided to focus on while building Dramatiq, a new, opinionated distributed task queue for Python 3. He also describes how it is designed, how you can start using it, and what he has planned for the future.

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 Bogdan Popa about Dramatiq, a distributed task processing library for Python with a focus on simplicity, reliability and performance

Interview

  • Introductions
  • How did you get introduced to Python?
  • What is Dramatiq and what was your motivation for creating it?
  • How does Dramatiq compare to other task queues in Python such as Celery or RQ?
  • How is Dramatiq implemented and how has the internal architecture evolved?
  • What have been some of the most difficult aspects of building Dramatiq?
  • What are some of the features that you are most proud of?
  • For someone who is interested in integrating Dramatiq into an application, can you describe the steps involved and the API?
  • Do you provide any form of migration path or compatibility layer for people who are currently using Celery or RQ?
  • Can you describe the licensing structure for the project and your reasoning?
    • How did you determine the price point for commercial licenses?
    • Have you been successful in selling licenses for commercial use?
  • What are some of the features that you have planned for future releases?

Keep In Touch

Picks

Links

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

Morepath with Martijn Faassen - Episode 91

Summary

Python has a wide and growing variety of web frameworks to choose from, but if you want one with super powers then you need Morepath. This week Martijn Faassen shares the story of how Morepath was created, how it differentiates itself from the other available options, and how you can use it to power your next project.

Brief Introduction

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan.
  • Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.
  • To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
  • Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas.
  • Your host as usual is Tobias Macey and today I’m interviewing Martijn Faassen about the Morepath web framework.

Interview with Martijn Faassen

  • Introductions
  • How did you get introduced to Python?
  • What is Morepath and what problem were you trying to solve when you created it?
  • The tag line for the Morepath project is that it’s a web microframework with superpowers. What is special or different about it that sets it apart from the other options in the Python ecosystem?
  • It can be difficult to convince someone to migrate to a new framework, particularly if there is a lack of supporting ecosystem. What are some of the motivating factors for a developer to switch to Morepath if they already have experience with one of the more widely used frameworks?
  • What does the internal architecture for Morepath look like and what are some of the challenges that you have faced while building it?
  • One of the features is the automatic link generation for ensuring that you don’t end up with dead links. Is there any support for permalinks or redirects so that if you refactor your site people won’t end up at a path that no longer exists?
  • In the documentation you make a number of references to the fact that Morepath is a routing based framework. Can you explain what you mean by that and how it differs from a traversal based framework?
  • Part of the core elements of Morepath are your libraries Reg and Dectate. Can you describe each of them and explain some of how they came to be created?
  • Morepath has a different conception of models than most frameworks that I’ve dealt with in that they aren’t necessarily associated with any form of database. Can you explain why that is and some of the patterns that it allows for?
  • The method for extending and reusing applications built in Morepath is through subclassing the objects and overriding specific methods. What is it about this approach that you found to be more flexible than the alternatives exhibited by other frameworks?
  • What are some of the most interesting or unexpected uses of Morepath that you have seen?
  • What do you have planned for the future of Morepath?

Keep In Touch

Picks

Links

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

Plone with Eric Steele - Episode 85

Summary

Plone is one of the first CMS projects to be built using Python and it is still being actively developed. This week Eric Steele, the release manager for Plone, tells us about how it got started, how it is architected, and how the community is one of its greatest strengths

Brief Introduction

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable.
  • When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app.
  • You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan.
  • Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.
  • To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
  • Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas.
  • Your host as usual is Tobias Macey and today I’m interviewing Eric Steele about the Plone CMS.

Interview with Eric Steele

  • Introductions
  • How did you get introduced to Python?
  • Can you start by explaining a bit about what Plone is and how you got involved with it?
  • How did the Plone project get started and how has it evolved over the years?
  • What makes Plone unique among the myriad CMS tools that are available and which of them do you consider to be direct competitors?
  • Plone has managed to keep an impressive track record of security. What are some of the key features that enable that?
  • I know that for much of its history, the default data storage for plone was the ZODB (Zope Object DataBase). How would you describe its benefits and drawbacks for someone who is familiar with a relational database?
  • Plone is one of the most long-lived Python projects that I am aware of. What are some of the most difficult maintenance challenges that you have encountered over the years of its existence?
  • What does the internal architecture of Plone look like?
  • One of the major tenets of the project is the ability to install extensions. What are some of the most interesting plugins that you are aware of?
  • What kinds of projects are Plone best suited for?
  • What does the workflow look like for a user of Plone?
  • What are some of the most interesting uses of Plone that you have seen?
  • What are the biggest challenges facing the Plone project and community as development and deployment paradigms continue to change?

Keep In Touch

Picks

Links

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

.

Sandstorm.io with Asheesh Laroia - Episode 75

Summary

Sandstorm.io is an innovative platform that aims to make self-hosting applications easier and more maintainable for the average individual. This week we spoke with Asheesh Laroia about why running your own services is desirable, how they have made security a first priority, how Sandstorm is architected, and what the installation process looks like.

Brief Introduction

  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
  • I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com
  • Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project
  • We are also sponsored by Rollbar. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan.
  • Hired has also returned as a sponsor this week. If you’re looking for a job as a developer or designer then Hired will bring the opportunities to you. Sign up at hired.com/podcastinit to double your signing bonus.
  • Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.
  • To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
  • Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas.
  • I would also like to mention that the organizers of PyCon Zimbabwe are looking to the global Python community for help in supporting their event. If you would like to donate the link will be in the show notes.
  • Your hosts as usual are Tobias Macey and Chris Patti
  • Today we’re interviewing Asheesh Laroia about Sandstorm.io, a project that is trying to make self-hosted applications easy and secure for everyone.

Interview with Asheesh Laroia

  • Introductions
  • How did you get introduced to Python? – Tobias
  • Can you start by telling everyone about the Sandstorm project and how you got involved with it? – Tobias
  • What are some of the reasons that an individual would want to self-host their own applications rather than using comparable services available through third parties? – Tobias
  • How does Sandstorm try to make the experience of hosting these various applications simple and enjoyable for the broadest variety of people? – Tobias
  • What does the system architecture for Sandstorm look like? – Tobias
  • I notice that Sandstorm requires a very recent Linux kernel version. What motivated that choice and how does it affect adoption? – Chris
  • One of the notable aspects of Sandstorm is the security model that it uses. Can you explain the capability-based authorization model and how it enables Sandstorm to ensure privacy for your users? – Tobias
  • What are some of the most difficult challenges facing you in terms of software architecture and design? – Tobias
  • What is involved in setting up your own server to run Sandstorm and what kinds of resources are required for different use cases? – Tobias
  • You have a number of different applications available for users to install. What is involved in making a project compatible with the Sandstorm runtime environment? Are there any limitations in terms of languages or application architecture for people who are targeting your platform? – Tobias
  • How much of Sandstorm is written in Python and what other languages does it use? – Tobias

Keep In Touch

Picks

Links

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