Pinax (http://pinaxproject.com) is a platform built on top of Django (http://djangoproject.com) for rapidly developing websites. This tutorial/workshop will instruct on Pinax installation, creating projects, leveraging applications, modification of templates, Pinax-specific settings, media handling, deployment, and much more. The goal of the tutorial is to provide the attendees with the solutions to real world obstacles. The presenters are Pinax core developers and will run through lots of small, practical hands-on examples. We will take questions throughout the tutorial.
The first half will cover:
The second half:
This part will be a workshop. We'll spend the next half helping people with their personal projects, and will even have a few stock projects we can toss at people that either already are open source or could be released as open source. We won't write your project for you, but we will provide advice, guidance, and some elbow grease in getting things to work. If someone asks for something that we think the rest of the class could benefit from, we'll show them how to do it on the projector and then everyone benefits.
A fun and interactive tour through what's new in Python 3. We'll walk you through the features, differences, and porting challenges encountered while updating the examples in the Python Cookbook to use Python 3. Got a challenge? Bring it to the tutorial! We'll take on all sorts of examples through a lively mix of interactive demos, examples, and discussion. Participants should install Python 3 on their computer and plan to play along.
Python makes it easy to develop great web applications. Amazon Web Services (AWS) makes it easy to deploy scalable, fault tolerant applications. In this tutorial we will focus on taking a provided Django web application and deploying it to AWS through a series of hands on exercises using Amazon's load balancing, auto scaling, content delivery and relational database services.
In this tutorial we will start with a demo Django application that we will use for the rest of the exercises. No previous experience with Django will be required.
Exercise 1: deploy the demo Django application to a single EC2 node using MySQL backed by an EBS (Elastic Bloc Storage) volume.
Exercise 2: move the database to RDS (Relational Database Service) and scale out reads using RDS read replicas.
Exercise 3: add a second node for the web application and place them into ELB (Elastic Load Balancer).
Exercise 4: move the static content into S3 and CloudFront.
Exercise 5: create an Auto Scaling group to automatically adjust the fleet of web servers based on load.
After these exercises the student will be left with a set of automated recipes for provisioning and deploying standard Django applications to AWS in a scalable, fault tolerant manner.
Students will be need to bring their own laptop and have a current AWS account including signing up for the following services: EC2, S3, CloudFront and RDS. Usage of AWS will be billed to the student by Amazon, but it should only be a few dollars for the 3 hour exercise. Students using Windows will need to have Putty installed for SSH access.
This talk explains modern techniques that any developer can use to support multiple versions of Python. You probably already have a massive test suite using a tool like nosetests, py.test, hand rolled unittest, etc. This talk will focus on using the tox command line tool to build and run your tests in all versions of Python, from 2.4 to Jython and, most importantly, Python 3.
tox lets you set up isolated virtual environments to test your module's deployment and compatibility with all major versions of Python. It's easy to install and is flexible enough that it probably already supports your existing test suite. With one simple command you can execute your test suite in each version of Python, you can build its documentation with Sphinx, and get a nice printout of the results. It has also been designed from the ground up to integrate into continuous integration (CI) tools like Jenkins.
Using practical examples, this talk will show you how to toxify your existing test suite and trick it out with the tox.ini config file. You'll also see how to leverage a Jenkins matrix build so that each code checkin will run tests in all versions of Python and report detailed failures.
Your app supports Python 3, right? No? Tox is the best way to develop in parallel with 2 and 3. We'll go over how to set up tox for that.
This talk is split into three parts. The first will look at the different options in how to handle Python 3 porting. Do you need to support Python 2, or just port once? Should your code run unmodified or via 2to3, etc. It will in depth take up the benefits and problems with each strategy to let you choose, and also give quick examples of how to port with each strategy.
The second part looks at how you should prepare before porting, and things you can do right now to improve your code and make porting easier, even though you don't plan to port yet.
The third part will take up the most common problems in porting, and how you can solve them.
by Chris Perkins
I will introduce myself, explain what my credentials are as speaker, and what the purpose of the panel is I will then introduce each one of the speakers, and explain a bit about why they have been invited as a panelist. I will then start in on my "Starter Questions" and after the first few are answered, I will open the questions up to #wsgipanel on Twitter, selecting from my starter questions and what comes through on the feed.
by Vern Ceder
Combining Python with inexpensive robots is a very effective way of teaching programming at the middle and high school levels. Since Python is easy to understand a constructivist approach is possible - students learn by creating and running simple programs, observing the results, and then modifying their code to fix bugs and add functionality.
by Rian Hunter
Dropbox is a startup company located in San Francisco that has probably one of the most popular file synchronization and sharing tools in the world, shipping Python on the desktop and supporting millions of users and growing every day. Dropbox uses Python on the client-side and server side as well.
This talk will give an overview of the first two years of Dropbox, the team formation, our early guiding principles and philosophies, what worked for us and what we learned while building the company and engineering infrastructure. It will also cover why Python was essential to the success of the project and the rough edges we had to overcome to make it our long term programming environment and runtime. Finally it will give some insight into the future of Dropbox and where the project is going.
by Mike Pirnat
Believe it or not, but you can write pretty horrendously awful code even in a language as elegant as Python. Over the years, I've committed my share of sins; now it's time to come clean. Step right up for a tour of twisted, evil, and downright wrong code, and learn some strategies to avoid writing criminally bad code--if you dare!
by Gavin M. Roy
Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. It is not only a web server but it is a light-weight, use only what you need, web development framework. In this talk we will review the current state of the Tornado project, review the features Tornado provides and give examples of how to implement asynchronous web applications in Tornado.
Topics covered will include:
Since launch Django Packages (http://djangopackages.com) has become the place to find and compare apps, frameworks and projects produced by the Django Community. Through the use of public APIs, Django Packages constantly fetches hard data from PyPI, Github, and Bitbucket, aproviding a powerful mash-up of real-world data on the volume of usage of a particular package. At a glance you can see which package is the most downloaded, which is the most used, and which has seen ongoing development.
The project is open sourced on Github, with all non-user data accessible available via the API. Django Packages was conceived and and launched in the 2010 Django Dash. Since launch it has seen features added incrementally and was a frequently mentioned project at the 2010 DjangoCon and was #1 on Hacker News on Sunday, December 5, 2010. It's purpose is to provide a place for Django Developers to submit, research, and review apps, projects, and frameworks.
by Zed Shaw
Zed A. Shaw In this talk I will demonstrate how to use ZeroMQ with Python (and others) to do really advanced or even weird network architectures. You'll see Python talk to other languages, handle HTTP, JSON, XML, WebSockets, encode videos, chat messaging, etc. All in a short talk with only code, no diagrams. You should know ZeroMQ already.
Disqus, one of the largest Python applications on the web, will explain how they deal with scaling complexities in a growing startup. Founded in 2007, Disqus maintains a small engineering team reaching over 400 million users a month. Being powered by Python has allowed quick iteration of the application, without sacrificing code quality and performance. The talk will cover key parts of the architecture and development process at Disqus, including hardware, databases, and common bottlenecks.
A lot of people want to use Python, but their customer, management, school, government, or organization won't let them. Python is a great tool, but it can be challenging to get in the door. This panel will explore how companies and individuals have successfully introduced Python, what tools are available to sell Python, and what pitfalls there are to avoid.
Five panelists have been chosen from a broad spectrum of individuals including academic, government, for-profit organizations, and non-profit organizations. Possible questions will include:
The poster session provides a way of presenting that encourages more one-on-one communication between the presenter and the audience. This year we have over 30 posters covering a wide spectrum of Python topics.
9th–13th March 2011