EuroPython 2011 Notes


EuroPython Bag

Python Environment





As a language, I find JavaScript pretty…awful. But it can be used to build pretty cool stuff for the web, so it’s worth learning. That’s why I attended Jonathan Fine’s “JavaScript for Python Programmers” training.

One of the learning resources that Jonathan recommended was “JavaScript: The Good Parts” (on YouTube):

Network Programming

For the grid computing system at our company, we rely mostly on the standard XML-RPC modules in Python. All the high-level logic, such as message queues, failure handling, authentication, etc. are custom-built on top of that.

Unsurprisingly, there is a wealth of existing libraries that might make our lives easier by not having to reinvent the wheel. (While adding their own layers of complexity, I’m sure.)

  • Django REST Framework—A library for adding a RESTful API to a Django application.
  • Celery—An asynchronous task queue based on distributed message passing.
  • ZeroMQ—A “socket library that acts as a concurrency framework.”
  • RabbitMQ—Message-oriented middleware. Jason Williams describes what it is and what it can be used for.
  • AMQP (Advanced Message Queuing Protocol)—The protocol that RabbitMQ implements.
  • gevent—”A coroutine-based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libevent event loop.” Geez, I don’t even begin to understand what this means…
  • Twisted—An event-driven network engine. (Twisted training by Orestis Markou.)

Alex Clemesha’s article “Real-world real-time web apps with Python equals Django + Orbited + Twisted” describes how some of these fit in the big picture—and adds even more buzzwords and acronyms for good measure.

Some of these libraries come with implementations for the architectural patterns described in the book “Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects.”

Little Tidbits

  • Paramiko—An SSH client/server library written in Python (using PyCrypto). Jesse Noller has an introduction on his site.
  • Kivy—A “library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps.” For his lightning talk, Mathieu Virbel used a really cool presentation tool, PreseMT, that is itself based on Kivy. (Watch on YouTube)
  • scrypt key derivation function—This can be used to calculate password hashes in a way that makes brute-force attacks way harder than using traditional MD5 or SHA hashes. Python bindings exist.
  • blockdiag—A block diagram image generator. It uses an input file format that’s similar to GraphViz.

See you at EuroPython 2012!


Share this page

Leave a Reply
