- Developer Tools
Shannon Yelland, January 26, 2010
In a few weeks, some Activators (Trent, Sridhar and Mike) will be leaving Vancouver and all its Olympic buzz to go to one of the best conferences for Python coding. It is called PyCon 2010 and it is in Atlanta, Georgia from February 17-25, 2010 (main conference days are Feb 19-21).
You may ask if the guys here are sad leaving Vancouver, BC during the Olympics. But I would have to answer "no way!". They are stoked about all the great tracks at PyCon and shared their favorites below.
Oh ya, if you are going to PyCon, make sure you stop by ActiveState's booth (booth #107) and meet the ActiveState gang. (Psst..There is a special coupon code for PyCon attendees - $50 off Komodo IDE, use code "pycon50")
On Twitter? We started a Twitter list for all people attending or talking about PyCon - feel free to follow it to keep up on what is happening during the conference: http://twitter.com/activestate/pycon-2010.
Out of the ninety-five plus topics for the 3 days - here are the gangs twenty-nine favorite picks for PyCon:
Friday Feb 19:
- IronPython Tooling (# 67 with Dino E Viehland) - One of the most popular requests for the IronPython team is tooling support. During this talk I’ll show you some of the existing tools available to help create IronPython applications. I’ll also look at the latest IronPython features which can help you debug, profile and improve your applications. I’ll also compare and contrast these with the solutions available for CPython that you may already be familiar with.
- A Short Pinax Tutorial (#15 with with Daniel Greenfeld) - Pinax (http://pinaxproject.com) is a platform built on top of Django (http://www.djangoproject.com/) for rapidly developing websites. This tutorial will show you how to install Pinax, create a project, work with a Group application and a Group Aware application, and finally how easy it is to modify templates.
- Deployment, development, packaging, and a little bit of the cloud (#180 with Ian Bicking) - In this opinionated talk Ian will discuss his thoughts on packaging, web application deployment, configuration, tools to manage environments across both development and production, the tensions between Linux packaging and Python packaging, just a *little* about virtualenv, pip, buildout, and Distribute, and a bit more about a new tool toppcloud, and the modest but important role cloud computing has in this process.
- The state of Packaging (#63 with with Tarek Ziadé) - The Python Package Index (PyPI) became over the last years an essential tool to share your Python programs. As long as you use Distutils standards, you can register and upload your work at PyPI in a few seconds. This talk will detail the biggest issues that need to be solved, and the work that is being done. It will end up with a presentation of the Distutils roadmap, and an overview of the Distribute project, the Setuptools replacer.
- How does Enthought distribute packages? (#108 with Dr. Ilan Schnell) - This presentation gives an overview of how packages are build and distributed for different operating systems in the Enthought Python Distribution.
- Cross platform application development and distribution (#116 with Mr. Stani Michiels, Ms. Nadia Alramli) - You think Python gives you native cross platform applications for free? Think twice. Are you interested in distributing your application to other platforms but not sure how?
- Powerful Pythonic Patterns, Alex Martelli (#186 with Alex Martelli) - In this talk, I analyze some of my favorite pattern families -- e.g., Template Method and its variants, Dependency Injection and its ilk, Callback and friends -- in a highly Pythonic context. Non-pattern Idioms, and Patterns that aren't really Design Patterns but rather Architecture or Methodology ones, also make cameo appearances.
- Python in quantitative finance (#158 with with Wes McKinney) - This talk will show how Python and libraries such as NumPy were instrumental at AQR for building a robust research platform for prototyping and implementing quantitative trading models. We will discuss many different tools, including pandas, a new open source library designed for analyzing common financial and economic data sets.
- How Are Large Applications Embedding Python? (#6 with with Peter Shinners) - An examination of the ways Python is being embedded and deployed in the large applications used for computer graphics; like Renderman, Maya, Houdini, and Nuke.
- Using Django in Non-Standard Ways (#135 with with Mr. Eric Florenzano)- If you've been using Django for any amount of time, you've probably learned some pretty standard practices on how to use it. This talk aims to shatter those conceptions and teach you alternative ways that you could use Django.
Saturday Feb 20:
- Demystifying Non-Blocking and Asynchronous I/O (#164 with Peter A Portante) - We will first define what blocking, non-blocking, synchronous and asynchronous I/O are under the POSIX interfaces. We'll cover how and when these four types of I/O should be used, and their individual effects on a Python based application. The notion of concurrency will be discussed by comparing a simple threaded blocking I/O application to a simple single threaded non-blocking I/O application by walking the attendees through the python code for those applications.
- Cooperative Multitasking with Twisted: Getting Things Done Concurrently. (#11 with David A Reid) - Twisted is a framework for building asynchronous networking applications. It also provides powerful tools for writing non-blocking non-network code, tools which are vital for building real large scale applications in Twisted. I hope to give a comprehensive overview of these tools to help the intermediate Twisted user get things done concurrently.
- Distributed Programming with Pyro (#7 with Alfredo Deza) - Create distributed code that communicates trivially over the network with objects that answer as if they were local. Send, receive and manage data with this powerful library. Presentation will include real life example for restarting a load balanced web instance running two Apache web servers and a MySQL database. Although Python allows you to perform simple network operations, Pyro creates a nice layer between core networking essentials and your code, allowing you to concentrate more in developing your application.
- Unladen Swallow: fewer coconuts, faster Python (#73 with Collin Winter) - Unladen Swallow is a Google-sponsored optimization branch of CPython. This talk will cover Google's motivation for Unladen Swallow, the approach being taken, results so far, challenges faced, cancers cured and plans for merger with CPython.
- Understanding the Python GIL (#82 with David Beazley) - The Python Global Interpreter Lock (GIL) is a frequent source of debate and concern for programmers working with threads and concurrency. Although most Python programmers generally know that the GIL restricts Python's ability to utilize multiple CPUs, few know the inner details of how it actually works and how it impacts applications. This talk will dive into the inner workings of the GIL like you've never seen before. Topics include details about the execution of the Python interpreter, thread implementation, the GILs surprising behavior on multicore CPUs, and more.
- The other kind of testing (#185 with Bob Ippolito) - Software testing helps verify that your code meets a specification, but not how to improve the specification. How can you stay competitive when most of the big names today are using analysis to guide product evolution? Level the playing field and make better products by learning how to design experiments, collect data, make measurements, and optimize your specifications.
- 508 and You: Taking the Pain out of Accessibility (#119 with Ms. Katie A Cunningham) - Thinking about scoring a government contract, but haven't heard of 508 compliance yet? Interested in making your site accessible to people with disabilities? Never thought about compliance, but want to know why it's a good idea?
- Powering the real-time web with Python: PubSubHubbub on App Engine (#173 with Brett Slatkin) - PubSubHubbub is an open protocol that turns Atom and RSS feeds into real-time streams. I built the reference Hub run by Google using Python and App Engine. In this talk you will learn how I made the real-time system work: An intro to the protocol, asynchronous processing on App Engine, fault-tolerance, and scalability.
- Threading is not a model (#187 with Joe Gregorio) - We have many concurrency/multiprocessing capabilities at our finger tips, such as threads, processes, locks, mutexes, select, epoll, transactional memory, etc. But none of them are a model for multiprocessing, they are only tools on which you would build an implementation of such a model. So what are the models we can choose from? How would they be implemented in Python? And why may the GIL actually be a good thing?
- Tests and Testability, Ned Batchelder (#188 with Ned Batchelder) - Testing software is difficult. Large complex systems don't lend themselves naturally to automated testing. This isn't just because they are large, it's because developers often don't consider how testable their code is. Testability is as important as all the other -ilities in your code (portability, maintainability, efficiency, etc). I'll discuss specific examples to demonstrate how code can be made more testable. Mocks, dependency injection, and crisp API design are just a few of the techniques that can improve your code's testability and make you a happier person.
- Why not run all your tests all the time? A study of continuous integration systems.(#160 with Dr. C. Titus Brown) - There are an increasing number of continuous integration (CI) systems available for use by Pythonistas, but no clear guide to how to choose a CI system for your project. I will examine the architecture choices made by buildbot, bitten, Hudson, continuum, CruiseControl, DART, and pony-build, and discuss the configuration and customization of several of these systems for Pythonic needs, as well as give short demos (for buildbot, bitten, Hudson, and pony-build).
- What We've Learned From Building Basie (#85 with Dr. Greg Wilson) - Since September 2008, teams of undergraduates from half a dozen different universities have been building a Django-based replacement for Trac called Basie. This talk will present what they've accomplished and discuss what we've learned about getting junior developers who are juggling half a dozen projects at once to build production-quality code.
Sunday Feb 21:
- Eventlet: Asynchronous I/O with a synchronous interface (#141 with Donovan Preston) - Network servers which scale to thousands of simultaneous connections have always been possible in Python thanks to libraries such as asyncore and twisted. More recently, FriendFeed's new open source project Tornado has stirred debate in this area. These libraries allow a Python process to scale to many simultaneous connections using non-blocking I/O (also known as asynchronous I/O). However these projects require that the programmer learn a custom API to abstract away the complexities of using a callback-style API.
- Scaling Python webapps from zero to 50 million users - A top-down approach. (#134 with Mr. Jinal Jhaveri )- LOLapps is one of the top providers of social games and user generated applications with 50+ million monthly uniques on Facebook, MySpace and Bebo. This session will focus on the top-down approach we took to scale our webapps for millions of users.
- New *and* Improved: Coming changes to unittest, the standard library test framework (#52 with Mr. Michael J Foord)- In Python 2.7 and 3.2 a whole bunch of improvements to unittest will arrive. unittest is the Python standard library testing framework and for several years it has languished whilst other Python testing frameworks have innovated. Some of the best innovations have made their way into unittest which has had quite a renovation. This talk will go through the major changes, like the new assert methods, test discovery and the load_tests protocol, and also explain how they can be used with earlier versions of Python.
- Modern version control: Mercurial internals (#113 with Dirkjan Ochtman) - In this talk, I'd like to talk a bit about Mercurial. This will not be a beginner-level talk on DVCS or hg; it aims to be a higher-level discussion of the concepts employed in Mercurial. After having discussed these, I'd also like to compare Mercurial and git based on UI, performance and underlying concepts.
- Hg and Git : Can't we all just get along? (#154 with Mr. Scott Chacon) - There is a fair amount of unnecessary animosity between developers about version control systems, especially between Mercurial and Git users. In reality, these two systems are very similar and can actually cooperate pretty well. In this talk we will show just how similar Git and Mercurial are, look at some of their technical differences, and see how they can work together by looking at hg-git, the bidirectional Git/Mercurial bridge, implemented in Python.
- PLY and PyParsing (#93 with Andrew Dalke) - Got a text parsing problem? In most cases using string manipulation and regular expressions will solve it for you. But when the input is complex, try reaching for a parsing system to help out. In my talk I'll show the basics of how to use both systems for several different format parsing tasks, of different complexity. This will let you see how to use the parsers and understand more of the tradeoffs between complexity, readability, error handling, and performance.
To see the full schedule, visit this page on PyCon.
The team is also going to be handing out Coupon Codes for $50 off Komodo IDE (it's "pycon50") to all PyCon attendees...it is valid now too!
Want to share what tracks you are attending at PyCon? Share away below in the comments!
Share this post:
Tags: activestate, pycon 2010, pycon atlanta, pycon event, python coding, python conference, python programming