{"schedule": {"version": "0.8", "base_url": "https://pretalx.evolutio.pt/2021/schedule/", "conference": {"acronym": "2021", "title": "DjangoCon Europe 2021", "start": "2021-06-02", "end": "2021-06-06", "daysCount": 5, "timeslot_duration": "00:05", "time_zone_name": "Europe/Paris", "rooms": [{"name": "Secondary Room", "guid": null, "description": null, "capacity": null}, {"name": "Main Room", "guid": null, "description": null, "capacity": null}], "days": [{"index": 1, "date": "2021-06-02", "day_start": "2021-06-02T04:00:00+02:00", "day_end": "2021-06-03T03:59:00+02:00", "rooms": {"Main Room": [{"id": 155, "guid": "35469410-f9e7-5ede-b7a8-2b3446e7258e", "logo": "", "date": "2021-06-02T09:15:00+02:00", "start": "09:15", "duration": "00:45", "room": "Main Room", "slug": "2021-155-programming-for-pleasure", "url": "https://pretalx.evolutio.pt/2021/talk/SPQP39/", "title": "Programming for pleasure", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "As programmers, we\u2019re very lucky - our work is often creative and enjoyable, and the culture of programming itself is inventive and playful. Programming can be a pleasure in itself. What we don\u2019t usually recognise is that the effect of this is to make the software we create worse rather better. If we want to make better software, we need to start programming not for pleasure, but for pain.", "description": "**Why is so much software so bad?** And why is so much of it made by really excellent programmers? It's a puzzle to users, who are baffled by the way their software behaves. It's a cause of grief to customer support teams, who have to deal with users' pain. It's exhausting for product managers, who expend vast amounts of energy interacting with engineering teams. \r\n\r\nIt's not just a matter of individual frustration though. Bad software emits a kind of pollution that damages working environments, and is expensive to clean up after. It's a drag on the progress of companies that use it, and harms the reputation and success of the companies that make it.\r\n\r\nSo, *why do software engineering teams make bad software*, when of course they sincerely believe that they are making the best possible software, employing the best possible programmers, following the best processes?\r\n\r\nI argue that there is a reason for it: **programmers are condemned, by the nature of programming itself, to make bad software**, that we make bad software **because** programming is pleasurable.\r\n\r\nI'll discuss the consequences of this, and consider what we can do about it. And I will argue that the only way out of this fate is to embrace **pain**.", "recording_license": "", "do_not_record": false, "persons": [{"id": 224, "code": "FDRCZ3", "public_name": "Daniele Procida", "biography": "Daniele works at Divio, where he helps customers automate cloud deployment of large Python applications. He\u2019s a Django core developer and an enthusiastic supporter of the international Python community and its events.\r\n\r\nLinkedIn: https://www.linkedin.com/in/danieleprocida/?originalSubdomain=uk\r\nGithub: https://github.com/evildmp\r\nTwitter: https://twitter.com/evildmp", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 116, "guid": "ff89df46-d2ba-52c3-a9ee-a64cfd2109e8", "logo": "", "date": "2021-06-02T10:00:00+02:00", "start": "10:00", "duration": "00:45", "room": "Main Room", "slug": "2021-116-unlocking-the-full-potential-of-postgresql-indexes-in-django", "url": "https://pretalx.evolutio.pt/2021/talk/EYKPU8/", "title": "Unlocking the full potential of PostgreSQL indexes in Django", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Developers who are not familiar with databases often fear them, and prefer to treat them like a blackbox. Indexes are extremely powerful and Django provides many ways of using indexes to make queries faster. \r\n\r\nIn this talk I\u2019ll present advanced indexing technics in PostgreSQL using the Django ORM.", "description": "In the talk we are going to optimize a real life Django application using advanced and exotic indexing techinics in PostgreSQL.\r\n\r\nWe are going to address performance issues in real life use cases using advanced indexing features in PostgreSQL:\r\n\r\n- B-Tree indexes\r\n- Covering indexes\r\n- Partial indexes\r\n- Function based indexes\r\n- Hash indexes\r\n- BRIN Indexes\r\n\r\nIf you are not sure what are all these index types are, this talk is for you!", "recording_license": "", "do_not_record": false, "persons": [{"id": 192, "code": "8QRVC3", "public_name": "Haki Benita", "biography": "Haki is a software developer and a technical lead. He takes special interest in databases, web development, software design and performance tuning. Haki also writes about development and performance in his blog [hakibenita.com](https://hakibenita.com).\r\n\r\nFind me on [hakibenita.com](https://hakibenita.com) and [Twitter](https://twitter.com/be_haki)", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 112, "guid": "f793a8d2-0873-5935-bbf7-6fbeff8b30b9", "logo": "", "date": "2021-06-02T10:45:00+02:00", "start": "10:45", "duration": "00:45", "room": "Main Room", "slug": "2021-112-your-very-own-real-time-chat-with-django-channels", "url": "https://pretalx.evolutio.pt/2021/talk/ECY3JD/", "title": "Your very own real time chat with Django Channels", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Does building your real time chat with Django sound fun to you? Let\u2019s get some help from Django Channels in order to do so. In this talk I\u2019d like to illustrate how we can use Django Channels for various purposes by showcasing its concepts and diverse use cases.\r\n\r\nThis talk will cover beginner topics around django-channels and will teach attendees the basics in order to build a simple real time chat using the library.", "description": "Does building your real time chat with Django sound fun to you? Let\u2019s get some help from Django Channels in order to do so. In this talk I\u2019d like to illustrate how we can use Django Channels for various purposes by showcasing its concepts and diverse use cases.\r\n\r\nThis talk will cover beginner topics around Django Channels and will teach attendees the basics in order to build a simple real time chat using the library.\r\n\r\nThis talk is mainly directed at beginners who are interested in learning more about Django Channels. It is expected that attendees have basic knowledge of Django (or at least Python). \r\n\r\nSome of the takeaways attendees are expected to have acquired by the end of the talk:\r\n\r\n- What is Django Channels and how does it work?\r\n- Main concepts for basic usage\r\n- How we can use the library to build cool stuff such as a real time chat", "recording_license": "", "do_not_record": false, "persons": [{"id": 188, "code": "7DDKSM", "public_name": "Amanda Savluchinske", "biography": "Amanda is a full-stack software engineer who has been working with Django and React for the past three years. She loves japanese food, 80s love songs and awful memes.\r\n\r\nTwitter: @afsavluchinske\r\nGitHub: @amandasavluchinske\r\nLinkedIn: Amanda Savluchinske", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 143, "guid": "955b41a2-6192-55e1-99a4-96af765561bb", "logo": "/media/2021/images/DMYMEE/telepath-800x600_zz7CXbG.jpg", "date": "2021-06-02T11:30:00+02:00", "start": "11:30", "duration": "00:45", "room": "Main Room", "slug": "2021-143-telepath-adding-the-missing-link-between-django-and-rich-client-apps", "url": "https://pretalx.evolutio.pt/2021/talk/DMYMEE/", "title": "Telepath - adding the missing link between Django and rich client apps", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Introducing a new approach to sharing data models between Python and JavaScript, to help in building Django apps with rich client-side functionality.", "description": "In today's web applications, the traditional client/server division is falling out of favour - there's an increasing need for the client side to handle not just the presentation layer, but the data model too. But how do you do that without recreating all of your Django business logic in JavaScript?\r\n\r\nThis was the problem faced by [Wagtail CMS](https://wagtail.io/) when building a new version of StreamField, the framework for editing and organising structured page content. Our solution was a new library, '[telepath](https://wagtail.github.io/telepath/)', which can be thought of as a cross-platform version of Python's pickle mechanism, allowing arbitrary object to be unpacked into JavaScript code.\r\n\r\nIn this talk, we'll show how Wagtail has used telepath to enhance Django forms with new client-side capabilities, and how you can use it in your projects to get the best of both the server-side and client-side world.", "recording_license": "", "do_not_record": false, "persons": [{"id": 216, "code": "XGMST9", "public_name": "Matt Westcott", "biography": "Lead developer of Wagtail CMS at Torchbox Ltd.\r\n\r\nTwitter: https://twitter.com/gasmanic", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 125, "guid": "7b77afec-1204-5ff5-87ed-0b96404ce41d", "logo": "", "date": "2021-06-02T12:15:00+02:00", "start": "12:15", "duration": "00:45", "room": "Main Room", "slug": "2021-125--a-sql-for-django", "url": "https://pretalx.evolutio.pt/2021/talk/PC7PZP/", "title": "(A) SQL for Django", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Django's ORM is full-featured, simple to use, and well-suited for almost all interactions with your database. But sometimes, to get better performance or to get data in just the format that you need, it is useful to have the full expressiveness of SQL in your Django application.\r\n\r\nIn this talk, we will look at using SQL with Django. We will see in which situations the use of SQL makes most sense. You will see the power of SQL and the best ways to use SQL with Django.\r\n\r\nWe will start with a short review of SQL and of use cases for which SQL gives you more fine-grained control and better results than Djangos ORM. Then, we look at raw SQL queries and RawQuerySets. RawQuerySets make it possible to get model instances with custom SQL. Finally, we learn how to directly work with Django SQL connections and use SQL change your data or get results that don't fit any particular model instance.", "description": "This talk will show you how to combine SQL and ORM in Django applications.\r\nBoth ORM methods and SQL have their place.\r\nORM and Django's model classes give us a great development experience. We get an easy-to-use and powerful way to define, migrate, and use our database.\r\nSQL gives us access to all the features our database has to offer. It\r\n\r\nThe talk will be structured as follows:\r\n\r\n- Why care about SQL?\r\n- Working with data in Django - Common ORM use cases\r\n- Creating complex queries: Q, F, annotations\r\n- Creating and Addressing the N+1 query problem with Django ORM.\r\n- Everything works, so why use SQL?\r\n- Minimize Database access for maximal Performance\r\n- Use Features of complex sequel queries; Sub-Selects\r\n- Benefit from the SQL Know-How and documentation\r\n- Best of both worlds: Getting objects with raw queries\r\n- If all else fails: Directly using database connections for updates and analytics\r\n- Drawbacks of SQL in Django\r\n- Review: SQL, Django - How and Why", "recording_license": "", "do_not_record": false, "persons": [{"id": 9, "code": "EMAWS3", "public_name": "Stefan Baerisch", "biography": "I started working with Python 2.5 around 2006 to build what might a called a micro-service backend for our company's search backend. In continued to use Python when I did Ph.D. research in automated testing, and I have always been happy with the boost in productivity that Python and Django gave me.\r\n\r\nSince then, I have continued to use Python. Sometimes as part of a customer project, sometimes to automate tedious tasks, and sometimes just for fun.\r\nSince 2020, I work as a freelancer in multiple roles.\r\n\r\nTwitter: https://twitter.com/stefanbaerisch\r\nWebsite: https://www.stbaer.de/index.html\r\nGithub: https://github.com/stbaercom", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 175, "guid": "a9fe3ed9-d73b-530c-a6f6-628aff15bd19", "logo": "", "date": "2021-06-02T13:50:00+02:00", "start": "13:50", "duration": "01:15", "room": "Main Room", "slug": "2021-175-keynote-how-to-be-a-djangonaut-in-a-climate-emergency", "url": "https://pretalx.evolutio.pt/2021/talk/TZ8E7H/", "title": "KEYNOTE | How to be a djangonaut in a climate emergency", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "The science on climate spells out the need for rapid, far-reaching, and unprecedented changes to how we work and live. What does this mean for the way we build digital services as djangonaugs?\r\n\r\nWe\u2019ll explore what we can, and should be doing as professional technologists in a climate emergency, the patterns emerging for more sustainable software engineering, and what a django designed to be the best choice for building future climate tech services might look like.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"id": 239, "code": "UP9XQY", "public_name": "Chris Adams", "biography": "Chris Adams is an environmentally focussed tech generalist, spending the last fifteen years working in tech startups, blue chip companies and government, as a user researcher, product manager, developer, sysadmin and UX-er.\r\n\r\nHe is an organiser of ClimateAction.tech, a community for technology professionals taking climate action, a director of the Green Web Foundation.\r\n\r\nLinkedIn: https://www.linkedin.com/in/mrchrisadams/?originalSubdomain=uk\r\nTwitter: https://twitter.com/mrchrisadams\r\nGithub: https://github.com/mrchrisadams", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 139, "guid": "510af0ee-0d7f-5d89-bffb-5f2d32af546c", "logo": "/media/2021/images/NBUHRU/bekir-donmez-eofm5R5f9Kw-unsplash_AkFKxJk.jpg", "date": "2021-06-02T15:05:00+02:00", "start": "15:05", "duration": "00:45", "room": "Main Room", "slug": "2021-139-full-stack-django-rest-framework", "url": "https://pretalx.evolutio.pt/2021/talk/NBUHRU/", "title": "Full-stack Django Rest Framework", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In this talk, we want to share our experience going beyond JSON APIs and using more Serializers and Renderers' features to create full-stack applications using Django Rest Framework", "description": "In this talk, we want to share our experience going beyond JSON APIs and using more Serializers and Renderers' features to create full-stack applications using Django Rest Framework.\r\n\r\nAfter many years using only Django and creating many applications with the traditional HTML templates and forms, like most web developers, we started to go more and more into a separate solution of backend and frontend. To do that, we then used Django Rest Framework to create nice JSON APIs. But recently, we started to go back to our roots and create more full-stack applications, but using Rest Framework to get the most of both worlds.\r\n\r\nOur views now not only can render HTML templates and serializers as forms but also, with the support of Renderers, allow us to quickly have JSON and more complex formats like Microsoft Word or Excel document responses. With that, we can render our HTML templates in the backend but already have the same serializers to update our DOM dynamically or download the same data as a report.\r\n\r\nIt wasn't as easy as we thought, and we needed to learn a lot during the process, creating our own solutions and extending some parts of Rest Framework itself. We want to share all of that and maybe help you too.\r\n\r\nPhoto by [Bekir D\u00f6nmez](https://unsplash.com/@bekirdonmeez?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)", "recording_license": "", "do_not_record": false, "persons": [{"id": 211, "code": "HN9HPM", "public_name": "Thiago Garcia da Silva", "biography": "I'm a software developer and I have been working with Python since 2012. Nowadays, I work creating python applications that runs in embedded Linux and web applications to process and displays the data we collect from our embedded systems :)\r\n\r\nFor sporadic tweets (mostly in Portuguese) follow me on Twitter @thiagogds", "answers": []}, {"id": 212, "code": "ZRDR3P", "public_name": "Israel da Silva Teixeira", "biography": "Founder of a Brazilian startup with a demonstrated history of building data-based products in the legal services industry. Skilled in Python, frontend development, and data analysis techniques.\r\n\r\nTwitter: https://twitter.com/israelst\r\nGithub: https://github.com/israelst\r\nWebsite: http://israelst.com/", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 128, "guid": "01a95269-d1f3-537f-8a56-303b064c12b0", "logo": "", "date": "2021-06-02T15:50:00+02:00", "start": "15:50", "duration": "00:45", "room": "Main Room", "slug": "2021-128-writing-safe-database-migrations", "url": "https://pretalx.evolutio.pt/2021/talk/F9J8CU/", "title": "Writing Safe Database Migrations", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Whether you build Django projects or apps, you won\u2019t get past database migrations. Let me show you some pitfalls, potential problems, and how to write safe ones.", "description": "Django\u2019s built-in migration framework is great. And it works tremendously. But that\u2019s only on the surface. Whenever you deploy your code and apply migrations in production, you are about to enter dangerous territory. I will point out common pitfalls and show you ways to avoid them. And with some additional best practices at hand, you will be ready for your next production deployment.\r\n\r\nThe talk slides are available on [**Speaker Deck**](https://speakerdeck.com/markush/writing-safe-database-migrations-djangocon-europe-2021).", "recording_license": "", "do_not_record": false, "persons": [{"id": 14, "code": "QJWFKC", "public_name": "Markus Holtermann", "biography": "Markus Holtermann works as a back-end and infrastructure engineer at micro-biolytics GmbH. He has been a Django core contributor since early 2015. He is a member of the Django security and operations team as well as an organizer of DjangoCon conferences. Markus has been a project lead at the German ubuntuusers.de community support platform where he discovered Python and Django in 2010.\r\n\r\nWebsite: https://markusholtermann.eu/\r\nTwitter: https://twitter.com/m_holtermann\r\nGithub: https://github.com/MarkusH", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 150, "guid": "9588fc5e-9b73-5899-933c-44663edf2d13", "logo": "", "date": "2021-06-02T16:35:00+02:00", "start": "16:35", "duration": "00:45", "room": "Main Room", "slug": "2021-150-hunting-performance-in-django-code", "url": "https://pretalx.evolutio.pt/2021/talk/PLFDVE/", "title": "Hunting Performance in Django Code", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk aims to explain the core concepts/use cases of various profilers in Python/Django world. I will walk over the different types of profilers and the basic use cases for them. The variance in Python Profiling tools we have today can actually be very useful if you know how and when to use them.", "description": "Introduction and Outline\r\n\r\nQuick introduction of myself followed by an outline of what will be covered and what you will learn.\r\n\r\nWhy we profile?\r\n\r\nA typical program spends almost all its time in a small subset of its code. Optimizing those hotspots is all that matters. This is what a profiler is for: it leads us straight to the functions where we should spend our effort.\r\n\r\nWhat types tools are available and how they work?\r\n\r\n-Deterministic Profilers\r\n-Statistical Profilers\r\n\r\nI will be walking over the different use cases, pros/cons for each type. Then I will dig in a bit deeper on how they work under the hood. Understanding the inner workings a bit might be helpful while analysing its output.\r\n\r\nWhat kind of information do we get?\r\n\r\nI'll describe what kind of output we get from different profilers. What kind of metrics are available(Wall time, CPU time, sub/cumulative time) and where are those metrics are most useful while hunting for performance problems especially\r\nfor Web applications. I will also walk over/explain different kind of visualisations that profilers generate: Flamegraphs, Callgraph, SpeedScope...etc.\r\n\r\nQuestions", "recording_license": "", "do_not_record": false, "persons": [{"id": 222, "code": "A9BFUL", "public_name": "S\u00fcmer Cip", "biography": "S\u00fcmer Cip is currently a Senior Software Engineer at [blackfire.io](https://blackfire.io): a company that focuses on producing performance profiling/observability tools for various languages. He is the author of 'Yappi', a thread-aware profiler for Python and contributed to many open source projects in his career.\r\n\r\nTwitter: @sumercip\r\nGithub: https://github.com/sumerc", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 132, "guid": "d069d2fe-4119-55c9-956f-a2e471753102", "logo": "", "date": "2021-06-02T17:20:00+02:00", "start": "17:20", "duration": "00:45", "room": "Main Room", "slug": "2021-132-domain-driven-design-with-django-and-graphql", "url": "https://pretalx.evolutio.pt/2021/talk/JM9UY7/", "title": "Domain Driven Design with Django and GraphQL", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Domain driven design is starting getting traction in the Python world, probably also thanks to Architecture Patterns with Python (https://www.cosmicpython.com/). \r\n\r\n\r\nIn this talk we will learn some basics of Domain Driven Design and how to apply the pattern when using Django and GraphQL. We will see different approaches of modelling the domain, and discuss the tradeoffs. We will discuss why this approach makes a lot of sense with GraphQL and finally we will see a complex approach where we leverage the domain driven architecture to have an easy way to abstract how we store and cache our data in order to build a performant GraphQL API.", "description": "Domain driven design is starting getting traction in the Python world, probably also thanks to Architecture Patterns with Python (https://www.cosmicpython.com/). \r\n\r\nIn this talk we will learn some basics of Domain Driven Design and how to apply the pattern when using Django and GraphQL. We will see different approaches of modelling the domain, and discuss the tradeoffs. We will discuss why this approach makes a lot of sense with GraphQL and finally we will see a complex approach where we leverage the domain driven architecture to have an easy way to abstract how we store and cache our data in order to build a performant GraphQL API.\r\n\r\nThis talk is aimed at people with knowledge of web-development. GraphQL knowledge won\u2019t be necessary as I\u2019ll do a quick introduction of that. Experience with Django, Flask or similar framework might be useful but not required.\r\nThe audience will learn basic concepts of domain driven design and how to apply them to build a scalable GraphQL API.", "recording_license": "", "do_not_record": false, "persons": [{"id": 206, "code": "MCQ8YW", "public_name": "Patrick Arminio", "biography": "My name is Patrick Arminio, I'm a software developer based in London, UK. I specialize in creating web applications using Python, GraphQL and React.\r\n\r\nI'm currently working at Pollen as a Senior Software Engineer.\r\n\r\nWebsite: https://patrick.wtf/\r\nLinkedIn: https://www.linkedin.com/in/patrickarminio/?originalSubdomain=uk\r\nGithub: https://github.com/patrick91\r\nTwitter: https://twitter.com/patrick91", "answers": []}], "links": [], "attachments": [], "answers": []}], "Secondary Room": [{"id": 157, "guid": "3e4c8923-d969-5128-9f11-cd6683d947e0", "logo": "", "date": "2021-06-02T09:45:00+02:00", "start": "09:45", "duration": "00:50", "room": "Secondary Room", "slug": "2021-157-getting-started-with-react-graphql-and-django", "url": "https://pretalx.evolutio.pt/2021/talk/LMWU8L/", "title": "Getting started with React, GraphQL, and Django", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "What is GraphQL? When would I use it instead of DRF? How does it work with my models? In this session, we'll answer all these questions and more as we walk through a working example of a React, GraphQL, and Django application.", "description": "When I first heard of GraphQL, I had a lot of questions. How is GraphQL different from REST? What're the benefits? When would I use it instead of DRF (Django Rest Framework)? Can I use it with my existing Django models? What about my views? My permissions? Is it difficult to integrate with my frontend?\r\n\r\nREST has served us well for more than twenty years; of course, I would be wary of any technology which requires a total paradigm shift. In this session, I will answer those questions and hopefully alleviate any apprehension about trying GraphQL.\r\n\r\nWe'll look at a working example of an RGD stack, showing how you can continue to use all the power of your Django backend while rendering and querying your data in React via GraphQL.", "recording_license": "", "do_not_record": false, "persons": [{"id": 226, "code": "AY7JRB", "public_name": "Aaron Bassett", "biography": "Aaron Bassett is a recovering senior software engineer turned Principal Developer Relations Engineer at [New Relic](https://newrelic.com). He is a developer, public speaker, writer, and mentor; he spends most of his time making cool stuff and helping other people make **unbelievably** cool stuff \ud83d\udd25\ud83e\udd84\u2728\ud83d\ude80\r\n\r\nTwitter: https://twitter.com/aaronbassett\r\nGithub: https://github.com/aaronbassett", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 115, "guid": "dbf6c641-b9b6-5c68-aede-78afec2adb49", "logo": "/media/2021/images/YXVTVE/ForestWiki_ewgB9a9.png", "date": "2021-06-02T12:00:00+02:00", "start": "12:00", "duration": "00:50", "room": "Secondary Room", "slug": "2021-115-teaching-cpython-turtle-graphics-and-jinja2-in-the-browser", "url": "https://pretalx.evolutio.pt/2021/talk/YXVTVE/", "title": "Teaching cPython, Turtle Graphics, and Jinja2 in the Browser", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "By the end of this class you will have the tools to teach Python, Jinja2 and web development to a class of remote students.", "description": "There are many excellent [free resources for learning Python](https://www.reddit.com/r/learnpython/wiki/index), but the [Forest Wiki](https://ForestWiki.com) is the only free resource for teaching Python, Jinja2 and web development in the browser.\u00a0 The\u00a0Forest Wiki understands and respects the relationship between the teacher and a class of students. \u00a0\r\n\r\nHere is [the demo for teaching turtle graphics]( \r\nhttps://demo.forestwiki.com/spiral). \r\n\r\nHere is [the cPython in the Browser Demo](https://demo.forestwiki.com/cPython/aceedit). \r\n\r\nThe teacher sets the assignments, the students do\u00a0them.\u00a0 \u00a0Even when the students are working from home, the teacher can monitor their progress. If there is an issue, or during grading,\u00a0 the teacher can privately comment on that student's work.\u00a0 \u00a0 When the time is right, the teacher can check a box to publish the answers.\u00a0 When the time is up, the teacher can check another box to limit new submissions.\r\n\r\nJust to be clear, this tutorial is not about teaching you Python and web development. It is about training the teachers. It is assumed that you already know some Python and HTML. And yes, you will learn some Turtle graphics and Jinja2. But in the class the focus will be on teaching someone else. We will break out into groups of 2 and take turns being the teacher and the student. \r\n\r\nNo need to install anything for this class. All exercises will be done in the browser using Skulpt, and Pyodide (cPython 3.8.2 running on WASM). The whole point of teaching in the browser, is that your students will also not need to install anything.", "recording_license": "", "do_not_record": false, "persons": [{"id": 191, "code": "AFBCJZ", "public_name": "Christopher Lozinski", "biography": "Christopher Lozinski is an MIT graduate and serial entrepreneur. Rather than take venture capital, he moved his company from Silicon Valley to Poland. He has been developing in Python since the last century.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 117, "guid": "57d32270-a14a-555d-8272-c1dc46942e1a", "logo": "/media/2021/images/UQVXM9/request_response_MgWE8Wa.png", "date": "2021-06-02T15:30:00+02:00", "start": "15:30", "duration": "00:50", "room": "Secondary Room", "slug": "2021-117-django-sketchnoting-challenge", "url": "https://pretalx.evolutio.pt/2021/talk/UQVXM9/", "title": "Django Sketchnoting Challenge", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Sketchnoting is the process of taking visual notes by combining symbolic illustrations and text. In this workshop we will learn the basics of sketchnoting first. And then we will make visual notes about Django concepts! Grab a pencil and some paper, and let's sketch!", "description": "In this workshop we will learn some easy drawing skills we can use for illustrating tech concepts (or anything else). Sketchnoting, the combination of text and simple, symbolic drawings is a great way to express ideas. Requirements, user stories, notes of meetings, talks, articles or tutorials, all can become much more engaging with a few extra illustrations. Though developers (and people in general) often think they can't draw, there are some easy tricks everyone can learn. In addition, drawing things is a really fun way to spend your time! \r\n\r\nAfter a short intro of what sketchnoting is (5 min), we go over 4 tips for sketching practice:\r\n\r\n* I can't draw this: composition and googling (5 min)\r\n* drawing people fast and easy (5 min)\r\n* putting text in boxes (5 min)\r\n* faces and emotions (5 min)\r\n\r\nWe will continue with a couple of drawing challenges (10 min), where I will show how to quickly sketch some easy and more difficult concepts. \r\n\r\nThe last 25 minutes will encourage the attendees to illustrate a Django concept on their own, with guidance and support from myself. \r\nThis can be the take aways of a Djangocon talk, a concept they recently learned, an illustration to a blogpost or podcast, tips on how to make the most out of an online conference... \r\n\r\nThis workshop intends to appeal to an audience of all backgrounds and skill levels. On top of that, the content will be appropriate for all ages, so you can draw along with your kids! By the end of this talk, attendees will have some inputs to be creative with pen and paper, and have learned some of the skills that go with it.", "recording_license": "", "do_not_record": false, "persons": [{"id": 193, "code": "DMCJZV", "public_name": "Sara Peeters", "biography": "Sara Peeters is a software developer who loves being creative. She likes to sew, cook or draw in her free time. Being autistic and not always able to speak, she is always on the lookout for alternative communication methods that fit different occasions. This is when she discovered sketchnoting at a company workshop. Sketchnoting quickly became a hobby she practices at various python and django conferences.\r\n\r\n* https://aspigirlcodes.github.io/portfolio/\r\n* https://twitter.com/aspigirlcodes", "answers": []}], "links": [], "attachments": [], "answers": []}]}}, {"index": 2, "date": "2021-06-03", "day_start": "2021-06-03T04:00:00+02:00", "day_end": "2021-06-04T03:59:00+02:00", "rooms": {"Main Room": [{"id": 144, "guid": "99f1ee41-0fe9-5056-a11c-1631db33218a", "logo": "", "date": "2021-06-03T09:15:00+02:00", "start": "09:15", "duration": "00:45", "room": "Main Room", "slug": "2021-144-dynamic-static-sites-with-django-and-sphinx", "url": "https://pretalx.evolutio.pt/2021/talk/YY3LBL/", "title": "Dynamic static sites with Django and Sphinx", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "You're building a content site? Can't face a CMS? Well have the best of all worlds!\r\n\r\nWrite your site content in Markdown. Manage it on the file system with git. \r\nUse all the power of Sphinx to build your site, but server it with Django. \r\n\r\nCross-referencing, content super-powers meet auth, forms, interactivity, \r\ndynamic content and all the rest of it. . \r\n\r\nYou don't have to choose, and you don't have to roll your own either.", "description": "On a content site these days, especially on a personal project, or where the \r\nteam are technical, you often don't want the limitations and complexity of full \r\nCMS. No, you want to use familiar tools: you want to write in Markdown and \r\nmanage your content in git. \r\n\r\nThat doesn't necessarily fit the traditional Django workflow. You end up \r\nlooking at a static site. This is fine but you loose the ability of Django to \r\nserve dynamic pages. You have to decide which of the numerous generators \r\nyou're going to use, or whether indeed you'll roll your own. It's a bit of a \r\nmess. \r\n\r\nYou can have the best of all worlds though. Sphinx, yes the\r\ndocumentation builder, is a super capable static site builder. You can\r\nuse it to build your content. Yes it can handle Markdown. Then you can\r\nuse Django to serve that content, given auth, forms, interactivity,\r\ncustom content, and all the rest of it. \r\n\r\nI'm going to show you how. \r\n\r\nThe talk has two parts: Sphinx and then Django. \r\n\r\n* First we'll introduce using Sphinx to manage and build your content. \r\n* We'll look at project setup so you can use Markdown for files. \r\n* We'll organise those on the file system, and use git to manage them, rather \r\n than a full-blown CMS. \r\n* We'll push to GitHub and use a GitHub Action to build on each commit. \r\n* Then we'll setup Django to serve our Sphinx built content. \r\n* We'll use the DTL to get control over our templates. \r\n* And we'll add auth, to provide dynamic per-user content.\r\n\r\nFrom there, the sky's the limit. Content management never looked so rosy.", "recording_license": "", "do_not_record": false, "persons": [{"id": 46, "code": "JHNLPQ", "public_name": "Carlton Gibson", "biography": "I'm one of your friendly Django Fellows, working on Django, and helping out on various packages in the ecosystem. When I'm not doing that, I co-host the DjangoChat podcast \u2014 I should probably get out more. I've got lots of kids, so they keep me busy.\r\n\r\nI'm @carltongibson on Twitter and GitHub and I'm secretly building a simpler story for deployment at btn.dev", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 161, "guid": "7cd7e156-b22d-5cdb-8749-5c302b57134b", "logo": "", "date": "2021-06-03T10:00:00+02:00", "start": "10:00", "duration": "00:45", "room": "Main Room", "slug": "2021-161-anvil-full-stack-web-with-nothing-but-python", "url": "https://pretalx.evolutio.pt/2021/talk/KXQPUU/", "title": "Anvil: Full Stack Web with Nothing but Python", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What if we could build our front ends in Python too? Anvil is a framework to get us there: no HTML, JS, CSS, React, Bootstrap or Webpack required!\r\n\r\nInstead, how about a Python UI toolkit, a drag-and-drop designer, and a full-stack runtime that doesn't require you to squeeze all your application state over JSON and HTTP? Find out how it's done, and why I think it's a good idea.", "description": "Building a modern web app requires *so much*: HTML, CSS, JS, Python, SQL, React, Bootstrap, Webpack...and Django, of course ;). What if we could build a better abstraction?\r\n\r\nOur answer is Anvil: a full-stack Python environment where everything is a Python object, from your UI components to your database rows. In this talk, I'll walk you through how and why we constructed this new approach to the web.\r\n\r\nWe'll start with a question: Why is web programming hard? It's because your data takes so many forms: database rows, Python objects, JSON on REST, JS objects, HTML DOM, and finally pixels. Most of a web developer's job is translating between these awkwardly different representations. Frameworks like Django help, but now you have a stack of leaky abstractions: web frameworks, ORMs, JS frameworks, CSS frameworks, build tools... These frameworks help you go faster, but they double the amount you need to know!\r\n\r\nSo I'll show our stab at an answer: A framework where everything is a Python object, requests to the server are function calls, and Python is a browser-side language. I'll talk about running Python in the browser. I'll talk about full-stack autocompletion. There will even be live coding.\r\n\r\nAnd then I'll talk about how it breaks. Because every abstraction breaks, and this abstraction is bigger than most. So I'll touch on what it means to go down with the ship, to use an ejector seat, or to open an escape hatch.\r\n\r\nJoin me for a rollicking tour of a new way to approach the web!", "recording_license": "", "do_not_record": false, "persons": [{"id": 228, "code": "89PC9D", "public_name": "Meredydd Luff", "biography": "Meredydd learnt to program with QBASIC, and still misses that accessible on-ramp into programming. He did his PhD in building usable programming systems, and has worked on projects from messaging apps to the Linux kernel. After a few too many rants about the web with his friend Ian, the two of them built Anvil, a platform for anyone who writes Python to build and deploy a useful web application.\r\n\r\nHe\u2019s based in Cambridge (the one on the Cam, not the on the Charles). In his spare time, you used to find him dancing ballroom and latin, or flying an aeroplane. These days, he enjoys a rich social life of staring at glowing boxes and talking to people who aren\u2019t there.\r\n\r\nTwitter: https://twitter.com/meredydd\r\nGitHub: https://github.com/meredydd\r\nLinkedIn: https://www.linkedin.com/in/meredydd/?originalSubdomain=uk", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 114, "guid": "ed133dbf-8515-5df4-9da2-b47444efaa19", "logo": "", "date": "2021-06-03T10:45:00+02:00", "start": "10:45", "duration": "00:45", "room": "Main Room", "slug": "2021-114-hacking-django-channels-for-fun-and-profit-", "url": "https://pretalx.evolutio.pt/2021/talk/VYNPNR/", "title": "Hacking Django Channels for Fun (and Profit)", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Django is growing some great async features and Channels has been great for handling websockets connecting from your visitor's browser. But what happens when you need to do more? What if you want to keep long-running connections from Django to other websockets, such as Discord servers? How do you do this and still leverage all the batteries included with Django? We will show an approach that makes this all possible and easy as a developer.", "description": "- Intro and Backstory on Django Channels history \u2014 3%\r\n - Synchronous vs Async Request Loops\r\n - WSGI vs ASGI for your Django Application\r\n- Intro to WebSockets \u2014 3%\r\n - Demo of them used in the real world web applications\r\n - How they interact with async event loops\r\n- Django Channels Core Concepts \u2014 10%\r\n - Consumers\r\n - Channel Layers\r\n - Background Workers\r\n- Consumers and ASGI Routing Example \u2014 10%\r\n- Where to Background Workers Fit? \u2014 10%\r\n - Lightweight Tasks\r\n - Considerations when reliability is not needed\r\n- How about reversing the Consumer use case? \u2014 20%\r\n - Create long-running Background Workers\r\n - Connect to remote services such as Discord to create Bots\r\n- Example application integration with Discord \u2014 20%\r\n - Connect to Discord on start and listen for messages and other events\r\n - Send our own application messages into Discord\r\n- Building your own long-running Channel Worker \u2014 20%\r\n - What to add to your project\r\n - Define channel background tasks to run at start\r\n- Next steps for this project \u2014 2%\r\n - Upstream or create Channels addon to make this functionality more generic\r\n - Add ability to define one-shot tasks\r\n - Add ability to define post-job tasks to run on stop\r\n- Conclusion \u2014 2%", "recording_license": "", "do_not_record": false, "persons": [{"id": 190, "code": "QDNRLH", "public_name": "Calvin Hendryx-Parker", "biography": "Calvin Hendryx-Parker is the co-founder and CTO of Six Feet Up, a software company that helps organizations build apps faster, innovate with AI, simplify Big Data, and leverage Cloud technology. At Six Feet Up, Calvin establishes the company's technical vision and leads all aspects of the company's technology development. He provides the strategic vision for enhancing the offerings of the company and infrastructure, and works with the team to set company priorities and implement processes that will help improve product and service development. Calvin is the driving force behind LoudSwarm, a high impact virtual event platform that debuted in June 2020.\r\n\r\nCalvin is the co-founder of the Python user group IndyPy, the largest tech meetup in Indiana with 1,900+ members. In 2017, he also founded IndyAWS, now the fastest growing cloud meetup in the state with 800+ members. In 2019, he got recognized as an AWS Community Hero by AWS experts.\r\n\r\nOutside of work, Calvin spends time tinkering with new devices like the AWS DeepRacer, CircuitPython and Raspberry Pi. Calvin is an avid distance runner and ran the 2014 NYC Marathon to support the Innocence Project. Before the pandemic, he and the family have enjoyed an annual extended trip to France where his wife Gabrielle, the CEO of Six Feet Up, is from. Calvin holds a Bachelor of Science from Purdue University.\r\n\r\nTwitter: https://twitter.com/calvinhp\r\nGithub: https://github.com/calvinhp\r\nLinkedIn: https://www.linkedin.com/in/calvinhp/", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 141, "guid": "4300888b-b28e-50c6-b352-8c8829c64dfd", "logo": "", "date": "2021-06-03T11:30:00+02:00", "start": "11:30", "duration": "00:45", "room": "Main Room", "slug": "2021-141-modern-javascript-for-django-developers", "url": "https://pretalx.evolutio.pt/2021/talk/F7EZXH/", "title": "Modern JavaScript for Django Developers", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Many Django developers are intimidated by \"modern\" JavaScript, and those that aren't tend to throw away much of Django and use it only as an API for a standalone JavaScript front end.\r\n\r\nThis talk will outline the options for using Django with a modern framework like React or Vue, and deep dive on everything you'd need to know to incorporate modern JavaScript into a Django project without giving up Django's View/Template system.\r\n\r\nIt will also highlight some of what you gain by embracing modern JavaScript.", "description": "The talk will include four high level parts.\r\n\r\nPart 1 is a discussion of common Django / JavaScript architectures. These include:\r\n\r\n1. The most common \"ad-hoc\" approach, where JS just gets incrementally added to templates until you find yourself in a mess\r\n2. The \"completely decoupled\" JS front-end and Django-API back end, which is popular, but complex and unfamiliar to pure Django developers.\r\n3. A \"hybrid architecture\", that combines modern JS with familiarity of working in Django.\r\n\r\nPart 2 will focus on the fundamentals of JS tooling - a prerequisite to working with modern JavaScript. I'll start with explaining why it's so frustrating and confusing trying to add React to a Django project. Then introduce the concept of a JavaScript toolchain. Why you need them and what they do. And finally do a quick overview of the most common JS toolchain: NPM, Webpack, and Babel, including what each does and the analogies in the Python world.\r\n\r\nPart 3 brings it together with a Django example, deep diving into how you can add a JS toolchain to a DJango project and introduce a React application into a Django application without all the complexity of managing separate standalone front end.\r\n\r\nPart 4 will briefly touch on some benefits of Modern JS, including using modern frameworks, dependency management, new features, extensions, ES6, React and JSX, Vue etc.", "recording_license": "", "do_not_record": false, "persons": [{"id": 214, "code": "LET97M", "public_name": "Cory Zue", "biography": "Former CTO of Dimagi. Founder of SaaS Pegasus and Place Card Me. Building a solopreneur empire one side project at a time.\r\n\r\nTwitter: @czue\r\nLinkedIn: https://www.linkedin.com/in/coryzue/?originalSubdomain=za\r\nGithub: https://github.com/czue", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 126, "guid": "84e3688b-06d4-598f-9b8e-ae23a7578d40", "logo": "", "date": "2021-06-03T12:15:00+02:00", "start": "12:15", "duration": "00:45", "room": "Main Room", "slug": "2021-126-clean-architecture-with-django-rethinking-basic-assumptions", "url": "https://pretalx.evolutio.pt/2021/talk/NCTBUS/", "title": "Clean Architecture with Django: Rethinking basic assumptions", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "There are two main problems in implementing the Clean Architecture (CA) pattern with Django projects: developers are often not clear on what a Clean Architecture would look like with Django and secondly the framework itself resists adaption to the CA paradigm.", "description": "Clean Architectures and related architecture patterns like Hexagonal and Onion architecture are intended to provide more maintainable code and lower technical debt. \r\n\r\nTwo parts of Django's architecture, the Django ORM and 3rd party Django REST Frameworks, make it difficult to get the benefits of a Clean Architecture. We look at ways we can achieve the benefits of Clean Architecture (CA) while using the Django framework.\r\n\r\nWhat are the various Clean Architecture Patterns and what do they promise to do for you?\r\n\r\nWhat is the ideal architecture pattern that Django supports?\r\n\r\nProblem 1: most Object Relational Mappings including Django's do two things: \r\n\r\n\t1) Specify the persistence model: normalisation of data, efficient storage, efficient lookup, etc.\r\n\r\n\t2) Specify the business entity domain: what business objects does the domain manage\r\n\r\nThe problem is that these are two different goals handled in one framework component, the ORM. \r\n\r\nProblem 2: REST frameworks have a heavy reliance on the ORM. This ties together the business domain to storage semantics making it hard to achieve some of the benefits of a Clean Architecture.\r\n\r\nTwo solutions paths exist:\r\n\r\nDjango can serve a clean architecture-like paradigm, under specific circumstances. But there is some confusion about what CA looks like in practice that causes developers to go for solutions that are the opposite of CA. \r\n\r\nThe other solution is a more fundamental rethink of how to implement and use ORMs and REST frameworks (including remote request frameworks like GraphQL).", "recording_license": "", "do_not_record": false, "persons": [{"id": 201, "code": "8STPQA", "public_name": "Paul Wolf", "biography": "Developer, business guy, entrepreneur and open source author. \r\n\r\nhttps://github.com/paul-wolf", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 173, "guid": "3d4b9df8-fedc-57d5-8397-863df2fc17ec", "logo": "", "date": "2021-06-03T13:50:00+02:00", "start": "13:50", "duration": "01:15", "room": "Main Room", "slug": "2021-173-keynote-spreading-our-tentacles-taking-a-django-app-global", "url": "https://pretalx.evolutio.pt/2021/talk/VCTVRB/", "title": "KEYNOTE | Spreading our tentacles - taking a Django app global", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "Imagine you built a pretty snazzy Django app to transform your company's business. You're helping with revolutionising the energy industry to make better use of green energy. Pretty cool right? Now imagine your company is expanding to new countries and not only that, other companies want to use your app too. Even better! But also imagine you wrote that app specifcally with your company in one country in mind. This talk is going to cover the approach we've taken in transforming our app to work for multiple clients in multiple countries while still keeping the core of it the same.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"id": 237, "code": "8GMTPJ", "public_name": "Frederike Jaeger", "biography": "I'm a software engineer at Kraken Technologies (part of the Octopus Energy group). When I'm not coding, I spend my free time playing rugby and eating brunch.\r\n\r\nTwitter: @DrFJaeger\r\nLinkedIn: https://www.linkedin.com/in/frederikejaeger/?originalSubdomain=uk", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 138, "guid": "e2fb7063-c708-55ee-bddd-d46c7bd9fe1f", "logo": "", "date": "2021-06-03T15:05:00+02:00", "start": "15:05", "duration": "00:45", "room": "Main Room", "slug": "2021-138-htmx-frontend-revolution", "url": "https://pretalx.evolutio.pt/2021/talk/PZ3KWB/", "title": "HTMX: Frontend Revolution", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "HTMX is a tiny JavaScript library which helps you to avoid JavaScript. Instead of sending JSON over the wire (like React, Vue, ...) it sends HTML fragments over the wire.\r\n\r\nIt simplifies the toolchain and the result are fast pages with good SEO (web vitals) scores.", "description": "I developed my first CGI script in 1998. Since that day I have seen a lot of hypes coming and going.\r\n\r\nThe talk will consist of three parts:\r\n\r\n* My humorous odyssey of trying to find a great frontend framework\r\n* Retrospective: What do I want from the frontend?\r\n* I finally found: HTMX: HTML Fragments over the wire\r\n\r\nBesides simplicity, good Web Vitals performance (SEO) is a benefit of this method.\r\n\r\nThe talk will express my personal opinion, feelings and fun. It won't dive into technical details.\r\n\r\nThank you to https://www.djangsters.de for supporting the talk.\r\n\r\nSlides: https://docs.google.com/presentation/d/1Gx1UGVAgD2ALLOucsIm9myF5mDflbP06-M6_d-RdZAY/edit?usp=sharing\r\n\r\nExample Project: https://github.com/guettli/django-htmx-fun", "recording_license": "", "do_not_record": false, "persons": [{"id": 210, "code": "GB7A78", "public_name": "Thomas G\u00fcttler", "biography": "1976 Born in Stuttgart, Germany. Childhood in Bayreuth\r\n\r\n1996..2001 Studied Computer Science in Dresden\r\n\r\nSince 2001 \"in love\" with Python\r\n\r\nSince 2008 Django\r\n\r\nWebsite: https://thomas-guettler.de/\r\nGithub: https://github.com/guettli\r\nTwitter: https://twitter.com/guettli\r\nCompany: https://www.djangsters.de", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 168, "guid": "80885152-b088-5139-8054-cd544540529e", "logo": "/media/2021/images/RE7AVL/13mw_cLW0hVCgtlTQsw_f6g_93zlKbT.jpeg", "date": "2021-06-03T15:50:00+02:00", "start": "15:50", "duration": "00:45", "room": "Main Room", "slug": "2021-168-you-might-not-need-a-frontend-framework", "url": "https://pretalx.evolutio.pt/2021/talk/RE7AVL/", "title": "You might not need a frontend framework", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Javascript is eating the world, but it does not need to eat your project too!. In this talk we will explore lightweight frontend solutions for progressively enhancing a Django web page.", "description": "Javascript fadigue is real. As frontend development gets more and more complex, developers are required to learn a wide plethora of languages and tools to bring reactivity to their web apps.\r\n\r\nIntroducing a SPA framework into a Django project can bring a lot of complexity to the codebase, requiring context switching between two different languages (Python and Javascript) and expertise into a wide set of tools, like `node`, `npm`, `webpack` and `babel`. Accessibility and SEO can also be affected by the introduction of a SPA architecture.\r\n\r\nIn this presentation I am going to talk about taking a step back in front-end development and carefully weighting the pros and cons of introducing a Javascript framework into a Django project. \r\nI will also show some examples of how to progressively enhance a web page, adding reactivity while maintaining the accessibility. We will explore some libraries like [htmx](https://htmx.org/), [hotwire](https://hotwire.dev/) and [alpinejs](https://github.com/alpinejs/alpine) that can help keeping the frontend light and lean.", "recording_license": "", "do_not_record": false, "persons": [{"id": 111, "code": "BWBJPZ", "public_name": "Afonso Cerejeira", "biography": "I am from Porto, Portugal and I work as a DevOps engineer at [Collabora](https://www.collabora.com/) where I maintain an internal time tracker and financial web application written in Django.\r\nI've been using Django professionally for about 2 years having also done some full-stack development with node.js, nest.js and angular.\r\n\r\nGithub: https://github.com/ajcerejeira\r\nLinkedIn: https://www.linkedin.com/in/ajcerejeira/", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 158, "guid": "c2dfd708-7b55-5f12-a2b3-079b377e0e99", "logo": "/media/2021/images/DXMJ8H/nam-anh-QJbyG6O0ick-unsplash_3Y40kSN.jpg", "date": "2021-06-03T16:35:00+02:00", "start": "16:35", "duration": "00:45", "room": "Main Room", "slug": "2021-158-django-with-postgresql-superpowers", "url": "https://pretalx.evolutio.pt/2021/talk/DXMJ8H/", "title": "Django with PostgreSQL superpowers", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "**Django** per se is a _database-agnostic_ web framework, but _real-world projects_ based on it are not. **PostgreSQL** has the _richest feature set_ of any supported databases and we'll see how to use these **superpowers** in _Django_.", "description": "Every time we\u2019re going to create a new project with **Django** we make assessments on its requirements to choose the best architecture, of which, the **database** is usually the core.\r\n\r\nDjango is a _database-agnostic_ web framework but natively supports only 4 **open source** databases: PostgreSQL, SQLite, MariaDB and MySQL.\r\n\r\n**PostgreSQL** has the _richest feature set_ of any supported database and some of these features are natively supported directly in Django via its contrib module.\r\n\r\nIn this talk we\u2019ll see how to use to our _advantage_ the features of PostgreSQL as a database in Django, its exclusive features present in its _contrib module_ and also other **superpowers** that can be exploited through the use of _third-party packages_.\r\n\r\n--- \r\n\r\nMore info and slides: **https://www.paulox.net/2021/06/03/djangocon-europe-2021/**", "recording_license": "", "do_not_record": false, "persons": [{"id": 56, "code": "BVRQXW", "public_name": "Paolo Melchiorre", "biography": "I\u2019m Paolo Melchiorre, a longtime *Python* backend developer who contributes to the *Django* project and gives talks at tech *conferences*.\r\n\r\nI've been a *GNU/Linux* user for over 20 years and I use and promote *Free Software*.\r\n\r\nI graduated in Software Engineering and I'm an alumnus of the University of Bologna, Italy.\r\n\r\nI've been working in the web for 15 years and now I'm the CTO of 20tab, a pythonic software company, for which I work remotely.\r\n\r\n- Github: https://github.com/pauloxnet\r\n- Website: https://www.paulox.net/\r\n- LinkedIn: https://www.linkedin.com/in/paolomelchiorre/\r\n- Twitter: https://twitter.com/pauloxnet", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 134, "guid": "4289ecf2-7750-5f4c-8219-95cb935a2252", "logo": "", "date": "2021-06-03T17:20:00+02:00", "start": "17:20", "duration": "00:45", "room": "Main Room", "slug": "2021-134-how-to-create-a-full-stack-reactive-website-in-django-with-absolutely-no-javascript", "url": "https://pretalx.evolutio.pt/2021/talk/FJLKVT/", "title": "How to create a full-stack, reactive website in Django with absolutely no JavaScript", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Utilize Django to build modern, interactive websites without needing a complicated frontend framework.", "description": "Django is a great web framework for \"perfectionists with deadlines\" and provides a lot of built-in functionality when building server-side websites. However, a lot has changed on the web since its inception in 2005, and now it has become somewhat common advice for modern web applications to only use it as an API backend, if at all.\r\n\r\nHowever, there are a few Django packages that enable building a reactive website while still utilizing all of the strengths of Django. This talk will cover the benefits of this approach, a brief overview of how other programming languages are solving this same problem, and a few Django projects which can help developers build interactive websites without writing any custom JavaScript.\r\n\r\nRepository with example code, slides, and a transcript: https://github.com/adamghill/djangocon-eu-2021-conference-talk.", "recording_license": "", "do_not_record": false, "persons": [{"id": 207, "code": "XL8YZR", "public_name": "Adam Hill", "biography": "Adam Hill has been a professional software developer for over 15 years and spent the last 8 years working with Python and Django. He's a huge proponent of _The Zen of Python_, especially numbers 2, 3, 7, and 13. His day job is to educate, amuse and enrich the world at The Motley Fool, but outside of that he is trying to reduce the frustrations of creating a modern website with [Unicorn](https://www.django-unicorn.com), a reactive component framework for Django.\r\n\r\nReach out at https://twitter.com/adamghill or see his current open-source projects at https://github.com/adamghill.", "answers": []}], "links": [], "attachments": [], "answers": []}], "Secondary Room": [{"id": 179, "guid": "bfac2a01-5370-524f-99a6-530b18450789", "logo": "", "date": "2021-06-03T09:45:00+02:00", "start": "09:45", "duration": "00:50", "room": "Secondary Room", "slug": "2021-179-profiling-django-python-apps", "url": "https://pretalx.evolutio.pt/2021/talk/VJD9VP/", "title": "Profiling Django & Python apps", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "It is difficult to improve what is not measurable! Profiling an application should always be the first step in trying to improve its performance. With this workshop, learn how to identify performance issues in your application and adopt the best profiling practices in your daily development habits. This workshop will use the Blackfire.io tool to help you identify performance leaks.", "description": "Sponsored by Blackfire.io", "recording_license": "", "do_not_record": false, "persons": [{"id": 244, "code": "CYY3R3", "public_name": "J\u00e9r\u00f4me Vieilledent", "biography": "My name is J\u00e9r\u00f4me Vieilledent and I work as developer advocate at Blackfire.io.\r\n\r\nI'm a senior technical expert with 17 years of experience. Completely self-educated, I'm a perfectionist and always ensure to follow best practices, but also to help people understand why they are best practices.\r\n\r\nTwitter: https://twitter.com/jvieilledent\r\nLinkedIn: https://www.linkedin.com/in/jeromevieilledent/?originalSubdomain=fr\r\nGithub: https://github.com/lolautruche", "answers": []}, {"id": 222, "code": "A9BFUL", "public_name": "S\u00fcmer Cip", "biography": "S\u00fcmer Cip is currently a Senior Software Engineer at [blackfire.io](https://blackfire.io): a company that focuses on producing performance profiling/observability tools for various languages. He is the author of 'Yappi', a thread-aware profiler for Python and contributed to many open source projects in his career.\r\n\r\nTwitter: @sumercip\r\nGithub: https://github.com/sumerc", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 146, "guid": "0431e982-e344-577c-be96-62eb63ac695e", "logo": "", "date": "2021-06-03T12:00:00+02:00", "start": "12:00", "duration": "00:50", "room": "Secondary Room", "slug": "2021-146-django-unstuck-suggestions-for-common-challenges-in-your-projects", "url": "https://pretalx.evolutio.pt/2021/talk/RW9FVH/", "title": "Django Unstuck: Suggestions for common challenges in your projects", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "There are some challenges that come up in every Django project. Some of them right at the start: How do I organize my apps? Where do I put the base template, and all the other templates? Should I do internationalization right away?\r\nOther problems only crop up a little later: how do I manage production settings? How do I make sure permissions are checked correctly? How do I make menus appear correctly? \r\nSome may appear at any point in time: how do I add content pages? What code goes into models/controllers/views?\r\n\r\nIn this workshop, I'm going to tell you how I approach these recurring challenges and what my \"best practices\" in these situations are.", "description": "In this workshop, we are going to look at four challenges that appear in every Django project at some point. We are going to analyse what's happening, what you can do to get un-stuck, and see what other people do.\r\n\r\nThis workshop is for beginners and advanced Django users. The issues we discuss appear in many Django projects, so there is something here for every level of Django knowledge.\r\n\r\nThese are the four challenges we are going to look at:\r\n\r\n* App management and placement (and urlpatterns)\r\n* Templates: Placement, folders, blocks and inheritance and namespaces\r\n* When to use Middlewares and context processors and what are they?\r\n* Should code/logic go into models, views or managers or somewhere else?\r\n\r\nFor each of these, we will try out what **I** do when they happen, and we'll discuss other strategies.\r\n\r\nWe will not do a lot of coding in this workshop, but if you want to follow along, make sure you have Django installed and can execute \"django-admin.py\". There is also a set of base templates I am going to use for illustration, which is linked in the files below.\r\n\r\nOf course, there are many more problems like these, which is why I made a list of \"suggestions\" or \"best practices\" for these and others.\r\nHere's what we're working on so far:\r\n\r\n * App management and placement (and urlpatterns)\r\n * Splitting settings: local, dev, testing and production\r\n * Username vs email address\r\n * Registration in general\r\n * Background tasks and long-running processes and Caching\r\n * Templates: Placement, folders, blocks and inheritance and namespaces\r\n * Should you do i18n and l10n right away?\r\n * When and how to start caching (memcached, redis etc.)\r\n * Should code/logic go into models, views or managers or somewhere else?\r\n * When to use Middlewares and context processors and what are they?\r\n * How to secure access: security middlewares or login_required (white vs black list)\r\n * How to create files and store them in file models\r\n * What to do about image scaling and thumbnailing (and hosting)?\r\n * How to serve content: coded pages, flatpages or Wagtail?\r\n\r\nYou can find that list on Github at: https://github.com/shezi/django-unstuck (it's a work-in-progress).\r\nThere is also a Discord community and Telegram chat group surrounding that list, so if you have any kind of problem with a Django project, come join us and we'll find a way to get you unstuck.\r\n\r\nWe're building a community around Django best practices and on getting you Unstuck in challenging situations. Join us on Discord at https://discord.gg/bUsu9B6Ek6 or on Telegram at https://t.me/djangoRhein\r\n\r\nAbout me: I'm Johannes Spielmann, software developer-for-hire from Germany, and I've been doing Django projects for almost 15 years, ever since I saw Adrian Holovaty's presentation at \"Snakes and Rubies\". I've done projects both small and large, both in commercial and non-commercial settings, and I've seen all of the above things many times.\r\n\r\n**You can find all materials for this talk also at: https://shezi.de/djangocon.eu.2021/**", "recording_license": "", "do_not_record": false, "persons": [{"id": 217, "code": "PVWQUD", "public_name": "Johannes Spielmann", "biography": "I'm a freelance software developer and mathematician from Germany and I've been doing Django for 15 years now -- ever since I saw that presentation for \"Snakes and Rubies\". I've worked on projects large and small, commercial and hobby, successful and not, so I've seen a lot.\r\n\r\nI'm always happy to meet people, so talk to me on Twitter ([@shezoidic](https://twitter.com/shezoidic/)), via email (j@spielmannsolutions.com), on Discord (https://discord.gg/bUsu9B6Ek6) or Telegram (https://t.me/djangoRhein) or in person.\r\n\r\nSometimes, I write stuff and not delete it immediately, and you can find that stuff on https://shezi.de/\r\n\r\nOh, and of course, you should also hire me. =)", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 169, "guid": "0e9c0da2-a898-5567-8312-ee9944a65329", "logo": "", "date": "2021-06-03T15:30:00+02:00", "start": "15:30", "duration": "00:50", "room": "Secondary Room", "slug": "2021-169-managing-multiple-django-services-in-a-single-repo", "url": "https://pretalx.evolutio.pt/2021/talk/CTXYZE/", "title": "Managing multiple Django services in a single repo", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Django projects are standalone by nature, but with the right tooling and practices you can effectively maintain many interrelated Django services in a single streamlined repo, with minimal boilerplate and copypasta.", "description": "Modern software systems often involve developing and deploying multiple related services. The microservice architecture is a prominent example of this. These services often share underlying data structures, models, utilities, protocols and other core code. \r\n\r\nDjango is an excellent choice for building individual services, and some functionality can be shared between them by reusing apps. But Django projects themselves are standalone by nature, and there is no standard infrastructure for streamlining the management many related services. As a result we're often forced to treat each project as an island, with its own settings and deployment configuration, possibly in its own repo. \r\n\r\nIn this workshop we will demonstrate:\r\n- The challenges of maintaining many interrelated Django projects.\r\n- The advantages of having multiple Django projects coexist in a single shared repo. \r\n- The tooling you need to work effectively in a Django monorepo, with a focus on the Pants build system. \r\n- Specific examples of good practices that allow you to maintain a growing yet streamlined stable of interrelated Django-based microservices with minimal boilerplate and copypasta.\r\n\r\nCode along with us, and ask questions along the way!", "recording_license": "", "do_not_record": false, "persons": [{"id": 232, "code": "GPTVXJ", "public_name": "Benjy Weinberger", "biography": "Benjy Weinberger is a software engineer with over 20 years' experience in building scalable distributed systems, and is one of the maintainers of the Pants open-source build system, and a long-time Django user. He indulges his longstanding interest in cutting-edge build systems as a co-founder of Toolchain Labs.\r\n\r\nYou can find Benjy online at: \r\n\r\nhttps://github.com/benjyw\r\nhttps://www.linkedin.com/in/benjy-weinberger\r\nhttps://twitter.com/benjy", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 113, "guid": "5b10e278-48dd-58b6-bba6-955f93f74744", "logo": "", "date": "2021-06-03T17:00:00+02:00", "start": "17:00", "duration": "00:30", "room": "Secondary Room", "slug": "2021-113-deploying-a-django-virtual-event-platform-using-containers-and-terraform", "url": "https://pretalx.evolutio.pt/2021/talk/UBAQPR/", "title": "Deploying a Django Virtual Event Platform Using Containers and Terraform", "subtitle": "", "track": null, "type": "Other", "language": "en", "abstract": "Learn to leverage cloud native tools and launch a scalable Python and Django application into the Cloud with Fargate. We\u2019ll dive in with how to getting up and running fast, but leaving the overhead of managing virtual machines and Kubernetes behind. Create and store the application Docker images in a container repository and without touching the AWS console we can create fully Infrastructure as Code automated deployments via CodePipeline into Fargate containers and S3 buckets. Deliver the React application via CloudFront and S3 for full global scalability. Leave the legacy deployments behind and forge bravely into the new world of Cloud Native applications.", "description": "- Intro to Cloud Native deployment \u2014 10%\r\n - Hitchhikers Guide to Cloud Native vocabulary\r\n- Laying the groundwork for going Cloud Native \u2014 10%\r\n - Containerizing your app\r\n - Preparing your image for production\r\n- Building the pipeline \u2014 20%\r\n - Sketching out your infrastructure\r\n - Moving to Terraform\r\n - Creating a CI/CD workflow\r\n- Playing with Building Blocks \u2014 20%\r\n - Leveraging AWS Cloud Components for Delivery\r\n - Using Environment Variables and keeping Secrets\r\n- Scaling Considerations, Load Balancers and CDNs \u2014 20%\r\n - Many routes behind one URL\r\n - Enable effective caching\r\n - Keep things on a need to know basis (only pass what you need)\r\n- Load Testing \u2014 10%\r\n - Build test plans with Locust.io (Python powered!)\r\n - Testing and debugging load tests with remote PDB\r\n- Conclusion \u2014 10%\r\n\r\nSponsored by Loudswarm", "recording_license": "", "do_not_record": false, "persons": [{"id": 190, "code": "QDNRLH", "public_name": "Calvin Hendryx-Parker", "biography": "Calvin Hendryx-Parker is the co-founder and CTO of Six Feet Up, a software company that helps organizations build apps faster, innovate with AI, simplify Big Data, and leverage Cloud technology. At Six Feet Up, Calvin establishes the company's technical vision and leads all aspects of the company's technology development. He provides the strategic vision for enhancing the offerings of the company and infrastructure, and works with the team to set company priorities and implement processes that will help improve product and service development. Calvin is the driving force behind LoudSwarm, a high impact virtual event platform that debuted in June 2020.\r\n\r\nCalvin is the co-founder of the Python user group IndyPy, the largest tech meetup in Indiana with 1,900+ members. In 2017, he also founded IndyAWS, now the fastest growing cloud meetup in the state with 800+ members. In 2019, he got recognized as an AWS Community Hero by AWS experts.\r\n\r\nOutside of work, Calvin spends time tinkering with new devices like the AWS DeepRacer, CircuitPython and Raspberry Pi. Calvin is an avid distance runner and ran the 2014 NYC Marathon to support the Innocence Project. Before the pandemic, he and the family have enjoyed an annual extended trip to France where his wife Gabrielle, the CEO of Six Feet Up, is from. Calvin holds a Bachelor of Science from Purdue University.\r\n\r\nTwitter: https://twitter.com/calvinhp\r\nGithub: https://github.com/calvinhp\r\nLinkedIn: https://www.linkedin.com/in/calvinhp/", "answers": []}], "links": [], "attachments": [], "answers": []}]}}, {"index": 3, "date": "2021-06-04", "day_start": "2021-06-04T04:00:00+02:00", "day_end": "2021-06-05T03:59:00+02:00", "rooms": {"Main Room": [{"id": 153, "guid": "bdf6a142-3be7-5286-aacc-76804b8810b3", "logo": "", "date": "2021-06-04T09:15:00+02:00", "start": "09:15", "duration": "00:45", "room": "Main Room", "slug": "2021-153-speed-up-your-tests-with-setuptestdata", "url": "https://pretalx.evolutio.pt/2021/talk/NS9S7N/", "title": "Speed up your tests with setUpTestData", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "TestCase.setUpTestData allows you to create test data once per TestCase, rather than once per test. This talk will cover how it works, how it improved in Django 3.2, and how to convert your tests to use it.", "description": "TestCase.setUpTestData allows you to create test data once per TestCase, rather than once per test. Switching tests to use setUpTestData rather than setUp can speed them up significantly, sometimes as much as 10x faster. This talk will cover how it works, its improvement in Django 3.2, and how to convert your tests to use it.", "recording_license": "", "do_not_record": false, "persons": [{"id": 34, "code": "SWZZCW", "public_name": "Adam Johnson", "biography": "\u270d\ufe0f I'm an author and solo consultant working with Ansible, AWS, Django, and Python.\r\n\r\n\ud83e\udd84 I'm a member of the Django project Technical Board (2.2, 3.0, 3.1, and 3.2 release cycles), and a co-organizer of the The London Django Meetup. \r\n\r\n \ud83c\uddec\ud83c\udde7 I'm based in London, UK.\r\n\r\n\u2708\ufe0f I love to travel, especially to Django and Python conferences!\r\n\r\nGithub: https://github.com/adamchainz\r\nTwitter: https://twitter.com/adamchainz\r\nLinkedin: https://www.linkedin.com/in/adamchainz/?originalSubdomain=uk", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 119, "guid": "44e99d08-0cea-5e9e-991f-e324cbb2544c", "logo": "/media/2021/images/QQJ9WB/cordy-lg_lNk3ZYG.png", "date": "2021-06-04T10:00:00+02:00", "start": "10:00", "duration": "00:45", "room": "Main Room", "slug": "2021-119-rewriting-django-from-almost-scratch-in-2021", "url": "https://pretalx.evolutio.pt/2021/talk/QQJ9WB/", "title": "Rewriting Django from (almost) scratch in 2021", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "You're probably asking yourself \"Why would someone wanna do that?\". Django is one of the most successful web frameworks out there, the codebase is well established and well tested.\r\n\r\nThat is true. On the other hand, a codebase that old is bond to have some technical debt.\r\nIMHO, Django's technical debt is mostly situated in the admin which is one of the most appreciated features of Django while at the same time, possessing the least people familiar with its internals or willing to learn them.\r\nAnother sort of technical debt is one that is backward compatibility and having to keep choices made more than a decade ago.", "description": "One of the decisions that was made 15 years ago was to use *home-made* code for everything. Django depends on very few libraries. Django doesn't use anything from the Python eco-system, when it comes to ORM, templates, routing, etc.\r\n\r\nAnd that is a decision I would probably have done at the time as well. The Python world was much less welcoming at the time and documentation was still regarded as a second-class citizen. Let's not even mention the wrath you were taking the risk of exposing yourself to if you dared make a pull request on a project you weren't involved with.\r\n\r\nThose choices are not the only reasons to consider a rewrite though... After attending several Django conferences, I noticed a few trends about what prominent Django developers would like to change. For example **WSGI middlewares** is something that's often put on the table, **websockets** is another of those things that comes up very often.\r\n\r\nIt is true that the world of the web is quite different today compared to what it was 15 years ago. It seems to me that today **REST API's** and **websockets** are first class citizens while server-rendered pages have become less important. Once again, that's just a personal feeling.\r\n\r\nA complete Django rewrite is also not my very own idea, several people have been working on a similar idea. Tom Christie has been working on many libraries in order to be able to rewrite Django as an async framework in order to better accommodate websockets. Others like Tobias have been working on something similar but starting at the other end of the problem. I guess this is just my own version of that thought experiment.\r\n\r\nFor this thought experiment I will care about retaining the \"spirit\" of Django as I perceive it but I will not care at all about backward compatibility!\r\n\r\n## What does a Django rewrite needs to achieve in 2021?\r\n\r\n- Batteries included: Anything that claims to be a Django-like needs to come with everything out of the box\r\n- A friendly ORM with a syntax that is closer to the objects than to SQL\r\n- Middlewares\r\n- Sessions\r\n- Authentication and authorization\r\n- Routing\r\n- Easy to build REST API's\r\n- Websockets\r\n- Template-based rendering\r\n- Static files serving during development\r\n- Easy documenting of API's\r\n- MVC implementation\r\n- Easy to use CRUD controller and associated views\r\n- A powerful admin(based on its own CRUD controllers)\r\n- Error management\r\n\r\nThis talk will cover all of those points, how they could be approached and whether using an existing Python library for that job might be a good idea\r\n\r\n**Code:**\r\n- [Cordy](https://gitlab.levitnet.be/levit/cordy/-/tree/master)\r\n- [CookieCutter for starting a project](https://gitlab.levitnet.be/levit/cordy-project/-/tree/master)\r\n- [Demo app (Splendid)](https://gitlab.levitnet.be/emma/splendid/-/tree/master)\r\n\r\n**Demo:** https://levit.be/uploads/Kazam_screencast_00003.mp4\r\n\r\n**Slides:** https://slides.com/emma_be/cordy", "recording_license": "", "do_not_record": false, "persons": [{"id": 66, "code": "XREAEA", "public_name": "Emma Delescolle", "biography": "Long-time pythonista, Django fan, co-maintainer and co-author of DRF-Schema-Adapter and other OSS libraries\r\n\r\nI am from Belgium and have been involved in open-source at different levels for over a 15 years.\r\n\r\nOne of the things I enjoy the most is sharing knowledge with others. And this is why I enjoy writing tutorials as well as giving talks and workshops.\r\n\r\nTwitter: https://twitter.com/emmadelescolle\r\nGithub: https://github.com/nanuxbe", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 120, "guid": "f0b2cefb-7dee-5e9d-baf0-bc1e5a63a302", "logo": "", "date": "2021-06-04T10:45:00+02:00", "start": "10:45", "duration": "00:45", "room": "Main Room", "slug": "2021-120-get-interactive-putting-a-shell-or-a-desktop-in-your-django-app", "url": "https://pretalx.evolutio.pt/2021/talk/LKQSE7/", "title": "Get interactive! Putting a shell (or a desktop) in your Django app", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "How to make your Django app speak SSH or RDP with Guacamole, ASGI and Daphne \u2014 giving anyone a console or a desktop right in their browser!", "description": "In our [City Cloud Academy](https://academy.citycloud.com) learning platform, we enable learners to interact with real-world hands-on lab environments, so that they can learn complex technologies like OpenStack, Kubernetes, Terraform, Ceph, Ansible, and others. To do that, we use [Apache Guacamole](https://guacamole.apache.org/)'s `guacd` service to provide learners with interactive shell terminals \u2014 or even full desktop environments \u2014 that run right in people's browsers, no additional software required.\r\n\r\nThe Guacamole platform is normally deployed in conjunction with [a Java servlet environment](https://guacamole.apache.org/doc/gug/guacamole-architecture.html#web-application) (commonly Apache Tomcat). But the Guacamole protocol is not tied to the Java language in any way, and a Python websocket proxy ([pyguacamole](https://pypi.org/project/pyguacamole/)) is readily available under an open source (MIT) license.\r\n\r\nIn this talk, we discuss how we implemented a learning platform (based on [Open edX](https://open.edx.org)) that deploys an ASGI service under [Daphne](https://docs.djangoproject.com/en/3.1/howto/deployment/asgi/daphne/), uses pyguacamole to provide an asynchronous websocket connection to a Guacamole service, and thus creates a highly scalable, interactive, and immersive learning environment that helps people learn complex technology with no hardware or cloud investment at all.\r\n\r\n## Slides\r\n\r\nThe slides (with full speaker notes) are up at and .", "recording_license": "", "do_not_record": false, "persons": [{"id": 194, "code": "SPQDUH", "public_name": "Florian Haas", "biography": "Florian Haas specializes in Free and Open Source Software (F/OSS), open source platforms for professional education (based on Open edX), cloud technology (OpenStack), software-defined storage (Ceph).\r\n\r\nTwitter: https://twitter.com/xahteiwi\r\nLinkedIn: https://www.linkedin.com/in/fghaas/?originalSubdomain=at\r\nGithub: https://github.com/fghaas", "answers": []}, {"id": 195, "code": "VYKWDV", "public_name": "Maari Tamm", "biography": "I am a Python developer, working in City Network, in the Education team. I am also a FOSS enthusiast and a former Outreachy intern. I am based in Estonia and I have been working with Django a bit over one year.\r\n\r\nLinkedIn: https://www.linkedin.com/in/maari-tamm-9a2017172/?originalSubdomain=ee\r\nTwitter: https://twitter.com/tammmri\r\nGitHub: https://github.com/mrtmm\r\nWebsite: https://maari.ee/", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 121, "guid": "29651bab-aff2-5be9-a5f9-9e5b42830b27", "logo": "/media/2021/images/GWVRVA/poster_Gsf0398.png", "date": "2021-06-04T11:30:00+02:00", "start": "11:30", "duration": "00:45", "room": "Main Room", "slug": "2021-121-build-deploy-and-scale-django-graphql-and-spa", "url": "https://pretalx.evolutio.pt/2021/talk/GWVRVA/", "title": "Build, deploy and scale: Django, GraphQL and SPA", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "How to build GraphQL APIs with Django that can serve millions of requests per second? Strategies to deploy your API and SPA for production and non-production workloads.", "description": "After building, deploying and scaling a dozen on products with the Django + GraphQL + SPA (React) setup, we have come to understand what works and what does not. In this talk, I will share our findings on how to do the same. \r\n\r\nI will be using a simplified StackOverflow clone for demonstration. First, I will introduce Python-Graphene (and few other related libraries), the library that is used to build GraphQL endpoints. Then the talk will focus on how to structure your Django GraphQL project. Share the toolchain (a few management command scripts) that are handy to export your constants & GraphQL schemas to be used with your SPA. Integrating with an SPA (React for demo purpose) Auth, API calls. \r\n\r\nThen I will talk about how you go about deploying your API using 2 different strategies: \r\n1. Docker compose / swarm (Vendor independent, non-production workloads)\r\n2. AWS Fargate (Vendor dependant, production workloads, serverless containers)\r\n\r\nAnd a cost-effective and highly scale-able deployment strategy for your SPA (using AWS S3, CloudFront and ACM).", "recording_license": "", "do_not_record": false, "persons": [{"id": 196, "code": "BPFHQA", "public_name": "dhilipsiva", "biography": "Optimistic Nihilist. An instance of spacetime, just like you. Lover of World Peace, Science, Python, FOSS & \u0ba4\u0bae\u0bbf\u0bb4\u0bcd. VPE @reckonsys & Hitosh\u012bkage @nitimis\r\n\r\nGithub: https://github.com/dhilipsiva\r\nTwitter: https://twitter.com/dhilipsiva\r\nLinkedIn: https://www.linkedin.com/in/dhilipsiva/", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 164, "guid": "a970e471-c8ec-5718-bf91-1250546a33f5", "logo": "/media/2021/images/TXENJP/Screenshot_2021-04-02_at_12.49.55_AM_A0E1IZK.png", "date": "2021-06-04T12:15:00+02:00", "start": "12:15", "duration": "00:45", "room": "Main Room", "slug": "2021-164-load-testing-a-django-application-using-locustio", "url": "https://pretalx.evolutio.pt/2021/talk/TXENJP/", "title": "Load Testing a Django Application using LocustIO", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Load testing is critical in the software development lifecycle as it evaluates application performance affected by normal and peak loads by simulating access and usage by multiple users concurrently. \r\n\r\nLocustIO, an open source tool written in python, is used for load testing of web applications. It is simple and easy to use with web UI to view the test results. Let's make load testing quick and easy with LocustIO.", "description": "Fed up of using existing tools for determining benchmark and doing load testing for your server application? LocustIO is present to the rescue. LocustIO is an easy-to-use, distributed, user load testing tool. It is intended for load-testing web sites (or other systems) and figuring out how many concurrent users a system can handle.\r\n\r\nUsing Locust you will be able to determine the system performance at different endpoints in very simple and efficient way. This will provide you a rough idea on how many requests per second is supported by your application.", "recording_license": "", "do_not_record": false, "persons": [{"id": 231, "code": "G8BS3T", "public_name": "Pranjal Jain", "biography": "Hello everyone. \r\n\r\nI am from India and have been working as a software development engineer since last 2 years in Hyderabad here. We learn a lot professionally and personally in our day to day life, be it through our technical projects or helping people around us or simply living our life. Being on the progressive path of learning I would love to share my knowledge with and at the same time learn from you all. \r\n\r\nClick to connect with me on [LinkedIn](https://www.linkedin.com/in/pranjal-jain-2a648017a) or [Instagram](https://www.instagram.com/pranja1jain/).", "answers": []}, {"id": 245, "code": "D8TAEG", "public_name": "Vibhash Chandra", "biography": "I am a full stack developer working as Senior Applications Developer at ServiceNow, India. I have been using Django since 1.8 and interested in design, implementation as well knowledge sharing.\r\n\r\nLinkedIn: https://www.linkedin.com/in/vibhash-chandra/\r\nGitHub: https://github.com/vibhash1083", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 174, "guid": "75f341e0-0624-5f13-ab36-5506e9a6fdc4", "logo": "/media/2021/images/SDMA7T/jazzband_copy_22x_fyEUOE8.png", "date": "2021-06-04T13:50:00+02:00", "start": "13:50", "duration": "01:15", "room": "Main Room", "slug": "2021-174-keynote-we-re-all-part-of-this-jazzband-5-years-later", "url": "https://pretalx.evolutio.pt/2021/talk/SDMA7T/", "title": "KEYNOTE | We're all part of this: Jazzband 5 years later", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "The Jazzband project was launched 5 years ago to help maintainers find a way to secure the long-term maintenance of their Python projects. The result was a collective of volunteers that stepped up in a big way on the way to solve Open Source sustainability.\r\n\r\nIn this talk I'll dive into the history of the project, the good and bad of running the project for >5 years and the next steps for Jazzband.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"id": 238, "code": "L9MQ8H", "public_name": "Jannis Leidel (he/him)", "biography": "**Jannis Leidel**, better known as \"jezdez\" in the Python and Django communities, has until recently been working at Mozilla as a software engineer on the Mozilla data platform team, maintaining part of Mozilla\u2019s data infrastructure and tools and before that as a web developer on the [Mozilla Developer Network (MDN)](https://developer.mozilla.org/) project that documents Open Web technologies. He now works on the Distro team at [Anaconda](https://www.anaconda.com/) to help people to use Python et al in all kinds of environments.\r\n\r\nAs an avid contributor to Open Source projects, he's incredibly proud of the different communities he has become part of, whether it's the [Python packaging](https://www.pypa.io/) ecosystem, the data science community, the [Django](https://www.djangoproject.com/) project or the [Jazzband](https://jazzband.co/) collective. As director at the [Python Software Foundation](https://www.python.org/psf/) he works in the [packaging working group](https://wiki.python.org/psf/PackagingWG), the finance committee and as co-communication chair.\r\n\r\nFeel free to reach out to him via Twitter at **[@jezdez](https://twitter.com/jezdez)** (DMs are open).\r\nJazzband's website is at [jazzband.co](https://jazzband.co/).", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 154, "guid": "c951a96b-0715-583d-bfe8-d24e1e187990", "logo": "", "date": "2021-06-04T15:05:00+02:00", "start": "15:05", "duration": "00:45", "room": "Main Room", "slug": "2021-154-the-request-response-cycle-a-djangonautic-journey", "url": "https://pretalx.evolutio.pt/2021/talk/7B9YYD/", "title": "The request/response cycle - a Djangonautic journey", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "A Django-layer-focused look at the classic interview question: \"what happens when you click a link?\". From the initial call to the request handler, through to what it finally returns; a deep dive into Django's handlers and middleware.", "description": "How exactly do web-servers communicate with Django? and what happens immediately after that? If you've ever wondered where the `request` object comes from? How the middleware-chain is put together? Or just what all those functions you see in your exception tracebacks do? Then join me in a deep dive of everything between the server, the view and back again, as we answer these questions and more. \r\n\r\nThis talk will be a look under the hood at Django's request handlers, middleware-chain and URL-resolvers. Focusing on just the WSGI route (not asynchronous), it aims to be accessible to beginners, but with the intention that a more experienced user will learn something new or interesting as well. \r\n\r\nWe will start off by replacing Django's `WSGIHandler` with our own \"hello world\" WSGI application. We'll then build back in additional features until it starts to resemble what we originally had. Along the way, we'll highlight lesser-known features, and give examples demonstrating how understanding the implementation will enable you to better take advantage of the features Django offers, and ultimately write better code.", "recording_license": "", "do_not_record": false, "persons": [{"id": 223, "code": "ZYVUST", "public_name": "Timothy McCurrach", "biography": "A reformed maths Teacher - Tim McCurrach made the leap from the class-room to developing full-time back in 2019 and hasn't looked back since. A Django aficionado and contributor, he currently spends most of his time building the software he wished he had back when he taught. When not coding he enjoys running, climbing, maths problems and board games.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 147, "guid": "7a02780b-0643-5188-93b5-76726ded4817", "logo": "", "date": "2021-06-04T15:50:00+02:00", "start": "15:50", "duration": "00:45", "room": "Main Room", "slug": "2021-147-all-about-the-django-software-foundation-dsf-", "url": "https://pretalx.evolutio.pt/2021/talk/APN93S/", "title": "All about The Django Software Foundation (DSF)", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The Django Software Foundation (DSF) is the independent foundation established as a 501(c)(3) non-profit that supports the development of Django. The goal of the DSF is to promote, support, and advance its open-source project, the Django Web framework. In my talk, I will give an overview of what the DSF is doing to support the advancement of Django through the various teams, committees, and boards that make up the foundation. I will also talk about how to contribute to the advancement of Django through both code and non-code contributions.", "description": "DSF SLOT", "recording_license": "", "do_not_record": false, "persons": [{"id": 218, "code": "7FJJYR", "public_name": "Anna Makarudze", "biography": "Anna Makarudze is a Software Engineer based in Harare, Zimbabwe. She is the President of the Django Software Foundation Board of Directors (2021). She has been part of the DSF Board of Directors since 2018. She is also the Django Girls Fundraising Coordinator and member of the Django Girls Foundation Board of Trustees. She is also a former member of the Django Code of Conduct Committee and former organizer of PyCon Zimbabwe, DjangoCon Europe 2018, and several Django Girls events.\r\n\r\nGithub: https://github.com/amakarudze\r\nTwitter: https://twitter.com/amakarudze", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 160, "guid": "bbe5b4d0-6f77-5b27-9a29-5689cda54f84", "logo": "", "date": "2021-06-04T16:35:00+02:00", "start": "16:35", "duration": "00:45", "room": "Main Room", "slug": "2021-160-serving-files-with-django", "url": "https://pretalx.evolutio.pt/2021/talk/E8AYPU/", "title": "Serving Files with Django", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Is it possible to use just Django to serve static/media files? Even thousands of clients in parallel while saturating at least a 1Gbit link? I believe it is :) (now).", "description": "The fairly new support for real async views (since Django 3.1) opened up a lot of new possibilities. I was so excited about them that I wrote a longish blogpost about the topic:\r\n[Django 3.1 Async](https://wersdoerfer.de/blogs/ephes_blog/django-31-async/)\r\n\r\nThis article was also published on paper in a german developer magazine:\r\n[Django wird asynchron](https://kiosk.entwickler.de/entwickler-magazin/entwickler-magazin-6-2020/django-wird-asynchron/)\r\n\r\nBack then I had trouble to come up with a compelling use case for those new async views. But now I believe file serving is one of them. Usually you would use nginx in front of your Django application servers, a CDN or just S3 / another object store. But let's face it: This will add another layer of architectural complexity and authentication/authorization will be a real PITA. And some things might get a lot easier with pure Django file serving - let's assume I want to know how long people listened to my podcast delivered via http live streaming on average. If the media file was delivered via Django, it would be possible to log those numbers directly in the App. Otherwise you would have to calculate them from aws access log files or something like that (good luck with that).\r\n\r\nSo, using nginx will probably be still faster and you won't be able to saturate 100Gbit/s. But maybe you don't need to and Django alone is already fast enough. Until june I probably have some benchmarks to prove it or a story about an embarrassing failure :).", "recording_license": "", "do_not_record": false, "persons": [{"id": 227, "code": "7AHZEN", "public_name": "Jochen Wersd\u00f6rfer", "biography": "Freelance Python Developer from D\u00fcsseldorf.\r\n\r\nI'm @ephes on [Twitter](https://twitter.com/ephes) and [GitHub](https://github.com/ephes) and co-host of a [podcast about python](https://python-podcast.de/)", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 170, "guid": "1fb8900c-3343-5e4f-8bf0-ac852ff0dbbd", "logo": "", "date": "2021-06-04T17:20:00+02:00", "start": "17:20", "duration": "00:45", "room": "Main Room", "slug": "2021-170-securing-django-applications", "url": "https://pretalx.evolutio.pt/2021/talk/NUKNRB/", "title": "Securing Django Applications", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In this talk, we will focus on two aspects. First, performing penetration testing on Django web applications to identify vulnerabilities and scanning for Open Web Application Security Project (OWASP) Top 10 risks. Second, strategies and configuration settings for making the source code and Django applications secure.", "description": "Django is the most popular Python-based web framework used for creating web applications. The web applications are vulnerable for various reasons including a) configuration settings of the web applications b) lack of implementation of security best practices and secure coding and c) lack of awareness of secure first web applications among developers. The vulnerable web applications put the data of the customers at greater risk and the compromised code can lead to problems beyond control. It is very important to develop secure web applications to protect customer data and code to mitigate the risk. In this talk, we will focus on two aspects. First, performing penetration testing on Django web applications to identify vulnerabilities and scanning for Open Web Application Security Project (OWASP) Top 10 risks. Second, strategies and configuration settings for making the source code and Django applications secure. We will also discuss the Djangohunter tool to identify incorrectly configured Django applications that are exposing sensitive information.\r\nOutline\r\n1.\tSecurity aspects of Django web applications (03 minutes)\r\n2.\tPenetration testing of Django web applications (07 Minutes)\r\n3.\tOverview of OWASP Top 10 risks (07 Minutes)\r\n4.\tDjangohunter tool demonstration (06 Minutes)\r\n5.\tStrategies and configuration settings to make Django Application secure (07 Minutes)", "recording_license": "", "do_not_record": false, "persons": [{"id": 233, "code": "BAMT3E", "public_name": "Gajendra Deshpande", "biography": "I hold Post Graduate Diploma in Cyber Laws and Cyber Forensics from the National Law School of India University Bangalore. I have presented talks at many conferences including PyData Global, JuliaCon 2018 and 2020, PyCon FR/HK/TW/ID/TZ/AU, COSCUP Taiwan, FOSDEM 2021, FOSSASIA 2021, PyCon Africa, BuzzConf, EuroPython, PiterPy Russia, SciPy India. Worked as a Reviewer and Program Committee member for reputed International conferences including SciPy USA, SciPy Japan, JuliaCon, JupyterCon, PyData Global, and PyCon India, and publishers include Manning USA and Oxford Univesity Press. I am also a GitHub Certified Campus Advisor. I lead the PyData Belagavi chapter and the OWASP Belagavi chapter. I am working as CFP Co-Chair for PyCon India 2021.\r\n\r\nTwitter: https://twitter.com/gcdeshpande\r\nLinkedIn: https://www.linkedin.com/in/gajendradeshpande/?originalSubdomain=in\r\nGithub: https://github.com/gcdeshpande\r\nWebsite: https://gcdeshpande.github.io/", "answers": []}], "links": [], "attachments": [], "answers": []}], "Secondary Room": [{"id": 136, "guid": "c4fd520c-8878-5bfd-8089-ed40514060c9", "logo": "", "date": "2021-06-04T09:45:00+02:00", "start": "09:45", "duration": "00:50", "room": "Secondary Room", "slug": "2021-136-migrations-and-understanding-django-s-relationship-with-its-database", "url": "https://pretalx.evolutio.pt/2021/talk/VHFEDF/", "title": "Migrations and understanding Django's relationship with its database", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Do _IntegrityError: NOT NULL constraint failed_, _column cannot be null_ or _OperationalError: no such column_ ring a bell? Most Django developers experience those either during development, or worse, in production. We'll explore the whys and wherefores of these problems and suggest some solutions in order to improve your experience with Django migrations and make them seamless.\r\n\r\nSlides: https://drive.google.com/file/d/13wsg1yYWX0aJrLuA4a-GRnej42GBN1CK/view?usp=sharing", "description": "Slides: https://drive.google.com/file/d/13wsg1yYWX0aJrLuA4a-GRnej42GBN1CK/view?usp=sharing\r\n\r\n**Description**\r\nMigrations are a very convenient aspect of the Django framework. They allow making changes to your models when needed, and impact the database schema iteratively in a smooth and integrated manner. No need to have a deep knowledge of SQL, be a database expert nor administrator - it just works. Or at least, most of the time.\r\n\r\nThe generated migration files reflect the model changes from one version to the next, and Django logically expects these migrations to be applied for the database connections to work.\r\nThe required synchronicity between code and database schema is the root of some issues one might encounter when using Django. We will dive into these issues during this workshop.\r\n\r\nWe will first explore in which cases one can run into these migration problems, and how they are intrinsically linked to this synchronicity. This will be done by creating a Django project and adding toy features to it, like any developer would do during the workday.\r\nAfter defining the concept of backward incompatible migrations, we will also expose some example operations and why they can turn out dangerous.\r\nThe workshop will go about suggesting some existing solutions to these problems: we will manually fix such an issues in development, but also explore how to prevent them from happening in a large-scale infrastructure with multiple servers.\r\nHopefully giving the attendees a better grasp of what is happening under the hood when something seems off with models and migrations.\r\n\r\n**Workshop preparation**\r\nGet the toy project up and running => clone and install https://github.com/David-Wobrock/djangocon-europe-2021-migrations-workshop", "recording_license": "", "do_not_record": false, "persons": [{"id": 208, "code": "8E3TJL", "public_name": "David Wobrock", "biography": "Hi, I'm David and working as \"Senior Lead API Engineer\" at a French company called Botify.\r\n\r\nI've been working with Django for a few years now, creating tools to smooth some processes using the framework and starting to contribute to Django itself when time allows :)\r\n\r\nTwitter: https://twitter.com/davidwobrock\r\n\r\nGithub: https://github.com/David-Wobrock\r\n\r\nLinkedIn: https://www.linkedin.com/in/david-wobrock/", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 130, "guid": "7b52f1f4-e673-5c2a-aa7c-d105f4f3262d", "logo": "/media/2021/images/SXFXBF/Copy_of_event_flyer_-_Made_with_PosterMyWall_pjMiam1.jpg", "date": "2021-06-04T12:00:00+02:00", "start": "12:00", "duration": "00:50", "room": "Secondary Room", "slug": "2021-130-cleanroom-software-engineering-with-django", "url": "https://pretalx.evolutio.pt/2021/talk/SXFXBF/", "title": "Cleanroom Software Engineering with Django", "subtitle": "", "track": null, "type": "Workshop", "language": "en", "abstract": "Cleanroom software engineering process is a software development process developed at IBM intended to produce software with a certifiable level of reliability. A principal objective of the Cleanroom process is development of software that exhibits zero failures in use. In this workshop we will review how to implement it in a project with the help of Django.", "description": "The Software Engineering Institute defines the Cleanroom software engineering as \"a theory-based team-oriented process for development and certification of high-reliability software systems under statistical quality control. A principal objective of the Cleanroom process is development of software that exhibits zero failures in use. The Cleanroom name is borrowed from hardware Cleanrooms, with their emphasis on rigorous engineering discipline and focus on defect prevention rather than defect removal. Cleanroom combines mathematically based methods of software specification, design, and correctness verification with statistical, usage-based testing to certify software fitness for use. Cleanroom projects have reported substantial gains in quality and productivity. \"\r\n\r\nThis method was widely adopted in the 90's by organizations like IBM, Ericsson or the US Army with up to 20x gains in quality and 4.6x gains in productivity. It can be used for current technology projects, but it needs the help of tools like Django for implementing it in an organization.\r\n\r\nIn this workshop we will learn about this method and then we will do a practical exercise, first with basic tools and then using Django.", "recording_license": "", "do_not_record": false, "persons": [{"id": 204, "code": "LNNQMJ", "public_name": "Francisco J. L\u00f3pez-Lira Hinojo", "biography": "Francisco has a Bachelor on computer engineering and a Master on Deep Learning. Francisco started his career a long time ago as a programmer and when a company put him in charge of a project that later failed, he started to learn about project management and software quality models, processes, methods and techniques. For the past 5 years, he has been developing software using Django for several projects. \r\n\r\nFrancisco currently resides in Spain.\r\n\r\nYou can reach him at:\r\n\r\nflopezlira@gmail.com\r\n\r\nlinkedin.com/in/flopezlira\r\n\r\ntwitter: flopezlira", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 181, "guid": "eda6ca78-edc2-57c2-b063-f9abdc9ba983", "logo": "", "date": "2021-06-04T14:30:00+02:00", "start": "14:30", "duration": "00:35", "room": "Secondary Room", "slug": "2021-181-from-development-to-production-getting-actionable-insights-to-optimize-django-code-performance", "url": "https://pretalx.evolutio.pt/2021/talk/39Z3PC/", "title": "From Development to Production, Getting Actionable Insights to Optimize Django Code Performance", "subtitle": "", "track": null, "type": "Other", "language": "en", "abstract": "Blackfire offers a unique blend of Monitoring and Profiling features. Unlike traditional APMs on the market, it focuses on the quality of the data it collects, rather than its quantity, in order to make sure developers know quickly what they can do to fix issues.", "description": "We\u2019ll see how developers can see in real-time how end-user perceive the performance of an application, and the several levels through which Blackfire can drill down in order to find the root cause of issues.\r\nWe\u2019ll see how Blackfire can be used within CI/CD or any testing pipeline, to prevent issues from being released to production.\r\nAnd we\u2019ll see how Blackfire can be used on a development machine to reproduce and analyze issues, as well as validate code iterations.\r\n\r\nSponsored by: Blackfire.io", "recording_license": "", "do_not_record": false, "persons": [{"id": 244, "code": "CYY3R3", "public_name": "J\u00e9r\u00f4me Vieilledent", "biography": "My name is J\u00e9r\u00f4me Vieilledent and I work as developer advocate at Blackfire.io.\r\n\r\nI'm a senior technical expert with 17 years of experience. Completely self-educated, I'm a perfectionist and always ensure to follow best practices, but also to help people understand why they are best practices.\r\n\r\nTwitter: https://twitter.com/jvieilledent\r\nLinkedIn: https://www.linkedin.com/in/jeromevieilledent/?originalSubdomain=fr\r\nGithub: https://github.com/lolautruche", "answers": []}], "links": [], "attachments": [], "answers": []}, {"id": 178, "guid": "9c13fa67-7050-56bd-9856-ad7da0946345", "logo": "", "date": "2021-06-04T16:45:00+02:00", "start": "16:45", "duration": "00:30", "room": "Secondary Room", "slug": "2021-178-what-about-djangocon-europe-2022-", "url": "https://pretalx.evolutio.pt/2021/talk/UUZQFJ/", "title": "What about DjangoCon Europe 2022?", "subtitle": "", "track": null, "type": "Other", "language": "en", "abstract": "We hosted the last two DjangoCon Europe 2020 and 2021. What about 2022? Who is next?\r\n\r\nWe will share our experience over the last two years, the good the bad and the ugly.\r\n\r\nDjangoCon Europe will go on and following the tradition we will pass over the olympic torch to whoever wants to continue.\r\n\r\nThe first step is to apply with DSF, but during the submission you will already need to have a general Idea of the overall organization.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"id": 241, "code": "WL7HV9", "public_name": "David Vaz", "biography": null, "answers": []}, {"id": 6, "code": "CTQNFZ", "public_name": "Miguel Magalh\u00e3es", "biography": null, "answers": []}], "links": [], "attachments": [], "answers": []}]}}, {"index": 4, "date": "2021-06-05", "day_start": "2021-06-05T04:00:00+02:00", "day_end": "2021-06-06T03:59:00+02:00", "rooms": {}}, {"index": 5, "date": "2021-06-06", "day_start": "2021-06-06T04:00:00+02:00", "day_end": "2021-06-07T03:59:00+02:00", "rooms": {}}]}}}