{"title":"PyVideo.org - pyconza2014","link":[{"@attributes":{"href":"https:\/\/pyvideo.org\/","rel":"alternate"}},{"@attributes":{"href":"https:\/\/pyvideo.org\/feeds\/tag_pyconza2014.atom.xml","rel":"self"}}],"id":"https:\/\/pyvideo.org\/","updated":"2014-10-03T00:00:00+00:00","subtitle":{},"entry":[{"title":"A journey through the eyes of a newbie female developer","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/a-journey-through-the-eyes-of-a-newbie-female-dev.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Ridhwana Khan"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/a-journey-through-the-eyes-of-a-newbie-female-dev.html","summary":"<h3>Summary<\/h3><p>As a developer, my goal is to provide inspiration to capable young\nwomen, to fathers who have daughters, brothers who have sisters, and men\nwho have female colleagues. To convey that I have embraced the\ndevelopment environment, and that we within the tech industry should\nnever shy away from \u2026<\/p>","content":"<h3>Summary<\/h3><p>As a developer, my goal is to provide inspiration to capable young\nwomen, to fathers who have daughters, brothers who have sisters, and men\nwho have female colleagues. To convey that I have embraced the\ndevelopment environment, and that we within the tech industry should\nnever shy away from the opportunity to increase our pool of passionate\ndevelopers. We are proudly South African and most definitely should be\nknown for our diversity.<\/p>\n<h3>Description<\/h3><p>Graduating from a 90% male computer science class, to an initially 100%\nmale software development team, finally allowed me to realise that there\nis a dire lack of women in the computer science field. Entering this\nindustry in a minority invokes initial feelings of the need to\nconstantly prove oneself and one's capabilities \u2013 normally this puts one\nat an immediate disadvantage. However, given the correct circumstances,\nsurrounding environments and attitudes, these adverse feelings can\nquickly be replaced with self-confidence. I was fortunate enough in my\ndaily working environment to have my opinion given the weight that it\ndeserved. However, experience has also taught me that the sailing is not\nalways so smooth within every aspect of the development field. Certain\nenvironments are a lot less welcoming to women because of the strange\nmisconception that they are going against the norms of society. As a\nnewbie, within the development industry, one has to be able to adapt and\nhave an open mind to gain unbounded knowledge and learning experiences.\nThe world of development is a polyglot environment and striving to build\nan ambitious career involves lots of hard work and dedication. I would\nlike to take the audience on a journey to experience the obstacles,\ngrowth and challenges that I\u2019ve faced. I also aim to provide concrete\nsuggestions on increasing female willingness to join the tech industry,\nand improving co-existence in the development environment. As a\ndeveloper, my goal is to provide inspiration to capable young women, to\nfathers who have daughters, brothers who have sisters, and men who have\nfemale colleagues. To convey that I have embraced the development\nenvironment, and that we within the tech industry should never shy away\nfrom the opportunity to increase our pool of passionate developers. We\nare proudly South African and most definitely should be known for our\ndiversity\u2026.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"An introduction to regular expressions in Python","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/an-introduction-to-regular-expressions-in-python.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Adrianna Pi\u0144ska"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/an-introduction-to-regular-expressions-in-python.html","summary":"<h3>Summary<\/h3><p>Regular expressions are a mini-language used for pattern-matching in\ntext. They have been a staple of the computing world for decades: they\nare implemented in most programming languages, form the core of several\nutilities, and can be found lurking in the search-and-replace\nfunctionality of any sufficiently advanced text editor \u2026<\/p>","content":"<h3>Summary<\/h3><p>Regular expressions are a mini-language used for pattern-matching in\ntext. They have been a staple of the computing world for decades: they\nare implemented in most programming languages, form the core of several\nutilities, and can be found lurking in the search-and-replace\nfunctionality of any sufficiently advanced text editor. Despite their\nusefulness, regular expressions have developed a reputation for\ncomplexity and a steep learning curve. New programmers are often warned\nto steer clear of them -- which is a pity, because there are some\nproblems for which they are a quick and elegant solution. In this talk I\naim to demystify regular expressions for the beginner programmer, and to\nprovide a brief guided tour of Python's re module. I hope to encourage\nmore programmers to get to know this useful tool.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Challenges and Prospects of the Python African Computational Science and Engineering Tour Project","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/challenges-and-prospects-of-the-python-african-co.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Godfrey Akpojotor"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/challenges-and-prospects-of-the-python-african-co.html","summary":"<h3>Summary<\/h3><p>Computer and computer based activities have pervaded our\nteaching\/learning process as well as research so much so that the 21st\ncentury academic activities in science and engineering (S &amp; E) cannot be\nfully engaged without some level of computation. An important choice of\na programming language especially in a \u2026<\/p>","content":"<h3>Summary<\/h3><p>Computer and computer based activities have pervaded our\nteaching\/learning process as well as research so much so that the 21st\ncentury academic activities in science and engineering (S &amp; E) cannot be\nfully engaged without some level of computation. An important choice of\na programming language especially in a developing country is the ease to\nlearn it and its accessibility. Python's unique features and the\npossibility that any user connected to the internet can download the\nentire packages into any platform, install it and immediately begin to\nuse it makes it a preferred environment for introducing students and new\nbeginners to elegant and all purpose programming. Therefore in Africa,\nthe Python African Tour project has been launched and I am coordinating\nits use in computational Science and Engineering (S &amp; E) code-named\nPython African Computational Science and Engineering Tour (PACSET).<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"How I Became A Cookie Monster","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/how-i-became-a-cookie-monster.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Michael Joseph"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/how-i-became-a-cookie-monster.html","summary":"<h3>Summary<\/h3><p>My journey from a user of the awesome cookiecutter, to a core member of\nan awesome += 1 community. I've learned a lot from the modest and\nmulti-talented &#64;audreyr about leading a community, writing clean\ncross-platform Python code and putting the B in BFDL. My talk aims to\nintroduce cookiecutter \u2026<\/p>","content":"<h3>Summary<\/h3><p>My journey from a user of the awesome cookiecutter, to a core member of\nan awesome += 1 community. I've learned a lot from the modest and\nmulti-talented &#64;audreyr about leading a community, writing clean\ncross-platform Python code and putting the B in BFDL. My talk aims to\nintroduce cookiecutter to a wider audience (if you're at a PyCon and you\ncreate new projects, you need to use it) and to chart my progress from\nthe outside to the inside of an open source project.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"How Python helps writing documentation less painful","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/how-python-helps-writing-documentation-less-painf.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Nickolas Grigoriadis"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/how-python-helps-writing-documentation-less-painf.html","summary":"<h3>Summary<\/h3><p>We all know writing documentation is an arduous exercise. We all know\nhow useless and frustrating out-of-date or just plain incorrect\ndocumentation is. In this talk I'd like to demonstrate how Python can\nhelp make writing documentation, keeping it up-to-date and verifying its\nvalidity. It can be surprising what \u2026<\/p>","content":"<h3>Summary<\/h3><p>We all know writing documentation is an arduous exercise. We all know\nhow useless and frustrating out-of-date or just plain incorrect\ndocumentation is. In this talk I'd like to demonstrate how Python can\nhelp make writing documentation, keeping it up-to-date and verifying its\nvalidity. It can be surprising what happens when other people discover\nyour little-but-well-documented API. Python has several built-in\nconcepts and standard tools to help making this easier, such as\ndocstrings, help(), Sphinx, Sphinx plugins, Doctests and generating\ndocumentation off tests themselves. I'll focus on not only using Sphinx\nas a tool, but also on how to structure your application\/library\/tool so\nas to make writing accurate documentation as simple as possible.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Inspired by Lisp to get Ruby to talk Python","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/inspired-by-lisp-to-get-ruby-to-talk-python.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Martin Pretorius"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/inspired-by-lisp-to-get-ruby-to-talk-python.html","summary":"<h3>Summary<\/h3><p>Having pushed Ruby to the limits of what it can accomplish in terms of\nnumber crunching and data analysis, we looked around for another\nsolution in the data analysis and modelling space. We quickly found that\nwith packages and tools like Numpy, Pandas, the iPython Notebook and new\npackages \u2026<\/p>","content":"<h3>Summary<\/h3><p>Having pushed Ruby to the limits of what it can accomplish in terms of\nnumber crunching and data analysis, we looked around for another\nsolution in the data analysis and modelling space. We quickly found that\nwith packages and tools like Numpy, Pandas, the iPython Notebook and new\npackages like Blaze, Python looked to be a good language fit. Porting a\nlarge existing codebase and accompanying infrastructure from a Ruby to\nPython ecosystem simply wasn't an option, so we had to do something\nclever (and fun!). This talk will be about how we managed to leverage\nthe power of Python while retaining our modelling code in Ruby (and\nopening up opportunity for other languages), by embracing Lisp\u2019s\ncode-is-data philosophy.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Monkeying around with Twisted","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/monkeying-around-with-twisted.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Richard Spiers"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/monkeying-around-with-twisted.html","summary":"<h3>Summary<\/h3><p>Twisted is an open source framework for writing network based services.\nIt utilises an asynchronous, event driven model which allows the rapid\ndevelopment of custom network protocols. While Twisted makes\nimplementing network services much easier, it comes with its own set of\nchallenges. One of these challenges involves tracking \u2026<\/p>","content":"<h3>Summary<\/h3><p>Twisted is an open source framework for writing network based services.\nIt utilises an asynchronous, event driven model which allows the rapid\ndevelopment of custom network protocols. While Twisted makes\nimplementing network services much easier, it comes with its own set of\nchallenges. One of these challenges involves tracking the context of\nmultiple requests. In a traditional web server the thread ID could be\nused to track a particular request and modify log entries appropriately.\nHowever, this does not work in Twisted as it utilises a single thread\n(generally speaking). We have chosen to tackle this issue, amongst\nothers, by monkey patching some of the Twisted subsystems. Through this\ntalk we will introduce Twisted as a viable option for programming\nnetwork based services. No previous Twisted knowledge is required, and\nthe concepts introduced will be explained through real world examples of\nrestful controllers implemented in Twisted. This primer will be followed\nby a discussion on our solution to the context tracking problem as well\nas some of the other areas in which we have found monkey patching to be\nbeneficial.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Practical testing","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/practical-testing.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Jeremy Thurgood"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/practical-testing.html","summary":"<h3>Summary<\/h3><p>Automated tests are an important part of any software project, but\nthey're often hard to work with. Good test code should be written with\nits own set of priorities and is sufficiently different from non-test\ncode that many standard programming practices are unsuitable. I have\nspent many years writing \u2026<\/p>","content":"<h3>Summary<\/h3><p>Automated tests are an important part of any software project, but\nthey're often hard to work with. Good test code should be written with\nits own set of priorities and is sufficiently different from non-test\ncode that many standard programming practices are unsuitable. I have\nspent many years writing (and reading) tests of varying quality and have\nlearned quite a lot from the experience. I hope to share some of that\nexperience and help to remove some of the pain usually associated with\nwriting and maintaining tests. This talk will cover some of the\npractical aspects of writing good tests for real code, including: 1.\nProperties of a good test case 2. How to manage setup and teardown 3.\nTesting interactions between components 4. Some tools and techniques to\nmake testing easier 1. Helpers 2. Verified fakes 3. Recording doubles<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"PyConZA 2014: Closing Remarks","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/pyconza-2014-closing-remarks.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Simon Cross"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/pyconza-2014-closing-remarks.html","content":"<h3>Summary<\/h3><p>PyConZA 2014 closing remarks.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Python at the Observatory - Old telescopes, new instruments","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/python-at-the-observatory-old-telescopes-new-i.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Carel van Gend"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/python-at-the-observatory-old-telescopes-new-i.html","summary":"<h3>Summary<\/h3><p>We'd like to show how we're using new instruments and the nimbleness of\nPython to bring seventy-year-old telescopes into the 21st century. Our\nlong-term goal is to have the telescopes and associated instruments be\nremotely operable, easy to use, and robust enough that valuable data is\nreliably captured and \u2026<\/p>","content":"<h3>Summary<\/h3><p>We'd like to show how we're using new instruments and the nimbleness of\nPython to bring seventy-year-old telescopes into the 21st century. Our\nlong-term goal is to have the telescopes and associated instruments be\nremotely operable, easy to use, and robust enough that valuable data is\nreliably captured and stored.<\/p>\n<h3>Description<\/h3><p>Astronomy in South Africa has a long and illustrious history. In\naddition to the premier, 10-m Southern Africa Large Telescope (SALT) ,\nthere are a number of small- and medium-sized telescopes hosted at the\nSouth African Astronomical Observatory that still produce a great deal\nof valuable data. We'd like to show how we're using new instruments and\nthe nimbleness of Python to bring seventy-year-old telescopes into the\n21st century. Our long-term goal is to have the telescopes and\nassociated instruments be remotely operable, easy to use, and robust\nenough that valuable data is reliably captured and stored. In addition,\nwe want to make it as easy as possible to update and improve the\nsoftware which controls the instruments. We have developed a distributed\nframework to control the instruments. Drivers for individual components\nmay be written in whichever language is most suitable (we've used C, C++\nand Python where appropriate). These drivers communicate over a TCP\/IP\nsocket with a Python controller process, and on top of that is a\nPython\/Flask driven web interface. We plan to adapt the framework to new\ninstruments (such as a wide-field camera for the 1.9- and 1-m\ntelescopes), under-development instruments (such as an upgrade to the\nCassegrain spectrograph on the 1.9-m telescope), and retrofit to older\ninstruments as feasible. As a demonstration of the new framework, we\nwill present our work of migrating the control software for the\nSutherland High-speed Optical Camera (SHOC) from being a disparate\ncollection of proprietary, Windows-based software, to a unified, open,\nweb accessible system. SHOC is a high-speed, accurately-timed, imaging\ninstrument that can be mounted on the 1.9-, 1-, and 0.75-m telescopes in\nSutherland, control of which includes that for a camera, a global\npositioning system (GPS), and a filter wheel.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Python in Debian & Ubuntu","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/python-in-debian-ubuntu.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Stefano Rivera"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/python-in-debian-ubuntu.html","summary":"<h3>Summary<\/h3><p>This talk is aimed at people who maintain Python libraries and also\nusers of Debian packaged libraries. (Wherever I say Debian in this\nabstract, it applies to Ubuntu too). The talk should explain a bit about\nhow and why libraries are packaged in Debian, and how to help maintain \u2026<\/p>","content":"<h3>Summary<\/h3><p>This talk is aimed at people who maintain Python libraries and also\nusers of Debian packaged libraries. (Wherever I say Debian in this\nabstract, it applies to Ubuntu too). The talk should explain a bit about\nhow and why libraries are packaged in Debian, and how to help maintain\n(or contribute) packages you care about. We'll cover a bit of history of\nthe Python stacks in Debian and how packaged modules are provided, and\nwho does the work. For context, we'll take a quick detour into Debian\npackaging in general, and the Debian project's lifecycle. Debian\nrecently gained a new Python packaging tool, pybuild. This finally makes\nit easy to package the same library for Python 2, 3, and even PyPy. So,\nwe'll have a look at what it does, and some example packaging.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Python in the context of a Start-up: The Good, The Bad and the Ugly","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/python-in-the-context-of-a-start-up-the-good-th.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Adam Jorgensen"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/python-in-the-context-of-a-start-up-the-good-th.html","summary":"<h3>Summary<\/h3><p>Python is great language for developing software that works well in a\nshort time-span. The ability to produce code quickly that is of a\nreasonable quality is very important in a work environment where\nproductivity is of extreme importance. It would thus seem to be very\nwell suited for \u2026<\/p>","content":"<h3>Summary<\/h3><p>Python is great language for developing software that works well in a\nshort time-span. The ability to produce code quickly that is of a\nreasonable quality is very important in a work environment where\nproductivity is of extreme importance. It would thus seem to be very\nwell suited for usage in a start-up environment.<\/p>\n<h3>Description<\/h3><p>Python is great language for developing software that works well in a\nshort time-span. The ability to produce code quickly that is of a\nreasonable quality is very important in a work environment where\nproductivity is of extreme importance. It would thus seem to be very\nwell suited for usage in a start-up environment. Is this really the case\nthough? Here at Springlab we've been using Python to develop our\nproduct, an online platform for locating and booking with medical\npractitioners, since day one. Along the way we've written a lot of code,\nused a variety of frameworks, libraries and toolkits while experimenting\nwith various approaches to solving the problems we've encountered. Of\nkey importance to us has been balancing the need to produce code that\nworks now against the desire to develop something that we won't become a\nserious time-sink in the future. From our position it is thus possible\nto go into a bit of detail about the pros, cons and extremely sharp\ncorners encountered using Python in the context of a small start-up\nenvironment where time is of the essence and there is a lot of pressure\nto produce a quality product as quickly AND as well as possibly. My aim\nwith this talk is to give the listener an idea of what kind of\nexperience to expect when using Python in an environment like ours and\nalso to hopefully share some tips that will help others avoid some of\nthe problems we've run into. I hope to cover issues on the subjects of\nback-end development involving Django + Tastypie, front-end development\nwith Flask, client-side development involving JavaScript as well as\ntouching on the subject of integrating with other tools and pieces of\nsoftware.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Reaching Beyond the Web","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/reaching-beyond-the-web.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"Vinod Kurup"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/reaching-beyond-the-web.html","summary":"<h3>Summary<\/h3><p>The government of Libya recently implemented a voter registration system\nand chose to use SMS as the implementation technology, In this talk, I\nwill explain how we used RapidSMS, a Django-based SMS framework, to\nbuild this groundbreaking voter registration system.<\/p>\n<h3>Description<\/h3><p>Using RapidSMS to power democracy in Libya. As \u2026<\/p>","content":"<h3>Summary<\/h3><p>The government of Libya recently implemented a voter registration system\nand chose to use SMS as the implementation technology, In this talk, I\nwill explain how we used RapidSMS, a Django-based SMS framework, to\nbuild this groundbreaking voter registration system.<\/p>\n<h3>Description<\/h3><p>Using RapidSMS to power democracy in Libya. As web developers, we often\nthink of the web as being a ubiquitous resource, available to everyone.\nThe truth is that there are still large groups of people who have either\nlimited or no web access. In addition, there are people who have\nexcellent web access, yet still prefer to use simpler tools to connect\nto others. How can we reach these groups of people? While not perfectly\nubiquitous, SMS technology is much more widespread, especially in areas\nthat don't have great internet connectivity. It's also ubiquitous in the\nsense that people who have excellent internet access still use SMS\nfrequently. The government of Libya recently implemented a voter\nregistration system and chose to use SMS as the implementation\ntechnology, largely because of these reasons. In this talk, I will\nexplain how we used RapidSMS, a Django-based SMS framework, to build\nthis groundbreaking voter registration system. We will discuss the\nbasics of the RapidSMS framework, and show concrete examples from our\nLibyan project. I will mostly describe concepts at a high level, though\nfamiliarity with Python code may help you understand the details. If you\ntruly want your tools to reach everyone, adding SMS connectivity will\nspread the power of your web apps.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"What I learned about Python \u2013 and about Guido's time machine \u2013 by reading the python-ideas mailing list","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/what-i-learned-about-python-and-about-guidos-t.html","rel":"alternate"}},"published":"2014-10-03T00:00:00+00:00","updated":"2014-10-03T00:00:00+00:00","author":{"name":"David Mertz"},"id":"tag:pyvideo.org,2014-10-03:\/pycon-za-2014\/what-i-learned-about-python-and-about-guidos-t.html","summary":"<h3>Summary<\/h3><p>One of the ways that changes enter the Python language is via their\nprior discussion on the python-ideas mailing list. Many core\ncontributors read and contribute to this list, some do not, and a large\nnumber of other interested Python programmers also participate in the\ndiscussion. A recurring element \u2026<\/p>","content":"<h3>Summary<\/h3><p>One of the ways that changes enter the Python language is via their\nprior discussion on the python-ideas mailing list. Many core\ncontributors read and contribute to this list, some do not, and a large\nnumber of other interested Python programmers also participate in the\ndiscussion. A recurring element of these fascinating discussions is that\nideas which seem compelling at first blush, upon deeper discussion\nreveal the greater wisdom of doing things just the way Python already\ndoes. Not always, of course, but often. A wonderful case study of this\nprocess is the innocuous seeming built-in 'sum()'. This function has an\nintricate history, with a great deal of dispute over just what its\nsemantics and performance characteristics can or should be. A particular\nthread on python-ideas, rich with discussions of use cases and subtle\nsemantics, led both to the creation of the 'statistics' module in Python\n3.4 (which contains a &quot;private&quot; version of the function,\n'statistics._sum()') and to a rejection of performance &quot;optimizations&quot;\nwhen operating over collections of collections (which may or may not\nseem obvious to &quot;sum&quot; in the first place).<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Building the Internet of Things with Raspberry Pi","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/building-the-internet-of-things-with-raspberry-pi.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Neil Broers"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/building-the-internet-of-things-with-raspberry-pi.html","summary":"<h3>Summary<\/h3><p>With the advent of the low cost Raspberry Pi computer, anyone with a\nsoldering iron and some basic Python skills can take everyday objects\nand transform them into fully networked, smart devices. In this talk, I\nwill show you how I hacked a Raspberry Pi into my home alarm \u2026<\/p>","content":"<h3>Summary<\/h3><p>With the advent of the low cost Raspberry Pi computer, anyone with a\nsoldering iron and some basic Python skills can take everyday objects\nand transform them into fully networked, smart devices. In this talk, I\nwill show you how I hacked a Raspberry Pi into my home alarm system,\nturning my network of IP cameras into motion triggered sensors. I will\nshow you how to build basic input and output circuits and introduce you\nto the RPi.GPIO Python module. We\u2019ll talk about how you can build a\nRESTful server on your Raspberry Pi to enable remote access. And\nfinally, more ideas for hacking everyday objects around the home! No\nprior electronics knowledge required.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Enabling Science with the Southern African Large Telescope with Python","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/enabling-science-with-the-southern-african-large.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Steve Crawford"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/enabling-science-with-the-southern-african-large.html","summary":"<h3>Summary<\/h3><p>The Southern African Large Telescope is the premier optical astronomical\nfacility in South Africa. Since the start of science operations in\nSeptember 2011, it has produced a wide range of scientific results from\nstudies of near-Earth asteroids to galaxies at the edge of the Universe.\nOnce observations are obtained \u2026<\/p>","content":"<h3>Summary<\/h3><p>The Southern African Large Telescope is the premier optical astronomical\nfacility in South Africa. Since the start of science operations in\nSeptember 2011, it has produced a wide range of scientific results from\nstudies of near-Earth asteroids to galaxies at the edge of the Universe.\nOnce observations are obtained at the telescope, they are passed through\nour science pipeline, which is built on Python. The pipeline rapidly\ndistributes the data, provides science quality reductions, and monitors\nthe performance of the telescope. In addition, developments made for\nSALT have also contributed to astropy, a python library for astronomy.\nIn this talk, we highlight how these developments are helping to\ncontribute to our understanding of the Universe. We describe how we are\nusing python to provide rapid reductions of the observations, for\nteaching new students, and for solving new problems.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Hand me the salt while I read my news","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/hand-me-the-salt-while-i-read-my-news.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Johann du Toit"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/hand-me-the-salt-while-i-read-my-news.html","summary":"<h3>Summary<\/h3><p>Millions of people read news monthly, and news tend to happen in bursts.\nThe ideal infrastructure is able to scale up or down as soon as needed\nand provide a way to let you proactively manage your servers rather than\nreactively, which in the media game is a deal \u2026<\/p>","content":"<h3>Summary<\/h3><p>Millions of people read news monthly, and news tend to happen in bursts.\nThe ideal infrastructure is able to scale up or down as soon as needed\nand provide a way to let you proactively manage your servers rather than\nreactively, which in the media game is a deal breaker. It gets even\nworse when you're running most of the local publication sites, including\nsome big name players.<\/p>\n<h3>Description<\/h3><p>Focusing on the infrastructure we built, using Salt for management; give\ninsight into the news game and provide examples of challenges our team\nare facing on a daily basis while servicing users. Expanding also on the\nworkflow put together using various solutions such for logging,\nnotifications with Python acting as the coordinator to keep all these\nsystems in line. Delving into various parts of the system from network\nmonitoring to deploying code. This talk is meant for anyone interested\nin getting a glimpse of the systems and workflow put in place that allow\nus to manage the required load and continue developing with the agility\nto make the needed quick decisions daily.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"IPython as a tool for teaching and learning","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/ipython-as-a-tool-for-teaching-and-learning.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Laura Richter"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/ipython-as-a-tool-for-teaching-and-learning.html","summary":"<h3>Summary<\/h3><p>The ipython environment lends itself to teaching and learning: immediate\nfeedback, flexible visualisation, easy access to docstrings and ability\nto explore modules. With development of the ipython notebook, this is\ntaken a step further, by providing browser-based access to an ipython\nenvironment with the ability to share notebooks with \u2026<\/p>","content":"<h3>Summary<\/h3><p>The ipython environment lends itself to teaching and learning: immediate\nfeedback, flexible visualisation, easy access to docstrings and ability\nto explore modules. With development of the ipython notebook, this is\ntaken a step further, by providing browser-based access to an ipython\nenvironment with the ability to share notebooks with others, embed\noutput products and annotate code. I will present some experience of\nusing ipython as a teaching tool in a tertiary teaching environment in\nRadio Astronomy courses in Windhoek, Nairobi and Cape Town.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"IPython Notebook","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/ipython-notebook.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Tobie Nortje"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/ipython-notebook.html","content":"<h3>Summary<\/h3><p>The IPython Notebook is a browser-based interactive computational\nenvironment in which you can combine code execution, text, mathematics,\nplots and rich media into a single document. Notebooks are text files\nthat can be shared with colleagues, converted to other formats such as\nHTML, PDF, etc.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Large Scale Data Processing with Python and Apache Spark","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/large-scale-data-processing-with-python-and-apach.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Nick Pentreath"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/large-scale-data-processing-with-python-and-apach.html","summary":"<h3>Summary<\/h3><p>Apache Spark is a fast and general engine for large-scale, distributed\ndata processing. It offers high-level APIs in Java, Scala and Python as\nwell as a rich set of libraries including stream processing, machine\nlearning, and graph analytics. Spark is currently one of the most\nexciting and fastest-growing Apache \u2026<\/p>","content":"<h3>Summary<\/h3><p>Apache Spark is a fast and general engine for large-scale, distributed\ndata processing. It offers high-level APIs in Java, Scala and Python as\nwell as a rich set of libraries including stream processing, machine\nlearning, and graph analytics. Spark is currently one of the most\nexciting and fastest-growing Apache open source projects. This talk will\ngive an overview of the Apache Spark project and introduce the basics of\nPySpark, the Python API for Spark. It will then dive a little deeper\ninto PySpark internals, and finally show some examples and a live demo\ncovering PySpark, Spark's SQL engine, and machine learning with Spark's\nbuilt-in libraries as well as other Python libraries.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Lightning Talks","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/lightning-talks-17.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Mike Jones"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/lightning-talks-17.html","summary":"<h3>Summary<\/h3><p>Lightning Talks are fun, short, five-minute (or less) talks. Ideally\neach talk should make a single point, often in a fun, quirky or\nover-the-top way.<\/p>\n<h3>Description<\/h3><ol class=\"arabic simple\">\n<li>Launch to Borderline Zombie in a Year by Mike Jones<\/li>\n<li>Why you're dumb if you are doing a Python GUI in anything other \u2026<\/li><\/ol>","content":"<h3>Summary<\/h3><p>Lightning Talks are fun, short, five-minute (or less) talks. Ideally\neach talk should make a single point, often in a fun, quirky or\nover-the-top way.<\/p>\n<h3>Description<\/h3><ol class=\"arabic simple\">\n<li>Launch to Borderline Zombie in a Year by Mike Jones<\/li>\n<li>Why you're dumb if you are doing a Python GUI in anything other than\nKivy by Richard Larkin<\/li>\n<li>PyPy by Adam Jorgensen (slides)<\/li>\n<li>Sonic Pi by Simon de Haan<\/li>\n<li>The challenge of mathematical formula markup for African feature\nphones by Jonathan Endersby<\/li>\n<\/ol>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"lightning talks"}},{"@attributes":{"term":"kivy"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"The Earth is not Flat (and other Heresies)","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/the-earth-is-not-flat-and-other-heresies.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Allison Randal"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/the-earth-is-not-flat-and-other-heresies.html","summary":"<h3>Summary<\/h3><p>Any decent textbook on astrophysics starts with a historical prologue\nrunning something like this: &quot;Once upon a time, we believed the earth\nwas flat. We were wrong. Once upon a time, we believed the sun rotated\naround the earth. We were wrong.&quot; It's a shame that computer science\ntextbooks \u2026<\/p>","content":"<h3>Summary<\/h3><p>Any decent textbook on astrophysics starts with a historical prologue\nrunning something like this: &quot;Once upon a time, we believed the earth\nwas flat. We were wrong. Once upon a time, we believed the sun rotated\naround the earth. We were wrong.&quot; It's a shame that computer science\ntextbooks don't start the same way: &quot;Once upon a time, we believed that\nall computer languages would be statically compiled. We were wrong. Once\nupon a time, we believed that execution would always be single-threaded,\non a single processor, on a single machine. We were wrong.&quot; The world of\ntechnology is marching on toward ever more concurrent architectures,\nalso called &quot;Cloud&quot;, and various other buzzwords. The transition is at\nonce so mundane as to go unnoticed, and so fundamental as to shake the\nvery foundations of computer science. This talk explores the past,\npresent, and future of the &quot;Cloud&quot;, and the implications for Python and\nother open source projects.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"The elephant in the web application","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/the-elephant-in-the-web-application.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Iwan Vosloo"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/the-elephant-in-the-web-application.html","summary":"<h3>Summary<\/h3><p>Developing a web application today is an unnecessarily cumbersome and\nerror prone task. It is time for web frameworks to evolve and become\nmore like graphical user interface (GUI) frameworks<\/p>\n<h3>Description<\/h3><p>In this talk, I'd like to convince you that developing a web application\ntoday is an unnecessarily cumbersome \u2026<\/p>","content":"<h3>Summary<\/h3><p>Developing a web application today is an unnecessarily cumbersome and\nerror prone task. It is time for web frameworks to evolve and become\nmore like graphical user interface (GUI) frameworks<\/p>\n<h3>Description<\/h3><p>In this talk, I'd like to convince you that developing a web application\ntoday is an unnecessarily cumbersome and error prone task. It is time\nfor web frameworks to evolve and become more like graphical user\ninterface (GUI) frameworks: these provide abstractions called &quot;windows&quot;\nor &quot;widgets&quot; that let a programmer write an application using terms that\ndescribe what is being built, with less (if any) focus on the underlying\ntechnologies needed to accomplish drawing these items on a screen. A web\napplication programmer (in contrast to a GUI programmer) needs to know\nquite a few different technologies and a fair bit of effort is required\nto orchestrate these tools into achieving an end result: a template\nlanguage, HTML, HTTP, CSS, JavaScript, etc. Reusing something\nsubstantial is especially difficult, which means in a sizeable web\napplication the same dragons need to be fought several times over. If a\nprogrammer has to constantly deal with all this subject matter, it takes\nfocus away from what actually needs to be built: the application itself.\nWhy are we putting up with having to know HTML and similar low-level\ntechnologies? Is it an elephant in the room? Something we pretend not to\nsee, yet we accept the burden of having to work around it? I will show\nyou what it takes to build a web application; what repetitive tasks\nthere are and what a programmer needs to be aware of. I hope to convince\nyou that there's a better way, and that what was perhaps an idealistic\ndream a decade ago can now be done - not only by our own fully-featured\nPython web framework (Reahl), but also by a small number of others\nbeyond the realm of Python.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Using Python in Blender","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/using-python-in-blender.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Albert Nel"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/using-python-in-blender.html","summary":"<h3>Summary<\/h3><p>Python is such a beautiful language, and is used as a scripting language\nin many open source graphical applications. By using the power of Python\nwithin Blender, we can easily automate so many things, and make long\ntedious tasks seem like child's play.<\/p>\n<h3>Description<\/h3><p>Python is such a beautiful \u2026<\/p>","content":"<h3>Summary<\/h3><p>Python is such a beautiful language, and is used as a scripting language\nin many open source graphical applications. By using the power of Python\nwithin Blender, we can easily automate so many things, and make long\ntedious tasks seem like child's play.<\/p>\n<h3>Description<\/h3><p>Python is such a beautiful language, and is used as a scripting language\nin many open source graphical applications. By using the power of Python\nwithin Blender, we can easily automate so many things, and make long\ntedious tasks seem like child's play. In this talk I wanted to share a\nfew real world examples where I used Python to do something that would\notherwise be impossible (Or just take too long!) At first, we will take\na quick look at the API, and how to get started. Here we will look at\nwhere you can find what you are looking for, and how it all comes\ntogether. This wont be too in-depth, but just enough to give you a\ntaste. We will play with the console a bit and see how to wield the\nmighty sword that is Python. And then, we will look at some scripts.\nThese are a few of the scripts that I wrote while I was working on some\nrandom things. This will cover some things such as: Adding new mesh\nobjects, updating object coordinates, changing special properties (such\nas modifers), and setting keyframes all from the console. This talk is\nfor anyone interested in seeing just how to leverage the power of Python\nin Blender. You need not have any experience with Blender since this\nwill be mostly focussed on the Python side of things, so I wont be\ncovering parts of Blender such as rendering, modeling etc.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]},{"title":"Writing Python Code to Decide an Election","link":{"@attributes":{"href":"https:\/\/pyvideo.org\/pycon-za-2014\/writing-python-code-to-decide-an-election.html","rel":"alternate"}},"published":"2014-10-02T00:00:00+00:00","updated":"2014-10-02T00:00:00+00:00","author":{"name":"Peter Lubell-Doughtie"},"id":"tag:pyvideo.org,2014-10-02:\/pycon-za-2014\/writing-python-code-to-decide-an-election.html","summary":"<h3>Summary<\/h3><p>Earlier this year Ona was given three weeks to write the software that\nwill tally votes in the Libyan elections and decide who wins and who\nloses. This is not something we could get wrong.<\/p>\n<h3>Description<\/h3><p>This is not something we could get wrong. We combined agile development\nwith \u2026<\/p>","content":"<h3>Summary<\/h3><p>Earlier this year Ona was given three weeks to write the software that\nwill tally votes in the Libyan elections and decide who wins and who\nloses. This is not something we could get wrong.<\/p>\n<h3>Description<\/h3><p>This is not something we could get wrong. We combined agile development\nwith best practices in testing and QA to build an open source tally\nsystem that was well tested, accurate, and easy to use. We will describe\na success story of iterative behavior\/test-driven-development under\nextreme conditions. Did the structure of the data change the day before\nthe election? Yes. Did we have the tests to ensure that our\nimplementation changes would not compromise the system's integrity? Yes,\nand they didn't. This talk provides a narrative to both Software\nEngineers and Tech\/Product Managers describing why best practices are\nessential for any organization and any project of any size. We will\nprovide the audience with: 1. Real world examples they can implement in\ntheir own workflow and organizations, 2. Insight into what succeeded\n(quick iteration with prioritization) and what was challenging (nothing\nbeing static), 3. Anecdotes and coherent arguments they can take back to\ntheir organization to advocate for best practices.<\/p>\n","category":[{"@attributes":{"term":"PyCon ZA 2014"}},{"@attributes":{"term":"pyconza"}},{"@attributes":{"term":"pyconza2014"}}]}]}