What’s the coolest Python application, framework or library you have discovered in 2012?
That’s definitely OpenStack, the cloud infrastructure management system.
What new programming technique did you learn in 2012?
I’ve been doing a lot with messaging via AMQP and with NoSQL storage using MongoDB. I’ve also become a git convert, moving over from hg and svn.
What’s the name of the open source project you contributed the most in 2012?
What’s New? Add memoization to the entrypoint scanning code in ExtensionManager to avoid performance issues in situations where lots of managers are instantiated with the same namespace argument.
I’ve been reviewing lot of code lately for various open source and internal projects written in Python. As part of those reviews, I have noticed what I think is a trend toward using dict() instead of {} to create dictionaries. I don’t know exactly why this trend has emerged. Perhaps the authors perceive dict() as more readable than {}. Whatever the reason, my intuition told me calling the function version of the constructor for a dictionary would impose a performance penalty.
What’s New? Add TestExtensionManager for writing tests for classes that use extension managers. Change the EnabledExtensionManager to load the extension before calling the check function so the plugin can be asked if it should be enabled.
What’s New In This Release? Allow user to pass argparse_kwargs argument to the build_option_parser method. This argument can contain extra keyword arguments which are passed to the ArgumentParser constructor. (contributed by Tomaz Muraus) Document the dependency on using distribute.
The OpenStack Developer Summit for the Grizzly release starts tomorrow, and it will be a busy week for the Ceilometer team. We start the summit with a three-session mini-track on Monday morning, have a formal conference presentation on Monday afternoon, and expect to hold a lot of informal working sessions with developers from other projects throughout the summit.
State of Metering Time: Monday 9:50 AM Location: Maggie Etherpad: [http://etherpad.openstack.org/grizzly-ceilometer-state-of-metering](http://etherpad.openstack.org/grizzly-ceilometer-state-of-metering) The State of Metering session will provide a project overview for everyone interested in the progress we have made during the Folsom release cycle.
Time: Tuesday 4:30 PM Location: Annie AB Etherpad: [http://etherpad.openstack.org/grizzly-common-wsgi-frameworks](http://etherpad.openstack.org/grizzly-common-wsgi-frameworks) While building the first version of the API server for Ceilometer, I chose to use Flask instead of the WSGI framework in openstack-common. During this session, I will review the evaluation process that led me to that decision and present some notes on other WSGI frameworks and how they may, or may not, be suitable for use when building new API servers for OpenStack projects.
Time: Tuesday 11:50 AM Location: Annie AB Etherpad: [http://etherpad.openstack.org/grizzly-common-unified-cli](http://etherpad.openstack.org/grizzly-common-unified-cli) During the Folsom summit we defined some requirements for a unified command line client program for OpenStack. Since then we have begun development and made significant progress, but the project has stalled out a bit. During the Unified CLI, take 2 session we will discuss restarting the project and find additional contributors.
Original Project Goals use the OpenStack Python client API modules, extending them as required use consistent naming and structure for commands and arguments consistent output formats with the option of reliably machine parseable formats use a single-binary approach that also contains an embedded command-line that can execute multiple commands on a single authentication (see libvirt’s virsh for an example) independence from the OpenStack project names Status cliff framework provides consistent output formats parseable output single binary with interactive mode single main command “openstack” style-guide in wiki specifies naming conventions existing sub-commands: roles add role create role delete role list role remove role show role servers list server show server endpoints create endpoint delete endpoint list endpoint show endpoint services create service delete service list service show service tenants create tenant delete tenant list tenant set tenant show tenant users create user delete user list user set user show user list user role quantum is using cliff, but not part of the unified CLI, yet Proposed Grizzly Goals implement the commands associated with more services what priorities?
Time: Tuesday 3:40 PM Location: Annie AB Etherpad: [http://etherpad.openstack.org/grizzly-common-wsgi-frameworks](http://etherpad.openstack.org/grizzly-common-wsgi-frameworks) One of the sessions I am leading at the ODS this week is Using the Message Bus for Messages in the openstack-common track. I proposed this session because the current abstractions in openstack.common.rpc, used for communication between OpenStack components by sending messages over AMQP or ZMQ, do not meet the needs of the Ceilometer project. Below are my notes for the session, also available in the etherpad.