It is known that from 11 to 13 March in Atlanta (Georgia) the conference of developers PyCon 2011 was held.
Below in the article will be a summary of most of the reports with links to video (English). For ease of reference, reports are categorized.
The topics of the reports were quite extensive, so this article can be useful not only to the pytonists, but to everyone else who is lazy and inquisitive.
')
General
Writing great documentationLecture by Jacob Kaplan-Moss.Not about why the documentation is needed. About those who were inspired by the documentation in the spirit of Django. On the culture of documentation. Why do people read the documentation. Documentation as a means of communication is about documenting the same thing from different angles in order to extend the utility ratio. Why the documentation should be written by the developer. A few words about the development of documentation - DDD. On the types of documentation: manuals, thematic guides, reference books, frequently asked questions. On the auxiliary means of documentation. Answers on questions.
Diversity in Tech: Improving our ToolsetSummon Jennifer Leach.About dissimilarity in general. Why there are not enough women in technology: about expectations and [self] suggestion on the example of women and beer. What is the difference in general (with a smooth transition to women in the men's team). Three rules of condescension to the unlike. In general, a report on tolerance for such as the speaker. Answers on questions.
Getting a job and a donation of landing a Python jobThe instructions of Brown Moroni.About myself. An example of the HR worldview mentioning Microsoft and PHP. A set of rules for the candidate: 1) follow the style; 2) follow the employer's instructions for writing, pay attention to the content of the letter with the attached resume; 3) do not bother; 4) follow your data on the Internet; 5) less about yourself; 6) come prepared; 7) use the opportunity to feedback. An example of the form used to assess the candidate. What else do HR want? Answers on questions.
Documentation driven developmentReport by Cory Urdt.About how the “documentation development” approach appeared and about how good it is. Parable about the engineer from Microsoft. Why developers do not like to document the code. What can help Sphinx (with examples of configuration). A couple of examples of RPD and the logic of thinking in this vein. Answers on questions.
Best Practices for Impossible DeadlinesReport by Christopher Groshffa.About machines that can be used in situations with unpredictable deadlines, using the example of the Chicago Tribune. Answers to questions from the audience.
Going Full Python - ThreadlessReport by Chris McAvoya.About T-shirts on PyCon, from which priests can be seen. Who are Threadless, what they do and where they are. About that, what have there Python and Django, and why PHP nothing to do with. How PHP is like an epitiff fig tree.
Python.MiroCommunity.org + UniversalSubtitles.orgMini-presentation by William Kan-Green and Carl Carsten.What is MiroCommunity and Python.MiroCommunity.org. What is UniversalSubtitles and how it works.
Science and Research
Linguistics of TwitterReport by Michael Healy.About myself. On the problem of the complexity of linguistic analysis, on regional differences in the choice of words, on the spread of dialects throughout the United States. Historical context: milestones of American English, language development vector. On the possibilities of bringing different dialects to a general form: 1) the enchant module plus the nltk module; 2) replacement from the dictionary by regular expressions; 3) Bayesian probability with a selective language body using the nltk module; 4) using the geographic index of the simplegeo module. On compiling a sample corpus of a language using simplegeo and data from tweets. Answers on questions.
Greasing the Wheels of Exploration with PythonReport by Michael Sims.About myself. On the role of robots in the studies of other planets. About rovers exploring Mars. Research craters, creating geological and topological maps. How Python is used to generate and send commands to rovers, ensuring their autonomy. Why use Python. On programs from NASA. Answers on questions.
Running ultra large telescopes in PythonReport Matiezha Fialkovskogo.About different telescopes and about what they are used for. Examples of obtaining data from telescopes and their management using the IPython console. Sample code using twisted. Answers to the questions: about the performance of Pyhton for this task, about switching from Java to Python, about satellites and sheep, whether it is possible to control an ordinary satellite antenna.
How to kill a patent with PythonReport by Van Lindberg.About how difficult it is sometimes to find the right patent. As an author, the website containing data on patents registered in the USA for creating a database in vain, and as one of Google’s projects, made his life easier. On the task of dividing patents into categories. Applying the principles of natural language processing to data retrieval, the problem of separating noise in determining the relevance of data. The use of term extractor from Yahoo. How vectors and graphs helped in parsing patents. Answers on questions.
Handling ridiculous amounts of data with probabilistic data structuresReport by C. Titus Brown.About yourself and about hating C ++. As the sequencing powers grew. Comparison of the problems of analyzing large amounts of data in biology and physics. On today's limitations in sequencing and data analysis. Why clouds will not help. A brief introduction to the shotgun method. An example of a sequencing algorithm in Python, and what you need to pay attention to when calculating DNA sequences. On the performance of the described approach and on the quality of the presented graphs. Thoughts for the future. An example of visualization of the graph. The answer to the question.
Training
Panel: Python in Schools: Teaching It and Teaching With ItReport by Joel Zachary Miller, Maria Litvin, Jeffrey Elkner, Wörn Sider and Bayan Brumley.Introductory word from Zachary Miller. Bramley: how the learning process is built; what tasks informatics teaching solves; why python; what are studying. Litvin: about yourself; about the decision to teach mathematics with computer science; why python; on the course of discrete mathematics with computer science and the training of algorithmic thinking on the example of solving a problem about a ladder. Elkner: about yourself; about computer science courses in Virginia. Seeder: about yourself; about computer science courses in Northwest Indiana; why python. Answers to questions and why teachers don't like Java.
Python and Robots: Teaching Programming in High SchoolLecture by Vern Sider.About myself. Why children do not want to learn programming - teachers' mistakes: start learning from the rules of the language; to abuse abstractions and details; give a boring or detached task. About mini-robots and how they can spark interest in children. For control of robots on old tablets put Debian. Examples of simple tasks (with solutions) for programming robots. Method: how each subsequent task to stimulate interest in the possibilities of the language. More tasks: overcoming obstacles, controlling the camera on the robot, controlling the speakers. The bottlenecks of the proposed course: batteries, “sticking” of robots at low voltage; preparation of equipment necessary for occupations; the difficulty of determining the size of the required lecture material. Feedback student. Answers to questions, including how much these robots cost.
Community
Python Software Foundation Chairman AddressThe appeal of Steve Holden.About the python community. About conferences PyCon. About support for python projects (including conferences and software) from the Python Software Foundation. Call in PSF.
Get new contributors (and diversity) through outreachReport Ashisha Laroya.About myself. On the problem of small communities. Examples of the Fedora approach to community building, the Rails approach. On the utility of informal meetings. What is good and what is bad in forming communities by the example of the Debian communities, Thunderbird. How to attract women to the project. Answers on questions.
Montreal-Python - Lessons Learned from Bootstraping a Python CommunityReport Yannick Jingras.How did the Montreal Python user group begin? Analyze existing user groups. It all started with a regular e-mail. Tips for building groups: 1) The task of the organizer is not just to gather people, but to create the conditions for their communication; 2) Blitz reports this very thing; 3) Choosing a meeting place is an important matter; 4) Alone in the field of organization is not a warrior; 5) It will take money, which means sponsors; 6) Experiment need; 7) Keep in touch with other user groups. Answers on questions.
Business
Serious Business: Python is not just for EngineeringReport by Zach Steindler.About setting a business strategy at the forefront, about the KPI curvature and drawing various graphs (visualization), as well as with what technical means these indicators can be obtained and which aspects of a web project can be analyzed.
How to sell PythonRound table.Chaired by Daniel Greenfield. Presentation of the participants: Titus Brown, Dan Mesh, Christian Ent, Frank Wales, Jace Turk. Success stories: non-profit organizations, government organizations, small and large organizations, educational institutions. How they overcame fear, uncertainty and doubt, and why they use Python, plus answers to attacks in the style of “your opensource full of holes” and talk about how easy it is to go to Python, knowing another language. About marketing tools that can help in promotion. On the cost of development in Python (for example, comparison with PHP, Java); how to convince a customer who dictates the choice of implementation language. About the job market.
Python language
The python that wasntLecture by Larry Hastings.About changes in the language - why it is easy to suggest, but difficult to make from the base, and also why the python is stable, plus the cobblestone toward PHP. What to do if, after all, the idea is itchy and requires implementation. Examples of non-embodied ideas: freezing protocol (PEP 351), matrix operators (PEP 211, PEP 225), caused by None (PEP 336), switch / case design (PEP 275, PEP 3103) and that people reject their own PEP, range as literal (PEP 204), dynamic access to attributes (without PEP). Who else is brave?
Useful Namespaces: Context Managers and DecoratorsReport by Jack Diderich.Recall Zen. Types of namespaces: 1) lexical; 2) modular / batch; 3) intra-object / class; 4) "working". About syntactic sugar, in particular about decorators, context managers and their mixtures. Decoration examples, using functools.wraps. Decorating classes, using functools.total_ordering. Context managers, “decorators in reverse." About substitutions and monkey patching, and again about them using decorators and context managers. Example substitutions: unicodenazi library. Example context manager using contextlib.contextmanager. How to mix a decorator with a context manager. Answers on questions.
An outsider's look at co-routinesReport by Peter Portante.The excitement around coroutines: how to withstand 10,000+ simultaneous requests, why a thread is not an option. Tornado, uWSGI, Gevent stress test scores and why Gevent was on horseback. Coroutine definition by whip. Coroutines in Python and their limitations. Packages that provide coroutine implementations as opposed to coroutines in Python. About the mechanism of work Greenlet. Thread definitions. Abstraction of threads and how threads relate to coroutines. On the need for a non-blocking API. On the event engine libevent and wrappers over it. Answers on questions.
Porting to python 3Lecture by Lennart Regebro.Introduction to the promotion of Python. On choosing a porting strategy: on maintaining code for different versions of python, on a distribution model, on a single code base. About the 2to3 utility. When to start porting Porting steps: preparation (recommendations for initial code processing), testing (optional), porting (2to3 and 2to3 with Distribute). Common problems include bytes, strings, and unicode. Porting without 2to3. About extensions to C. About module six. About resources on the topic. Answers on questions.
Status of Unicode in Python 3Report by Victor Steener.Unicode history in Python. Unicode in Python 3. Data not subject to decoding and PEP 383, as well as what surrogates are. On the conversion of byte strings to Unicode and on the new API for surrogates in Python 3.2. On the conversion of machinery import. About command line arguments. About the names of objects in the file system. About non BMP characters. On the encoding of the source code. A few words about the free book Programming with Unicode. On the difficulties encountered in the implementation of Unicode support. New functions for Unicode in C modules. Answers to questions.
The Data Structures of PythonReport Alex Gaynor.About what the report is about. Why python is cool. About built-in data types. 30 seconds on “O” is big and “O” is small. Comparison of different types of sequences - to use one or the other: 1) lists against tuples; 2) sets against lists; 3) sets against unchangeable sets, and also why there are no immutable dictionaries. Overview of additional types from the standard library: 1) collections.OrderedDict; 2) collections.deque. How and when collections.abc can help. Answers on questions.
Exhibition of AtrocityReport Mike Pyrnata.About errors that the author managed to make in 11 years of working with Python. Hungarian notation is a terrible lie and stupidity. About crimes against PEP-8 (dedicated to those who come from other languages). Single-letter variable names as a means of obfuscation. Obsession with lambda functions. Bust with list comprehensions. Creepy elif branching. Threat from changeable types in the default values ​​of function arguments. Properties to replace getters and setters. Metaclasses as a substitute for black magic. Divine objects and methods are refactored. Evil in global variables. Anti-pattern Diaper (exceptions jammers). How to blow a duck to runtime beyond recognition (monkey-patching). Invention of wheels in logging.
How to write obfuscated pythonReport Revron Johnny Healy.How difficult it is to write on Pyhton intricately (with a lunge towards Ruby). where traces can be confused: 1) assignment operator; 2) comparison operators; 3) editing byte-code (objects of the type code, the mention of the dis module); 4) decorators (and the implementation of a brainfuck similarity with their help); 5) tail recursion optimization (with lambdas and decorators). Answers on questions.
Javascript for people who know pythonLecture by Aan Biking.Why JavaScript seems to pythonists strange. How to understand the oddities. A quick overview-comparison of languages: objects, functions, variables, function arguments, type undefined, objects with prototyping and self, mechanism for determining this, parody of modules, this and self in closures, func.call () and func.apply () , data types and errors of direct instantiation of their objects, operators + and ==, creepy JavaScript arrays. A few words about the attitude of JS to DOM. As JS progresses. About CoffeeScript, which may be of interest to Pythonists. Answers on questions.
Hidden Treasures in the Standard LibraryDag Hellmann report.Interesting in the standard library modules: csv, sqlite3, hmac, json, sys.excepthook, logging. Answers on questions.
Fun with Python's Newer ToolsReport by Raymond Hettinger.Counters as dictionaries using collections.counter with examples. Mathematics counters. Named tuples from collection.namedtuple with examples and special attention to the _asdict () and _replace () helper methods. Some interesting scenarios for using named tuples. Approaches to caching function results are the classic cache vs cache from lru_cache with examples. A new syntax for formatting .format () strings. Answers on questions.
Interpreters
Panel: Python VMsRound table.Jacob Kaplan-Moss presides. Dino Vieland on Iron Python and on .Net integration. Matiezh Fialkovsky about PyPy - “like CPython, only cooler”. Frank Virgbicki on Jython and how cool the JVM is. Brett Cannon on CPython as flagship. Questions: 1) VM presentation; 2) performance; 3) what happened in the implementations over the past year (Frank on the situation of Sun-> Oracle; Dino on Microsoft licenses, annoying people; Brett and the rest of the end of the moratorium); 4) Pyhton 3; 5) a question to Maciege about what they will spend the money received from PSF; 6) about sandboxes and the approach to their implementation; 7) how are things with Unladen Swallow (question to Brett); 8) support for the ctypes module; 9) What happens by the time of PyCon 2012.
The Development of Python and YouLecture by Bayan Curtin.A few words about yourself. What people, from where and why participate in the development of CPython. How to start participating: developer's guide, overview of the sections of the repository, notes on the assembly, running tests. About what to do if you fixed the bug, and what distinguishes a good patch from a bad one. About working with bugtracker. What tools are used in the development. Answers on questions.
Supporting CPython on Unsupported PlatformsReport by Tim Lescher.Problem statement on the example of the Vocollect device (running Windows CE). The choice between embedded scripting Java, Lua and Python was stopped at the last. Why did you first fork and what lessons did they learn from this: 1) do not fork; 2) it is worth using crosscut, or quarantine; 3) stick to one C-notation. Answers on questions.
Prototyping Go's Select with stackless.py for Stackless PythonReport by Andrew Francis.Where did the idea of ​​imitating Go come from? About message passing through synchronous channels stackless.py in the current implementation. Where select (examples with supervisors) can be useful, as well as a comparison of tasklets and reactor from twisted. Example select from Go with an explanation of the functionality. About stackless differences on C and stackless.py, about the scheduler, about channels and their balancing. How select was implemented in stackless.py, how the operations on channels appeared, how the queue of tasklets was replaced by the queue of operations. The report did not meet in the allotted time and was interrupted.
Code analysis
Python-Aware PythonReport Ned Batchelder.Introduction: how some Python programs can analyze other Python programs (example - coverage.py). What is code: types of code. Source code -> abstract syntax tree (AST) -> code object (including bytecode, .pyc file) -> function object, frame object -> execution -> frame stack. Tracing code with sys.settrace (). Trace example. Module linecache. Tracks pitfalls. About working with AST - search for expressions, the ast module. About the power of the inspect module. A few words about the modules tokenize, dis, opcode. On the problems of a dynamic language. Examples of code that cannot be analyzed. Answers on questions.
What would you do with an ast?Report by Matthew Desmarais.About what Matthew did when he was a tester: manual testing, testing with tools that use code analysis. What is AST, an example of a tree, the definition of concepts. Node attributes, node fields. An example of creating a tree. An example of automatic translation of Python-code in JavaScript. An example of peeping at the interpreter. What kind of utilities can use AST. When AST is needed, and when not. Answers on questions.
Scan
Reverse-engineering Ian Bicking's brain: inside pip and virtualenvThe study of Karl Meier.How to build an isolated environment. What site-packages are and how they work. How sys.prefix and sys.exec works. How a standard library connects to a virtual environment. How global site-packages are connected. What is bin / activate in reality. What to do when you cannot use virtualenv directly (mod_wsgi). Problems with site.py forks and their solution. What pip really is. Using the pip API. On the possible future virtualenv and pip. Answers to questions (Larry Hastings and Aen Bicking suddenly appeared).
Deploying Applications with zc.buildoutReport by Jim Fulton.How buildout started in Zope. Task: to unite two stages of development (deployment) - software installation and configuration. Solution: examples of buildout configurations for creating a release with sources, archive, package (rpm), final application settings. About meta-recipes buildout. On the further development of the project.
Dependency management with PuppetReport by Richard Crowley.Why not pip freeze, why Puppet. Dependency management and application configuration using Puppet. The concept of resources in Puppet and their types: packages, groups, users, ssh keys, services, exec, file, etc. Combining resources into classes (this is the type of resource), as well as into their own types of resources. Using puppet-pip. The mechanism of autoloading modules. Configuring nodes - directing modules to servers. An example of a module for Django and pitfalls. An example module for Apache with a service declaration. Scan with Fabric vs. Puppet master. A few words about the blueprint project from devstructure to automatically generate puppet code. Answers on questions.
TUF: Secure Software Updates in PythonPresentation by Jeremy Kondra.What is a software update in general and what risks it involves. Tools that can be used as updaters and their weaknesses (with a description of attack methods that reveal them): PyPi, package managers. What can TUF (this is a framework for updates) and how it works. Answers on questions. Demonstration of TUF integration into the distutils script.
Continuous deploymentReport by Lawrence Van Guthven.About myself. On the relation of continuous integration to continuous scanning. Criticism of the waterfall model in the development and opposition of Agine / Scrum / EXP. Communication continuous sweep with short development cycles. Definition of continuous scanning. How not to make events from scrolling. Testing, automation, measurement, code auditing. Pitfalls of different scanning mechanisms. Strategies for scanning: in particular, about “prudent” scanning. On the need for common sense when increasing the functionality of scanning systems. Answers on questions.
Packaging, from Distutils to Distutils2Tarek Ziade report.A couple of words about the talisman distutils. Distutils problems and their solution in distutils2: 1) dependencies and their solution using metadata from PEP 345; 2) setup.py as a giant Swiss knife, and its replacement is setup.cfg (as well as an example of using pysetup); 3) the removal problem and its solution with the help of PEP 376 (example with pysetup); 4) the problem with the alien version numbers and its solution in PEP 386 (as well as an example of the normalization of the version number in distutils2); 5) additional data files and files.resources directive in distutils2. About the interaction of distutils2 with different build systems. distutils2 under the name packaging. Answers on questions.
Application Design
API design anti-patternsLecture by Alex Martelli.About common mistakes made in the design and implementation of the API.
API Design: Lessons LearnedLecture by Raymond Hettinger.Some general tips on a good API. Particulars: 1) When reducing equivalent types to one (for example, array indices to whole), types that can be reduced should be clearly identified; 2) In classes that are inheritable, all internal calls are protected from change; 3) Where flexibility (as opposed to simplicity) should be avoided, the parameters preset in the code should be avoided; it is better to use optional arguments; 4) If the possibility of processing both positional and iterative arguments is not necessary, you should not process different signatures in the constructor, it is better to determine separate methods for these needs; 5) It is better to use keyword arguments than to change signatures by adding new positional arguments; 6) To ensure that the signature of the constructor of the inherited class does not conflict with the signature of the constructor of the inheritable class, the last can be determined indirectly - in one of the methods. Errors made when creating APIs and solution paths with examples of asyncore.py and global settings. About what problems categorization and hierarchies bring in modules, and how to deal with them.
Optimization
"Dude, Where's My RAM?" - A deep dive into how Python uses memoryPresentation by Dave Malcolma.Summary of the report. Symptoms of excessive memory consumption, their causes in CPython (bugs in the reference counter, busting with caching, etc.) and ways to eliminate them. An example of an object and its placement in memory. The sizes in memory of the main data types obtained by sys.getsizeof (). Optimization using __slots__. A few words about the Meliae object level profiling tool. What goes through PYMALLOC, and what goes into malloc. About the means of profiling the level of placement of objects in memory: 1) Valgrind; 2) gdb-heap. Presentation of gdb-heap: principle of operation, example of data output, query language, use of pitfalls, success story in the Fedora project, the future of the project. Answers on questions.
Why is Python can help?Report by Alex Gaynor, Matiezh Fialkovsky and Armin Rigo.What is PyPy and how fast it is. What is JIT and jittering. Jitting on the example of a mini-application. The rake of semantic language parsing, boxes, frame introspection. Answers to great questions.
Swarming the Web: Evolving the Perfect Config FileReport by Kurt Grandis.Posing the question: why so often have to modify the configuration files. Setting up and optimizing server performance in terms of control theory and performance evaluation: there is a system, there are sensors — there is not enough controller. Optimization by the particle digging method in Python (ecspy) and its use as a controller for creating configuration files. Variant of configuration testing algorithm. Test optimization and its results. Answers on questions.
Testing and debugging
Units Need Testing TooReport by Gary Benrhardt.What we test and what problems we encounter at the same time: 1) exhaustive verification is unattainable; 2) test run time increases linearly with increasing system volume; 3) the presentation of test results is uninformative due to binary. On the shortcomings of terminology. Definitions of unit and unit test. Correct tests (using fake objects - mock, stab) on the example of Django. About integration tests. Recommendations for writing tests. An example of a set of tests (510 tests) for 10,000 lines of code that runs in a second or less. Answers to questions (including a reasonable amount of class in rows).
Testing the Mobile (and Desktop) Web with Selenium 2.0 - Better, Faster, and more PythoniclyPresentation by Jason Gaggins.What is Selenium, what problems solves. About Selenium IDE, Builder, Remote Control. Examples of tests in Java and C #. About the project Selenium Grid. A recommendation to run tests in parallel, instead of a sequence. New in Selenium 2: an overview of components for testing mobile platforms (Android and iOS); native handling of keyboard and mouse events; XSS verification; support for dialog boxes, etc. An example of using a new API using Python binding. How it turned out to exclude Selenium RC Java Server and how you can insert a Grid in its place. Sample (step by step) run tests for iPhone, Android.
Testing mockReport Michael Furda.About myself. An introduction to the mock library, for which the mock serves. A mock object stores information about how it was called. Features class MagicMock. Substitution of objects on the fly and rollback of substitution using mock.patch. Examples of the use of the library, including the substitution of objects and their attributes.
Caution that you should not overdo it with a mock. Answers on questions.Using Python to debug C and C ++ code (using gdb)Report by Dave Malcolm.About native Python support in gdb version 7+, why it's cool with the debugging story of the Red Hat installer written in Python. Examples of using Python inside gdb - debugging an application in C - a) a long classic gdb path with notes on what to look for when defining types and getting values; b) shortcut with Python. Pass through arrays, structures. And again about how such debugging is convenient. An example of the string handling hook (prettyprinter) for one of the string types in LibreOffice and connecting its class to gdb. What should I look for when working. Related resources. Answers on questions.Web
HTTP in Python: which library for what task?Report by Ogi Feckler.A quick overview of httplib, httplib2, pycURL, twisted.web.http. About support for specified libraries HTTP 1.1. Py-nonblocking-http submissionWSGI: Working together to solve the web's problemsRound table.About PEP 4444, about what wsgi lacks. About what wsgi is and what it is not. Prospects for the development of wsgi.HTSQL - an insanely good WSGI / REST interface to your favorite databaseReport by Clark Evans.Clark about himself. A couple of examples of working with HTSQL. About how easy it is to use the library in any python-projects. The history of the creation of HTSQL. What does HTSQL consist of? HTSQL is primarily a data navigation language. Answers to questions about the first part. On the syntax and its REST-readiness, on the built-in and plug-in means of formatting (presentation) of the results. About the current state of the project, about the license. Answers on questions.Using Coroutines to Create Efficient, High-Concurrency Web ApplicationsReport by Matt Spitz.What is a high-load web application. Optimization options for such an application. Example of Meebo Bar and Ad Server. An interesting comparison of the output of a simple application from different databases, their pros and cons: Apache CGI, Apache mod_wsgi (mpm_prefork), Twisted, gevent + gunicorn. What to look for when using gevent, as well as what will help bring the project to gevent + gunicorn in production (management and debugging tools). About the experience of using bundles in Meebo. Answers on questions.Hookbox: All Python web-frameworks, now real-time. Batteries IncludedPresentation of Michael Carter.Approaches to creating real-time web applications and their limitations. Hookbox approach. Demonstration, review. Answers on questions.An (biased) survey of the python webReport by Mark Remm.What is Python for web development. How things were with the web frameworks in 2005 and how things are now, lists of frameworks. There are too many frames today - it is difficult to choose between them. There is no obvious leader. About Django. Because of what a rubist can hit the python. Shared libraries that can be useful in web development. About Python hosting. Generalization A few words about the Pyramid frame. Why web2py is bad. Answers on questions.Scaling Python past 100Report by Mark Ram.About myself. About how, because of the guy from Ukraine, FossFor.us worked for Django. The fact that in Django was then good and that is not too much. About how SourceForge.net started working for TruboGears and why. From what prepared the site SourceForge: why MongoDB, mod_wsgi; and how we managed to deadline. How you decided to use Python for everything at SourceForge - about the resulting Allura platform. How the Python community helped create Allura. Application Planning Tips: Formulate the task to be solved exactly by the application; obsession with scaling is harmful; select the right tools to create an application. Answers to questions, including the fear that Python is difficult to scale.Disqus: Serving 400 million people with PythonReport by Jason Yon and David Kramer.How to service 500 million unique users per month (peak load of 25 thousand queries / sec.). What is Disqus, a little history and data about the internal organization. Infrastructure Disqus. Apache + mod_wsgi vs. nginx + uWSGI. They use Celery, Grahpite, Sentry, Gargoyle, Forked Django. Why these guys switched from Ruby and PHP to Python.How Dropbox Did It and How Python HelpedReport by Ryan Hunter.About the speaker. What is Dropbox and how it started. How Python helped speed the initial development of Dropbox in 2007. How did the company. Major achievements of that time: it was possible to reverse the Makovsky Finder to put overlays on icons; create a massive HTTP notification infrastructure (using Twisted); create a platform-independent code base, etc. Where Python is used: server logic, desktop clients, site controller, API, analytics. An explanation of why Python. Python helps with iterative development. About slowness and devouring RAM python. Methods to reduce CPU time (about functions any (), etc.). How to optimize RAM usage and fight memory fragmentation — or use PyPy instead. Dropbox plans.MongoDB + Pylons at Catch.com: Scalable Web Apps with Python and NoSQLReport by Nayoll O'Higgins.What is catch.com and what requirements were taken into account when creating it. Why switched from Java and BDB JE to Pylons and MongoDB. MongoDB overview and MogoDB vs MySQL vs BDB micro-comparison table, about the MongoDB data model. MongoDB with Python (via PyMongo), examples of queries, the table is roughly the ratio of operators. On the support of geographic data in MongoDB. What you need to pay attention - about the pitfalls of MongoDB. A few words about Pylons and why they prefer Pasters, rather than mod_wsgi. A little about catch.com infrastructure. Answers on questions.An Introduction to TornadoReport by Gavin Roy.Overview of the main components (modules) and capabilities of the Tornado framework. Why Tornado does not use Twisted. Examples of applications using Tornado. A little bit about using a non-blocking Tornado server.Ten Years of TwistedReport by Glyph Lefkowitz. * Someone slipped a bad microphone into Glyph.About what is Twisted. A bit of history: how the game became a framework and why you might need to write a web server and link it to it from scratch. What is synchrony and asynchrony. Examples of the power of the server Twisted.Opening the FlaskPresentation by Armin Ronah.About how April Fool's fake became a microfragm: what was the joke and why it was taken at face value. How Flask appeared and what it consists of. An example hello application. About design approaches used in Flask: local context variables, single-card import of modules, no application object, explicit settings, automatic ordering of url rules by complexity. About extensions to Flask. Lessons learned during the development of microframe. Answers on questions.Django
Pluggable Django PatternsReport by Corey Oordt.Why monolithic applications are not in the spirit of Django. What are connected applications and why is it good. What is important for connected applications. Techniques used in existing Django applications that can be noted.Django: Pitfalls I Encountered and Avoid ThemReport by Luke Sniringer.Ways to import modules. Inheritance patterns. Template context handling and RequestContext utility. Customizable managers in models. Dynamic forms: use metaclass or redefinition __init __ ()?Django Packages: A Case StudyPresentation by Daniel Greenfeld.Minute review django-apps.com, or that it was not so. As on DjangoDash 2010 djangopackages.com was created. Approaches and ideology: comparison tables, objective metrics. Tips for developing: 1) when it comes to third-party APIs, you need to explore the subject as deeply as possible before proceeding to implementation; 2) remember PEP 8; 3) use fixtures; 4) do not resort to premature optimization; 5) to design architecture; 6) exchange information in a team. As the story continued on DjangoCon2010. Used django applications. What else is planned. What will be in pythonpackages.com. Answers on questions.Running Django Apps on Google App EngineWesley Chen Report.Six minutes hochma, while the audience is going, and half a minute to assemble the presentation with the help of a python. Chen about me. Chen o Django. Chen about App Engine. On the limitations of App Engine in the case of Django and on attempts to smooth them out - the helper and, later, the patch. O djangoappengine. O Django-nonrel and what is good in it, what you should pay attention to when using it. Steps to port a django application under App Engine. Answers on questions.Pyramid
State of Pylons / TurboGears 2 / repoze.bfgReport by Chris McDon, Ben Bangert and Mark Remm.About Pylons: it was up to version 2.0 and what happened next. Why does Bangert decide to merge with TurboGears and repoze, and not rewrite everything again. How came Pyramid. About TurboGears and how Ramm decided to participate in the Pyramid initiative. About repoze.bfg, which appeared as a crutch for Zope, which became a separate framework. On the ideology of repoze.bfg and low fame. As it became: Pylons, repoze.bfg become Pyramid, while TurboGears 2 (based on Pylons) continues to develop and be maintained, as does TurboGears 1 (based on CherryPy). An example of a wsgi application with Pyramid (hi ​​Django). That includes Pyramid, on what can work. What Pyramid is not (not Zope at all). Cheerful video about creating the Pyramid logo. Answers on questions.The Pyramid FAQReport by Carlos de la Gordia.Where can I ask questions about Pyramid. What is good Pyramid. The relationship of the Pyramid to Pylons, TurboGears, Zope. About the documentation. Why the Pyramid is bricks, not rails. What to use for new projects: Pylons or Pyramid. An example of running a Pylons application in Pyramid. Akhet - application templates in the style of Pylons 1. About dispatching and the mechanism of Traversal. Answers to a couple of questions.Technology
Distributed Tasks with CeleryPresentation by Ryan Petrello.About the speaker. About why you chose Celery: asynchronous task processing (including distributed), user appeal, scheduler, error handling and job repetition. A brief introduction to Message Queuing (AMQP). About using AMPQ as a task queue. Basics of Celery. Celerybeat, web hooks, remote control (broadcasts) of execution processes (workers). Examples of using. Celeryev and celerycom. Tips. Answers on questions.
Advanced Network Architectures With ZeroMQReport Zed Shaw.About myself, mentioning the book Learn Python The Hard Way. Do not post ZeroMQ to the Internet. What is ZeroMQ used for and how can it become a substitute for libraries for working with a network that it can. Examples with a fun DBMS MulletDB (request-response, publication-subscription, streaming). Examples with the Mongrel2 web server. ZeroMQ can: message queue, be used on the site http + json, be the basis for creating a server or protocol. Answers on questions.
CouchDB and Python in practiceReport by Luke Gotsling.What is CouchDB, what it consists of and what is good for. Demonstration of working with CouchDB through Fucon. ORM to CouchDB in Python. couchdb-python: field types, use case. Creating views, map / reduce. About performance, scalability. About the pros and cons. Future plans. Answers on questions.
Firefox syncPresentation of Tarek Ziade.What is Firefox Sync and how it works. Implementation mechanisms on the client and server side. Details about encryption by juggling. What measured the performance on the servers, as well as which parts were scaled. Firefox Sync in numbers. The stack of applications involved on the servers. What lessons did the project present? The answer to the question about the synchronization of history.
An open success for the cloud: OpenStackAndy Smith Presentation.About myself. About OpenStack: how swift, nova, and also burrow, glance, django dashboard projects were connected. OpenStack success story in NASA, Rackspace. Why Python. History of the project nova. As rpc, tornado, twisted, eventlet replaced each other in the nova project. Answers on questions.
Wanted, But Were Afraid To Ask!Report by Richard Sanders.About myself. What is pickling, an example of use, alternatives to it, strengths and weaknesses. General explanation of serialization protocols with performance measurements. Explanations for each of the four protocols. Stack machine - how binary protocols work on the example of lists. What to look for when using. Differences in the pickle and cPickle modules. Answers on questions.
Supporting All Versions Of Python All The Time With ToxReport by Kumar MacMillan.About opensource. Introduction to the tox utility with a demo. About the tox.ini configuration file. About 2to3 and about that. On the creation of a single distribution for sersy 2 and 3, information on setup.py. Configure tox for tests in the distribution and out of it. Tox and doc tests. Tox and source codes from the version control system. About tox and Jenkins CI. Answers on questions.
mrjob: Distributed Computing for EveryoneReport by Jimmy Retzlaf.What problem does MapReduce solve? An example of MapReduce in pictures. What is mrjob, examples of use. A long analysis of the solution to the problem of counting clicks / impressions of banners, as well as tracking sales using the MRJob. Answers to questions, incl. why not dumbo.
ZODB: A Python Persistence SystemReport by Chris McDonagh.What is ZODB and how does it work. About the pickle module: examples of packing an object into a pickle file and reading from a file; about pickle format; about its limitations; about supported data types. How does ZODB differ from pickle and how is it similar? An example of using ZODB. About transactionality. Comparing ZODB with object, relational, nosql db. Types of data warehouses supported by ZODB. On the possibilities of indexing and searching. About scaling. Unique features and limitations of ZODB. Where to use and where not to. Answers on questions.
Using Blender's new BPY Python APIPresentation by Christopher Allan Webber.Blender in Brief. Examples of scripted scenes in Python: from the animated film Elephant's Dream; example of a simulation of a crowd of spiders; patent bombardment map. A mini introduction to the Blender user interface. What is BPY. About the internals of .blend files. An example of using BPY directly in Blender is searching and modifying an object. About self-documenting Blender. Scripting capabilities of Blender itself: creating an operator; panel creation. A few words about the packaging system. About the future of BPY. A little about the game engine (example with Yo! Frankie). Answers on questions. Unobtrusive advertising course Creature Factory.
miscellanea
A Fireside chat with Guido van RossumVan Rossum answers questions.About the 20th anniversary of the python, about the end of the moratorium, about PEP 342 and coroutines through generators (or why Guido does not like programs with callbacks), whether there will be Python 4, about the adaptation process of Python 3 (or sorry for Pilgrim’s book), Guido did not accept PEP (and how lambda functions and the like were stuffed into the language), attitudes towards implementations other than CPython (in particular PyPy).
Keynote: Hilary MasonSolyanka from Hilary Mason.Briefly about yourself, bit.ly and data analysis. An expression that spawns itself. Congratulations Python happy birthday. Graph of the popularity of languages. Anecdote about the programmer in the grocery. About computational thinking. How activity leads to physical changes in the brain. About the most cool constructions of the language: with, generators, decorators, and list comprehensions. Where did list comprehensions come from? What is the industry moving to? About genetics, fitness functions and bioinformatics, as well as other things that will give us super-strength. Answers on questions.
Python IDEs PanelPresentation of Python development environments by their manufacturers.Dino Vieland - Python Tools for Visual Studio. Dmitry Dzhemerov - PyCharm. Todd Whiteman - Komodo. Stefan Divel - Wing IDE. Barry Vorso - python-mod.el for Emacs. Answers on questions.
Extreme Network Programming with Python and LinuxReport by Rob Ludvik.About the complexity of working with the network. Sign-slot architecture and its use (example), as well as SignallingStream and SelectSignaller. About malticast, IGMP, TTL with examples, as well as why the interface can ignore multicast packets. About the "raw" sockets. About the pypcap library. About entering the interface into the enhanced listening mode (promiscuous mode). How to read the sockaddr_ll structure returned by recvfrom (). About "ready" sockets. How to use socket.sendto (). About virtual interfaces of types TUN and TAP. About the use of dpkt, as well as what you should pay attention to. Creating bridges. About working with a network resistant to delays and cliffs (DTN). Answers on questions.
Through the Side Channel: Timing and Implementation Attacks in PythonJeremy Kondra study.What is an attack on third-party channels. An example of the “classic” authorization function and its analysis for exposure. Dispelling RSA encryption. How RSA works on fingers, encryption / decryption steps. Strengths of RSA-CRT. An example of an RSA attack (pow ()). Findings. Answers to questions, incl. how to solve the problem of attack on ==, and appeal to users of PyCrypto.
Additive: for fans of the genre, a link to a torrent from a video of the aforementioned reports -
narod.ru/disk/23856546001/pycon2011.torrent.html