PyCon US 2013
The largest annual gathering for the community using and developing the open-source Python programming language.
- March 13, 2013
- Number of videos:
Our culture's default assumption is that everybody should always be striving for perfection -- settling for anything less is seen as a regrettable compromise. This is wrong in most software development situations: focus instead on keeping the software simple, just "good enough", launch it early, and iteratively improve, enhance, and re-factor it. This is how software success is achieved!
ApplePy is an Apple ][ emulator written in Python. It combines emulation of the 6502 microprocessor with emulation of the keyboard, display (including graphics mode), speaker, cassette and disk drive. This talk will provide a background to Apple ][ internals then dive into the Python code and the challenges of emulating hardware.
The logging module is one of the more complex areas of the Python standard library. In this talk you will learn how to leverage loggers, formatters, handlers and filters. In addition you will learn how to use dictConfig and other formats to manage logging settings for your applications.
Discover how in four months I went from insecure beginner to happy writer of a GUI toolkit documentation!
Personalized approach is important in the area of cancer treatment. We constructed a data-warehouse which integrates 3 ontologies and 4 clinical databases semantically using Django's ORM. For the clinical use, a mobile web application was developed so that patients can get their personal pharmaceutical information about cancer therapy.
Biomedical ontologies are large, graphical data structures that describe concepts in biology and medicine. An ongoing area of research is determining how to integrate these from different sub-domains, since they are too large to integrate by hand. This describes an elaborate approach using machine learning and distributed computing, implemented in python.
Closing remarks from Jesse Noller.
No matter what type of investor you are, short term swing trader or long term fundamentalist, we all agree that data is an important element to making a financial decision. This poster will outline the details of how one can use Python and Scipy to collect and analyze data in the arena of the stock market using real time data from various sources to help outline some key numbers to help investors.
The idea of having a web-configurable web/application server with virtualhosting support using the best Python-based tools to integrate into the company toolset for the development team has always been intriguing to me. This tool tries to create a complete webserver enabling easy deployment of apps on on-premises hardware for both the lucky ones having a private cloud, and for those who don't.
For a recent project, I had to develop a real time diagnostics tool with a web dashboard. The goal of this tool was to assist data experts with proactive monitoring and trouble-shooting our equipment deployed in the field. So I decided to design a real time web dashboard with status updates and email alerts using Python, Django and R.
Processes in a cluster can require controlled access to shared resources, tracking available processes, and sharing state. Unfortunately most tools in this category are oriented around Java. In this talk I cover how to use Python to interact with Apache Zookeeper -- a fault-tolerant consistent data-store -- to write coordinated distributed fault-tolerant applications in Python.
We describe the architecture of an application designed to enhance social interactions at conference gatherings by integrating data from online social networks and from wearable proximity sensors. The pipeline that processes the stream of sensor data and provides proximity-based services is implemented in Python and Twisted, and has been demonstrated to scale to thousands of simultaneous users.
For the creation of visualization programs there are a number of free and commercial tools and libraries. In a heterogeneous environment it points out that there is no universal solution that covers the specific needs in a scientific environment. GR is a framework for cross-platform visualization applications ranging from publication quality 2D graphs to the representation of complex 3D scenes.
This talk will go over how the simple
from sys import version turns out to be slightly complicated. The details of imports -- from how the import statement is interpreted to deciding what object to return -- will be discussed. While the talk will discuss things from the perspective of Python 3.3 (and thus importlib), the overall semantics will (mostly) apply to older versions of Python.
Python is increasingly used as a teaching language for new programmers and touted as an easy language to learn for experienced developers. Its self proclaimed virtues of beauty, explicitness, simplicity and readability certainly should make it newbie and user-friendly... and mostly do. I'd like to talk with other Pythonistas about the parts that suck and what we can do to fix them!
Did you know that "for a, (b, c) in s:" is a valid Python line? From the elegant for statement through list/set/dict comprehensions and generator functions, this talk shows how the Iterator pattern is so deeply embedded in the syntax of Python, and so widely supported by its libraries, that some of its most powerful applications can be overlooked by programmers coming from other languages.
Van Lindberg is a software engineer and practicing attorney. What he does most, though, is translate - from "lawyer" to "engineer" and back. He likes working with both computer code and legal code to get things done.
Guido van Rossum is the author of the Python programming language. He continues to serve as the "Benevolent Dictator For Life" (BDFL), meaning that he continues to oversee the Python development process, making decisions where necessary. He is currently employed by Dropbox.
Sunday evening lightning talks
Sunday morning lightning talks
In the infamous words of Tim Peters, "Namespaces are one honking great idea -- let's do more of those!" (PEP 20) Python's type system is built on the basis of well-bounded namespaces. Come look behind the curtain and you'll see Python in a whole new light. We'll also talk about how to put this knowledge to use whenever you write modules, classes, and functions.
Stenographic technology has been locked down to expensive, proprietary hardware and software for decades, depriving the world of the most efficient text entry system devised to date. Plover, a free, cross-platform steno engine that works with $45 hardware, offers hackers and hobbyists the ability to type at up to 240 WPM in applications ranging from wearable computing to captioning to coding.
Pony is an object-relational mapper implemented in Python. It allows writing advanced SQL queries using plain Python in the form of a generator expression. This way queries look very concise. Pony implements the IdentityMap pattern, offers a solution for N+1 select problem, and has a visual editor for models.
A little over a year ago, frustration with the state of image processing in Python led me to start a project called pymaging. Pymaging is a pure Python image processing library that works on Python 2.x and 3.x. This talk will dive into why I started this project, how I dug into the problems, what I learned about image formats and my goals for the future of this project.
This lecture describes a journey guided by hardcore gaming experiences from the past and how that lead to development of PyNES. What started as a "Python ASM compiler for Nintendo 8 bits" and is now evolving as a "Python programming for Nintendo 8 bits". All the hacks and drawbacks faced will be shown. Told as an epic tale, that should encourage others to fulfil the same path.
XMPP (eXtensible Messaging and Presence Protocol) is a versatile protocol used for chat, social networking, content distribution, cloud management, embedded devices, and more. This poster covers several modern Python packages that make working with XMPP easier and examples of applications built with them.
This year I've reverse engineered two HTTP/Web enabled devices and written python clients for them. The Belkin Wemo  and the Philips Hue . My poster session will cover methods materials and work.
 http://www.issackelly.com/blog/2012/08/04/wemo-api-hacking/  http://www.issackelly.com/blog/2012/11/10/philips-hue-api-hacking/
R has become hard to avoid when working with data; there is hardly a method in statistics or visualization that is not available, and there are many methods that are originally only available in R.
The Python-to-R bridge opens the whole library of R functions, classes, and datasets to the Python programmer by exposing an embedded R process and its objects through a Python library.
Serpint is software for controlling the GPIO pins on a Raspberry Pi over a socket or serial port. It can be used to control the GPIO pins from languages that don't already have a GPIO library, but do for sockets or serial, or from programs that expect a serial port, and do that from half a world away.
Use iPython, matplotlib, and Pandas to slice, dice, and visualize your application's behaviour through its logs.
I find it very handy to be able to fire up the command line and make changes through a well-designed CLI tool. I'd like to show how the 3rd party urwid library or the built-in curses library can be used to build such tools easily.
I dictate my code using a voice recognition system with Python embedded in it. In a fast paced live demo, I will code a small system and deploy it without touching the keyboard. I hope to convince you that voice recognition is no longer a crutch for the disabled or limited to plain prose.
We Have, We Need is a student-led project at the University of California, San Diego. WHWN is a supply-sharing and communication platform created for humanitarians and NGOs in disaster/crisis zones, currently targeted toward relief efforts in Haiti. Come learn how we cope with issues like frequent developer turnover, limited budgets, fluctuating team size, and varying experience levels.
Beside the friends, walls and photos, Facebook is a platform where anybody can build applications or games taking advantage of the huge user base and connections between people. Any web-capable language or framework can be used to do that, but this poster will show you why Pyramid is a most excellent choice.
Writing parsers has often been a task difficult for programmers to take on. Many of the tools available for parsing require writing grammar rules and code that work very different from everything else in Python. Parsley is a library that mixes the benefits of concise rule-based grammars with a parsing model that works the way you expect Python code to work.
edX.org is building XBlock, an open-source component architecture for courseware. It provides API's for creating course components of all kinds. Possible uses include: simple controls, new types of problems, new quiz structures, interactive simulations, and new navigation techniques. We're hoping to expand awareness of XBlock, and also to hear from potential users about their needs.
Ever had a feature take too long, not work, and make everybody crazy? Our small team has learned some great tips to speed up development without sacrificing quality and stability. Come see these hard learned ideas, and how they can be applied to your team.
This poster demonstrates how Python can be used in the Environmental and Earth Systems Sciences to create a framework for automating the process of preparing input, running in parallel, and processing output from existing computer models. The framework discussed, ApsimRegions, uses many built-in and third-party Python packages to accomplish these tasks specifically for the APSIM crop growth model.
The Atabox is an $8 computer based of the Atmega328. It runs the webLinux Os and supports the bitlash and c programming languages. I am hoping to port python to the platform but have had no luck so far. It costs $8-$10 dollars. The interface is command line, but supports further graphical modifications.
Darkserver is a set of tools and service written in Python to help developers to debug their applications & libraries. Darkserver project was started to use Build-ID feature of compiler toolchains and help developer tools to identify exact package builds from which process images (e.g. core dumps) come. This can enable their analysis, debugging profiling.
How do you compete with well funded corporations and other institutions when you’re a non-profit? Use Python to take advantage of the resources you didn’t know you had and compete for grants you thought you couldn’t get. Python has helped our small organization piggyback new research on existing efforts, win more grants, and share more ideas.
This poster will present a summary of lessons learned and best practices developed for teaching programming and web development suffused with mathematics in a dual enrollment curriculum with non-traditional programming students.
Best Practices for creating and booking Appointment Slots functionality. Many services marketplaces need or will need to build a system such as this. Building a booking system in-house gives you far better control and a much more elegant workflow rather than using a third-party scheduling service. We hope to share what we have learnt over the past year doing so.
Nodality is applying a novel technology, Single Cell Network Profiling (SCNP), to reveal biology and predict clinical outcome. We face unique engineering challenges related to lab workflows, mining complex data, and presenting data in compelling interactive visuals. We will share design and implementation considerations for integrating heterogeneous software tools needed to meet these challenges.
Nodality has pioneered a novel flow cytometry-based technology in the areas of oncology and autoimmunity to reveal underlying disease biology. We present a custom framework written in Python that uses Django, Matplotlib, MongoDB and Pandas to join this experimental data with clinical facts such as individual patient disease outcomes to develop actionable biological and clinical information.
This poster will feature the site Read the Docs. It hosts documentation and other text related materials that are created with the Sphinx Documentation Generator. Come on by the poster to chat about Read the Docs, or talk about anything documentation related!
FOSS@RIT is an applied research lab at Rochester Institute of Technology focused on promoting free/open source software and open web technologies. Recently, students have been using the Natural Language Toolkit (NLTK) libraries to solve interesting problems involving natural language; analyzing data from political tweets to personal emails.
Density-based clustering allows the identification of objects from unstructured data. The DBSCAN and OPTICS algorithms allow clustering and classification of remotely-sensed points into objects; however, current implementations have been unable to handle the data volume produced by LiDAR (Light Detection And Ranging). Using modified kd-trees as a spatial index allows for increased scalability.
PyCscope V1.0 has been released and we want to bring folks up to speed on the current state of its features and a bit about how it works.
Pyramid is a web framework designed to do very well the fundamentals of web applications. Even though it's minimalist in its goals, it provides strong features to let developers deal with these fundamentals. In this talk, we'll look at 5 specific Pyramid features that offer web developers unique flexibility and power.
We all know Python is a bytecode interpreter, but what does that mean? Come find out! You'll learn what Python bytecodes are, what they do, and even how you can tinker with them. By the end of the talk you'll be an expert. All code will be 100% Python 3--knowledge of C not required!
Mozilla Persona is a decentralized, cross-browser authentication system that completely eliminates website passwords. It's simple, secure, and privacy-protecting. This talk explores the design of Persona with a focus on adding it as a login option to Python-based webapps, drawing from Mozilla's own experience switching many Django (and non-Django) sites away from passwords and to Persona.
An exploration of the boundaries between pieces of code, including: isolated testing, behavior vs. data, mutation vs. immutability, how data shape affords parallelism, transforming interface dependencies into data dependencies, and what it might look like to build systems using all of these to guide the boundaries between objects and components.
This talk covers the details of how to build a highly scalable image processing pipeline using Python and third-party open source libraries and tools such as OpenCV, NumPy, Tesseract, ImageMagick, Tornado, Nginx and MySQL.
Python has a large collection of tools for scientific computing. However, finding the right pieces and assembling them into a fast and scale-able app can be a daunting task. This talk will explore common requirements of scientific apps and how to fulfill those from the Python ecosystem. It will also provide a blueprint for building apps using tools like PyQt, PyQwt, numpy, and HDF5.
This talk is going to focus on using Chef to create web application projects, specifically a python project with a Django framework. Chef is a configuration tool for managing infrastructure by allowing users to automatically and reproducibly configure installations on servers. This talk will cover what is Chef, why automated server configuration is important, and how Chef can be used personally.
Hosting in-person events is a great way to develop and grow your local Python community. If you’ve ever thought about hosting a code sprint, hackathon, (un)conference or workshop, this talk is for you. I’ll present quick overview of what you need to know to get started planning a successful event. Event planning workbook included.
The basics of copyright law mainly as applies to the United States but also covering the fundamental tenets that govern international law. I include quite a bit of overview material as well as talk about specific licensing schemes, including open source schemes, and some recent trends including open hardware.
An introduction to applied cryptography and information security suitable for programmers of all ages and skill levels.
The abstraction and the flexibility the Django admin offers is matched by few software, even today after half a decade of it's introduction. The speaker has customized it in many ways over the years. This talk reminisces over how supposedly large real world problems could be solved with relatively less development by leveraging the power of django admin and using a few techniques.
Cython and SWIG are excellent, and yet very different tools for using C libraries from Python. The goal of this talk is to introduce both tools, discuss their strengths, their weaknesses, and the situations that clearly favor one tool over the other.
What happens when you run a custom C static analysis tool ("cpychecker") on hundreds of Python extensions? I'll talk about the kinds of errors that my tool found, how to run it on your own code, and how to prevent memory leaks and crasher bugs in the C code of your Python extension modules.
Working in teams is an important part of what we do as developers & designers. Whether it's desktop applications or mobile sites, we work together to create successful end products. But how do we work together in different environments? What is the best work-flow for a mix of skill sets?
We'll be talking about our various methods & work-flows that we found successful in working collaboratively.
One of the most common tasks in modern web frameworks is to ease the task of writing bits of code that are then called by the framework. Handling this task is the first major undertaking of any web framework, and the part that most web frameworks have in common.
How do frameworks locate this code? What basic patterns apply to all frameworks? How does this make me be a better web programmer?
Python makes loading code dynamically easy, allowing you to configure and extend your application by discovering and loading extensions at runtime. This presentation will discuss the techniques for dynamic code loading used in several well-known applications and weigh the pros and cons of each approach.
The hardest part of testing is getting the ball rolling. Once you've picked your tools and started writing tests, the added confidence you have in making changes to your code, and the time you save in repetitive manual testing, can quickly become addictive! If you never got over that initial speedbump, or you've tried testing but it hasn't yet clicked, this talk is for you.
A rough & tumble guide, based on the pains of experience, of what to do/not do when trying to build an OSS community.
Jython provides a nearly seamless integration when using Java code. Using Jython from Java is not nearly as seamless, at least not yet. There are also several choices, depending on what you're doing, from object factories to using Java Scripting (JSR-223) support. This talk will discuss techniques, gotchas, and ongoing work to improve integration.
Show the specific features that make Python more than just another scripting language.
Sharing what you know with others is an extremely rewarding experience, and may challenge and develop your knowledge of Python.
I will share my teaching experiences; covering venues, materials, lesson plans, technical difficulties, engagement, and more.
If you've considered teaching Python, this talk will give you insight into what it takes to keep your students engaged, and have some fun.
A look at possible approaches to introducing configurability to your Python application, and a quick analysis of the most common problems.
Lightning talks from Saturday evening.
Lightning talks from Saturday morning.
Are you building a Django application that needs to handle geographic location data? Are you unsure how to tackle using spatial databases, how to jump into using GeoDjango or how to allow users to query for data by, for example, zip code? I'll go over how to use GeoDjango, lessons learned in using spatial databases, and how I built an API exposing distance query functionality.
Programmers are, by the nature of their work, logicians. However, logic can be more challenging than we sometimes think, and it's easy for us to make logical mistakes, especially when they're to justify a proposition we already believe. This is, at its core, what makes us not very good at testing our own stuff, and what makes architecting a technical system so challenging.
It is not hard to find developers who will tell you that Apache sucks for running Python web applications. Is there a valid basis to such claims or have they simply been misguided by the views of others? This talk will endeavor to shine a light on the realities of and limitations in working with Apache, as well as the challenges in implementing the mod_wsgi module for Apache.
Selenium has grown to be a mature platform on the desktop, but with 'mobile now' being the mantra for so many companies, can we use Selenium to effectively test mobile apps? What about Native apps? This talk will cover using Python to test mobile web applications with Selenium, as well as an in depth overview of the future of Selenium to test Native iOS and Android applications.
This talk describes a project that uses the Natural Language Toolkit to build a language model from a gossip blog. The tone is light-hearted, but manages to introduce some core concepts in Python's most popular NLP library as well as some basics on computational linguistics and programming in Python.
Numba is a compiler for Python syntax that uses the LLVM library and llvmpy to convert specifically decorated Python functions to machine code at run-time. It allows Python syntax to be used to do scientific and numerical computing that is blazing fast yet tightly integrated with the CPython run-time.
What needs to happen to finally offer a first-class packaging experience to Python users? Several of the people working directly on that problem will be here to answer your questions.
Django 1.5 now supports Python 3, so now's the time to start thinking about porting your apps and sites. Come see how! I'll talk about the porting techniques that work, and present two case studies: porting a site, and porting a reusable app.
Pyramid web framework authentication and authorization subsystems are powerful and pluggable, but using them to their max isn't always easy. This talk will discuss how to get the most out of those subsystems.
Come find out how Netflix uses Python.
Python’s ecosystem is held up to a high standard, but it falls short in a few key areas. A handful of crucial APIs are an absolute pain to work with. We’ll go over where these APIs went wrong and learn about strong and elegant API design. The high barriers to entry in Python will be discussed. Potential solutions will be proposed.
I build robots for a living and kinetic art for fun. I use Python as a front end, GUI control, and glue to talk to controllers, actuators, sensors, and peripherals. I will present some example robots and kinetic art, and give some tips that I've learned from building everything from robotic desk lamps to automated surgical systems.
Open source software is changing intellectual property law. The talk would cover recent cases on what elements of software may be copied without infringing copyright, the scope of software patents, enforceability of licenses, damages for copyright infringement, and how the network of community support for projects such as Python may be more potent in litigation than a patent portfolio.
This is a short, but thorough tutorial on the Python's built-in toolset for creating classes. We look at commonly encountered challenges and how to solve them using Python.
Non-trivial mapping and location-centric applications are a beast of their own in terms indexing/querying/analyzing. Realtime tracking geo-applications add an even greater layer of complexity.
In this talk we will give a short overview of the traditional OS web/mobile mapping architecture and datasets and extend it to include a realtime component.
In March '10, the Boston Python user group ran its first gender diversity outreach workshop. In the time since, the group has has moved the needle and inspired other communities to do the same. In this panel, you will hear communities like PyStar Philly, Railsbridge Boston, and the Chicago Python Workshop discuss their successes and difficulties with diversity-oriented outreach.
Many want to learn to code, and many choose Python as a first language. You direct them to Learn Python the Hard Way, or Dive into Python. Great! But now what? I will present 5 digestible projects to gradually progress the Python learner from near drowning to a decent swimmer. The goal is to have new coders feeling accomplished and to continuing learning.
Do you dread the moment when your shiny new application is “ready for production”; except it isn’t because deploying is hard? How about moving existing apps or deploying one app to many servers? I’ll take you on a trip of dos and don’ts of deploying Python apps on UNIXy systems. Afterwards, you will be able to find the best way to deploy your code without repeating the mistakes of many before you.
The IPython Notebook offers a number of advantages when teaching programming. It eliminates the need to switch between the command line and an editor, provides a consistent interface for students, and provides an easy to share and reuse file format. I’ll discuss how I and others are using the IPython Notebook to reduce the mental load on students to make learning and teaching easier for everyone.
Writing tests is often hard enough as it is, without having to keep on writing the same boiler plate to set things up and check outcomes. I've collected a bunch of these tools that are all documented, flexible and have unit tests of their own. I'd like to share those with people interested in using them so they can spend more time writing code and less time worrying about how to test it properly.
To a lot of people, the Python Software Foundation is a black box. After years of being on the outside of the box, a few years on the inside have given a good look at what this foundation is and why it matters. Come see what the PSF is about, what it's doing, and what you can do to help.
We need great resources and great teachers for the next generation of software developers. Hear about what teachers say about what they need and what the Python community has to offer K-12 classrooms.
If you look at a history of programming languages, over time languages combine or diverge to form new languages. Here we are, the people of Python, but who are we? Will we survive? Will we evolve from a tribe to state? What is important to us as a people? This talk will aim at providing insight by looking at data in Python community.
Have you ever found yourself obsessively checking UPS or FedEx tracking site to see if your package finally got delivered at your doorstep? Or wondered when your contractor/gardener showed up to do their job?
Come join me to learn how to build your own gadget to notify you when your package or contractor shows up at your doorstep!
Python is a great language for text processing. Each new version of Python--but especially the 3.x series--has enhanced this strength of the language. String (and byte) objects have grown some handy methods and some built-in functions have improved or been added. More importantly, refinements and additions have been made to the standard library to cover the most common tasks in text processing.
A library is code distributed in such a way that strangers can use it. In this talk we consider: 1) why Python developers make bad libraries and poor APIs; 2) how to make your library API maximally useful for others; 3) examples of real-world antipatterns involving APIs.
Random algorithms and probabilistic data structures are algorithmically efficient and can provide shockingly good practical results. I will give a practical introduction, with live demos and bad jokes, to this fascinating algorithmic niche. I will conclude with some discussions of how our group has applied this to large sequencing data sets (although this will not be the focus of the talk).
Sphinx is an incredibly useful tool for creating attractive documentation for your project, but if all you ever use it for is converting reStructuredText files to HTML you are barely scratching the surface of its power. This presentation shows how easy it is to extend Sphinx by defining new markup processors, allowing you to take your documentation to the next level.
Time measurement is a complex area full of tricky problems and unexpected edge-cases. This fast-paced talk tells you how to avoid the pitfalls, and warn about the compromises.
One of the turning points in history was when manufacturing embraced intermediate production. By creating simple components that can be integrated into complex products, manufacturers are able to build faster and cheaper, achieving better quality. In this tale of developer meets engineer,I describe how I'm using Python's inheritance model to bring this manufacturing reality to life in source code.
How can you avoid servers and get back to coding? Platform-as-a-service (PaaS) makes deployment easy. But which PaaS do you choose and how do you get started? This talk will examine several of the leading PaaS providers and discuss their pros/cons. We'll also give examples for how to deploy the same app to each of them to see the differences.
I've taken two years of graduate courses in engineering education. I save you $50k in tuition and hundreds of hours of reading and give you the short version for Pythonistas who care about education and outreach.
Elasticsearch provides an easy path to clusterable full-text search, with synonyms, faceting, and geographic math, but there's a paucity of written wisdom beyond its API docs. This talk, part 1 of a 2-part series, surveys its capabilities and shows how its internal data structures and algorithms work. With the groundwork laid, we explore how to choose efficient indexing and the right queries to make your apps go fast.
Python has no private fields, but the property decorator lets you replace public attributes with getters and setters without breaking client code. And the descriptor mechanism, used in Django for model field declarations, enables wide reuse of getter/setter logic via composition instead of inheritance. This talk explains how properties and descriptors work by refactoring a practical example.
The “War on Cancer” was declared over 40 years ago. Despite tremendous advances in understanding cancer biology and developing cancer treatments, it remains a significant cause of suffering and death. We will describe Python-based data management and analysis tools and show how they have enabled a novel flow cytometry-based technology focused on studying disease biology to improve cancer outcomes.
Python supports several functional programming concepts. The presentations shows how to use functional features such as functions as first-class objects, closures, side-effect-fee functions, currying, lazy evaluation, no mutable data structures and use of iterators instead of loops. The focus is on integration of these concepts in existing programs.
Organizations like Software Freedom Conservancy and PSF provide essential non-profit infrastructure to the Python community. For the past few years, Conservancy specifically helped raise funds to support 3 key Python projects: Mercurial, PyPy and Twisted. This talk discusses successes and challenges of funding Python software development in non-profits, and discuss plans to expand this activity.
Gittip is a platform for sustainable crowd-funding. The site's primary funding mechanism is the "gift tip," a small, anonymous, weekly gift to a worthwhile person or project. These gifts are given with no strings attached, and represent a new model for funding free and open source software. Moreover, Gittip itself is funded on Gittip, with potential implications far beyond software.
This talk is an introduction to the Internet's structure and protocols through fun experiments from the Python perspective. We'll use Python libraries like Scapy and Twisted to explore what happens at a networking level as you surf the Web, how coffee shop Internet access works, and more.
This talk is an introduction to the practice of exception handling, aimed at those without a heavy CS background or years of experience, and who are thus unfamiliar with the technique. Novices to Python will learn Python-specific techniques that make use of built-in exceptions and the context manager, as well as unusual but Pythonic ways of managing the flow control of their program.
Writing isn't just about dry project documentation or docstrings. It can actually be fun and interesting, and it's an enormous benefit to the community. This talk makes the case that writing is our civic duty to our community, and gives some tips to get started writing for various different venues & audiences.
Eben Upton is a founder and trustee of the Raspberry Pi Foundation, and serves as its Executive Director. The Raspberry Pi is an ultra-low cost, credit card-sized computer designed to fill a much-needed technological gap in communities that cannot afford more traditional computing hardware and to provide children around the world the opportunity to learn programming.
This talk will introduce the Kivy project (http://kivy.org). Kivy’s mission is to make building graphical user interfaces on any device fun, efficient, and pythonic.
The talk will focus on giving attendees an overview of how they can use kivy to build exiting UIs and mobile apps.
Solomon talks about Linux Containers which they use at dotCloud and how people are interested in how they do it, but it's complicated so until now they haven't talked about it. Until now: Docker.
Lightning talks from Friday evening.
Python provides powerful primitives for iterating over your data in ways that let you express yourself clearly and directly. But even programmers familiar with the tools don't use them as fully as they could. This talk will cover Python's iteration tools, from basic loops to generators and how to add iteration to your own classes. Come learn how looping was meant to be!
An explanation of how to implement a socket.io server in Python to serve websocket requests from browsers.
What does it take to add realtime functionality to a truly “web scale” app. The result is the DISQUS realtime system, a highly concurrent system for allowing web clients to subscribe to arbitrary events in the DISQUS infrastructure.
Researchers have been modeling text difficulty for over 50 years. A variety of models have been developed, but few have focused on books for emerging readers (Grades K-2). We used Python for nearly every aspect of the project including collecting data from reading educators, analyzing text features and psychometric data, and creating a predictive model. Tools used include scipy, scikit-learn, pandas, and extensive use of the IPython Notebook which is demonstrated in the talk.
As activity accelerated from just a few thousand activities per day to hundreds of millions, Instagram needed a reliable, scalable messaging infrastructure to distribute work and messages. In this talk, I'll jump from a crash course in the abstract concepts of queueing into the implementation details & hard-earned know-how from experience building massive-scale Python-based systems.
This talk will discuss two open source projects for using Python for music analysis. Sebastian focuses on music theory while Czerny focuses on performance (particularly keyboard playing).
Opening statements from Jesse Noller.
Interest and activity in computing education is on the rise. Other language communities and projects have stepped up to promote early childhood programming. What tools are available for teaching Python? How do they compare?
This talk aims to discuss current trends, examine the current education landscape, question our goals as a community, and discuss opportunities for growing young developers.
PyPy has a version without the Global Interpreter Lock (GIL). It can run multiple threads concurrently. But the real benefit is that you have other, new ways of using all your cores. In this talk I will describe how it is possible (STM) and then focus on some of these new opportunities, e.g. show how we used multiple cores in a single really big program without adding thread locks everywhere.
In this talk I will try to convince you that Python 3.3 is superior to Python 2.7 by going over the differences between Python 2.7 and Python 3.3 along with benchmark information to show where Python 3.3 shines in comparison to Python 2.7 (and vice-versa). If I accomplish my goal, you will walk out of this talk convinced that Python 2.7 is not the final version of Python you want to support.
This talk will give a tour of different profiling techniques available for Python applications. We'll cover specific modules in Python for doing function profiling and line level profiling. We'll show the short comings of such mechanisms in production and discuss how to do sampled profiling of specific functions. We'll finish with statistical profilers that use thread stack interrogation.
A very special guest speaker will talk about solving important "toy" problems with Python.
C++ brought exceptions to mainstream programming; Java goes further with checked exceptions. But are exceptions the one way to report all errors? Scala and Go suggest there is more than one kind of error, so there should be more than one kind of error reporting, and different responses to errors. I’ll show the Scala and Go approaches to the error problem, and how to apply this to Python.
Scrapy lets you straightforwardly pull data out of the web. It helps you retry if the site is down, extract content from pages using CSS selectors (or XPath), and cover your code with tests. It downloads asynchronously with high performance. You program to a simple model, and it's good for web APIs, too.
If you use requests, mechanize, or celery for HTTP, you should probably switch to scrapy.
This talk is a brief summary of Computer Vision tutorial we proposed for PyCon. In this talk we will discuss what computer vision is, why it's useful, what tools exist in the Python ecosystem, and how to apply it to your project. The talk will focus on the SimpleCV library but also touch upon NumPy. SciPy and iPython notebooks.
You're a programmer, you use interpreter and compilers every day (and twice on Sundays!). But how do these things work? Could you build one yourself? What would it take? Where would you start? This talk takes you through the process, from lexing to interpreting, and leaves you ready to start on your own language!
Profiling is hard. Trying to understand what is making your system slow can be very frustrating. Specially when it happens only when your clients are looking, but not you.
After 15 years' combined experience developing software of all types we are done with object inheritance. Come learn about elegant, superior solutions to the problems inheritance claims to adequately solve.
This talk will examine how Python's internal Unicode representation has changed from its introduction through the latest major changes in Python 3.3. I'll present properties of the current Unicode implementation like algorithmic complexity and standard compliance. The talk will also compare Unicode in Python with some other languages. Finally, I'll look into the future of Python's Unicode.
Learn the magic of writing programs that monitor, alter and react to the execution of program code by responding to imports, changes to variables, calls to functions and invocations of the builtins. This talk goes beyond the static world of metaclasses and class decorators.
While Java and C# use static type declarations to eliminate ambiguity, the Python programmer must survive through sheer clarity and consistency in naming variables. We will explore the deep unspoken conventions that the Python community has developed and honed over two decades to make Python code readable and meaningful within the freedom that a dynamically-typed language grants us.
A detailed walkthrough of SQLAlchemy's Session, describing the rationale for its existence, its driving philosophies, and finally a walkthrough of Session lifecycle through the use of an animated diagram. We'll cover how the relational database refers to database rows within a transaction, and how the Session has over the years developed a tight, proxied integration with this lifecycle.
Overview of how the Public Broadcasting Service streams video online. Learn how PBS uses python and other services to provide video streaming online. Talk will discuss lessons learned, explanation of video formats, and experiences with mobile device support. Talk will include recommendations for others to easily adopt similar practices to quickly host their own online video site.
Learn to take better advantage of Python's best features and improve existing code through a series of code transformations, "When you see this, do that instead."
This talk will be a survey of my learning experience adding new endpoint APIs to Twisted, an event-driven networking engine (as a Google Summer of Code project), with a special focus on the analysis of some of the horror stories that surround Twisted. Right from the asynchronous I/O model to Deferreds: if it scares you, we’ll figure a way out and see what the makers of Twisted say when confronted.
In Python 3.2 a new feature was added for concurrent programming - futures. In Python 3.3 generators have been extended to allow returning from a generator with a value. In this talk we'll show how these features can be combined to create a rich and easy to use asynchronous programming model which can be used for creating highly responsive GUI applications or easy async programming.
A treasure trove of data is captured daily by Github. What stories can that data tell us about how we think, work, and interact? How would one go about finding and telling those stories? This two-part talk is a soup-to-nuts tour of practical data visualization with Python and web technologies, covering both the extraction and display of data in illumination of a familiar dataset.
A treasure trove of data is captured daily by Github. What stories can that data tell us about how we think, work, and interact? How would one go about finding and telling those stories? This two-part talk is a soup-to-nuts tour of practical data visualization with Python and web technologies, covering both the extraction and display of data in illumination of a familiar dataset.
From humble beginnings when I first learned Python just to write a search engine to make online help searchable, Whoosh has grown and matured to match the capabilities of much larger projects such as Lucene. This talk will explain simple uses of Whoosh to index and search documents, and demonstrate more advanced features such as faceting.
The greatest piece of software in the world is useless without great documentation, but unfortunately most of us just don't write great docs. This can be fixed, though. Documentation doesn't need to be an afterthought, and doesn't have to be bad, and you, too, can learn how to write good docs and make that an integrated part of your development process.
Have you ever considered submitting a proposal to speak at PyCon but weren't sure how to even get started? This session will walk you through the steps to get there, so that you'll be ready to propose a talk for next year!
Do you want to create a script to warp your photos, scrape your photo archive for images of cats, or create a dart turret that follows your face? This tutorial will show you how to do this and a whole lot more with computer vision. The tutorial will be suitable for all levels of developers and is a great way for python novice’s to explore the world of computer vision.
This tutorial will offer an in-depth experience of methods and tools for the Machine Learning practitioner through a selection of advanced features of scikit-learn and related projects. This tutorial targets developers already familiar with machine learning concepts and scikit-learn who wish to learn how to apply those tools on larger datasets using multicore machines or distributed clusters.
This tutorial will offer an introduction to the scikit-learn package and to the central concepts of Machine Learning. We will introduce the basic categories of learning problems, and explore practical examples based on real-world data, from handwriting analysis to facial recognition to automated classification of astronomical images.
In this tutorial we shall review three different and distinct approaches to parallel computing which can be used to solve problems in all manner of domains, including machine learning, natural language processing, finance, and computer vision. The first two approaches to be reviewed will be embarrassingly parallel in nature while the third approach will leverage fine-grain parallelism.
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!
Projects can succeed or fail because of their documentation. When you write, you need to concentrate on your prose—not on how to get text rendered, indexed, highlighted, and cross-referenced. The Sphinx documentation framework exists to make these parts easy so you can focus on writing. This tutorial will use hands-on exercises to teach you to write, theme, and deploy documentation using Sphinx!
The concept: run through the official Django tutorial, but with full TDD.
So, Browser-based testing with Selenium + in-depth unit-testing;
TDD Discussions: what to test, what not to test;
Aimed at beginners (new to Django, TDD or Selenium)
Come prepared! you’ll need Git, Firefox, Python2.7, Django1.4 and Selenium installed
Writing tests for networking code presents special challenges, which Twisted tries to address. In this tutorial you will implement a toy HTTP server using test-first methodology: first the tests are written, and then the code. You will learn how to write well-tested network applications using Twisted, and the general virtues of doing test-driven development.
This tutorial will walk the attendees through development of a simple game using PyGame with time left over for some experimentation and exploration of different types of games.
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.
Some of the most significant changes in Python 3 are related to metaprogramming. In this tutorial, I'll cover decorators, class decorators, descriptors, and metaclasses. However, the focus will be on idioms and examples that are only made possible using features that are unique to Python 3. For instance, making free use of function annotations, signatures, new metaclass features and more.
This tutorial is for software developers who've been using Python with success for a while 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 often confuse folks, and it demystifies a number of language features that are sometimes misunderstood.
Python has long played a role in analyzing large scale data. From tightly-knit super-computers running MPI-based applications to heterogeneous clusters woven together with scripts, Python has had a role to play in making it easier to processes data. This tutorial will cover the tried and true techniques as well as introduce new trends.
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.
You just finished the Django tutorial. What do you do now? You wire in Django Packages! Django is part of an ecosphere of over 20,000 packages, which can be leveraged to great effect. This tutorial wil teach the evaluation, use, and extension of third party Python and Django applications in your projects. This tutorial will be a lecture with a lot of detailed and annotated code examples.
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: numpy, pandas, and pytables.
A recommendation engine is a software system that analyzes large amounts of transactional data and distills personal profiles to present its users with relevant products/information/content.
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.
Social Network data is not just Twitter and Facebook - networks permeate our world - yet we often don't know what to do with them. In this tutorial, we will introduce both theory and practice of Social Network Analysis - gathering, analyzing and visualizing data using Python, NetworkX and PiCloud. We will walk the attendees through an entire project, from gathering data to presenting results.
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 some Python have a head start.
We will use material from Think Stats: Probability and Statistics for Programmers (O’Reilly Media), and Think Bayes, a work in progress at http://thinkbayes.com.
Learn how to deploy an python application to the cloud in under 45 minutes. In this hands-on workshop, you will get understanding the basics of cloud architecture (IaaS, PaaS, and SaaS), learn how to push your python application from github to the cloud in under 45 minutes, make it available for others to deploy, and integrate monitoring services.
Why do pianos sound different from guitars? How can we visualize how deafness affects a child's speech? These are signal processing questions, traditionally tackled only by upper-level engineering students with MATLAB and differential equations; we're going to do it with algebra and basic Python skills. Based on a signal processing class for audiology graduate students, taught by a deaf musician.
Django is a popular, powerful web framework for Python. It has lots of "batteries" included, and makes it easy to get started. But all of the power means you can write low quality code that still works. Effective Django means building applications that are testable, maintainable, and scalable. This tutorial will introduce attendees to Django with an emphasis on testing, maintenance, and scale.
Although Python programs may be slow for certain types of tasks, there are many different ways to improve performance. This tutorial will introduce optimization strategies and demonstrate techniques to implement them. Another of the objectives of this course is to give participants the ability to decide what might be the optimal solution for a certain performance problem.
Together we will build a basic social bookmarking application using Django!
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.
All materials for this tutorial can be found on our github repository
What's more fun than learning Python? Learning Python by hacking on public data! In this tutorial, you'll learn Python basics by reading files, scraping the web, building data structures, and analyzing real world data. By the end, you will have set up your Python environment, installed some useful packages, and learned how to write simple programs that you can use to impress your friends.
Pyramid has emerged as a fast, modern, lightweight web framework. This lively, hands-on tutorial covers a little about a lot: practical introductions to the most common facilities. Fun, fast-paced, and most certainly not aimed at experts.
Accelerators are the hottest tool in high performance computing but applicable to all fields. We present how to use Python's amazing ability to abstract away the low-level boiler-plate code turning accelerators from an exotic curiosity to a daily tool.
Are you a Python-curious programmer? Learn by writing your first project! You'll build a complete quiz creation web application. We will cover topics from data structures and classes, to debugging and testing.
Before the day of the workshop, you will need to have Python 2.7, CherryPy, IPython, and Jinja2 installed. Alternatively, you may arrive at the venue an hour early to receive assistance.
Tutorial participants will build a real-world web application rapidly using lightweight tools, such as Flask, Jinja2, MongoDB, and Twitter Bootstrap. By building the apps from scratch using tools whose size matches the task at hand, participants will be able to churn out working applications by the end of the tutorial that can solidify their Python and modern web dev knowledge.