Skip to content

Instantly share code, notes, and snippets.

@hodgestar
Last active August 29, 2015 14:27
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hodgestar/c3152a2310e183b258bd to your computer and use it in GitHub Desktop.
Save hodgestar/c3152a2310e183b258bd to your computer and use it in GitHub Desktop.
PyConZA 2014 videos for Pyvideo.org
[
{
"category": "pyconza2014",
"state": 2,
"description": "PyConZA 2014 closing remarks.",
"language": "English",
"title": "PyConZA 2014: Closing Remarks",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Simon Cross"
],
"source_url": "https://archive.org/details/pyconza2014-closing",
"summary": "PyConZA 2014 closing remarks."
},
{
"category": "pyconza2014",
"state": 2,
"description": "The IPython Notebook is a browser-based interactive computational environment in which you can combine code execution, text, mathematics, plots and rich media into a single document. Notebooks are text files that can be shared with colleagues, converted to other formats such as HTML, PDF, etc.",
"language": "English",
"title": "IPython Notebook",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Tobie Nortje"
],
"source_url": "https://archive.org/details/pyconza2014-ipython-notebook",
"summary": "The IPython Notebook is a browser-based interactive computational environment in which you can combine code execution, text, mathematics, plots and rich media into a single document. Notebooks are text files that can be shared with colleagues, converted to other formats such as HTML, PDF, etc."
},
{
"category": "pyconza2014",
"state": 2,
"description": "My journey from a user of the awesome cookiecutter, to a core member of an awesome += 1 community. I've learned a lot from the modest and multi-talented @audreyr about leading a community, writing clean cross-platform Python code and putting the B in BFDL. My talk aims to introduce cookiecutter to a wider audience (if you're at a PyCon and you create new projects, you need to use it) and to chart my progress from the outside to the inside of an open source project.",
"language": "English",
"title": "How I Became A Cookie Monster",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Michael Joseph"
],
"source_url": "https://archive.org/details/pyconza2014-cookie-monster",
"summary": "My journey from a user of the awesome cookiecutter, to a core member of an awesome += 1 community. I've learned a lot from the modest and multi-talented @audreyr about leading a community, writing clean cross-platform Python code and putting the B in BFDL. My talk aims to introduce cookiecutter to a wider audience (if you're at a PyCon and you create new projects, you need to use it) and to chart my progress from the outside to the inside of an open source project."
},
{
"category": "pyconza2014",
"state": 2,
"description": "The ipython environment lends itself to teaching and learning: immediate feedback, flexible visualisation, easy access to docstrings and ability to explore modules. With development of the ipython notebook, this is taken a step further, by providing browser-based access to an ipython environment with the ability to share notebooks with others, embed output products and annotate code. I will present some experience of using ipython as a teaching tool in a tertiary teaching environment in Radio Astronomy courses in Windhoek, Nairobi and Cape Town.",
"language": "English",
"title": "IPython as a tool for teaching and learning",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Laura Richter"
],
"source_url": "https://archive.org/details/pyconza2014-ipython-for-teaching-and-learning",
"summary": "The ipython environment lends itself to teaching and learning: immediate feedback, flexible visualisation, easy access to docstrings and ability to explore modules. With development of the ipython notebook, this is taken a step further, by providing browser-based access to an ipython environment with the ability to share notebooks with others, embed output products and annotate code. I will present some experience of using ipython as a teaching tool in a tertiary teaching environment in Radio Astronomy courses in Windhoek, Nairobi and Cape Town."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Computer and computer based activities have pervaded our teaching/learning process as well as research so much so that the 21st century academic activities in science and engineering (S & E) cannot be fully engaged without some level of computation. An important choice of a programming language especially in a developing country is the ease to learn it and its accessibility. Python's unique features and the possibility that any user connected to the internet can download the entire packages into any platform, install it and immediately begin to use it makes it a preferred environment for introducing students and new beginners to elegant and all purpose programming. Therefore in Africa, the Python African Tour project has been launched and I am coordinating its use in computational Science and Engineering (S & E) code-named Python African Computational Science and Engineering Tour (PACSET).",
"language": "English",
"title": "Challenges and Prospects of the Python African Computational Science and Engineering Tour Project",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Godfrey Akpojotor"
],
"source_url": "https://archive.org/details/pyconza2014-python-african-csae-tour",
"summary": "Computer and computer based activities have pervaded our teaching/learning process as well as research so much so that the 21st century academic activities in science and engineering (S & E) cannot be fully engaged without some level of computation. An important choice of a programming language especially in a developing country is the ease to learn it and its accessibility. Python's unique features and the possibility that any user connected to the internet can download the entire packages into any platform, install it and immediately begin to use it makes it a preferred environment for introducing students and new beginners to elegant and all purpose programming. Therefore in Africa, the Python African Tour project has been launched and I am coordinating its use in computational Science and Engineering (S & E) code-named Python African Computational Science and Engineering Tour (PACSET)."
},
{
"category": "pyconza2014",
"state": 2,
"description": "The Southern African Large Telescope is the premier optical astronomical facility in South Africa. Since the start of science operations in September 2011, it has produced a wide range of scientific results from studies of near-Earth asteroids to galaxies at the edge of the Universe. Once observations are obtained at the telescope, they are passed through our science pipeline, which is built on Python. The pipeline rapidly distributes the data, provides science quality reductions, and monitors the performance of the telescope. In addition, developments made for SALT have also contributed to astropy, a python library for astronomy. In this talk, we highlight how these developments are helping to contribute to our understanding of the Universe. We describe how we are using python to provide rapid reductions of the observations, for teaching new students, and for solving new problems.",
"language": "English",
"title": "Enabling Science with the Southern African Large Telescope with Python",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Steve Crawford"
],
"source_url": "https://archive.org/details/pyconza2014-enabling-science-with-salt",
"summary": "The Southern African Large Telescope is the premier optical astronomical facility in South Africa. Since the start of science operations in September 2011, it has produced a wide range of scientific results from studies of near-Earth asteroids to galaxies at the edge of the Universe. Once observations are obtained at the telescope, they are passed through our science pipeline, which is built on Python. The pipeline rapidly distributes the data, provides science quality reductions, and monitors the performance of the telescope. In addition, developments made for SALT have also contributed to astropy, a python library for astronomy. In this talk, we highlight how these developments are helping to contribute to our understanding of the Universe. We describe how we are using python to provide rapid reductions of the observations, for teaching new students, and for solving new problems."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Twisted is an open source framework for writing network based services. It utilises an asynchronous, event driven model which allows the rapid development of custom network protocols. While Twisted makes implementing network services much easier, it comes with its own set of challenges. One of these challenges involves tracking the context of multiple requests. In a traditional web server the thread ID could be used to track a particular request and modify log entries appropriately. However, this does not work in Twisted as it utilises a single thread (generally speaking). We have chosen to tackle this issue, amongst others, by monkey patching some of the Twisted subsystems. Through this talk we will introduce Twisted as a viable option for programming network based services. No previous Twisted knowledge is required, and the concepts introduced will be explained through real world examples of restful controllers implemented in Twisted. This primer will be followed by a discussion on our solution to the context tracking problem as well as some of the other areas in which we have found monkey patching to be beneficial.",
"language": "English",
"title": "Monkeying around with Twisted",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Richard Spiers"
],
"source_url": "https://archive.org/details/pyconza2014-monkeying-with-twisted",
"summary": "Twisted is an open source framework for writing network based services. It utilises an asynchronous, event driven model which allows the rapid development of custom network protocols. While Twisted makes implementing network services much easier, it comes with its own set of challenges. One of these challenges involves tracking the context of multiple requests. In a traditional web server the thread ID could be used to track a particular request and modify log entries appropriately. However, this does not work in Twisted as it utilises a single thread (generally speaking). We have chosen to tackle this issue, amongst others, by monkey patching some of the Twisted subsystems. Through this talk we will introduce Twisted as a viable option for programming network based services. No previous Twisted knowledge is required, and the concepts introduced will be explained through real world examples of restful controllers implemented in Twisted. This primer will be followed by a discussion on our solution to the context tracking problem as well as some of the other areas in which we have found monkey patching to be beneficial."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Lightning Talks are fun, short, five-minute (or less) talks. Ideally each talk should make a single point, often in a fun, quirky or over-the-top way. Slides are optional but often a good image can help get a point across quickly. Lightning Talks will take place immediately before the keynote at the end of the first day of the conference. 1. Launch to Borderline Zombie in a Year by Mike Jones 2. Why you're dumb if you are doing a Python GUI in anything other than Kivy by Richard Larkin 3. PyPy by Adam Jorgensen (slides) 4. Sonic Pi by Simon de Haan 5. The challenge of mathematical formula markup for African feature phones by Jonathan Endersby",
"language": "English",
"title": "Lightning Talks",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Various"
],
"source_url": "https://archive.org/details/pyconza2014-lightning-talks",
"summary": "Lightning Talks are fun, short, five-minute (or less) talks. Ideally each talk should make a single point, often in a fun, quirky or over-the-top way. Slides are optional but often a good image can help get a point across quickly. Lightning Talks will take place immediately before the keynote at the end of the first day of the conference. 1. Launch to Borderline Zombie in a Year by Mike Jones 2. Why you're dumb if you are doing a Python GUI in anything other than Kivy by Richard Larkin 3. PyPy by Adam Jorgensen (slides) 4. Sonic Pi by Simon de Haan 5. The challenge of mathematical formula markup for African feature phones by Jonathan Endersby"
},
{
"category": "pyconza2014",
"state": 2,
"description": "We all know writing documentation is an arduous exercise. We all know how useless and frustrating out-of-date or just plain incorrect documentation is. In this talk I'd like to demonstrate how Python can help make writing documentation, keeping it up-to-date and verifying its validity. It can be surprising what happens when other people discover your little-but-well-documented API. Python has several built-in concepts and standard tools to help making this easier, such as docstrings, help(), Sphinx, Sphinx plugins, Doctests and generating documentation off tests themselves. I'll focus on not only using Sphinx as a tool, but also on how to structure your application/library/tool so as to make writing accurate documentation as simple as possible.",
"language": "English",
"title": "How Python helps writing documentation less painful",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Nickolas Grigoriadis"
],
"source_url": "https://archive.org/details/pyconza2014-python-helps-make-writing-docs-less-painful",
"summary": "We all know writing documentation is an arduous exercise. We all know how useless and frustrating out-of-date or just plain incorrect documentation is. In this talk I'd like to demonstrate how Python can help make writing documentation, keeping it up-to-date and verifying its validity. It can be surprising what happens when other people discover your little-but-well-documented API. Python has several built-in concepts and standard tools to help making this easier, such as docstrings, help(), Sphinx, Sphinx plugins, Doctests and generating documentation off tests themselves. I'll focus on not only using Sphinx as a tool, but also on how to structure your application/library/tool so as to make writing accurate documentation as simple as possible."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Millions of people read news monthly, and news tend to happen in bursts. The ideal infrastructure is able to scale up or down as soon as needed and provide a way to let you proactively manage your servers rather than reactively, which in the media game is a deal breaker. It gets even worse when you're running most of the local publication sites, including some big name players. Focusing on the infrastructure we built, using Salt for management; give insight into the news game and provide examples of challenges our team are facing on a daily basis while servicing users. Expanding also on the workflow put together using various solutions such for logging, notifications with Python acting as the coordinator to keep all these systems in line. Delving into various parts of the system from network monitoring to deploying code. This talk is meant for anyone interested in getting a glimpse of the systems and workflow put in place that allow us to manage the required load and continue developing with the agility to make the needed quick decisions daily.",
"language": "English",
"title": "Hand me the salt while I read my news",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Johann du Toit"
],
"source_url": "https://archive.org/details/pyconza2014-salt-while-read-news",
"summary": "Millions of people read news monthly, and news tend to happen in bursts. The ideal infrastructure is able to scale up or down as soon as needed and provide a way to let you proactively manage your servers rather than reactively, which in the media game is a deal breaker. It gets even worse when you're running most of the local publication sites, including some big name players. Focusing on the infrastructure we built, using Salt for management; give insight into the news game and provide examples of challenges our team are facing on a daily basis while servicing users. Expanding also on the workflow put together using various solutions such for logging, notifications with Python acting as the coordinator to keep all these systems in line. Delving into various parts of the system from network monitoring to deploying code. This talk is meant for anyone interested in getting a glimpse of the systems and workflow put in place that allow us to manage the required load and continue developing with the agility to make the needed quick decisions daily."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Earlier this year Ona was given three weeks to write the software that will tally votes in the Libyan elections and decide who wins and who loses. This is not something we could get wrong. We combined agile development with best practices in testing and QA to build an open source tally system that was well tested, accurate, and easy to use. We will describe a success story of iterative behavior/test-driven-development under extreme conditions. Did the structure of the data change the day before the election? Yes. Did we have the tests to ensure that our implementation changes would not compromise the system's integrity? Yes, and they didn't. This talk provides a narrative to both Software Engineers and Tech/Product Managers describing why best practices are essential for any organization and any project of any size. We will provide the audience with: 1. Real world examples they can implement in their own workflow and organizations, 2. Insight into what succeeded (quick iteration with prioritization) and what was challenging (nothing being static), 3. Anecdotes and coherent arguments they can take back to their organization to advocate for best practices.",
"language": "English",
"title": "Writing Python Code to Decide an Election",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Peter Lubell-Doughtie"
],
"source_url": "https://archive.org/details/pyconza2014-code-to-decide-election",
"summary": "Earlier this year Ona was given three weeks to write the software that will tally votes in the Libyan elections and decide who wins and who loses. This is not something we could get wrong. We combined agile development with best practices in testing and QA to build an open source tally system that was well tested, accurate, and easy to use. We will describe a success story of iterative behavior/test-driven-development under extreme conditions. Did the structure of the data change the day before the election? Yes. Did we have the tests to ensure that our implementation changes would not compromise the system's integrity? Yes, and they didn't. This talk provides a narrative to both Software Engineers and Tech/Product Managers describing why best practices are essential for any organization and any project of any size. We will provide the audience with: 1. Real world examples they can implement in their own workflow and organizations, 2. Insight into what succeeded (quick iteration with prioritization) and what was challenging (nothing being static), 3. Anecdotes and coherent arguments they can take back to their organization to advocate for best practices."
},
{
"category": "pyconza2014",
"state": 2,
"description": "This talk is aimed at people who maintain Python libraries and also users of Debian packaged libraries. (Wherever I say Debian in this abstract, it applies to Ubuntu too). The talk should explain a bit about how and why libraries are packaged in Debian, and how to help maintain (or contribute) packages you care about. We'll cover a bit of history of the Python stacks in Debian and how packaged modules are provided, and who does the work. For context, we'll take a quick detour into Debian packaging in general, and the Debian project's lifecycle. Debian recently gained a new Python packaging tool, pybuild. This finally makes it easy to package the same library for Python 2, 3, and even PyPy. So, we'll have a look at what it does, and some example packaging.",
"language": "English",
"title": "Python in Debian & Ubuntu",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Stefano Rivera"
],
"source_url": "https://archive.org/details/pyconza2014-python-in-debian",
"summary": "This talk is aimed at people who maintain Python libraries and also users of Debian packaged libraries. (Wherever I say Debian in this abstract, it applies to Ubuntu too). The talk should explain a bit about how and why libraries are packaged in Debian, and how to help maintain (or contribute) packages you care about. We'll cover a bit of history of the Python stacks in Debian and how packaged modules are provided, and who does the work. For context, we'll take a quick detour into Debian packaging in general, and the Debian project's lifecycle. Debian recently gained a new Python packaging tool, pybuild. This finally makes it easy to package the same library for Python 2, 3, and even PyPy. So, we'll have a look at what it does, and some example packaging."
},
{
"category": "pyconza2014",
"state": 2,
"description": "With the advent of the low cost Raspberry Pi computer, anyone with a soldering iron and some basic Python skills can take everyday objects and transform them into fully networked, smart devices. In this talk, I will show you how I hacked a Raspberry Pi into my home alarm system, turning my network of IP cameras into motion triggered sensors. I will show you how to build basic input and output circuits and introduce you to the RPi.GPIO Python module. We\u2019ll talk about how you can build a RESTful server on your Raspberry Pi to enable remote access. And finally, more ideas for hacking everyday objects around the home! No prior electronics knowledge required.",
"language": "English",
"title": "Building the Internet of Things with Raspberry Pi",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Neil Broers"
],
"source_url": "https://archive.org/details/pyconza2014-raspberry-pi-internet-of-things",
"summary": "With the advent of the low cost Raspberry Pi computer, anyone with a soldering iron and some basic Python skills can take everyday objects and transform them into fully networked, smart devices. In this talk, I will show you how I hacked a Raspberry Pi into my home alarm system, turning my network of IP cameras into motion triggered sensors. I will show you how to build basic input and output circuits and introduce you to the RPi.GPIO Python module. We\u2019ll talk about how you can build a RESTful server on your Raspberry Pi to enable remote access. And finally, more ideas for hacking everyday objects around the home! No prior electronics knowledge required."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Apache Spark is a fast and general engine for large-scale, distributed data processing. It offers high-level APIs in Java, Scala and Python as well as a rich set of libraries including stream processing, machine learning, and graph analytics. Spark is currently one of the most exciting and fastest-growing Apache open source projects. This talk will give an overview of the Apache Spark project and introduce the basics of PySpark, the Python API for Spark. It will then dive a little deeper into PySpark internals, and finally show some examples and a live demo covering PySpark, Spark's SQL engine, and machine learning with Spark's built-in libraries as well as other Python libraries.",
"language": "English",
"title": "Large Scale Data Processing with Python and Apache Spark",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Nick Pentreath"
],
"source_url": "https://archive.org/details/pyconza2014-large-scale-data-processing",
"summary": "Apache Spark is a fast and general engine for large-scale, distributed data processing. It offers high-level APIs in Java, Scala and Python as well as a rich set of libraries including stream processing, machine learning, and graph analytics. Spark is currently one of the most exciting and fastest-growing Apache open source projects. This talk will give an overview of the Apache Spark project and introduce the basics of PySpark, the Python API for Spark. It will then dive a little deeper into PySpark internals, and finally show some examples and a live demo covering PySpark, Spark's SQL engine, and machine learning with Spark's built-in libraries as well as other Python libraries."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Having pushed Ruby to the limits of what it can accomplish in terms of number crunching and data analysis, we looked around for another solution in the data analysis and modelling space. We quickly found that with packages and tools like Numpy, Pandas, the iPython Notebook and new packages like Blaze, Python looked to be a good language fit. Porting a large existing codebase and accompanying infrastructure from a Ruby to Python ecosystem simply wasn't an option, so we had to do something clever (and fun!). This talk will be about how we managed to leverage the power of Python while retaining our modelling code in Ruby (and opening up opportunity for other languages), by embracing Lisp\u2019s code-is-data philosophy.",
"language": "English",
"title": "Inspired by Lisp to get Ruby to talk Python",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Martin Pretorius"
],
"source_url": "https://archive.org/details/pyconza2014-inspired-by-lisp",
"summary": "Having pushed Ruby to the limits of what it can accomplish in terms of number crunching and data analysis, we looked around for another solution in the data analysis and modelling space. We quickly found that with packages and tools like Numpy, Pandas, the iPython Notebook and new packages like Blaze, Python looked to be a good language fit. Porting a large existing codebase and accompanying infrastructure from a Ruby to Python ecosystem simply wasn't an option, so we had to do something clever (and fun!). This talk will be about how we managed to leverage the power of Python while retaining our modelling code in Ruby (and opening up opportunity for other languages), by embracing Lisp\u2019s code-is-data philosophy."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Regular expressions are a mini-language used for pattern-matching in text. They have been a staple of the computing world for decades: they are implemented in most programming languages, form the core of several utilities, and can be found lurking in the search-and-replace functionality of any sufficiently advanced text editor. Despite their usefulness, regular expressions have developed a reputation for complexity and a steep learning curve. New programmers are often warned to steer clear of them -- which is a pity, because there are some problems for which they are a quick and elegant solution. In this talk I aim to demystify regular expressions for the beginner programmer, and to provide a brief guided tour of Python's re module. I hope to encourage more programmers to get to know this useful tool.",
"language": "English",
"title": "An introduction to regular expressions in Python",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Adrianna Pi\u0144ska"
],
"source_url": "https://archive.org/details/pyconza2014-regular-expressions",
"summary": "Regular expressions are a mini-language used for pattern-matching in text. They have been a staple of the computing world for decades: they are implemented in most programming languages, form the core of several utilities, and can be found lurking in the search-and-replace functionality of any sufficiently advanced text editor. Despite their usefulness, regular expressions have developed a reputation for complexity and a steep learning curve. New programmers are often warned to steer clear of them -- which is a pity, because there are some problems for which they are a quick and elegant solution. In this talk I aim to demystify regular expressions for the beginner programmer, and to provide a brief guided tour of Python's re module. I hope to encourage more programmers to get to know this useful tool."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Any decent textbook on astrophysics starts with a historical prologue running something like this: \"Once upon a time, we believed the earth was flat. We were wrong. Once upon a time, we believed the sun rotated around the earth. We were wrong.\" It's a shame that computer science textbooks don't start the same way: \"Once upon a time, we believed that all computer languages would be statically compiled. We were wrong. Once upon a time, we believed that execution would always be single-threaded, on a single processor, on a single machine. We were wrong.\" The world of technology is marching on toward ever more concurrent architectures, also called \"Cloud\", and various other buzzwords. The transition is at once so mundane as to go unnoticed, and so fundamental as to shake the very foundations of computer science. This talk explores the past, present, and future of the \"Cloud\", and the implications for Python and other open source projects.",
"language": "English",
"title": "The Earth is not Flat (and other Heresies)",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Allison Randal"
],
"source_url": "https://archive.org/details/pyconza2014-earth-is-not-flat",
"summary": "Any decent textbook on astrophysics starts with a historical prologue running something like this: \"Once upon a time, we believed the earth was flat. We were wrong. Once upon a time, we believed the sun rotated around the earth. We were wrong.\" It's a shame that computer science textbooks don't start the same way: \"Once upon a time, we believed that all computer languages would be statically compiled. We were wrong. Once upon a time, we believed that execution would always be single-threaded, on a single processor, on a single machine. We were wrong.\" The world of technology is marching on toward ever more concurrent architectures, also called \"Cloud\", and various other buzzwords. The transition is at once so mundane as to go unnoticed, and so fundamental as to shake the very foundations of computer science. This talk explores the past, present, and future of the \"Cloud\", and the implications for Python and other open source projects."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Automated tests are an important part of any software project, but they're often hard to work with. Good test code should be written with its own set of priorities and is sufficiently different from non-test code that many standard programming practices are unsuitable. I have spent many years writing (and reading) tests of varying quality and have learned quite a lot from the experience. I hope to share some of that experience and help to remove some of the pain usually associated with writing and maintaining tests. This talk will cover some of the practical aspects of writing good tests for real code, including: 1. Properties of a good test case 2. How to manage setup and teardown 3. Testing interactions between components 4. Some tools and techniques to make testing easier 1. Helpers 2. Verified fakes 3. Recording doubles",
"language": "English",
"title": "Practical testing",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Jeremy Thurgood"
],
"source_url": "https://archive.org/details/pyconza2014-practical-testing",
"summary": "Automated tests are an important part of any software project, but they're often hard to work with. Good test code should be written with its own set of priorities and is sufficiently different from non-test code that many standard programming practices are unsuitable. I have spent many years writing (and reading) tests of varying quality and have learned quite a lot from the experience. I hope to share some of that experience and help to remove some of the pain usually associated with writing and maintaining tests. This talk will cover some of the practical aspects of writing good tests for real code, including: 1. Properties of a good test case 2. How to manage setup and teardown 3. Testing interactions between components 4. Some tools and techniques to make testing easier 1. Helpers 2. Verified fakes 3. Recording doubles"
},
{
"category": "pyconza2014",
"state": 2,
"description": "One of the ways that changes enter the Python language is via their prior discussion on the python-ideas mailing list. Many core contributors read and contribute to this list, some do not, and a large number of other interested Python programmers also participate in the discussion. A recurring element of these fascinating discussions is that ideas which seem compelling at first blush, upon deeper discussion reveal the greater wisdom of doing things just the way Python already does. Not always, of course, but often. A wonderful case study of this process is the innocuous seeming built-in 'sum()'. This function has an intricate history, with a great deal of dispute over just what its semantics and performance characteristics can or should be. A particular thread on python-ideas, rich with discussions of use cases and subtle semantics, led both to the creation of the 'statistics' module in Python 3.4 (which contains a \"private\" version of the function, 'statistics._sum()') and to a rejection of performance \"optimizations\" when operating over collections of collections (which may or may not seem obvious to \"sum\" in the first place).",
"language": "English",
"title": "What I learned about Python \u2013 and about Guido's time machine \u2013 by reading the python-ideas mailing list",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"David Mertz"
],
"source_url": "https://archive.org/details/pyconza2014-python-ideas",
"summary": "One of the ways that changes enter the Python language is via their prior discussion on the python-ideas mailing list. Many core contributors read and contribute to this list, some do not, and a large number of other interested Python programmers also participate in the discussion. A recurring element of these fascinating discussions is that ideas which seem compelling at first blush, upon deeper discussion reveal the greater wisdom of doing things just the way Python already does. Not always, of course, but often. A wonderful case study of this process is the innocuous seeming built-in 'sum()'. This function has an intricate history, with a great deal of dispute over just what its semantics and performance characteristics can or should be. A particular thread on python-ideas, rich with discussions of use cases and subtle semantics, led both to the creation of the 'statistics' module in Python 3.4 (which contains a \"private\" version of the function, 'statistics._sum()') and to a rejection of performance \"optimizations\" when operating over collections of collections (which may or may not seem obvious to \"sum\" in the first place)."
},
{
"category": "pyconza2014",
"state": 2,
"description": "Using RapidSMS to power democracy in Libya. As web developers, we often think of the web as being a ubiquitous resource, available to everyone. The truth is that there are still large groups of people who have either limited or no web access. In addition, there are people who have excellent web access, yet still prefer to use simpler tools to connect to others. How can we reach these groups of people? While not perfectly ubiquitous, SMS technology is much more widespread, especially in areas that don't have great internet connectivity. It's also ubiquitous in the sense that people who have excellent internet access still use SMS frequently. The government of Libya recently implemented a voter registration system and chose to use SMS as the implementation technology, largely because of these reasons. In this talk, I will explain how we used RapidSMS, a Django-based SMS framework, to build this groundbreaking voter registration system. We will discuss the basics of the RapidSMS framework, and show concrete examples from our Libyan project. I will mostly describe concepts at a high level, though familiarity with Python code may help you understand the details. If you truly want your tools to reach everyone, adding SMS connectivity will spread the power of your web apps.",
"language": "English",
"title": "Reaching Beyond the Web",
"tags": [
"pyconza",
"pyconza2014",
"python"
],
"speakers": [
"Vinod Kurup"
],
"source_url": "https://archive.org/details/pyconza2014-reaching-beyond-the-web",
"summary": "Using RapidSMS to power democracy in Libya. As web developers, we often think of the web as being a ubiquitous resource, available to everyone. The truth is that there are still large groups of people who have either limited or no web access. In addition, there are people who have excellent web access, yet still prefer to use simpler tools to connect to others. How can we reach these groups of people? While not perfectly ubiquitous, SMS technology is much more widespread, especially in areas that don't have great internet connectivity. It's also ubiquitous in the sense that people who have excellent internet access still use SMS frequently. The government of Libya recently implemented a voter registration system and chose to use SMS as the implementation technology, largely because of these reasons. In this talk, I will explain how we used RapidSMS, a Django-based SMS framework, to build this groundbreaking voter registration system. We will discuss the basics of the RapidSMS framework, and show concrete examples from our Libyan project. I will mostly describe concepts at a high level, though familiarity with Python code may help you understand the details. If you truly want your tools to reach everyone, adding SMS connectivity will spread the power of your web apps."
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment