Differences between revisions 6 and 8 (spanning 2 versions)
Revision 6 as of 2006-08-17 02:09:13
Size: 3714
Editor: adsl-68-95-150-255
Comment:
Revision 8 as of 2006-08-17 02:37:07
Size: 6289
Editor: adsl-68-95-150-255
Comment:
Deletions are marked like this. Additions are marked like this.
Line 22: Line 22:
   Perhaps as a two part article, cover the essentials of first parsing an incoming email and then generating an outgoing. Demonstrate how the email module makes it easy to handle multi-part email bodies and convert various character sets into unicode, which Python supports natively. Also cover how the email module supports the use of international message headers and handles their conversion between the 7-bit ASCII used on the wire. Show how the email module addresses the issue of date and addressee parsing. End with how the support of iterators makes it easy to walk over complex emails and touch upon the support added in Python 2.5 for writing email archives.
Line 24: Line 26:
   array module, numpy/numeric/scipy framework    Combine the use of the Python Imaging Library (PIL) module and one of the numeric modules and demonstrate how to effectively process large arrays of data, using images as something non-scientists can follow. Cover the array module, its strengths and weaknesses and then move on to the numpy/numeric/scipy framework.

   Note that this article could also be written using the processing of audio data instead.
Line 28: Line 32:
   Provide an overview with examples of the functional programming features of Python. Cover the lambda, map and reduce functions but move on to the newer all(), any() and generator/coroutine support in Python 2.5. Discuss the broad support Python iterators

  itertools functools
   Provide an overview with examples of the functional programming features of Python. Cover the lambda, map and reduce functions but move on to the new all(), any() and generator/coroutine support in Python 2.5. Discuss the broad support Python iterators and the functionality in the itertools and functools (new in Python 2.5) modules.
Line 34: Line 36:
 *    Gradually assemble an example using the Twisted framework of how a single Python program can serve web pages as well as handle the telnet or imap/pop protocols.
Line 36: Line 38:
  interpreter prompt, inspect module, the power of tracebacks, pprint module    One idea is to create a telnet-based chat room, with the web page displaying a list of attendees and any icon/slogan they may have set on their avatar via the telnet interface.
Line 38: Line 40:
 *    The Twisted framework is complex and powerful so the article needs to keep things simple in this introductory article.
Line 40: Line 42:
  packaging; imports, zipimports, distutils, eggs and cheeseshop  * Interacting with Python at the Prompt

   Introduce the read to the interactive nature of Python, not just the entering of expressions but use of the inspect module, how tracebacks are a programmer's friend and using the pprint module to display complex data structures.

 * Packaging your Python Application for Distribution

   Provide an introduction to the various packaging options for Python. Start with simple package imports and use of the zipimport module, work up to the distutils module and provide a light introduction to eggs. Wrap up with mention of the cheeseshop, what it is for and how to use easy_install to cryptographically sign and upload your work. Discuss briefly dependency resolution and perhaps compare it all to the CPAN network.

   Focus on what is needed to package an application and not on the underlying egg magic. Act like the reader is someone new to Python who has been given the task of packaging an existing application he didn't write.
Line 65: Line 75:
   Walk the reader thru the creation of a program to fetch content from a website, starting with simple HTML text, adding basic/digest authentication, cookie support and SSL certificate checking. Also discuss having this program talk thru a web proxy ala SOCKS. This article would cover a lot of the API in the urllib2 module.    Walk the reader thru the creation of a program to fetch content from a website, starting with simple HTML text, adding basic/digest authentication, cookie support and SSL certificate checking. Also discuss having this program talk thru a web proxy ala SOCKS and briefly cover parsing the retrieved page using one of the DOM modules. This article would cover a lot of the API in the urllib2 module.  Also show use of the robotparser module so that the client doesn't walk sites it should not.

