Differences between revisions 21 and 56 (spanning 35 versions)
Revision 21 as of 2006-09-14 10:17:47
Size: 11131
Editor: JeffRush
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:
== Advocacy Materials == --------
||<style="background-color: #b0b0fe;border: 4px solid blue; padding: 4px;">Getting Involved in Discussions||
Line 3: Line 4:
Existing material appears (also) at ["evangelism_support_materials"] and PromotingPythonBof.
Note [http://psf.pollenation.net/cgi-bin/trac.cgi/ticket/160].
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:
I've established the beginnings of a document library:
[http://advocacy.dfwpython.org/@@/collaterals/]
I'll relocate it under a more appropriate domain name at some point but for now, please send me (advocate at python dot org) any files that might be useful for giving out at user groups or business meetings.
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.

----
== Current Focus ==

 * [[/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]]

----
== 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 [[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?

----
== Advocacy Resources ==

=== Python Advocacy Kits ===
<<Anchor(AdvocacyKits)>> [[#AdvocacyKits|(permalink)]]

 * [[/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]]

=== Reusable/Retargetable Teaching Materials ===
<<Anchor(TeachingMaterials)>> [[#TeachingMaterials|(permalink)]]

 * [[/SlidePresentations|Excellent Slide Presentations]] - we're looking for the best out of many
 * [[/ClassHandouts|Class Handouts]]

=== Other Resources ===

 * [[/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]]

 * [[attachment:BusinessCards-PythonAdvocacy-1-LTR.odt]]
 * [[attachment:BusinessCards-PythonAdvocacy-1-LTR.ps]]
 * [[attachment:BusinessCards-PythonAdvocacy-1-LTR.pdf]]

 * [[attachment:OSCONflyer.odg]]
 * [[attachment:OSCONflyer.pdf]]

=== 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?"

Please send me <<MailTo(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]].
Line 24: Line 102:
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. 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 26: Line 104:
Since the goal for advocacy is to highlight Python's strengths, [http://wingware.com/python this Key Strengths list] may be useful. Since the goal for advocacy is to highlight Python's strengths, [[http://wingware.com/python|this Key Strengths list]] may be useful.
Line 32: Line 110:
 * [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]
 * [[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 43: Line 121:
 * [http://arstechnica.com Ars Technica] [http://arstechnica.com/site/styleguide.ars Author Guidelines]  * [[http://arstechnica.com|Ars Technica]] [[http://arstechnica.com/site/styleguide.ars|Author Guidelines]]
Line 45: Line 123:
== 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. Lightly contrast the capabilities with existing functional programming languages like Haskell.

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

 * Testing Your Python Program

   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.

 * Going International with Python

   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.

   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.

 * Working at the Prompt - Shell Utilities in Python

   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.

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

 * System Administration with Python

   Highlight the useful Windows system administration tasks that can be achieved through Python - registry editing etc.

 * Getting Graphical with Python

   Start with the Python Imaging Library (PIL) introducing low-level graphic capabilities, then SDL and Pango/SVG. Continue moving up the spectrum thru OpenGL and into control of graphic applications such as Blender and GIMP. Also bring in several of the scientific graphing and visualization frameworks.

 * Making Things Add Up with Python

   An odd topic perhaps, but it would be cool to cover the various ways that Python can represent numbers. Introduce the integer / long integer pair, how conversions are automatic and then roll in the decimal module. Step up then to the NumPy framework and how vast arrays can be efficiently handled in Python. Then cover the rational and units module for Python and end with an overview of one of the symbolic algebra modules for Python. An article for the language or math geek, to be sure.

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

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.