Differences between revisions 9 and 56 (spanning 47 versions)
Revision 9 as of 2006-08-17 02:51:07
Size: 7729
Editor: adsl-68-95-150-255
Comment:
Revision 56 as of 2009-10-30 02:22:47
Size: 7577
Editor: panix3
Comment: Add OSCON flyers
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Existing material appears (also) at EvangelismSupportMaterials and PromotingPythonBof.
Note [http://psf.pollenation.net/cgi-bin/trac.cgi/ticket/160].
--------
||<style="background-color: #b0b0fe;border: 4px solid blue; padding: 4px;">Getting Involved in Discussions||
Line 4: Line 4:
== Magazines that Accept Technical Articles == Discussions on advocating the use of Python take place on the following mailing lists:
 * [[http://mail.python.org/mailman/listinfo/advocacy|General Advocacy (everyone welcome)]]
 * [[http://mail.python.org/mailman/listinfo/usergroup-advocacy|Committee to Support Usergroups]]
 * [[http://mail.python.org/mailman/listinfo/group-organizers|Gathering of Current/Future Usergroup Leaders]]
--------
Line 6: Line 10:
We would like to focus on those magazines outside the Python community, in order to reach those who don't know about us. Greetings! I'm the PythonAdvocacyCoordinator. You can reach me via email at <<MailTo(advocate AT python DOT org)>>. I'm always glad to hear ideas or corrections.
Line 8: Line 12:
 * [http://linuxjournal.com Linux Journal] [http://www.linuxjournal.com/xstatic/author/index Author Guidelines]
 * [http://www.ddj.com Dr. Dobbs Journal] [http://www.ddj.com/authors.htm Author Guidelines]
 * [http://byte.com Byte Magazine] (no guidelines found; may not accept non-staff material)
----
== Current Focus ==
Line 12: Line 15:
== Magazine Articles About Python I Would Like to See ==  * [[/UsergroupSupport|to support and encourage the formation of usergroups]]
 * [[/5MinuteVideos|to create a series of 5-minute videos introducing uses of Python]]
 * to write whitepapers as a follow-on to the 5-minute videos
 * [[/ProgrammingForNewprogrammers|exploration of getting non-programmers to start with Python]]
Line 14: Line 20:
 * Python and Relational Databases ----
== How You Can Get Involved! ==
----
Line 16: Line 24:
   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. Want to help with some writing? Check out our list of whitepaper/flyer AdvocacyWritingTasks or magazine ArticleIdeas.
Line 18: Line 26:
 * Python and Object Databases ----
== Suggestions from the Community ==
----
Line 20: Line 30:
   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.  * Identify a shirt store in Europe, to provide a more local source of Python wearables than Cafe Press.
 * Help complete the remaining 15% of Python-equivalent recipes (and review the existing 85% for being current with Python 2.5) of the [[http://pleac.sourceforge.net|Programming Language Examples Alike Cookbook]], a side-by-side comparison of algorithms in different programming languages based on the Perl Cookbook.
 * Do something about python.com! Python is a great teaching language, but one of the first things a curious student is likely to do in search of more info is go to their browser and surf to www.python.com. Yikes! It is unlikely that we can get them to give up their domain name, but maybe they could be convinced to at least put up a front page with "You are about to enter an adult site, are you 18, etc..." And if we were really lucky, their front page could contain "If you are looking for info on the Python programming language, go to www.python.org" How can we "encourage" them to do the right thing?
Line 22: Line 34:
 * Handling Email with Python ----
== Advocacy Resources ==
Line 24: Line 37:
   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. === Python Advocacy Kits ===
<<Anchor(AdvocacyKits)>> [[#AdvocacyKits|(permalink)]]
Line 26: Line 40:
 * Image Processing, Array Numerics and Python  * [[/CollegeStudentKit|College Student's Python Advocacy Kit]] (being developed)
 * [[/ItDepartmentKit|IT Department Python Advocacy Kit]] (being developed)
 * [[/UniversityEducatorKit|University Educator's Python Advocacy Kit]] (being developed)
 * [[/K12EducatorKit|K-12 Educator's Python Advocacy Kit]] (being developed)
 * [[/HomeSchoolEducatorKit|Home Schooling Educator's Python Advocacy Kit]] (being developed)
 * [[/PythonForScientists|Python for Scientists Advocacy Kit]] (should be developed)
 * [[/UsergroupSupport|Python Usergroups Advocacy Kit]]
Line 28: Line 48:
   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. === Reusable/Retargetable Teaching Materials ===
<<Anchor(TeachingMaterials)>> [[#TeachingMaterials|(permalink)]]
Line 30: Line 51:
   Note that this article could also be written using the processing of audio data instead.  * [[/SlidePresentations|Excellent Slide Presentations]] - we're looking for the best out of many
 * [[/ClassHandouts|Class Handouts]]
Line 32: Line 54:
 * Functional Programming in Python === Other Resources ===
Line 34: Line 56:
   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.  * [[/WearablesGadgets|Promotional Items like shirts, posters, etc.]]
 * [[http://advocacy.python.org/@@/collaterals/|Document Library]]
 * WellKnownPythonPrograms - you may already be using Python!
 * LanguageComparisons - Python Compared to Other Languages
 * [[http://pythonology.org/|Pythonology: A Site for Python Advocacy]] (success stories, how-tos, press list, and more)
 * [[http://www.python.org/doc/Summary.html|Executive Summary]] ("What is Python?")
 * [[http://docs.python.org/dev/howto/advocacy.html|Python Advocacy HOWTO]]
 * MarketingPython
 * [[http://www.cafepy.com/article/53/|Python Marketing]] Yet another article collecting quotes and facts pointing to explosive growth of Python in the enterprise.
 * PythonAdvocacyInScientificComputation
 * And if you think that Python programs run slowly, please read PythonSpeed where some of the issues related to speed are discussed.
 * Python23Release (preparation of PR and marketing message for Python 2.x Release)
 
 * [[attachment:PythonAdvocacyGlossy-1-A4.odg]]
 * [[attachment:PythonAdvocacyGlossy-1-A4.ps]]
 * [[attachment:PythonAdvocacyGlossy-1-A4.pdf]]
Line 36: Line 73:
 * Mixing Network Protocols in Python  * [[attachment:BusinessCards-PythonAdvocacy-1-LTR.odt]]
 * [[attachment:BusinessCards-PythonAdvocacy-1-LTR.ps]]
 * [[attachment:BusinessCards-PythonAdvocacy-1-LTR.pdf]]
Line 38: Line 77:
   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.  * [[attachment:OSCONflyer.odg]]
 * [[attachment:OSCONflyer.pdf]]
Line 40: Line 80:
   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. === postive reports about Python ===
 * [[http://www.clapper.org/bmc/blog/id/75]] Brian M. Clapper explains his feelings "Why is Python more fun than Java?"
Line 42: Line 83:
   The Twisted framework is complex and powerful so the article needs to keep things simple in this introductory article. Please send me <<MailTo(advocate AT python DOT org)>> any files that might be useful for giving out at user groups or business meetings.
Line 44: Line 85:
 * Interacting with Python at the Prompt Existing material appears (also) at [[evangelism support materials]] and PromotingPythonBof.
Note [[http://psf.pollenation.net/cgi-bin/trac.cgi/ticket/160]].
Line 46: Line 88:
   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. == General Notes ==
Line 48: Line 90:
 * Packaging your Python Application for Distribution Advocacy is the process of letting people know what Python is
good at, and drawing them into using the language. The most effective
forms of advocacy lure users to the language by impressing them
with results, rather than brow beating or lecturing them on language design.
Line 50: Line 95:
   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. Published articles that answer the question "how do I solve X with Python?" are a good way to get people interested.
Line 52: Line 97:
   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. One goal for writing articles might be to develop a library of
How-Tos for Python. Much information exists, but it has not been
collected for convenient access from python.org (or another central location), and there are
certainly gaps in covering key strengths of Python.
Line 54: Line 102:
 * Testing Your Python Program A collection of [[http://python.org/about/success|Python Success Stories]] already exists. These are also useful, usually by helping engineers convince their bosses that Python is worthy of attention. But success stories tend to be lean on "how-to" style information, so they do not offer a convenient path to get new users working with Python.
Line 56: Line 104:
   Introduce the reader to the test frameworks of Python. Cover the test and unittest modules, to show the conventional ways of building tests. Then progress to the doctest module, a more Pythonic approach, including both tests in the doc strings as well as those in standalone text files. For ideas/examples, look at how Zope3 has used text tutorial documents with embedded doctest expressions to combine teaching and testing. Consult the handouts from the Agile Testing tutorial at PyCon 2006 for other ideas of what to cover. Since the goal for advocacy is to highlight Python's strengths, [[http://wingware.com/python|this Key Strengths list]] may be useful.
Line 58: Line 106:
 * Going International with Python == Print and Online Magazines that Accept Technical Articles ==
Line 60: Line 108:
   Introduce the reader to the comprehensive support Python has for unicode. Cover the various codecs and the unicodedata and stringprep modules. Demonstrate use of the locale and gettest modules. We would like to focus on those magazines outside the Python community, in order to reach those who don't know about us. Also there are many magazines that accept press releases that do not accept articles. We need those that welcome articles.
Line 62: Line 110:
   Do something with the unicode, not just discuss it in an abstract manner. Perhaps show off a simple web server delivering unicode or an email generator.  * [[http://linuxjournal.com|Linux Journal]] [[http://www.linuxjournal.com/xstatic/author/index|Author Guidelines]]
 * [[http://www.ddj.com|Dr. Dobbs Journal]] [[http://www.ddj.com/authors.htm|Author Guidelines]]
 * [[http://byte.com|Byte Magazine]] (no guidelines found; may not accept non-staff material)
 * [[http://www.mactech.com|MacTech Magazine]] [[http://www.mactech.com/editorial/writersguide.html|Author Guidelines]]
 * [[http://www.onlamp.com/python/|O'Reilly Python Dev Center]] -- Inside Python community in a sense but O'Reilly gets a lot of exposure.
 * [[http://www.infoworld.com/|Infoworld]]
 * [[http://www.artima.com/|Artima Developer]]
 * [[http://www.intelligententerprise.com/|Intelligent Enterprise]]
Line 64: Line 119:
 * Working at the Prompt - Shell Utilities in Python == Electronic Magazines that Accept Technical Articles ==
Line 66: Line 121:
   Reach out to the bash/awk/sed scripter. Start with the flexible parsing of command-line arguments we have in the getopt/optparse modules. Demonstrate line-by-line file processing, and cover the shutil and commands modules. For an advanced wrapup touch upon the curses module and how non-graphic apps can be quickly written in Python.  * [[http://arstechnica.com|Ars Technica]] [[http://arstechnica.com/site/styleguide.ars|Author Guidelines]]
Line 68: Line 123:
 * Processing Compressed Archives with Python

   Python has rich support for handling compressed files and archives. Demonstrate the gzip, zlib, bz2 modules for compressing single files and then advance to full archives, using the zipfile and tarfile. Wrap up with a demonstration of use, showing off the zipimport module.

 * 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!


Getting Involved in Discussions

Discussions on advocating the use of Python take place on the following mailing lists:


Greetings! I'm the PythonAdvocacyCoordinator. You can reach me via email at <advocate AT python DOT org>. I'm always glad to hear ideas or corrections.


Current Focus


How You Can Get Involved!


Want to help with some writing? Check out our list of whitepaper/flyer AdvocacyWritingTasks or magazine ArticleIdeas.


Suggestions from the Community


  • Identify a shirt store in Europe, to provide a more local source of Python wearables than Cafe Press.
  • Help complete the remaining 15% of Python-equivalent recipes (and review the existing 85% for being current with Python 2.5) of the Programming Language Examples Alike Cookbook, a side-by-side comparison of algorithms in different programming languages based on the Perl Cookbook.

  • Do something about python.com! Python is a great teaching language, but one of the first things a curious student is likely to do in search of more info is go to their browser and surf to www.python.com. Yikes! It is unlikely that we can get them to give up their domain name, but maybe they could be convinced to at least put up a front page with "You are about to enter an adult site, are you 18, etc..." And if we were really lucky, their front page could contain "If you are looking for info on the Python programming language, go to www.python.org" How can we "encourage" them to do the right thing?


Advocacy Resources

Python Advocacy Kits

(permalink)

Reusable/Retargetable Teaching Materials

(permalink)

Other Resources

postive reports about Python

Please send me <advocate AT python DOT org> any files that might be useful for giving out at user groups or business meetings.

Existing material appears (also) at evangelism support materials and PromotingPythonBof. Note http://psf.pollenation.net/cgi-bin/trac.cgi/ticket/160.

General Notes

Advocacy is the process of letting people know what Python is good at, and drawing them into using the language. The most effective forms of advocacy lure users to the language by impressing them with results, rather than brow beating or lecturing them on language design.

Published articles that answer the question "how do I solve X with Python?" are a good way to get people interested.

One goal for writing articles might be to develop a library of How-Tos for Python. Much information exists, but it has not been collected for convenient access from python.org (or another central location), and there are certainly gaps in covering key strengths of Python.

A collection of Python Success Stories already exists. These are also useful, usually by helping engineers convince their bosses that Python is worthy of attention. But success stories tend to be lean on "how-to" style information, so they do not offer a convenient path to get new users working with Python.

Since the goal for advocacy is to highlight Python's strengths, this Key Strengths list may be useful.

We would like to focus on those magazines outside the Python community, in order to reach those who don't know about us. Also there are many magazines that accept press releases that do not accept articles. We need those that welcome articles.

Electronic Magazines that Accept Technical Articles


CategoryAdvocacy

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

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