Existing material appears (also) at EvangelismSupportMaterials and PromotingPythonBof. Note [http://psf.pollenation.net/cgi-bin/trac.cgi/ticket/160].

Magazines that Accept Technical Articles

Magazine Articles About Python I Would Like to See

  • Python and Relational Databases
    • Talk about the DB-API that Python has standardized on, and how easy it is to write conventional SQL. Then move into one of the ORMs for Python, perhaps SQLObject or SQLAlchemy. Discuss how data types are automatically converted, and how cross-platform the solution is. Highlight the different database engines supported, both open source and commercial.
  • Python and Object Databases
    • Talk about how dynamic languages make a good match for object databases, with seamless serialization. Provide an overview of how an object database works, but focus on the end-developer and not the underlying mechanisms. Cover how the databases retain transaction support, and to what degree they provide support for the principles of ACID. Discuss the popular ZODB, Durus and APE frameworks, their tradeoffs (e.g. read-mostly usage, transaction rates) and the fact that they can be used standalone without the baggage of Zope or Quixote. Cover their lack of granular security and user identities at the database API level.
  • Handling Email with Python
    • Perhaps as a two part article, cover the essentials of first parsing an incoming email and then generating an outgoing. Demonstrate how the email module makes it easy to handle multi-part email bodies and convert various character sets into unicode, which Python supports natively. Also cover how the email module supports the use of international message headers and handles their conversion between the 7-bit ASCII used on the wire. Show how the email module addresses the issue of date and addressee parsing. End with how the support of iterators makes it easy to walk over complex emails and touch upon the support added in Python 2.5 for writing email archives.
  • Image Processing, Array Numerics and Python
    • Combine the use of the Python Imaging Library (PIL) module and one of the numeric modules and demonstrate how to effectively process large arrays of data, using images as something non-scientists can follow. Cover the array module, its strengths and weaknesses and then move on to the numpy/numeric/scipy framework. Note that this article could also be written using the processing of audio data instead.
  • Functional Programming in Python
    • Provide an overview with examples of the functional programming features of Python. Cover the lambda, map and reduce functions but move on to the new all(), any() and generator/coroutine support in Python 2.5. Discuss the broad support Python iterators and the functionality in the itertools and functools (new in Python 2.5) modules.
  • Mixing Network Protocols in Python
    • Gradually assemble an example using the Twisted framework of how a single Python program can serve web pages as well as handle the telnet or imap/pop protocols. One idea is to create a telnet-based chat room, with the web page displaying a list of attendees and any icon/slogan they may have set on their avatar via the telnet interface. The Twisted framework is complex and powerful so the article needs to keep things simple in this introductory article.
  • Interacting with Python at the Prompt
    • Introduce the read to the interactive nature of Python, not just the entering of expressions but use of the inspect module, how tracebacks are a programmer's friend and using the pprint module to display complex data structures.
  • Packaging your Python Application for Distribution
    • Provide an introduction to the various packaging options for Python. Start with simple package imports and use of the zipimport module, work up to the distutils module and provide a light introduction to eggs. Wrap up with mention of the cheeseshop, what it is for and how to use easy_install to cryptographically sign and upload your work. Discuss briefly dependency resolution and perhaps compare it all to the CPAN network. Focus on what is needed to package an application and not on the underlying egg magic. Act like the reader is someone new to Python who has been given the task of packaging an existing application he didn't write.
    • unittest module, doctest module, test module
    • unicode, codecs, unicodedata and stringprep modules, a bit about the locale and gettext modules.
    • writing shell utilities with Python getopt/optparse modules, curses module, shutil module, commands module
  • Processing Compressed Archives with Python
    • gzip, zlib, bz2, zipfile, tarfile, zipimport
  • Debugging and Profiling Your Python Code
    • Talk about the power of the Python debugger, along with the profiler module and the (new for Python 2.5) cProfiler module. Contrast both the short-term ability to break on flexible conditions with the ability to profile code over the long-term. Discuss code coverage functionality and end with mentions of some of the IDE environments for Python that make some of this even easier.
  • Writing a Web Client with Python
    • Walk the reader thru the creation of a program to fetch content from a website, starting with simple HTML text, adding basic/digest authentication, cookie support and SSL certificate checking. Also discuss having this program talk thru a web proxy ala SOCKS and briefly cover parsing the retrieved page using one of the DOM modules. This article would cover a lot of the API in the urllib2 module. Also show use of the robotparser module so that the client doesn't walk sites it should not.

For active discussion on advocating for Python, please join the mailing list at [http://wingware.com/mailman/listinfo/marketing-python]

WellKnownPythonPrograms - you may already be using Python!


CategoryAdvocacy

Advocacy (last edited 2009-10-30 02:22:47 by panix3)

Unable to edit the page? See the FrontPage for instructions.