PyCon US 2014
PyCon is the largest annual gathering for the community using and developing the open-source Python programming language. It is produced and underwritten by the Python Software Foundation, the 501(c)(3) nonprofit organization dedicated to advancing and promoting Python. Through PyCon, the PSF advances its mission of growing the international community of Python programmers.
Because PyCon is backed by the non-profit PSF, we keep registration costs much lower than comparable technology conferences so that PyCon remains accessible to the widest group possible. The PSF also pays for the ongoing development of the software that runs PyCon and makes it available under a liberal open source license.
PyCon is a diverse conference dedicated to providing an enjoyable experience to everyone. Help us do this by following our code of conduct.
- April 9, 2014
- Number of videos:
Games, application with rich graphic for mobile platforms? Yes! You can do it for Android, iOS and other platforms with using Python. In this talk I speak about tools you may use for developing applications with using OpenGL ES for different platforms, the ways and concepts which are used in those tools, some tips and tricks you may use to make a cross-platform game with Python for fun and profit.
This talk will present multiple advanced techniques for Web functional testing. You will learn how to test a wide range of Web front-end components, such as CSS, visuals, responsive designs and user interactions — all using Python. Various practical tips will also be presented to harness your functional tests in real project workflows.
Have you ever wondered which rapper is the most sexist? Come learn how to find out by scraping rapgenius and analyzing rap lyrics using Python with libraries like pattern and Beautiful Soup! There will be pictures of Lil' Jon.
A simple "Hello World!" page, served via Django, passes though a surprising number of layers & components. For a newcomer to the language or the platform, this can be overwhelming at the start. Here I'll take you on a drive through Django's request-response cycle, focusing on using its layered model to understand what's going on and get things done.
In this talk we'll illustrate a simple web application using SQLAlchemy, showing off the style of development that SQLAlchemy is most geared towards, the so-called ""foundational"" style which provides for development and maintainance of custom conventions which then service the needs of the model declarations and use case implementations.
Using Python and a minimal amount of hardware hacking, it's possible to build computer controlled helicopters you can fly around your living room for surprisingly small amounts of money. This talk will describe the steps you'll need to take to start the ball rolling towards Skynet using a $20 helicopter and an Arduino.
Cloud computing offers some great opportunities for science, but most cloud computing platforms are I/O and memory limited, and hence are poor matches for data-intensive computing. After 4 years of research software development we are now instrumenting and benchmarking our analysis pipelines; numbers, lessons learned, and future plans will be discussed. Everything is open source.
Guaranteed behavior makes software modules useful. Software guarantees are commonly incomplete with good reason: promises that are narrow and few are most easily kept across wide ranges of platforms and long times. We define the space of a module's allowed behavior to be its "behavioral envelope" and show that thinking and speaking in terms of envelopes eases maintenance and makes APIs delightful.
Django finally has built-in migrations, and they're a long way from the designs of South or django-evolution. Learn the key design decisions we made, ideas we discarded, and the unique treatment we have to give each of our four official database backends.
The language you speak determines the thoughts you can think. Thus, API designers (and that includes you, if you've ever coined a function) have a great duty, as language inventors, to expand the mental canvases of those who come after. We'll concretize that into 7 hallmarks of good APIs, pulling examples (and bloopers) from popular Python libraries.
You can create a web application with Flask in seven lines of code, and you can grow that app to thousands. How do you create reusable, shareable libraries? We'll use a simple but real extension I created (Flask-FeatureFlags) to look at the different ways you can make Flask awesome.
So, what happens when you lock a Python programmer in a secret vault containing 1.5 TBytes of C++ source code and no internet connection? Find out as I describe how I used Python as a secret weapon of "discovery" in an epic legal battle.
I'll walk you through Python's best tools for getting a grip on data: IPython Notebook and pandas. I'll show you how to read in data, clean it up, graph it, and draw some conclusions, using some open data about the number of cyclists on Montréal's bike paths as an example.
Lots of talks and tutorials try to cover Django exhaustively, going over every component and feature. But not so many take a look at the bits that let Django be Django. In this talk, we'll see exactly what those bits -- some old, some new -- are, in a way that shows why it's still a solid and popular choice for web developers nearly nine years after its initial public release.
After half a lifetime "undercover as a man" I transitioned from male to female while staying involved in the Python community. This talk discusses that transition and explores how I found life in Python as a woman different from my former life as a man.
The common wisdom is that Python is slow. And yet people run high performance software on it. It's hard to make Python fast, and yet there are incredibly high performance Python VMs. This talk breaks down the facts and the myths of Python performance.
Have you ever wanted to play video games while also contributing to science? In psychology experiments developed by myself and Peter Battaglia, participants are immersed in an interactive 3D world which is experimentally well-controlled, yet also extremely fun. This talk will explain how we created these "game-like" experiments in Python using the Panda3D video game engine.
This talk will explore how garbage collection is implemented in CPython and PyPy. See how CPython deals reference counting's shortcomings with a special GC for cycle collection. Then dive into PyPy's sophisticated and high-performing GC implementations. The particularly thorny issue of finalizers in reference cycles will also be addressed.
If you've never written tests before, you probably know you should, but view the whole process as a bureaucratic paperwork nightmare to check off on your ready-to-ship checklist. This is the wrong way to approach testing. Tests are a solution to a problem that is important to you: does my code work? I'll show how Python tests are written, and why.
Curious about being involved in open source, but haven't had the time to make the plunge? Involved with open source but a bit hazy on the way it all works? Open source legend Andrew Tridgell runs an annual week-long post-graduate primer course teaching ""Free and Open Source Software Development "". This talk will convey as much of this course as possible in the time available.
Python includes a powerful debugger, but using it well requires practice. Setting a break point and inspecting local variables is easy, but what else can you do? What if you need to set the breakpoint in one of your dependencies, or only fire it conditionally? How do you navigate calls, or change them? Join me for an in depth look at how you can better use PDB to debug and understand programs.
Docker is a tool for sandboxing entire application environments using Linux containers. Docker's feature set includes versioning, sharing etc. They are light-weight and fast, you can recreate a deployment environment in development or push your development containers to production. Imagine never having to worry about fragmentation of servers or syncing the versions of different libraries.
This talk provides a broad-based introduction to SQLAlchemy Core library. It is focused on someone new to SQLAlchemy Core, who has experience with other database technologies such as Django or SQLAlchemy ORM. We'll cover the differences between the domain-centric models of those tools compared to the schema-centric model and how we can use that to deal with common and unusual data sources.
It can be hard to focus on your love of coding when you are regularly battling invisible issues like insecurity, anxiety, and lack of confidence. This talk will identify invisible issues programmers struggle with, talk about their impact, discuss personal experiences dealing with them, and share some tools useful in fighting back.
One of the great features of Python is its machine learning capabilities. Scikit is a rich Python package which allows developers to create predictive apps. In this presentation, we will guess what type of music do Python programmers like to listen to, using Scikit and the k-nearest neighbor algorithm.
Is your web app ready for a global audience? Internationalizing your codebase with gettext (bit.ly/pyconi18n) might just be the simpler part of the puzzle. It's hard to maintain translations in a fast paced deployment environment without constant manual intervention. This talk covers tools and strategies you can adopt to automate your localization process and ensure high translation coverage.
A brief overview of what multifactor authentication is, focusing particularly on possession factors, including what common options are available. One-time-passwords, an important concept many possession factor types, will also be discussed.
Indie game developer Luke Miller presents a brief overview on making point-and-click adventure games using the open source pyvida gaming engine and uses his commercially released gay-themed adventure game "My Ex-Boyfriend the Space Tyrant!" as a tutorial on developing, packaging, releasing and selling a python game for Windows, Mac and Linux.
Since 2010, the GNOME Foundation's Outreach Program for Women has provided 130 women with an opportunity to participate in remote internships with 23 Free Software organizations. This talk will cover the history of the program, what makes it successful, how the same strategies can be used for engaging all new contributors, and what other initiatives help increase diversity in Free Software.
Donald Knuth famously said that we should avoid optimization 97% of the time and focus on the "critical 3%". How can we identify that 3%? How can we best focus our optimization efforts, and avoid the "root of all evil" that is premature optimization? This talk introduces key types of performance testing, and demonstrates how they can be paired with profiling techniques in a cycle of improvement.
To many developers the database is a black box. You expect to be able to put data into your database, have it to stay there, and get it out when you query it... hopefully in a performant manner. When its not performant enough the two options are usually add some indexes or throw some hardware at it. We'll walk through a bit of a clearer guide of how you can understand and manage DB performance.
This talk will outline and demonstrate usage of PostgreSQL for data storage and processing scenarios where new common wisdom would usually turn to "NoSQL" databases for scalability reasons. It demonstrates both NoSQL style usage and techniques using more traditional relational storage models with required adjustments for infinite scalability.
This talk documents the journey of a less than conventional robotics application in which python is used as the logical controller of an autonomous 20 foot blimp. The blimp's autopilot features, prolonged air time, large size, and smooth motion make it the ideal platform for aerial photography. Giving the blimp an onboard controller reduces the overall costs and requirements of the operation.
Taba is a distributed metrics aggregator, similar in concept to statsd. Built with Python using Redis, gevent, and Cython, it currently handles over 6M events/sec with strong consistency guarantees. This talk will present an overview of its design, and discuss the challenges and solutions encountered in the process of building a high throughput, low latency distributed service.
This talk covers the practical use of Python packaging tools. You'll see how to keep your system clean as an end user excited about installing a Python module from the web, the purpose of setup.py, how virtualenv makes life easier (and sometimes harder), what Ubuntu/Debian tools can offer, and how to make a complex app easier for new contributors to run. It is heavy on stories and recommendations.
This talk will introduce you to Push Notifications, a very powerful way for your Python service to communicate information to mobile devices. You will learn how Push Notifications work, their advantages and disadvantages and how you can implement them on your Python projects.
Working with developers on schema migrations is a perennial challenge for DBAs and developers. Devs tend to like a "set it and forget it" tool. This talk discusses the strategies used to move from a pure SQL and shell migration system to using SQLAlchemy and alembic for maximum DBA and developer happiness.
Code executes. Docs just sit there looking pretty. Now it's time to blur that boundary! Tools like the IPython Notebook, Sphinx, dexy, and old-fashioned doctests blend code with docs, making package docs, educational materials, and system-level docs more engaging, relevant, and trustworthy.
Got some code that you've written that would be useful to others, but actually releasing it feels like too much new stuff to figure out? Releasing software does take some work, but this talk will take you step-by-step through the process with specific recommendations and tools. We'll cover preparing your code for release, packaging it, releasing it, and maintaining it over time.
As U. of California campuses must reach Zero-Waste by 2020, a Smart Dumpster was designed to increase efficiency, study waste patterns, and improve refuse reduction. Using Python, a prototype has been installed into operations with tentative success since July 2013. Demonstrating real-time data reporting, the talk will focus on the success, roadblocks and campus plans for the Smart Dumpster.
Software engineering researchers and hackers don't talk to each other as much as they ought to. This talk aims to bridge that gap, teach practitioners about what research is out there, and spark a "citizen science" movement in software engineering. I'll explain how to study your own projects and get academics to pay attention. Together, we can learn how to develop better software.
You might know what an API is. Maybe you've even implemented a handful of popular APIs out there, but you are thinking about building your own and don't know where to start. This talk will show you how easy it is to build an API into your project using Python and Flask. We'll also discuss best practices and design patterns for great APIs.
Sometimes, the code you need just isn't available in Python, but someone's written some code in another language that solves your problem. What options do you have for interacting with this external code from within your program? We'll examine how to call external binaries, what happens behind the scenes at a systems level, and how these implementation details affect performance and memory usage. In the second part of the talk, we'll discuss the different options for more tightly integrating external code in the form of a C library for better performance and control.
This is a talk about how to make junior and new engineers into independent and productive members of your engineering team faster and cheaper. We will focus on python specific resources and libraries that will help you create a simple but effective on boarding program, and talk about case studies of companies that have had success using these techniques.
It was once quite painful to build your Python app as a single .exe file. Support forums filled with lamentations as users struggled with primitive tools. But today, two separate tools exist for compiling your Python to real machine language! Come learn about how one of the biggest problems in commercial and enterprise software has now been solved and how you can benefit from this achievement.
Those web pages with shiny lock icons boasting that your data is safe because of "256 bit encryption"? They are lying. In times of mass surveillance and commercialized Internet crime you should know why that's the case. This talk will give you an overview that will help you to assess your personal security more realistically and to make your applications as secure as possible against all odds.
Unit testing is like public transit: everyone agrees it's a good thing for other people to do. It's easier to swallow when you see how unit testing improves not only the correctness of your code, but the design as well. I'll walk through a real-life case study where adding unit tests turned a pretty good module into an even better one: easier to understand, extend, and reuse.
How to make our Python web development workflow less painful and more predictable? By mixing a collection of tools and best practices for both back and front ends like Buildout, Grunt, Bower and Ansible to automate tasks.
The objective of this session is to give the audience an idea of how they should choose a messaging layer for their application - how to evaluate their requirements against the features of the tools and make a choice. I will use my experience with building messaging applications to present a methodology which they can use
Flask is a web framework for Python based on Werkzeug, Jinja 2 and good intentions. It is considered a micro-framework, but don't get the "micro" part fool you; Flask can do everything the "others" can do, many times in a simpler, leaner way. This session will introduce you to Flask as an engine to build RESTful web services.
Why are Python programmers crazy about lists and dictionaries, when other languages tout bitmaps, linked lists, and B+ trees? Are we missing out? Come learn how data structures are implemented on bare metal, how to select the right data structure, how the list and dictionary cover a wide swath of use cases, and when to dip into the Standard Library or a third-party package for an alternative.
Twisted is an event-driven, networking library. This talk aims to explain what that means and give an overview of some of the main Twisted concepts. It will also describe some of the functionality that Twisted offers out of the box.
Learn about Ansible -- a radically simple way to deploy applications, configure operating systems, and orchestrate IT operations including zero downtime rolling updates. Let's bring about SkyNet faster.
Deploying a moderately complex web application has become quite a challenge over the years. As best-practices have evolved, it has become progressively more time-consuming to keep up with what tools exist and how to use them effectively. This talk will provide an overview of the ecosystem and provide pointers for more information about individual components or problems.
An introduction to Bayesian statistics using Python. Bayesian statistics are usually presented mathematically, but many of the ideas are easier to understand computationally. People who know Python can get started quickly and use Bayesian analysis to solve real problems. This tutorial is based on material and case studies from Think Bayes (O'Reilly Media).
When people hear of matplotlib, they think rudimentary graphs that will need to be touched up in photoshop. This tutorial aims to teach attendees how to exploit the functionality provided by various matplotlib libraries to create professional looking data visualizations.
Blinking colored lights bring out the child in all of us. Color LED lighting technology is becoming more available and affordable. Layers of hardware, lighting protocols, and effects design can make doing anything more complex than blinking these lights tricky. Come learn about LEDs how to control them with Python, and about building real-time control of physical things.
What does it take to make a Python sandbox that can run untrusted code? Learn some surprising language features and experience security challenges first-hand as we work through building a Python sandbox from scratch. You'll leave this talk with renewed appreciation for the dynamic nature of Python, some sneaky language tricks, and a solid background in classes of sandboxing security issues.
Rupa and Akkana will walk you through the setup/code to build your own super-cool PiDoorbell project to monitor/notify you about visitors at your house. Learn about the RaspberryPi, PiDoorbell software/hardware and build your own PiDoorbell to take home with you! Bring a RaspberryPi, power cord, USB cable (USB camera optional). We will provide the rest of the hardware (wifi, prox. sensor etc.).
This talk is an experience report / best practices summary, based on work porting a very large stack to Python 3.x. The stack includes the Zope3 component architecture, ZODB, WebOb, pyramid, other dependencies, totalling ~180 KLOC Python + ~25 KLOC C.
Memcached is a popular, blazing fast in-RAM key/object store mainly used in web applications (although it can be used in virtually any software). You will walk out of this talk with a solid understanding of memcached and what it does under the hood, and become familiar with several patterns and best practices for making the most of it in your own Python applications.
Come and learn the techniques used for generating random dungeon-like levels for games. You don't have to know what Rogue is to enjoy this talk. Prepare yourself for a plethora of Monty Python references and we'll have some fun.
Every developer will inevitably feel the pain of character encoding issues. We will cover the fundamentals every Python developer should know on character encoding and Unicode. We will teach you how to identify the types of problems that occur when dealing with character encoding and outline a set of best practices and useful libraries which can be used to avoid and fix character encoding issues.
When people talk about Big O notation do you go cross eyed? Do you not get the point of learning about implementing linked lists or depth first search? Join me as I introduce the CS fundamentals that helped me ace my Google interview, even though I didn't get a formal CS education.
Want to contribute to a Python project or the core language, but not sure where to start?
Join us for 3 hours learning the nuts and bolts of open source contribution. By the end of this tutorial, you'll have the tools and practice to confidently contribute to your favorite projects.
Beginning programmers are welcome and encouraged!
Let us mix Python analytics tools, add a dash of Machine Learning Algorithmics & work on Data Science Analytics competitions hosted by Kaggle. This tutorial introduces the intersection of Data, Inference & Machine Learning, structured in a progressive mode, so that the attendees learn by hands-on wrangling with data for interesting inferences using scikit-learn (scipy, numpy) & pandas
Decorators are an invaluable addition to anyone's arsenal of python tools and tricks. We will learn what a decorator is, how decorators are created, and then explore some of the cooler applications for decorators in our everyday projects.
Distributed computing is challenging. The network can be spotty. The servers can be pushed too hard. Race conditions can show up. Tasks can seem to disappear. Deployment can be messy. Celery is an excellent tool for writing distributed applications and this talk focuses on real-world challenges faced when doing those tasks.
Celery is a distributed task queue for Python that is used by a large number of web applications to off load tasks that can be executed asynchronously. This workshop will demonstrate how we can use Celery for a use case that isn't a web site or a web application and is something which could happen in a hospital or a bank or any other such large organization.
Traditional tutorials for Django usually assume some programming experience, but what if someone is learning Python and Django with a HTML/CSS background? This tutorial focuses on the web-based features of Django — templates and the admin — and goes over the basic building blocks of Django programming to get web designers excited and interested in learning more.
In this tutorial we will first learn how to solve, simulate, and visualize multibody dynamics problems with Python. These methods and techniques play an important role in the design of robots, vehicles, spacecraft, manufacturing machines, etc.
It's inevitable that online communities will change, and that we'll remember the community with a fondness that likely doesn't accurately reflect the former reality. We'll explore how we can take a set of articles from an online community and winnow out the stuff we feel is unworthy. We'll explore some of the machine learning tools that are just a "pip install" away, such as scikit-learn and nltk.
The most important yet underappreciated parts of concurrent APIs are good constructs for fan-out (one thread spawns others) and fan-in (many threads join together). This talk will show examples of fan-in and fan-out. It will cover the successes and shortcomings of APIs that provide concurrency. Finally, we'll discuss how the async model of Tulip/PEP3156 is the ultimate API. The future is bright!
Although Python programs may be slow for certain types of tasks, there are many different ways to improve the performance. This tutorial will introduce optimization strategies and demonstrate techniques to implement them. Another objective of this course is to help the participants to gain the ability to decide what might be the optimal solution for a specific performance problem.
Flask is a web framework for Python based on Werkzeug, Jinja 2 and good intentions. It is considered a micro-framework, but don't get the "micro" part fool you; Flask can do everything others can do, many times in a simpler, leaner way. In this tutorial session you will follow me as I write a complete web application in front of your eyes using the core framework and a handful of extensions.
You've deployed! But your friends can't see it - what's wrong? I'm betting DNS. Maybe you've fixed a couple of entries, point some records to hostnames, waited patiently for new domains to resolve only to notice your nameservers are incorrect. But what actually goes on with DNS? Come to this talk to find out how DNS works, and how to interact and create a DNS with Python.
Python generators have long been useful for solving all sorts of problems involving iteration and data flow. However, one of their more powerful uses is in customizing various aspects of program control flow. In this tutorial, we'll look at some more exotic uses of generators such as writing context managers, inlining callback functions, eliminating recursion, implementing actors, and more.
This talk will cover the internals of Python, such AST, Import hooks, creating a console, and a very brief overview of Python internal formats (such as pyc files), by way of looking over the implementation of a Lisp called "Hy". No Lisp knowledge is required.
Salt is the new kid on the block in the configuration management space. Unlike the Ruby-based Chef and Puppet, Salt is written in Python, making it easy to debug and extend for Python developers. This talk will introduce Salt as well as explore some of the things that make it unique.
In this tutorial we'll set ourselves the goal of building a minimal recommendation engine, and in the process learn about Python's excellent Pydata and related projects and tools: NumPy, pandas, and the IPython Notebook.
Live and direct from the PyCon stage learn how to connect your things to the internet! In this talk we'll connect physical things and people to the internet. In this talk we will live code a tiny web server that interacts with the physical world via sensors, actuators, video, and audio. We will explore tools in the Python ecosystem that make this possible and show how they work together.
import didn't exist, and we had to invent it from scratch. We'll look at the problem - code sharing and reuse across modules - and different ways we could solve it. We'll come up with
import from parallel universes and then reinvent python's actual implementation. Finally, we'll import - using python's design - without using the
Many people learn testing through the JUnit/PYUnit paradigm. Lately, py.test's new fixture mechanisms have gained traction among many Pythonistas. This tutorial explores py.test discusses key strategies how to benefit from using py.test for your existing unittest/nose based code bases.
Many developers, including quite a few experienced developers, are absolutely confounded by regular expressions. However, regular expressions aren't as difficult as many believe. In this talk, I will teach regular expressions by starting with the simple and moving toward the complex, so that you too can read and write regular expressions like a hero.
The goal of the tutorial is a broad-based introduction to SQLAlchemy, spanning the Core and ORM components as well as the systems that underlie them. The tutorial takes the "harder" approach teaching from fundamentals first, emphasizing details on how the library interacts with the database and SQL and concluding with an introduction to the ORM, providing a solid perspective for continued study.
IPython provides tools for interactive and parallel computing that are widely used in scientific computing, but can benefit any Python developer.
We will show how to use IPython in different ways, as: an interactive shell, an embedded shell, a graphical console, a network-aware VM in GUIs, a web-based notebook with code, graphics and rich HTML, and a high-level framework for parallel computing.
Did you know that when you resolve a hostname, you can get multiple addresses back, and pick any one to connect to? Some of these addresses will connect near instantly, while others might take a long time or time out. This talk is about a Twisted endpoint API I built that takes a hostname, and returns the connection that takes the least time to complete, from the list of resolved host addresses.
Let's Learn Twisted is a short 3-hour tutorial covering the basics of writing a Twisted Python client-server application using Twisted Python's Factory and Endpoint APIs to construct a peer-to-peer chat and RPC network.
You may have encountered the pickle or cPickle libraries, and used them to persist some state about your program. But how do they work? This talk explores how the pickle protocol works, what its advantages are, and its disadvantages
PostgreSQL has become the default database for most green-field development projects, and is the data storage architecture behind many major Python-based success stories, such as Instagram. Despite a reputation as being complex and fiddly, Postgres is easy to install, administer, maintain, and use... with just a little bit of orientation.This is that orientation.
Puppet modules provide reusable operations ("ops") code in a manner analogous to Django apps. This talk explores the Puppet ecosystem through the eyes of a typical Python developer, and demonstrates how to use Puppet modules effectively to deploy and secure Python web applications.
Python 3 is upon us! This lively, hands-on tutorial covers a little about a lot, showing Python 3 (and 2) web development using Pyramid, a fast, modern, lightweight web framework. Fun, fast-paced, and most certainly not aimed at experts.
Many provocative social questions can be answered with data, and datasets are more available than ever. Start working with it here. First we'll download and visualize one data set from the World Bank Indicators page together, using Matplotlib. Then you'll have time on your own to pick another data set from any online source and plot that. At the end every person/pair will share what they found.
Python is so well-suited for processing and managing geographic data, I think they'll be best friends forever. In this talk, I'll introduce some of the best Python libraries to use with your geodata, and show you how treating GeoJSON like a Python dictionary can make cleaning and validating your data a breeze. I'll also discuss examples of using Python to add custom functionality to GIS software.
Ever wondered how python web-scraping libraries compare in terms of speed and accuracy? I'll review lxml, html5lib, BeautifulSoup and scrapy with a series of sites evaluating how quickly they can parse pages and how accurately they can find data, particularly pieces of data that render after DOM loading and other pesky bits like hidden form data, internationalized data and mobile-compliant sites.
scikit-learn is an awesome tool allowing developers with little or no machine learning knowledge to predict the future! But once you've trained a scikit-learn algorithm, what now? In this talk, I describe how to deploy a predictive model in a production environment using scikit-learn and RabbitMQ. You'll see a realtime content classification system to demonstrate this design.
Data is everywhere! And most of the time, the best way to find what you want in a pile of data is to search it. In this project-based tutorial, you'll get an introduction to the basic theory of search and write a program to index and search a collection of Wikipedia documents using the Whoosh library. You'll leave with the ability to add search functionality to all of your own projects.
The Internet is a dangerous place, filled with evildoers out to attack your code for fun or profit, so it's not enough to just ship your awesome new web app--you have to take the security of your application, your users, and your data seriously. You'll get into the mindset of the bad guys as we discuss, exploit, and mitigate the most common web app security flaws in a controlled environment.
This is a talk about building full-stack python web applications where you manage every part of the application yourself. I will walk through how to setup a production server with your web application code, a local development environment using vagrant, and how to deploy from your local environment to production. I will also walk through python and Django libraries that will make your life easier.
AngularJS is a really exciting tool for building super slick single-page apps. But if you want them to play nice with a Python backend (Django, Pyramid, Flask, etc.) you're going to have to do a little bit of wrangling. These are the design patterns that worked for us.
Learn Test-Driven-Development and Django by building a simple web application from scratch. We'll cover unit testing, Django models, views and templates, as well as using Selenium to open up a real web browser for functional tests. This talk is intended for audiences new to TDD, new to Django, and even new to Python! You'll need Python 3, Git, Firefox, Selenium and Django installed on your PC.
Dgplug summer training is a free online IRC based course which aims to teach FOSS ideas and programming in general using Python to new programmers/stduents. In this talk we share our experiences, lesson learned, hoping that people will be able to replicate this in other parts of the world.
There's a gaping hole in Python advocacy: K-12 educators. These are the front-lines of CS education, especially in countries where attending primary and secondary school is compulsory, and resources to teach CS are stretched very thin. Learn what we have to offer CS teachers and how you can help in your local area.
There are a half-dozen major Python cryptography frameworks built on at least three separate C implementations, each with their own strengths and weaknesses and in various states of maintenance. This presentation will review the current state of the art and discuss the future of crypto in Python including a new library under development, PyPy support and more.
Since PyCon 2013, interest in the Young Coders class has intensified. Several Python conferences have run their own, and classes outside of conferences - from one-time workshops to after school clubs - have sprung up as well. With more people than ever interested in teaching Python to kids, we're here to address how to organize a class. It takes some effort to set up, but the payoff is enormous.
Learn how to let other people connect straight to your computer, so your Python web apps, email services, or anything else can be seen by the world. It starts simple, then explains when and how to use SimpleHTTPServer, ssh tunnels, Pagekite, and IPv6. You can use these tools for temporary connections, like sharing an in-progress demo, or for permanent connectivity for your home server.
Python's asynchronous frameworks, like Tulip, Tornado, and Twisted, are increasingly important for writing high-performance web applications. Even if you're an experienced web programmer, you may lack a rigorous understanding of how these frameworks work and when to use them. Let's see how Tulip's event loop works, and learn how to efficiently handle very large numbers of concurrent connections.
Descriptors and metaclasses are advanced Python features. While it is possible to write Python programs without active of knowledge of them, knowing how they work provides a deeper understanding about the language. Using examples, you will learn how they work and when to use as well as when better not to use them. Use cases provide working code that can serve as a base for own solutions.
This tutorial session is an hands-on workshop on applied Machine Learning with the scikit-learn library. We will dive deeper into scikit-learn model evaluation and automated parameter tuning. We will also study how to scale text classification models for sentiment analysis or spam detection and use IPython.parallel to leverage multi-CPU or ad-hoc cloud clusters.
This tutorial will offer an introduction to the core concepts of machine learning, and how they can be easily applied in Python using Scikit-learn. We will use the scikit-learn API to introduce and explore the basic categories of machine learning problems, related topics such as feature selection and model validation, and the application of these tools to real-world data sets.
Getting Started With Django is a well-established series of videos teaching best practices and common approaches for building web apps to people new to Django. This tutorial combines the first few lessons into a single lesson. Attendees will follow along as I start and build an entire simple web app and, network permitting, deploy it to Heroku.
Beginning programmers: welcome to PyCon! Jumpstart your Python and programming careers with this 3-hour interactive tutorial. By the end, you'll have hands-on exposure to many core programming concepts, be able to write useful Python programs, and have a roadmap for continuing to learn and practice programming in Python. This class assumes no prior programming experience.
Are you interested in doing analysis but don't know where to start? This tutorial is for you. Python packages & tools (IPython, scikit-learn, NetworkX) are powerful for performing data analysis. However, little is said about formulating the questions and tying these tools together to provide a holistic view of the data. This tutorial will provide you with an introduction on how this can be done.
Social websites such as Twitter, Facebook, LinkedIn, Google+, and GitHub have vast amounts of valuable insights lurking just beneath the surface, and this workshop minimizes the barriers to exploring and mining this valuable data by presenting turn-key examples from the thoroughly revised 2nd Edition of Mining the Social Web.
This tutorial will take participants through basic usage of mrjob by writing analytics jobs over Yelp data. mrjob lets you easily write, run, and test distributed batch jobs in Python, on top of Hadoop. Hadoop is a MapReduce platform for processing big data but requires a fair amount of Java boilerplate. mrjob is an open source Python library written by Yelp used to process TBs of data every day.
This tutorial is for developers who've been using Python for a while and would consider themselves at an intermediate level, but are looking for a deeper understanding of the language. It focuses on how Python differs from other languages in subtle but important ways that are often confusing, and it demystifies a number of language features that are sometimes misunderstood.