Changes between Version 6 and Version 7 of GSoC2013

04/21/2013 10:32:29 AM (15 months ago)

Added unimplemented ideas from GSoC 2012 wiki


  • GSoC2013

    v6 v7  
    4949What you'll learn: how HTTP works, and the high-level APIs users expect. 
     51'''Reactor Metrics and Monitoring Interface''' 
     53The reactor runs lots of events; connectionMade, dataReceived, connectionLost, timed calls, and queued calls from callFromThread.  But currently there's no tools to discover how long those events took, or what resources they consumed, so when one event makes your reactor get "stuck" you might not know which one it is without some manual instrumentation. 
     55You could build a reporting protocol which would report timings and potentially other relevant status information on the reactor's activities to a client connected on an appropriate socket.  For example: the longest, shortest, mean and median event times over a particular interval, and which objects and code were involved in the longest and shortest.  (This would not necessarily involve a user interface, just the internal infrastructure necessary to extract and report this information to other tools which could make sense of it.) 
     57Requirements: an understanding of event-driven programming, and some experience with monitoring or performance tools. 
     59'''Debugging UI''' 
     61Build a user interface (a GUI, or maybe even Web-based). The  idea is to have a debugging user interface for running a Twisted process that shows existing listening ports and open connections, and allows you to view bytes flowing over the transports. This would look you look at a running Twisted program and see what was going on inside and what data was flowing through it. (Twisted currently includes a half-broken "gladereactor" that is a gtk-based half-finished implementation of this). You'll learn about Twisted's internals, and get to build an interesting user interface and present information in a useful way. 
     63Requirements: In addition to Python, some knowledge of either GUI programming or Web programming. 
     65'''Sphinx documentation''' 
     67Finish converting our documentation from a custom format and set of tools that we maintain (Lore) to the Python community standard - RestructuredText (ReST) as used by In particular, resolve all tickets in the [milestone:"Lore to Sphinx"] milestone and then help transition the release process and to Sphinx by participating in a release. You'll learn about releasing software, documentation tools, and maybe some data transformation (from HTML to RestructuredText). 
     69Requirements: In addition to knowledge of Python, knowledge of HTML and perhaps ReST would be useful. 
     71'''Don't break in other locales''' 
     73Twisted currently has some bugs when used in certain non-English-configuration ("locales"), e.g. French. For example, date formatting might be wrong, or uppercase/lowercase conversion might work unexpectedly. As a first step you'd want to create a custom locale for Linux that was malicious about everything (e.g. lower-casing returns random unexpected bytes, dates are funky, etc.). This would be used to find places where Twisted is making US-centric assumptions, but would actually be a useful project for the Linux community in general. Then, fix resulting bugs in Twisted. Some relevant background material: 
     75Requirements: This is probably easier to do on Linux than on Windows, so some basic familiarity with Linux, and a computer configured to use it, in addition to knowledge of Python. 
    5177== Getting Started with Twisted Development ==