PyTexas

PyTexas 2011, the fourth annual free Python programming conference for Texas and the surrounding region, will take place Saturday September 10 and Sunday September 11, 2011 at Texas A&M University in College Station, Texas.

Conference Schedule

Schedule Print View

Saturday

Registration, catered breakfast, open space scheduling, and socializing
Generic Speaker
8 a.m. to 9 a.m. (Track 1 Malina Auditorium, 9/10, 0800)
The title says it all. Start your PyTexas weekend off right by registering and enjoying a breakfast provided by the TAMU College of Architecture.
Python Teach-In / Install Workshop
PyTexas Mentors
9 a.m. to 11 a.m. (Track 3 Room 104, 9/10, 0900)
Connect with mentors to learn about Python, whether you're just starting out or are trying to extend your existing knowledge.
Sponsor Expo
PyTexas Sponsors
9 a.m. to 11 a.m. (Track 4 Room 113, 9/10, 0900)
Stop by to check out PyTexas 2011's amazing sponsors.
Python Teach-In / Install Workshop
PyTexas Mentors
9 a.m. to 11 a.m. (Track 2 Room 126, 9/10, 0900)
Connect with mentors to learn about Python, whether you're just starting out or are trying to extend your existing knowledge.
Python Teach-In / Install Workshop
PyTexas Mentors
9 a.m. to 11 a.m. (Track 1 Track 1, 9/10, 0900)
Connect with mentors to learn about Python, whether you're just starting out or are trying to extend your existing knowledge.
Introductory Remarks and Keynote
Jeff Rush
11 a.m. to noon (Track 1 Malina Auditorium, 9/10, 1100)
Join us for a keynote presentation by Jeff Rush.
Lunch
Anyone
noon to 1 p.m. (Track 1 Malina Auditorium, 9/10, 1200)
Go eat!
Prizes
Brad Allen
1 p.m. to 2 p.m. (Track 1 Malina Auditorium, 9/10, 1330)
Come see if you've won any of the prizes provided by our sponsors.
Sponsor Expo
PyTexas Sponsors
2 p.m. to 5 p.m. (Track 4 Room 113, 9/10, 1400)
Stop by to check out PyTexas 2011's amazing sponsors.
Simplify your (Python) Life
Sameer Khan
2 p.m. to 3 p.m. (Track 1 Malina Auditorium, 9/10, 1400)
We'll go over some intermediate to advanced topics and consider pros and cons of choosing the simpler approach vs. the possibly more complicated or redundant one. The aim is to reduce the number of language APIs and constructs most programmers have to carry in their head to a smaller and more coherent set. Along the way some best practices will also be discussed that are at a higher level than things that can be flagged by automated syntax checking tools such as pylint, pyflakes, etc.
Following are the topics we'll cover: * Language/API design and how warts can creep into even well designed products over time. * "Worse is better" approach may be good enough ("satisficing"). * An eclectic mix of language constructs that usually trip newcomers--and sometimes even experienced programmers--which we'll survey: # __new__ # __del__ # __call__ # __slots__ # classmethod vs. staticmethod # decorators (guidelines for writing your own) # class decorators vs. metaclasses # delegation via getattr # Interfaces and getattr * We'll see how delegation and interfaces tie into the thinking behind GoF Design Patterns.
Custom Decorators for Authentication and Authorization
Jason Zylks
2 p.m. to 3 p.m. (Track 2 Room 126, 9/10, 1400)
To provide access to enterprise directory data and services to developers at Texas A&M University, we have implemented a set of RESTful web services, using Django as our framework. Because these services include access to protected data, all web service clients must authenticate and be authorized to access a particular service. In order to implement the logic for making authentication and authorization decisions in one place, and cleanly apply it to any view, we wrote a custom decorator. This talk will cover the basic concepts behind decorators, how to write a decorator, and walk through our implementation of a decorator for authN/authZ.
An introduction to writing decorators, with an example of how they can be used to handle common authentication and authorization actions for a set of web services.
Programming a Simple Game in Python
Greg Lindstrom
2 p.m. to 3 p.m. (Track 3 Room 104, 9/10, 1400)
In this talk we will create a simple hi/lo guessing game using Python. We will start with a blank screen and add features one by one until we run out of time. Along the way we will discuss various data structures (list, tuple, dictionary, set) and loops (for, while, etc.). This is a hands-on session, so bring a laptop and lots of questions. We will be programming in Python 2.x, though modifying the code to run under 3.x will not be difficult.
This class is intended for people recently introduced to Python and/or programming. If you know how to write and run a simple program ("hello_world.py") you have the skills needed to participated in the class.
Daemon Slaying! Or, Unix Daemons in Python for fun and profit!
Walker Hale
3 p.m. to 4 p.m. (Track 2 Room 126, 9/10, 1500)
Daemons are those pieces of software in Unix (including Linux and Mac OS X) that run in the background and typically start automatically during system boot. Times when you might want a daemon include ... * Monitoring an "inbox" directory in situations where a cron job is not appropriate * Managing (possibly multiple) instances of software according to business rules Although most daemons are written in C, Python is a great alternative. Background reading: [[http://en.wikipedia.org/wiki/Daemon_(computing)#Types_of_daemons|Wikipedia article on Daemons]]
Learn the in's and out's of creating Unix Daemons in Python. Walker Hale will walk you through several examples, gotchas, and tips and tricks.
Cassandra for Python Developers
Tyler Hobbs
3 p.m. to 4 p.m. (Track 1 Malina Auditorium, 9/10, 1500)
Apache Cassandra is an open source, distributed (NoSQL) database. This will give a high level introduction to Cassandra and its data model; it will detail the features of pycassa, the Python client library for Cassandra, and how to interact with Cassandra through it.
Being non-relational, Cassandra's data model is fundamentally different from that of a relational database. In addition, it uses an RPC based API rather than a query language. On top of that, Cassandra is a distributed database, so the client must be aware of and interact with multiple nodes in the cluster. All of these attributes of Cassandra make the client libraries a different experience. Fortunately, the Python client library is the easiest way to use Cassandra. This talk will start with a high level overview of the clustering model of Cassandra then its data model. A large portion of the talk will cover the pycassa methods that interact with the data model of Cassandra, i.e. inserting, fetching, and removing data. A small amount of time will be dedicated to describing connection pooling in pycassa -- how it handles node failures, distributes requests, etc. The final 10 minutes will be devoted to Q&A.
Python in the Classroom
Panel Speakers
4 p.m. to 5 p.m. (Track 2 Room 126, 9/10, 1600)
Join us for a panel discussion with TAMU faculty and Python community members.
Getting Started with PyMongo
Jason Zylks
4 p.m. to 5 p.m. (Track 1 Malina Auditorium, 9/10, 1600)
In the last month, we've started an effort to aggregate our logs so we can do some real-time, holistic log analysis. Among other things, we are tracking failed logins across all points of entry, identifying possibly compromised accounts (simultaneous logins from multiple IPs, geographically disparate logins), and identifying high-volume mailers across multiple mail relays. The talk will include an introduction to MongoDB (NoSQL, data structures, querying, indexing, differences from relational databases, etc); some important performance and reliability features like its support for replica sets, sharding, and map/reduce; and some very cool features like GridFS and geospatial indexing. All of this, with the exception of database configuration, will be demoed with MongoDB's python client.
A look at how to get started with MongoDB using Python. The talk will cover basic concepts, a brief walkthrough of some more advanced features, and how Texas A&M is using MongoDB and Python to solve some large data problems.
Robot Framework QuickStart & Demo
Martin Taylor
4 p.m. to 5 p.m. (Track 3 Room 104, 9/10, 1600)
A brief introduction to the Open Source test automation framework: Robot Framework (http://code.google.com/p/robotframework/). The demos will include automated tests of the simple QuickStart command line "login" app, the Windows calculator using the AutoItLibrary (http://code.google.com/p/robotframework-autoitlibrary/) and a classroom set of TI-Nspire Color Calculators with WiFi modules (http://education.ti.com/calculators/products/US/home/).
Lightning Talks
Lightning Talk Speakers
5 p.m. to 6:30 p.m. (Track 1 Malina Auditorium, 9/11, 1700)
Comprised of five minute presentations crammed together back to back, this event is frequently one of the most popular and entertaining events at PyCon and PyTexas.

Sunday

Breakfast Sponsored by TAMU College of Architecture
Anyone
8 a.m. to 9 a.m. (Track 1 Malina Auditorium, 9/11, 0800)
Enjoy another breakfast provided by the TAMU College of Architecture.
Open Space
Anyone
9 a.m. to 10 a.m. (Track 1 Malina Auditorium, 9/11, 0900)
Open Space slots in the schedule allow you to create ad hoc discussions or informal presentations of your own choosing, unconference style (similar to BarCamp). So make PyTexas yours by using an Open Space to create an event on whatever topic you wish.
Bruce Eckel has created a screencast (http://www.youtube.com/watch?v=aD3S0wlbek0) explaining the PyCon Open Space concept, what they are, how they work, and how to make the most of your time. It is a must see.
Robot Framework Tutorial
Martin Taylor
9 a.m. to noon (Track 3 Sun: 09:00:00 - 12:00:00)
== Student Preparation If you're planning to attend the half-day tutorial on Robot Framework, it would be useful if you also attended the introductory presentation. If you can't make the Saturday afternoon introduction, then you can get the same information by working through the [[http://code.google.com/p/robotframework/wiki/QuickStartGuide|on-line Quick Start Guide]]. == System Requirements * Python 2.x ** I recommend [[http://www.activestate.com/activepython/downloads|ActiveState Python Community Edition]] * [[http://www.wxpython.org/download.php|wxPython]], Unicode version appropriate for your platform and Python version ** Here are some [[http://wiki.wxpython.org/InstallingOnUbuntuOrDebian|instructions for installing on Ubuntu or Debian]] * A PDF Reader for PDF files, such as the [[http://get.adobe.com/reader/|Adobe Reader]] ** Required for viewing slides * [[http://wiki.pytexas.org/FireFox|Firefox]] web browser ** Internet Explorer is not very friendly with reports generated by Robot Framework ** I recommend [[http://www.mozilla.org/en-US/firefox/all-older.html|Firefox 3.6.21]], because that is what the instructor tested with and can support. * [[http://code.google.com/p/robotframework/|Robot Framework 2.6.1]] * [[http://code.google.com/p/robotframework-ride/downloads/list|Robot Framework IDE (RIDE) 0.38.1]]
Robot Framework is an Open Source test automation framework implemented in Python. Martin Taylor has an introductory presentation on Saturday at 4pm as well as this half-day tutorial planned for Sunday morning. See the Abstract (just click on this text) for student preparation and system requirements.
Asynchronous Web Development with Tornado
Josh Marshall
10 a.m. to 11 a.m. (Track 1 Malina Auditorium, 9/11, 1000)
Web frameworks like Django, Flask, etc. are great for most traditional web sites. However, there is a growing need to produce web applications that are responsive to external "events", whether a response from Twitter's API or a new message in an online chat room. Newer, non-blocking frameworks like Tornado seek to address this in a scalable manner. This talk will briefly introduce non-blocking principles and patterns, and move quickly into an overview of the library, as well as use cases and anti-use cases. A portion of the time will also be spent pointing out community libraries that are building on Tornado's foundation. Outline: # Introduction ## Why another framework? ## Intro to Asynchronous Design # Overview of a Tornado project ## a. Application ## b. Basic (blocking) Request Handlers ## c. Templates ## d. Asynchronous Handlers ## e. To block or not to block # Batteries included ## Auth module ## Options module ## Database ## UIModules ## Security # Community ## a. Tornad.io ## b. No-SQL libraries ## c. Twisted integration ## d. Torn Admin # Q&A
An introduction to non-blocking web development with Tornado, an open-source server and simple framework from Facebook/FriendFeed.
Logging De-Mystified! Basics to Advanced!
Walker Hale
10 a.m. to 11 a.m. (Track 2 Room 126, 9/11, 1000)
Walker Hale will explore the standard Python Logging Module and provide a tour from the basics through intermediate examples, and touch on advanced logging strategies. Do you write programs that run longer than 5 minutes? Would you like to leverage Python's excellent logging system more fully? Even if you don't use Python for your long-running processes, you will learn valuable and widely-applicable logging techniques.
This talk covers the Python Logging Module!
Using Message Queues for Distributed Processing
Jason Zylks
11 a.m. to noon (Track 1 Malina Auditorium, 9/11, 1100)
About six months ago we moved our account provisioning process from a monolithic Perl script to a set of distributed, interconnected python scripts. By using message queues (specifically beanstalkd) to pass messages between the processes, we were able to build a system that was much faster, more reliable and more flexible. I will walk through the process that led us to choose beanstalkd, look at some alternatives that are available, and describe some use cases for message queues.
Message queues provide a reliable, language agnostic method for sharing data between processes for distributed processing, and to manage work flows. This talk will examine the role of message queues in a redesign of the provisioning process for Texas A&M University's enterprise directory.
virtualenv, pip, and virtualenvwrapper
Jon Nials
11 a.m. to noon (Track 2 Room 126, 9/11, 1100)
virtualenv, pip, and virtualenvwrapper are vital tools for any Python developer. This beginner-level presentation will introduce each of these.
Lunch
Anyone
noon to 1:30 p.m. (Track 1 Malina Auditorium, 9/11, 1200)
Go eat!
Jeff Rush Presentation
Jeff Rush
1:30 p.m. to 2:30 p.m. (Track 1 Malina Auditorium, 9/11, 1330)
Voted on by the PyTexas community, this talk is guaranteed to be insightful and informative. We just don't know what it is yet.
Programming a Simple Game in Python
Greg Lindstrom
1:30 p.m. to 2:30 p.m. (Track 2 Room 126, 9/11, 1330)
If you missed Greg Lindstrom's first talk on programming a simple game in Python, check out this one. This time, you'll be building a "Wheel of Fortune"-style game.
The Magic of Metaprogramming
Jeff Rush
2:30 p.m. to 4 p.m. (Track 1 Malina Auditorium, 9/11, 1430)
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 into the dynamics of tracepoints.

PyTexas 2011

Platinum Sponsors

Gold Sponsors

Silver Sponsors

Prize Sponsors

Partnerships