{"title":"PyVideo.org - programming","link":[{"@attributes":{"href":"https:\/\/pyvideo.org\/","rel":"alternate"}},{"@attributes":{"href":"https:\/\/pyvideo.org\/feeds\/tag_programming.atom.xml","rel":"self"}}],"id":"https:\/\/pyvideo.org\/","updated":"2021-09-11T00:00:00+00:00","subtitle":{},"entry":[{"title":"Learning a new codebase","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/djangocon-us-2010\/djangocon-2010--learning-a-new-codebase.html","rel":"alternate"}},"published":"2010-09-09T00:00:00+00:00","updated":"2010-09-09T00:00:00+00:00","author":{"name":"Justin Lilly"},"id":"tag:pyvideo.org,2010-09-09:\/djangocon-us-2010\/djangocon-2010--learning-a-new-codebase.html","summary":"<h3>Description<\/h3><p>This talk will be on methods of reading code for comprehension. While\nthe project will be walking through various third-party Django apps, the\nexperiences and conclusions are drawn from joining a large, existing\nDjango project which lacked documentation.<\/p>\n<p>Abstract<\/p>\n<p>In the broadest sense, this talk is on how to \u2026<\/p>","content":"<h3>Description<\/h3><p>This talk will be on methods of reading code for comprehension. While\nthe project will be walking through various third-party Django apps, the\nexperiences and conclusions are drawn from joining a large, existing\nDjango project which lacked documentation.<\/p>\n<p>Abstract<\/p>\n<p>In the broadest sense, this talk is on how to read code. More than this,\nit is a series of methods and practices which one can follow to get up\nto speed on a new codebase. The subject of this talk will be\nopen-sourced Django projects, but many of the experiences which fuel\nthis talk will be based on joining a new team. It will cover tracing\nexecution paths, finding the more interesting portions of a codebase, as\nwell as how to address any issues you may have found in it.<\/p>\n","category":[{"@attributes":{"term":"DjangoCon US 2010"}},{"@attributes":{"term":"djangocon"}},{"@attributes":{"term":"djangocon2010"}},{"@attributes":{"term":"programming"}}]},{"title":"Bug hunting for dummies","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2013\/bug-hunting-for-dummies.html","rel":"alternate"}},"published":"2013-07-02T00:00:00+00:00","updated":"2013-07-02T00:00:00+00:00","author":{"name":"Antonio Cuni"},"id":"tag:pyvideo.org,2013-07-02:\/europython-2013\/bug-hunting-for-dummies.html","content":{"@attributes":{"type":"html"}},"category":[{"@attributes":{"term":"EuroPython 2013"}},{"@attributes":{"term":"debugging"}},{"@attributes":{"term":"testing"}},{"@attributes":{"term":"programming"}},{"@attributes":{"term":"tdd"}},{"@attributes":{"term":"gdb"}},{"@attributes":{"term":"code generation"}},{"@attributes":{"term":"pdb"}}]},{"title":"And now for something completely different.","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2019\/and-now-for-something-completely-different.html","rel":"alternate"}},"published":"2019-07-12T00:00:00+00:00","updated":"2019-07-12T00:00:00+00:00","author":{"name":"Danny Engelbarts"},"id":"tag:pyvideo.org,2019-07-12:\/europython-2019\/and-now-for-something-completely-different.html","summary":"<h3>Description<\/h3><p>The goal of this talk is to show the audience a different way of\nthinking about and developing regex statements.<\/p>\n<p>I have been working with UNIX for decades now and, although i always\nmanaged to avoid Perl, i have been intrigued with Regex constructs ever\nsince my first encounter \u2026<\/p>","content":"<h3>Description<\/h3><p>The goal of this talk is to show the audience a different way of\nthinking about and developing regex statements.<\/p>\n<p>I have been working with UNIX for decades now and, although i always\nmanaged to avoid Perl, i have been intrigued with Regex constructs ever\nsince my first encounter. These weird unreadable things that can\ntransform text like nothing else or can find what i\u2019m looking for in\nmassive files, in no time at all. I\u2019ve created regexes that only appeal\nto the most nerdiest of nerds and i\u2019ve stunned colleagues by fixing\ntheir futile regex attempts in just a few keystrokes. But when Damian\nConway showed me how regexes really work i was awestruck. And now i want\nto share this knowledge.<\/p>\n<p>This talk is aimed at pythonistas that have some experience with the re\nmodule. I will take some easy examples and explain in plain english how\na regex engine searches for a match. This will show that a regex is not\nsome mysterious incomprehensible pattern description or declarative\nblueprint. Instead it is a small program that is very good at comparing\nsingle characters. Like any programming language it turns out that once\nyou understand the rules and structure it suddenly becomes so much\neasier to use.<\/p>\n<p>With this new found knowledge we will up the ante and try some more\ndifficult stuff, adding other semantics and some tips and tricks. We\u2019ll\nlook at some pitfalls, maybe compare regex to python solutions and have\na look at some regexes found in the wild (either on my drive or on\ngithub).<\/p>\n","category":[{"@attributes":{"term":"EuroPython 2019"}},{"@attributes":{"term":"Compiler and Interpreters"}},{"@attributes":{"term":"Mind Bending"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python Skills"}},{"@attributes":{"term":"Tooling"}}]},{"title":"Code review for Beginners and Experts: Tips & Tricks","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2019\/code-review-for-beginners-and-experts-tips-tricks.html","rel":"alternate"}},"published":"2019-07-12T00:00:00+00:00","updated":"2019-07-12T00:00:00+00:00","author":{"name":"\u0141ukasz K\u0105kol"},"id":"tag:pyvideo.org,2019-07-12:\/europython-2019\/code-review-for-beginners-and-experts-tips-tricks.html","summary":"<h3>Description<\/h3><div class=\"line-block\">\n<div class=\"line\">Code review is not just boring duty. It's mutual responsibility for\nthe software we're releasing. It's one of the most critical aspects of\ncode quality, and therefore it's the first step of quality assurance.\nThis is also the key to easier programming and better maintainability.\nClean code is much \u2026<\/div><\/div>","content":"<h3>Description<\/h3><div class=\"line-block\">\n<div class=\"line\">Code review is not just boring duty. It's mutual responsibility for\nthe software we're releasing. It's one of the most critical aspects of\ncode quality, and therefore it's the first step of quality assurance.\nThis is also the key to easier programming and better maintainability.\nClean code is much easier to debug, and it's much harder to introduce\na bug in such code.<\/div>\n<div class=\"line\">When you think about code review, you probably think about verifying\nand examining the code. Reviewing the expert's code may look like a\nwaste of time because he knows what he's doing. Reviewing the code by\na beginner may look like a waste of time because he's not able to find\nas many defects as an experienced developer. Code review is a code\nquality tool in the first place, but it's also much beyond that. You\ncan teach or help someone, learn from somebody and much more both from\nthe position of reviewer and reviewee.<\/div>\n<div class=\"line\">There is much more about the real power of code review which I want to\nshare with you.<\/div>\n<div class=\"line\">This talk is also about how to do it the right way and how to not do\nit based on lessons learned and my experience within the diverse teams\nof people with a variety of knowledge and experience. I was reviewing\nthe code but, on the other hand, I was also being reviewed. I'd like\nto pass my observations to people who are reviewing the code both in\ncommercial and open source projects for a while. This talk is also for\nthose who want to start to review the code, but they do not know how\nto do it.<\/div>\n<\/div>\n","category":[{"@attributes":{"term":"EuroPython 2019"}},{"@attributes":{"term":"Best Practice"}},{"@attributes":{"term":"Clean Code"}},{"@attributes":{"term":"Code Analysis"}},{"@attributes":{"term":"Development"}},{"@attributes":{"term":"Programming"}}]},{"title":"Get up to speed with Cython 3.0","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2019\/get-up-to-speed-with-cython-30.html","rel":"alternate"}},"published":"2019-07-11T00:00:00+00:00","updated":"2019-07-11T00:00:00+00:00","author":{"name":"Stefan Behnel"},"id":"tag:pyvideo.org,2019-07-11:\/europython-2019\/get-up-to-speed-with-cython-30.html","summary":"<h3>Description<\/h3><p>Processing lots of data, in need of more speed, or struggling to make\nuse of native code? The Cython compiler for Python solves all of these\nproblems in a pythonic way, by compiling Python code to optimised C\ncode.<\/p>\n<p>Cython [1] has a very long history of faithfully helping \u2026<\/p>","content":"<h3>Description<\/h3><p>Processing lots of data, in need of more speed, or struggling to make\nuse of native code? The Cython compiler for Python solves all of these\nproblems in a pythonic way, by compiling Python code to optimised C\ncode.<\/p>\n<p>Cython [1] has a very long history of faithfully helping users to solve\ntheir Python performance problems and integrating native code into\nPython in production critical settings, while stimulating somewhat less\nconfidence with its 0.x versioning scheme. For the next Cython version,\na stable 3.0 release, we are planning to clean up several historically\ngrown issues in the language to make the Cython compiler more friendly\nfor modern Python users to work with.<\/p>\n<p>In this talk, I will show how Cython can be used for compiling and\nspeeding up Python code, using fast native data structures and\nlibraries. I will then give an overview of the changes that are on their\nway for the 3.0 release and how they will affect the user experience.<\/p>\n<p>[1] <a class=\"reference external\" href=\"https:\/\/cython.org\">https:\/\/cython.org<\/a><\/p>\n","category":[{"@attributes":{"term":"EuroPython 2019"}},{"@attributes":{"term":"C-Languages"}},{"@attributes":{"term":"Compiler and Interpreters"}},{"@attributes":{"term":"Cython"}},{"@attributes":{"term":"Performance"}},{"@attributes":{"term":"Programming"}}]},{"title":"Practical decorators","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2019\/practical-decorators.html","rel":"alternate"}},"published":"2019-07-11T00:00:00+00:00","updated":"2019-07-11T00:00:00+00:00","author":{"name":"Reuven Lerner"},"id":"tag:pyvideo.org,2019-07-11:\/europython-2019\/practical-decorators.html","summary":"<h3>Description<\/h3><p>Decorators are one of Python's most powerful features. But even if you\nunderstand what they do, it's not always obvious what you can do with\nthem. Sure, from a practical perspective, they let you remove repeated\ncode from your callables. And semantically, they let you think at a\nhigher \u2026<\/p>","content":"<h3>Description<\/h3><p>Decorators are one of Python's most powerful features. But even if you\nunderstand what they do, it's not always obvious what you can do with\nthem. Sure, from a practical perspective, they let you remove repeated\ncode from your callables. And semantically, they let you think at a\nhigher level of abstraction, applying the same treatment to functions\nand classes.<\/p>\n<p>But what can you actually do with them? For many Python developers I've\nencountered, decorators sometimes appear to be a solution looking for a\nproblem.<\/p>\n<p>In this talk, I'll show you some practical uses for decorators, and how\nyou can use them to make your code more readable and maintainable, while\nalso providing more semantic power. Moreover, you'll see examples of\nthings would be hard to do without decorators. I hope that after this\ntalk, you'll have a good sense of how to use decorators in your own\nPython projects.<\/p>\n","category":[{"@attributes":{"term":"EuroPython 2019"}},{"@attributes":{"term":"Compiler and Interpreters"}},{"@attributes":{"term":"Data Structures"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python Skills"}},{"@attributes":{"term":"Python general"}}]},{"title":"Teaching Programming to the Next Generation","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2019\/teaching-programming-to-the-next-generation.html","rel":"alternate"}},"published":"2019-07-10T00:00:00+00:00","updated":"2019-07-10T00:00:00+00:00","author":{"name":"Lilian Nandi anonymous"},"id":"tag:pyvideo.org,2019-07-10:\/europython-2019\/teaching-programming-to-the-next-generation.html","summary":"<h3>Description<\/h3><p>Our generation of young people in school (aged 5-18) have noticed the\nconnection between Computer pRogramming, Technology &amp; Success and\nBillionaires.On mass they are clamoring to master the skill of Computer\npRogramming. We describe a successful working model for the teaching of\nComputer pRogamming.<\/p>\n<p>Computer Science is now regarded \u2026<\/p>","content":"<h3>Description<\/h3><p>Our generation of young people in school (aged 5-18) have noticed the\nconnection between Computer pRogramming, Technology &amp; Success and\nBillionaires.On mass they are clamoring to master the skill of Computer\npRogramming. We describe a successful working model for the teaching of\nComputer pRogamming.<\/p>\n<p>Computer Science is now regarded as one of the leading disciplines in\nthe 21st century. Computers are ubiquitous and prevalent in most, if not\nall, sectors of our modern society \u2013 applications include using them in\nweather forecasting, robotic surgery, space exploration, e-commerce,\nsmart cities, driverless cars, etc.<\/p>\n<p>Therefore, coding or computer programming is now regarded by many as an\nessential skill for the young person, and it has been dubbed the \u20184th\u2019\nR\u2019 (computer pRogramming) along with Reading, wRiting and aRithmetic.<\/p>\n<p>In recognition of the new status of computer programming, governments\nworldwide have launched initiatives to have it taught in schools from\nKindergarten through to junior school and all the way through secondary\nschool.<\/p>\n<p>So, the question emerges is how do we best teach and motivate the next\ngeneration in acquiring this skill? Given the fact that this field is\nvery much in its infancy, there are insufficient number of skilled\nComputer Science teachers and very little pedagogy to guide the\neducator. Therefore, the whole world is learning how best to teach this\nsubject by trial and error.<\/p>\n<p>The talk will describe a case study whereby coding\/computer programming,\nin the form of Python programming, was introduced to a group of 110\nyoung people from the ages of 11 to 18 (Years 7-13 in a U.K secondary\nschool). The talk will include descriptions of the various teaching\nmethodologies introduced to the young people for this purpose and the\noutcomes; the talk will also address various challenges and questions\nabout how to teach coding to young people. The talk will conclude with\nhelpful suggestions, based on the findings of the case study, on how to\nproceed with the teaching of computer programming to these people.<\/p>\n","category":[{"@attributes":{"term":"EuroPython 2019"}},{"@attributes":{"term":"All Other Programming Languages"}},{"@attributes":{"term":"Education"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python 3"}},{"@attributes":{"term":"Teaching"}}]},{"title":"How to Avoid Becoming a 10x Engineer","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2020\/how-to-avoid-becoming-a-10x-engineer.html","rel":"alternate"}},"published":"2020-07-23T00:00:00+00:00","updated":"2020-07-23T00:00:00+00:00","author":{"name":"Ivana Kellyerova"},"id":"tag:pyvideo.org,2020-07-23:\/europython-2020\/how-to-avoid-becoming-a-10x-engineer.html","summary":"<h3>Description<\/h3><p>Why you should ignore advice by random internet people, by a random internet person<\/p>\n<p>The internet has never failed at being, among other things, a giant treasure of unsolicited advice by random people on all sorts of things, programming being no exception. Wanna become a better coder? Learn to \u2026<\/p>","content":"<h3>Description<\/h3><p>Why you should ignore advice by random internet people, by a random internet person<\/p>\n<p>The internet has never failed at being, among other things, a giant treasure of unsolicited advice by random people on all sorts of things, programming being no exception. Wanna become a better coder? Learn to maximize your WPM (c). Never look at documentation because that's just embarrassing. And for crying out loud, change your screen background to black!<\/p>\n<p>So there you are, a fairly okay programmer, looking for ways to become better at coding. How do you achieve that? Well I'm no 10x engineer myself (thank goodness), but I do believe that there's a handful of things we can safely rule out.<\/p>\n","category":[{"@attributes":{"term":"EuroPython 2020"}},{"@attributes":{"term":"europython"}},{"@attributes":{"term":"europython-2020"}},{"@attributes":{"term":"europython-online"}},{"@attributes":{"term":"Best Practice"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"The Answer to Life the Universe and Everything Else"}}]},{"title":"How to be Pythonic? Design a Query Language in Python","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2020\/how-to-be-pythonic-design-a-query-language-in-python.html","rel":"alternate"}},"published":"2020-07-23T00:00:00+00:00","updated":"2020-07-23T00:00:00+00:00","author":{"name":"Cheuk Ho"},"id":"tag:pyvideo.org,2020-07-23:\/europython-2020\/how-to-be-pythonic-design-a-query-language-in-python.html","summary":"<h3>Description<\/h3><p>Query language is an important part of a database system, it is how people manage their data and how they can make the data useful to them. Starting from the 70s, the world is full of relational databases and SQL was the way to make queries. However, SQL is \u2026<\/p>","content":"<h3>Description<\/h3><p>Query language is an important part of a database system, it is how people manage their data and how they can make the data useful to them. Starting from the 70s, the world is full of relational databases and SQL was the way to make queries. However, SQL is valuable to an injection attack. Lots of efforts are being used to stop those attacks and it made workflow become less efficient.<\/p>\n<p>We don\u2019t want to make the same mistake. That\u2019s why using a Python query language is good. Having the Python community in our mind, we created WOQLpy, an open-source query language that lets users build queries in Python, instead of JSON-LD which is the native query language for our TerminusDB database. Now users can store data with a knowledge graph and make graph data visualization with Python.<\/p>\n<p>In the first part of the talk, we will talk about what challenges we have when creating a query language in Python, the method we use, the idea and theory behind, and how WOQLpy work. This part will include a quick live demo of using WOQLpy so audiences can have an impression on how to make a query and get the task done, that is, getting a meaningful graph visualization form the source CSVs. The process of how to create a database and schema, loading the data form many CSVs, making a query and visualization, will be demonstrated using just one python script.<\/p>\n<p>In the second part of the talk, we want to stimulate a discussion of what is a good design in Python and what is not. This part will be more interactive with the audiences, as we want to hear from you all, what would be the best for Pythonistas. By first suggesting some possible design, we will use a live voting system to gather opinions. This part of the talk will extend to the Q &amp; A sessions to allow further discussions.<\/p>\n<p>This talk is for Pythonista at all levels who are interested in starting to design a package in Python, no matter if the audience has published a python library or not. By attending this talk, audiences will learn about how to design a Python package that will be useful to Pythonistas and hopefully encourage more people to publish open-source packages online.<\/p>\n","category":[{"@attributes":{"term":"EuroPython 2020"}},{"@attributes":{"term":"europython"}},{"@attributes":{"term":"europython-2020"}},{"@attributes":{"term":"europython-online"}},{"@attributes":{"term":"APIs"}},{"@attributes":{"term":"Databases"}},{"@attributes":{"term":"Graph Databases"}},{"@attributes":{"term":"Open-Source"}},{"@attributes":{"term":"Programming"}}]},{"title":"Python Table Manners: Cut the Cookie Gracefully","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2020\/python-table-manners-cut-the-cookie-gracefully.html","rel":"alternate"}},"published":"2020-07-23T00:00:00+00:00","updated":"2020-07-23T00:00:00+00:00","author":{"name":"Wei Lee"},"id":"tag:pyvideo.org,2020-07-23:\/europython-2020\/python-table-manners-cut-the-cookie-gracefully.html","summary":"<h3>Description<\/h3><p>A Guideline Toward Cleaner Code<\/p>\n<p>### Goals\nI expect the audiences to gain knowledge of the tools I mention and the primary usage of them. The tools will cover various aspects of software engineering (e.g., dependencies, testing, security, etc.). Also, I'll purpose how I combine all these tools in \u2026<\/p>","content":"<h3>Description<\/h3><p>A Guideline Toward Cleaner Code<\/p>\n<p>### Goals\nI expect the audiences to gain knowledge of the tools I mention and the primary usage of them. The tools will cover various aspects of software engineering (e.g., dependencies, testing, security, etc.). Also, I'll purpose how I combine all these tools in my development workflow as a sample for how the audiences can integrate these tools into their workflow.<\/p>\n<p>### Outline for 30 minutes\n* Dependency Management (4 min)\n* Testing - Don't let your customer debug for you (4 min)\n* Style Check and auto-fix (4 min)\n* Task Management - No more repetitive typing (3 min)\n* pre-commit - Prevent committing bad code into codebase (3 min)\n* commitizen-tool - How good commit message can help (4 min)\n* Security (3 min)\n* Cookiecutter - Wrap up all the tools (3 min)\n* Q &amp; A (2 min)<\/p>\n<p>### Outline for 45 minutes\n* Dependency Management (5 min)\n* Testing - Don't let your customer debug for you (5 min)\n* Style Check and auto-fix (5 min)\n* Task Management - No more repetitive typing (5 min)\n* pre-commit - Prevent committing bad code into codebase (5 min)\n* commitizen-tool - How good commit message can help (5 min)\n* Security (5 min)\n* Continuous Integration - Assemble all the trivial steps (5 min)\n* Cookiecutter - Wrap up all the tools (3 min)\n* Q &amp; A (2 min)<\/p>\n","category":[{"@attributes":{"term":"EuroPython 2020"}},{"@attributes":{"term":"europython"}},{"@attributes":{"term":"europython-2020"}},{"@attributes":{"term":"europython-online"}},{"@attributes":{"term":"Best Practice"}},{"@attributes":{"term":"General"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Tooling"}}]},{"title":"The joy of deleting code","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/europython-2020\/the-joy-of-deleting-code.html","rel":"alternate"}},"published":"2020-07-23T00:00:00+00:00","updated":"2020-07-23T00:00:00+00:00","author":{"name":"Rados\u0142aw Ganczarek"},"id":"tag:pyvideo.org,2020-07-23:\/europython-2020\/the-joy-of-deleting-code.html","summary":"<h3>Description<\/h3><p>How to apply YAGNI to practice<\/p>\n<p>They say measuring code quality by its LOC is like measuring aircraft quality by its weight. There's a lot of sense in the metaphor, as we often call inefficient code with words like &quot;heavy&quot; or &quot;bloated&quot;.\nIn my talk I'll tell you about \u2026<\/p>","content":"<h3>Description<\/h3><p>How to apply YAGNI to practice<\/p>\n<p>They say measuring code quality by its LOC is like measuring aircraft quality by its weight. There's a lot of sense in the metaphor, as we often call inefficient code with words like &quot;heavy&quot; or &quot;bloated&quot;.\nIn my talk I'll tell you about my approach to deleting unneeded code, tools that could help you and how did it turned out in the end in real world projects.\nAs you probably know, detecting unused code automatically is a hard task and doing it in Python is exceptionally hard because we sometimes call methods with getattr or write classes which are only used in non-python configuration files. Tools give us only a partial success. What you could do beyond them? What approach to take? I'd like to discuss it in detail in my talk.<\/p>\n","category":[{"@attributes":{"term":"EuroPython 2020"}},{"@attributes":{"term":"europython"}},{"@attributes":{"term":"europython-2020"}},{"@attributes":{"term":"europython-online"}},{"@attributes":{"term":"Architecture"}},{"@attributes":{"term":"Best Practice"}},{"@attributes":{"term":"Clean Code"}},{"@attributes":{"term":"Code Analysis"}},{"@attributes":{"term":"Programming"}}]},{"title":"Rube Codeberg Competition","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-au-2020\/rube-codeberg-competition.html","rel":"alternate"}},"published":"2020-09-06T00:00:00+00:00","updated":"2020-09-06T00:00:00+00:00","author":{"name":"Rube Codeberg Competition"},"id":"tag:pyvideo.org,2020-09-06:\/pycon-au-2020\/rube-codeberg-competition.html","content":{"@attributes":{"type":"html"}},"category":[{"@attributes":{"term":"PyCon AU 2020"}},{"@attributes":{"term":"australia"}},{"@attributes":{"term":"conference"}},{"@attributes":{"term":"programming"}},{"@attributes":{"term":"python"}}]},{"title":"Sunday Lightning Talks (PyConline AU 2020)","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-au-2020\/sunday-lightning-talks-pyconline-au-2020.html","rel":"alternate"}},"published":"2020-09-05T00:00:00+00:00","updated":"2020-09-05T00:00:00+00:00","author":{"name":"Sunday Lightning Talks"},"id":"tag:pyvideo.org,2020-09-05:\/pycon-au-2020\/sunday-lightning-talks-pyconline-au-2020.html","summary":"<h3>Description<\/h3><p>Extremely Online Lightning Talks from the extremely online PyConline AU 2020.\nCONTENT WARNING: Swearing, discussion of genocide.<\/p>\n<p>0:00 - Intro \ud83d\udc08\n1:40 - Tisham Dhar - Coding at Home with Kids\n6:33 - Juan Morais - A bot that shares game development content in Spanish\n11:11 - Peter Hall - Java is better \u2026<\/p>","content":"<h3>Description<\/h3><p>Extremely Online Lightning Talks from the extremely online PyConline AU 2020.\nCONTENT WARNING: Swearing, discussion of genocide.<\/p>\n<p>0:00 - Intro \ud83d\udc08\n1:40 - Tisham Dhar - Coding at Home with Kids\n6:33 - Juan Morais - A bot that shares game development content in Spanish\n11:11 - Peter Hall - Java is better than Python\n16:57 - Evan Kohilas - How did we miss this?\n21:28 - Kit Darko - why not throw my devices in the sea, and go live in a cave?\n26:32 - Henry Walshaw - Calculating 5km of travel distance in Python\n32:00 - Allan Whatmough - Meltano: open-source data pipelines\n37:20 - Matt Cengia - Event Diversity, Inclusion, and Accessibility\n40:32 - Keira Paterson - Why won't they just use password managers already!?\n45:13 - Jason King - The king has entered the area\n50:33 - Carl Karsten - My fav answer to &quot;How can I program?&quot;\n56:10 - Anthony Agius - 5 minutes to explain 5 ways Facebook causes harm\n1:01:28 - Jared Quinn - Take Full Control of Your Smart Home\n1:06:52 - Rachel Bunder - Curly boi or cake?<\/p>\n","category":[{"@attributes":{"term":"PyCon AU 2020"}},{"@attributes":{"term":"australia"}},{"@attributes":{"term":"conference"}},{"@attributes":{"term":"programming"}},{"@attributes":{"term":"pycon"}},{"@attributes":{"term":"pyconau"}},{"@attributes":{"term":"pyconline"}},{"@attributes":{"term":"pyconlineau"}},{"@attributes":{"term":"python"}}]},{"title":"Welcome to PyConline AU 2021","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-au-2021\/welcome-to-pyconline-au-2021.html","rel":"alternate"}},"published":"2021-09-11T00:00:00+00:00","updated":"2021-09-11T00:00:00+00:00","author":{"name":"Richard Jones"},"id":"tag:pyvideo.org,2021-09-11:\/pycon-au-2021\/welcome-to-pyconline-au-2021.html","content":"<h3>Description<\/h3><p>Welcome back to PyConline AU 2021!<\/p>\n<p>Program: <a class=\"reference external\" href=\"http:\/\/2021.pycon.org.au\/program\">http:\/\/2021.pycon.org.au\/program<\/a>\nRegister: <a class=\"reference external\" href=\"http:\/\/2021.pycon.org.au\/attend\">http:\/\/2021.pycon.org.au\/attend<\/a><\/p>\n","category":[{"@attributes":{"term":"PyCon AU 2021"}},{"@attributes":{"term":"australia"}},{"@attributes":{"term":"conference"}},{"@attributes":{"term":"programming"}},{"@attributes":{"term":"python"}}]},{"title":"SCons - Software bauen in Python","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2013\/scons-software-bauen-in-python.html","rel":"alternate"}},"published":"2013-10-16T00:00:00+00:00","updated":"2013-10-16T00:00:00+00:00","author":{"name":"Dirk B\u00e4chle"},"id":"tag:pyvideo.org,2013-10-16:\/pycon-de-2013\/scons-software-bauen-in-python.html","summary":"<h3>Summary<\/h3><p>Dieser Vortrag stellt SCons (www.scons.org) und seine Benutzung vor. Er\nrichtet sich in erster Linie an Softwareentwickler oder Betreuer von\ngro\u00dfen Buildumgebungen, die nach Alternativen zu herk\u00f6mmlichen Tools,\nwie CMake oder autotools, suchen.<\/p>\n<p>SCons ist ein Buildsystem das vollst\u00e4ndig in Python programmiert wird.\nDie Eingabedateien zur Definition \u2026<\/p>","content":"<h3>Summary<\/h3><p>Dieser Vortrag stellt SCons (www.scons.org) und seine Benutzung vor. Er\nrichtet sich in erster Linie an Softwareentwickler oder Betreuer von\ngro\u00dfen Buildumgebungen, die nach Alternativen zu herk\u00f6mmlichen Tools,\nwie CMake oder autotools, suchen.<\/p>\n<p>SCons ist ein Buildsystem das vollst\u00e4ndig in Python programmiert wird.\nDie Eingabedateien zur Definition der einzelnen Buildschritte werden\nebenfalls als Pythonskripte ausgef\u00fchrt. Durch diese Kombination einer\nDSL (Domain Specific Language) mit der Allzwecksprache Python, lassen\nsich auch komplizierte Softwareprojekte einfach spezifizieren und bauen.<\/p>\n<p>Das Framework das sich hinter dem Startskript verbirgt, ist auf einfache\nErweiterbarkeit und hohe Flexibilit\u00e4t ausgelegt.<\/p>\n<p>W\u00e4hrend des Vortrags soll gezeigt werden wie man ein Projekt richtig\nanf\u00e4ngt und make-typische Denkweisen vermeidet. Die Vorteile von SCons\nund Standardfragen, z.B. zur Erweiterung des Systems f\u00fcr neue\nBuildschritte, werden diskutiert.<\/p>\n<p>Am Ende soll der Zuh\u00f6rer einen Eindruck von der Arbeitsweise des\nProgramms erhalten haben, und entscheiden k\u00f6nnen ob sich der Einsatz von\nSCons f\u00fcr sein Softwareprojekt lohnen w\u00fcrde.<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2013"}},{"@attributes":{"term":"building"}},{"@attributes":{"term":"build system"}},{"@attributes":{"term":"framework"}},{"@attributes":{"term":"programming"}},{"@attributes":{"term":"software"}}]},{"title":"Concurrency in Python - concepts, frameworks and best practices","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/concurrency-in-python-concepts-frameworks-and-best-practices.html","rel":"alternate"}},"published":"2018-10-26T00:00:00+00:00","updated":"2018-10-26T00:00:00+00:00","author":{"name":"Stefan Schwarzer"},"id":"tag:pyvideo.org,2018-10-26:\/pycon-de-2018\/concurrency-in-python-concepts-frameworks-and-best-practices.html","summary":"<h3>Description<\/h3><p>Have you run in situations where concurrent execution could speed up\nyour Python code? Are you using a GUI toolkit?<\/p>\n<p>This talk gives you the background to use concurrency in your code\nwithout shooting yourself in the foot - which is quite easy if you don't\nunderstand how concurrent execution \u2026<\/p>","content":"<h3>Description<\/h3><p>Have you run in situations where concurrent execution could speed up\nyour Python code? Are you using a GUI toolkit?<\/p>\n<p>This talk gives you the background to use concurrency in your code\nwithout shooting yourself in the foot - which is quite easy if you don't\nunderstand how concurrent execution differs from linear execution!<\/p>\n<p>The presentation starts with explaining some concepts like concurrency,\nparallelism, resources, atomic operations, race conditions and\ndeadlocks.<\/p>\n<p>Then we discuss the commonly-used approaches to concurrency:\nmultithreading with the <tt class=\"docutils literal\">threading<\/tt> module, multiprocessing with the\n<tt class=\"docutils literal\">multiprocessing<\/tt> module, and event loops (which include the\n<tt class=\"docutils literal\">asyncio<\/tt> framework). Each of these approaches has its typical use\ncases, which are explained.<\/p>\n<p>You can implement concurrency on a number of abstraction levels. The\nlowest level consists of primitives like locks, events, semaphores and\nso on. A higher abstraction level is using queues, typically with worker\nthreads or processes. Even higher abstraction levels are active objects\n(hiding primitives or queues behind an API; this includes &quot;actors&quot; if\nyou heard of them), the thread and process pools in\n<tt class=\"docutils literal\">concurrent.futures<\/tt> and the <tt class=\"docutils literal\">asyncio<\/tt> framework. Finally, you can\n&quot;outsource&quot; concurrency by leaving it to a message broker, which is a\ndistinct process that receives and distributes messages.<\/p>\n<p>The talk closes with some tips and best practices, mainly:<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Parallel Programming"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}}]},{"title":"Beyond Jupyter Notebooks - Building your own Data Science platform with Python & Docker","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/beyond-jupyter-notebooks-building-your-own-data-science-platform-with-python-docker.html","rel":"alternate"}},"published":"2018-10-25T00:00:00+00:00","updated":"2018-10-25T00:00:00+00:00","author":{"name":"Joshua G\u00f6rner"},"id":"tag:pyvideo.org,2018-10-25:\/pycon-de-2018\/beyond-jupyter-notebooks-building-your-own-data-science-platform-with-python-docker.html","summary":"<h3>Description<\/h3><p>Interactive notebooks like Jupyter have become more and more popular in\nthe recent past and build the core of many data scientist's workplace.\nBeing accessed via web browser they allow scientists to easily structure\ntheir work by combining code and documentation.<\/p>\n<p>Yet notebooks often lead to isolated and disposable \u2026<\/p>","content":"<h3>Description<\/h3><p>Interactive notebooks like Jupyter have become more and more popular in\nthe recent past and build the core of many data scientist's workplace.\nBeing accessed via web browser they allow scientists to easily structure\ntheir work by combining code and documentation.<\/p>\n<p>Yet notebooks often lead to isolated and disposable analysis artefacts.\nKeeping the computation inside those notebooks does not allow for\nconvenient concurrent model training, model exposure or scheduled model\nretraining.<\/p>\n<p>Those issues can be addressed by taking advantage of recent developments\nin the discipline of software engineering. Over the past years\ncontainerization became the technology of choice for crafting and\ndeploying applications. Building a data science platform that allows for\neasy access (via notebooks), flexibility and reproducibility (via\ncontainerization) combines the best of both worlds and addresses Data\nScientist's hidden needs.<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Artificial Intelligence"}},{"@attributes":{"term":"Algorithms"}},{"@attributes":{"term":"Data Science"}},{"@attributes":{"term":"DevOps"}},{"@attributes":{"term":"Infrastructure"}},{"@attributes":{"term":"Jupyter"}},{"@attributes":{"term":"Machine Learning"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}}]},{"title":"Big Data Systems Performance: The Little Shop of Horrors","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/big-data-systems-performance-the-little-shop-of-horrors.html","rel":"alternate"}},"published":"2018-10-25T00:00:00+00:00","updated":"2018-10-25T00:00:00+00:00","author":{"name":"Jens Dittrich"},"id":"tag:pyvideo.org,2018-10-25:\/pycon-de-2018\/big-data-systems-performance-the-little-shop-of-horrors.html","summary":"<h3>Description<\/h3><p>The confusion around terms such as like NoSQL, Big Data, Data Science,\nSpark, SQL, and Data Lakes often creates more fog than clarity. However,\nclarity about the underlying technologies is crucial to designing the\nbest technical solution in any field relying on huge amounts of data\nincluding data science \u2026<\/p>","content":"<h3>Description<\/h3><p>The confusion around terms such as like NoSQL, Big Data, Data Science,\nSpark, SQL, and Data Lakes often creates more fog than clarity. However,\nclarity about the underlying technologies is crucial to designing the\nbest technical solution in any field relying on huge amounts of data\nincluding data science, machine learning, but also more traditional\nanalytical systems such as data integration, data warehousing,\nreporting, and OLAP.<\/p>\n<p>In my presentation, I will show that often at least three dimensions are\ncluttered and confused in discussions when it comes to data management:\nFirst, buzzwords (labels &amp; terms like &quot;big data&quot;, &quot;AI&quot;, &quot;data lake&quot;);\nsecond, data design patterns (principles &amp; best practices like:\nselection push-down, materialization, indexing); and Third, software\nplatforms (concrete implementations &amp; frameworks like: Python, DBMS,\nSpark, and NoSQL-systems).<\/p>\n<p>Only by keeping these three dimensions apart, it is possible to create\ntechnically-sound architectures in the field of big data analytics.<\/p>\n<p>I will show concrete examples, which through a simple redesign and wise\nchoice of the right tools and technologies, run thereby up to 1000 times\nfaster. This in turn triggers tremendous savings in terms of development\ntime, hardware costs, and maintenance effort.<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Algorithms"}},{"@attributes":{"term":"Big Data"}},{"@attributes":{"term":"Data Science"}},{"@attributes":{"term":"Infrastructure"}},{"@attributes":{"term":"Parallel Programming"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}},{"@attributes":{"term":"Science"}}]},{"title":"Driving simulation and data analysis of magnetic nanostructures through Jupyter Notebook","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/driving-simulation-and-data-analysis-of-magnetic-nanostructures-through-jupyter-notebook.html","rel":"alternate"}},"published":"2018-10-25T00:00:00+00:00","updated":"2018-10-25T00:00:00+00:00","author":{"name":"Hans Fangohr"},"id":"tag:pyvideo.org,2018-10-25:\/pycon-de-2018\/driving-simulation-and-data-analysis-of-magnetic-nanostructures-through-jupyter-notebook.html","summary":"<h3>Description<\/h3><p>We present ongoing work from a project that makes a particular computer\nsimulation (implemented in C++ and Tk\/Tcl) accessible through a Python\ninterface, and through the Jupyter Notebook. The talk describes the\nmotivation and current status of the project.<\/p>\n<p>In more detail, the computer simulation in question is \u2026<\/p>","content":"<h3>Description<\/h3><p>We present ongoing work from a project that makes a particular computer\nsimulation (implemented in C++ and Tk\/Tcl) accessible through a Python\ninterface, and through the Jupyter Notebook. The talk describes the\nmotivation and current status of the project.<\/p>\n<p>In more detail, the computer simulation in question is the Object\nOriented Micromagnetic Modelling Framework\n(<a class=\"reference external\" href=\"http:\/\/math.nist.gov\/oommf\/\">OOMMF<\/a>) which is likely the most\nwidely used micromagnetic simulation package. It can be driven through a\ngraphical (Tk) user interface or through a configuration file that\ndefines a simulation run.<\/p>\n<p>In this talk, we first show a Python interface to OOMMF that allows the\ndriving of OOMMF simulations from a Python program or interpreter\nprompt. This way we embed a widely used scientific code from 1990s in a\ngeneral purpose programming language\n[<a class=\"reference external\" href=\"https:\/\/doi.org\/10.1063\/1.4977225\">1<\/a>] and enable the full use of\nthe ecosystem of scientific libraries available for Python. For example,\ndesign optimisation, specialised post-processing, and the creation of\nfigures can all be carried out using a single script; making the work\nmore easily reproducible.<\/p>\n<p>Second, we integrate the Python interface to OOMMF into a Jupyter\nnotebook, so that all existing benefits of using Jupyter are inherited\nfor the use in computational micromagnetics, which is the reason we\nnamed our code Jupyter- OOMMF (<a class=\"reference external\" href=\"http:\/\/joommf.github.io\/\">JOOMMF<\/a>). A\n<a class=\"reference external\" href=\"https:\/\/tryjoommf.soton.ac.uk\/\">JupyterHub installation<\/a> of the tool\nreduces barriers in uptake, and all the code is <a class=\"reference external\" href=\"https:\/\/github.com\/joommf\">on\ngithub<\/a>.<\/p>\n<p>We discuss the benefits of driving computer simulation and data analysis\nthrough Jupyter Notebooks.<\/p>\n<p>This project is a part of the Jupyter-OOMMF (JOOMMF) activity in the\n<a class=\"reference external\" href=\"http:\/\/opendreamkit.org\/\">OpenDreamKit<\/a> project and we acknowledge\nfinancial support from Horizon 2020 European Research Infrastructures\nproject (676541). The work is also supported by the EPSRC CDT in Next\nGeneration Computational Modelling EP\/L015382\/1, and the EPSRC grants\nEP\/M022668\/1 and EP\/N032128\/1.<\/p>\n<p>For additional context: micromagnetic modelling is a key research method\nin academia and industry to support development of high-capacity\nmagnetic storage devices that are cheap, fast, and reliable, and to\nenable research into future alternative storage and processing\ntechnologies such as spintronics. The OOMMF modelling package has been\nused in <a class=\"reference external\" href=\"https:\/\/math.nist.gov\/oommf\/oommf_cites.html\">over 2500\npublications<\/a> since\n1999.<\/p>\n<p>[1] Beg, M., Pepper, R. A., and Fangohr, H. User interfaces for\ncomputational science: A domain specific language for OOMMF embedded in\nPython. AIP Advances 7, 056025 (2017), <a class=\"reference external\" href=\"https:\/\/doi.org\/10.1063\/1.4977225\">https:\/\/doi.org\/10.1063\/1.4977225<\/a><\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Data Science"}},{"@attributes":{"term":"Jupyter"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}},{"@attributes":{"term":"Science"}}]},{"title":"Observe all your applications","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/observe-all-your-applications.html","rel":"alternate"}},"published":"2018-10-25T00:00:00+00:00","updated":"2018-10-25T00:00:00+00:00","author":{"name":"Christoph Heer"},"id":"tag:pyvideo.org,2018-10-25:\/pycon-de-2018\/observe-all-your-applications.html","summary":"<h3>Description<\/h3><p>You just deployed your new version of an application or micro-service;\nhow do you know everything works as expected? You run your comprehensive\ntest suite to verify functional correctness for known scenarios and\nperformance tests before deploying, but does your application really\nwork at the moment or is it \u2026<\/p>","content":"<h3>Description<\/h3><p>You just deployed your new version of an application or micro-service;\nhow do you know everything works as expected? You run your comprehensive\ntest suite to verify functional correctness for known scenarios and\nperformance tests before deploying, but does your application really\nwork at the moment or is it just responding with error messages to all\nincoming requests?<\/p>\n<p>I\u2019m part of the team that runs a huge infrastructure for the SAP HANA\ndevelopment. This infrastructure is vital for nearly all development &amp;\ntesting activities of SAP HANA. As this infrastructure is powered by\nmultiple in-house developed applications, we immediately want to know if\nan application starts to fail and we need to be able to quickly diagnose\nwhat caused the failure.<\/p>\n<p>This talk will give you an overview how we monitor our full stack from\nthe 2000 physical machines up to the 10,000 parallel running Python\napplication processes, micro-service instances and batch processing\njobs. It includes a review about the used tools, bad and good examples\nof instrumentation in Python code, the resulting visualisation and an\noutlook on upcoming improvements.<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"DevOps"}},{"@attributes":{"term":"Infrastructure"}},{"@attributes":{"term":"Networks"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}}]},{"title":"Achieving Resilient Code with Integration Tests","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/achieving-resilient-code-with-integration-tests.html","rel":"alternate"}},"published":"2018-10-24T00:00:00+00:00","updated":"2018-10-24T00:00:00+00:00","author":{"name":"Alexandre Figura"},"id":"tag:pyvideo.org,2018-10-24:\/pycon-de-2018\/achieving-resilient-code-with-integration-tests.html","summary":"<h3>Description<\/h3><p>You are maybe like me: I never learned at school how to write tests. My\nteachers gave me at first a broad overview of computer history. Then,\nthey explained me some basic design patterns. And to finish, I often had\nto write more or less basic programs, to validate \u2026<\/p>","content":"<h3>Description<\/h3><p>You are maybe like me: I never learned at school how to write tests. My\nteachers gave me at first a broad overview of computer history. Then,\nthey explained me some basic design patterns. And to finish, I often had\nto write more or less basic programs, to validate and demonstrate my\nskills. Not the kind of code I would be really proud of today: the\nprocrastinator monkey living in my head at this time was more thinking\nabout planning my summer holidays, rather than writing Ninja code!<\/p>\n<p>And to make things worse, my studies focused on network and system\nengineering. Not software architecture. Funny story, because I decided\nto become programmer a couple of years later\u2026<\/p>\n<p>What I realize now is that I don\u2019t have as much time as before to learn.\nAnd in a world driven by business, where time is money, and where\ntradeoffs are the rule, there is rarely enough money to write both shiny\nnew features and a complete test suite.<\/p>\n<p>People who practice Test-Driven Development know how complicated it can\nbe to write proper tests. TDD is often discouraging at first: the\nlearning curve is steep. But this problem also exists in the testing\nworld in general. Because writing good tests is hard, many beginners get\nheadaches trying to reach this goal. How to convince project managers to\nhave more time for writing tests in these conditions\u2026<\/p>\n<p>But \u201cle jeu en vaut la chandelle\u201d as we say in French (&quot;the juice is\nworth the squeeze&quot;). Well tested applications are not only easier to\nmaintain and extend. They also have in general a better API. That\u2019s what\nwe will see in this talk, by focusing on how to write integration tests.\nOur journey will begin with a presentation of different testing\nstrategies. We will then jump to the practical part, using Pytest,\ninterface testing , dependency injections and stubs, amongst many\nothers. And because we want to add nice buzzwords on our resume after\nPyConDE, we will finish this talk by automating the whole with Docker\nCompose.<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}}]},{"title":"Introduction and practical experience about Quantum Computing using the Python libraries from IBM and Google","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/introduction-and-practical-experience-about-quantum-computing-using-the-python-libraries-from-ibm-and-google.html","rel":"alternate"}},"published":"2018-10-24T00:00:00+00:00","updated":"2018-10-24T00:00:00+00:00","author":{"name":"Dr. Andreas Riegg"},"id":"tag:pyvideo.org,2018-10-24:\/pycon-de-2018\/introduction-and-practical-experience-about-quantum-computing-using-the-python-libraries-from-ibm-and-google.html","summary":"<h3>Description<\/h3><p>As publicly announced in early 2018, Daimler AG has started cooperations\nwith IBM and Google on Quantum Computing. When doing concrete\nexperiments with the Quantum Computing cloud based offerings, two\ndifferent Python libraries provided by IBM and Google are used. They are\nnamed QISKIT in the case of IBM \u2026<\/p>","content":"<h3>Description<\/h3><p>As publicly announced in early 2018, Daimler AG has started cooperations\nwith IBM and Google on Quantum Computing. When doing concrete\nexperiments with the Quantum Computing cloud based offerings, two\ndifferent Python libraries provided by IBM and Google are used. They are\nnamed QISKIT in the case of IBM and CIRQ in the case of Google. The\nexperiments with both libraries are handled using appropriate Jupyter\nNotebooks. This talk gives a brief introduction on Quantum Computing,\nspecifically on Quantum Computers based on transmon-based QBits. This is\nfollowed by an introduction of the both Python libraries that are used.\nThen some details about the Jupyter notebooks that are used are given.\nThe talk will finish with some demos and an overview about the most\nimportant practical experiences with both Quantum Computing offerings.<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Jupyter"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}},{"@attributes":{"term":"Science"}}]},{"title":"IoT using Python on Linux: Lessons Learned","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/iot-using-python-on-linux-lessons-learned.html","rel":"alternate"}},"published":"2018-10-24T00:00:00+00:00","updated":"2018-10-24T00:00:00+00:00","author":{"name":"Thomas Keppler"},"id":"tag:pyvideo.org,2018-10-24:\/pycon-de-2018\/iot-using-python-on-linux-lessons-learned.html","summary":"<h3>Description<\/h3><p>In a distributed sensor network system with a Java based Cloud\napplication, mobile apps and a proprietary radio protocol accompanying\nit we developed an IoT appliance that connects the existing radio\ninfrastructure to the Cloud service developed in-house.<\/p>\n<p>Using CPython 3.5 + Debian GNU\/Linux 9 on an ARMv7 \u2026<\/p>","content":"<h3>Description<\/h3><p>In a distributed sensor network system with a Java based Cloud\napplication, mobile apps and a proprietary radio protocol accompanying\nit we developed an IoT appliance that connects the existing radio\ninfrastructure to the Cloud service developed in-house.<\/p>\n<p>Using CPython 3.5 + Debian GNU\/Linux 9 on an ARMv7 platform, we\ndeveloped the following features:<\/p>\n<p>Over the course of this project, we learned a lot about Test Driven\nDevelopment of Python apps in teams and DevOps in the IoT space. We\nwould now like to share our experience developing a Python application\nfor a headless IoT device and the things we would liked to have known\nupfront.<\/p>\n<p>The talk is held both by Matthias Schmidt (Senior Architect at diva-e)\nand Thomas Keppler (Software Developer at diva-e).<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"DevOps"}},{"@attributes":{"term":"Infrastructure"}},{"@attributes":{"term":"Networks"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}}]},{"title":"Pyccel, a Fortran static compiler for scientific High-Performance Computing","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/pyccel-a-fortran-static-compiler-for-scientific-high-performance-computing.html","rel":"alternate"}},"published":"2018-10-24T00:00:00+00:00","updated":"2018-10-24T00:00:00+00:00","author":{"name":"Dr. Ing. Ratnani Ahmed"},"id":"tag:pyvideo.org,2018-10-24:\/pycon-de-2018\/pyccel-a-fortran-static-compiler-for-scientific-high-performance-computing.html","summary":"<h3>Description<\/h3><p><em>Pyccel<\/em> is a new <strong>static compiler<\/strong> for Python that uses <strong>Fortran<\/strong>\nas backend language while enabling High-Performance Computing <strong>HPC<\/strong>\ncapabilities.<\/p>\n<p>Fortran is a computer language for scientific programming that is\ntailored for efficient run-time execution on a wide variety of\nprocessors. Even if the <em>2003<\/em> and <em>2008<\/em> standards added \u2026<\/p>","content":"<h3>Description<\/h3><p><em>Pyccel<\/em> is a new <strong>static compiler<\/strong> for Python that uses <strong>Fortran<\/strong>\nas backend language while enabling High-Performance Computing <strong>HPC<\/strong>\ncapabilities.<\/p>\n<p>Fortran is a computer language for scientific programming that is\ntailored for efficient run-time execution on a wide variety of\nprocessors. Even if the <em>2003<\/em> and <em>2008<\/em> standards added major\nimprovements like <em>OOP, Coarrays, Submodules, do concurrent<\/em> , etc ...\nthey are not covered by all available compilers. Moreover, the Fortran\ndeveloper still suffers from the lack of <strong>meta-programming<\/strong> compared\nto <strong>C++<\/strong> ones. Therefore, it is more and more difficult for applied\nmathematicians and computational physicists to write applications at the\n<em>state of art<\/em> (targeting CPUs, GPUs, MICs) while implementing\ncomplicated algorithms or numerical schemes.<\/p>\n<p>Pyccel can be used in two cases:<\/p>\n<p>In order to achieve the second point, we developed an internal DSL for\n<em>types<\/em> and <em>macros<\/em>. The later is used to map sentences based on\n<em>mpi4py<\/em> , <em>scipy.linalg.blas or lapack<\/em> onto the appropriate calls in\nFortran. Moreover, two parsers, for <em>OpenMP<\/em> and <em>OpenACC<\/em> , were added\ntoo, allowing for explicit parallelism through the use of pragmas.<\/p>\n<p>Last but not least, Pyccel is an extension of <strong>Sympy<\/strong>. Actually, it\nconverts a Python code to symbolic expressions\/trees, from a Full Syntax\nTree ( <em>RedBaron<\/em> ), then annotates the new AST using types or different\nsettings provided by the user.<\/p>\n<p>In this talk, after a brief description of Pyccel, I will show different\napplications including Finite Elements (1d, 2d, 3d), Semi-Lagrangian\nschemes (4d), Kronecker linear solvers, diagnostics for 5D kinetic\nsimulations and Machine Learning for Partial Differential Equations.<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Artificial Intelligence"}},{"@attributes":{"term":"Algorithms"}},{"@attributes":{"term":"Astronomy"}},{"@attributes":{"term":"Parallel Programming"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}},{"@attributes":{"term":"Science"}}]},{"title":"Script, Library, or Executable: You can have it all!","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/script-library-or-executable-you-can-have-it-all.html","rel":"alternate"}},"published":"2018-10-24T00:00:00+00:00","updated":"2018-10-24T00:00:00+00:00","author":{"name":"Luke Lee"},"id":"tag:pyvideo.org,2018-10-24:\/pycon-de-2018\/script-library-or-executable-you-can-have-it-all.html","summary":"<h3>Description<\/h3><p>I will describe one possible way to achieve this using the following\nfeatures:<\/p>\n<p>We want to create a package layout that can support a CLI interface, an\nimportable library, and a GUI all while sharing as much code as\npossible.<\/p>\n<p>Although text and graphical interfaces are very different we \u2026<\/p>","content":"<h3>Description<\/h3><p>I will describe one possible way to achieve this using the following\nfeatures:<\/p>\n<p>We want to create a package layout that can support a CLI interface, an\nimportable library, and a GUI all while sharing as much code as\npossible.<\/p>\n<p>Although text and graphical interfaces are very different we can provide\na consistent API with careful consideration. This way users can easily\nuse our library or either interface without starting all over again.<\/p>\n<p>First we will layout a single-file CLI script using argparse similar to\nthe Unix <tt class=\"docutils literal\">wc<\/tt> tool that takes a text file and outputs the following\ninformation:<\/p>\n<p>We'll discuss the <tt class=\"docutils literal\">__name__ == __main__<\/tt> Python idiom, separating the\nargument parsing from the main function, and why keeping as little as\npossible in <tt class=\"docutils literal\">__main__<\/tt> is better for reusability.<\/p>\n<p>There are several pros and cons to providing others with a single-file\nscript. It's easy to develop and simple to read, but it requires any\nuser to have the correct version of Python installed. It's also\ndifficult for other developers to reuse the code in their own projects\nor deploy to PyPI.<\/p>\n<p>Next we'll take our single-file script and expand it into a basic Python\npackage using a main folder, <strong>init<\/strong>.py, and a cli.py script to expose\nthe same CLI as before.<\/p>\n<p>We'll discuss how to restructure the main and parsing functions from\nstep 1 into an public API defined by the <strong>init<\/strong>.py that exposes the\nsame CLI functionality as a library.<\/p>\n<p>We won't dive into setup.py at all, but there will be links and a brief\ndescription on the various tools to layout a package such as\ncookiecutter and setup.py.<\/p>\n<p>The <a class=\"reference external\" href=\"https:\/\/github.com\/chriskiehl\/Gooey\">Gooey<\/a> project can easily\nexpose a CLI as GUI with a few decorators. We'll discuss briefly how to\nuse Gooey and some of the extra functionality it provides to create more\nadvanced GUIs.<\/p>\n<p>We'll also give a simple mental model for how it maps argparse argument\ntypes to GUI widgets.<\/p>\n<p>Until step 3 all we required of users was a working Python 3\ninstallation. However, adding Gooey requires users to have a working\nPython installer, the Gooey library, and wxPython. Typically GUIs are\nmeant for higher-level users so asking them to install all of this to\nbenefit from our little app is too much.<\/p>\n<p>Instead we'll see how we run PyInstaller on our entry script to package\nup all our dependencies <strong>including<\/strong> Python itself into a simple\nexecutable. We'll briefly discuss the build and dist output folders from\nPyInstaller along with the ability to use it to package all sorts of\ncomplicated Python applications using Qt, Numpy, etc.<\/p>\n<p>End-users in management don't even have to know we used Python!<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}}]},{"title":"Selinon - dynamic distributed task flows","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/selinon-dynamic-distributed-task-flows.html","rel":"alternate"}},"published":"2018-10-24T00:00:00+00:00","updated":"2018-10-24T00:00:00+00:00","author":{"name":"Fridol\u00edn Pokorn\u00fd"},"id":"tag:pyvideo.org,2018-10-24:\/pycon-de-2018\/selinon-dynamic-distributed-task-flows.html","summary":"<h3>Description<\/h3><p>Have you ever tried to define and process complex workflows for data\nprocessing? If the answer is yes, you might have struggled to find the\nright framework for that. You've probably came across Celery - popular\ntask flow management for Python. Celery is great, but it does not\nprovide enough \u2026<\/p>","content":"<h3>Description<\/h3><p>Have you ever tried to define and process complex workflows for data\nprocessing? If the answer is yes, you might have struggled to find the\nright framework for that. You've probably came across Celery - popular\ntask flow management for Python. Celery is great, but it does not\nprovide enough flexibility and dynamic features needed badly in complex\nflows. As we discovered all the limitations, we decided to implement\nSelinon.<\/p>\n<p>Have you ever tried to define and process complex workflows for data\nprocessing? If the answer is yes, you might have struggled to find the\nright framework for that. You've probably came across Celery - popular\ntask flow management for Python. Celery is great, but it does not\nprovide enough flexibility and dynamic features needed badly in complex\nflows. As we discovered all the limitations, we decided to implement\nSelinon.<\/p>\n<p>Selinon enhances Celery task flow management and allows you to create\nand model task flows in your distributed environment that can\ndynamically change behavior based on computed results in your cluster,\nautomatically resolve tasks that need to be executed in case of\nselective task runs, automatic tracing mechanism and many others.<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Big Data"}},{"@attributes":{"term":"Infrastructure"}},{"@attributes":{"term":"Parallel Programming"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}}]},{"title":"Testing in Python - The Big Picture","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-de-2018\/testing-in-python-the-big-picture.html","rel":"alternate"}},"published":"2018-10-24T00:00:00+00:00","updated":"2018-10-24T00:00:00+00:00","author":{"name":"Niklas Meinzer"},"id":"tag:pyvideo.org,2018-10-24:\/pycon-de-2018\/testing-in-python-the-big-picture.html","summary":"<h3>Description<\/h3><p>Any team developing and maintaining software - be it free and open\nsource or commercial - employs one form of software testing or another.\nBut what are the different kinds of tests in our tool boxes? And how are\nthey best used? In this talk we'll take a look around and \u2026<\/p>","content":"<h3>Description<\/h3><p>Any team developing and maintaining software - be it free and open\nsource or commercial - employs one form of software testing or another.\nBut what are the different kinds of tests in our tool boxes? And how are\nthey best used? In this talk we'll take a look around and try to answer\nthese questions.<\/p>\n<p>First, we'll examine the basic concepts of testing: Everyone has\nprobably at least heard about <em>unit tests<\/em> , but are they all you need?\n<em>Performance tests<\/em> can help you find out how well your product performs\nunder load and detect bottle necks early on. <em>Manual testing<\/em> is often\nlooked down upon, since it's not automated, but is it always a bad idea?\nAnd what even <em>is<\/em> <em>mutation testing<\/em>?<\/p>\n<p>We'll also get to know a lot of the amazing testing tools from the\nPython ecosystem. Find out what the best test runner is (Spoiler alert:\nit's pytest). Learn how to make writing test more fun and less work\nusing tools like mock, Faker and factory_boy. Measure the quality of\nyour test suite using coverage.py.<\/p>\n<p>But no tool is the right one for any situation. We'll also talk about\nwhen and how to use each of the tools, while debunking common\nmisconceptions and demonstrating best practices.<\/p>\n","category":[{"@attributes":{"term":"PyCon DE 2018"}},{"@attributes":{"term":"Programming"}},{"@attributes":{"term":"Python"}}]},{"title":"Using Python to create political acts","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-italia-2019\/using-python-to-create-political-acts.html","rel":"alternate"}},"published":"2019-05-03T00:00:00+00:00","updated":"2019-05-03T00:00:00+00:00","author":{"name":"Felipe Cabral"},"id":"tag:pyvideo.org,2019-05-03:\/pycon-italia-2019\/using-python-to-create-political-acts.html","summary":"<h3>Description<\/h3><p>Last Pycon Italia I showed how my team has using Python and Data Science\nto fight corruption - <a class=\"reference external\" href=\"https:\/\/www.youtube.com\/watch?v=JiJ5a4CXRF8&amp;t=8s\">https:\/\/www.youtube.com\/watch?v=JiJ5a4CXRF8&amp;t=8s<\/a>\nThis time I want to show something that can be replicated in Italy right\nafter we finish the presentation.<\/p>\n<p>As &#64;participatory (World Bank \u2026<\/p>","content":"<h3>Description<\/h3><p>Last Pycon Italia I showed how my team has using Python and Data Science\nto fight corruption - <a class=\"reference external\" href=\"https:\/\/www.youtube.com\/watch?v=JiJ5a4CXRF8&amp;t=8s\">https:\/\/www.youtube.com\/watch?v=JiJ5a4CXRF8&amp;t=8s<\/a>\nThis time I want to show something that can be replicated in Italy right\nafter we finish the presentation.<\/p>\n<p>As &#64;participatory (World Bank Internet impact researcher) says, every\ncountry has a good response for public pressure across the internet, and\nthis response is even better within autocratic governments because they\nwant to keep healthy international relations. But how we can keep a\nrecord of all the drafts of legislation that are happening right now?\nHow we can use this information and create an action for the public to\nshow their agreement or not for every change that happens.<\/p>\n<p>With Scrapy, Python, Django, and Open source! Let me show you how has\nbeen done in Brazil and the Pipeline that makes possible to replicated\nhere in Italy!<\/p>\n<p><strong>Feedback form:<\/strong> <a class=\"reference external\" href=\"https:\/\/python.it\/feedback-1702\">https:\/\/python.it\/feedback-1702<\/a><\/p>\n<p>in __on <strong>Friday 3 May<\/strong> at 10:30 <a class=\"reference external\" href=\"\/en\/sprints\/schedule\/pycon10\/\">**See\nschedule**<\/a><\/p>\n","category":[{"@attributes":{"term":"PyCon Italia 2019"}},{"@attributes":{"term":"web-scraping"}},{"@attributes":{"term":"Python"}},{"@attributes":{"term":"programming"}},{"@attributes":{"term":"scrapy"}},{"@attributes":{"term":"api"}},{"@attributes":{"term":"open-data"}},{"@attributes":{"term":"opendata"}},{"@attributes":{"term":"hacking"}}]},{"title":"PyOhio 2011: Procedures, Objects, Reusability: \"httplib\", \"urllib2\", and Their Discontents","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pyohio-2011\/pyohio-2011-procedures-objects-reusability-q.html","rel":"alternate"}},"published":"2011-07-30T00:00:00+00:00","updated":"2011-07-30T00:00:00+00:00","author":{"name":"Brandon Rhodes"},"id":"tag:pyvideo.org,2011-07-30:\/pyohio-2011\/pyohio-2011-procedures-objects-reusability-q.html","summary":"<h3>Description<\/h3><p>Procedures, Objects, Reusability: httplib, urllib2 and their discontents<\/p>\n<p>Presented by Brandon Craig Rhodes<\/p>\n<p>Python supports two major programming paradigms: procedures, and object\norientation. This talk will claim that, when it comes to code re-use,\nthese two paradigms are NOT created equal: because object-oriented\nprogramming encourages the programmer to write \u2026<\/p>","content":"<h3>Description<\/h3><p>Procedures, Objects, Reusability: httplib, urllib2 and their discontents<\/p>\n<p>Presented by Brandon Craig Rhodes<\/p>\n<p>Python supports two major programming paradigms: procedures, and object\norientation. This talk will claim that, when it comes to code re-use,\nthese two paradigms are NOT created equal: because object-oriented\nprogramming encourages the programmer to write methods that consider\neverything else inside of &quot;self&quot; to be fair game, it encourages highly\ncoupled code that proves brittle when extended.<\/p>\n","category":[{"@attributes":{"term":"PyOhio 2011"}},{"@attributes":{"term":"codereuse"}},{"@attributes":{"term":"httplib"}},{"@attributes":{"term":"oop"}},{"@attributes":{"term":"programming"}},{"@attributes":{"term":"pyohio"}},{"@attributes":{"term":"pyohio2011"}},{"@attributes":{"term":"reuse"}},{"@attributes":{"term":"self"}},{"@attributes":{"term":"urllib2"}}]}]}