Code

Changes between Version 38 and Version 39 of UsingTheMailingList


Ignore:
Timestamp:
08/12/11 00:38:39 (3 years ago)
Author:
Derek Hohls <gamesbook@…>
Comment:

Changed order of topics; clarified grammar; shifted some "do's" into "don'ts"

Legend:

Unmodified
Added
Removed
Modified
  • UsingTheMailingList

    v38 v39  
    33= Overview = 
    44The django-users@googlegroups.com is the primary source for help on using Django. However many users are unable to get full mileage from the list as they are inexperienced in formulating their questions and in interacting with the list members. This page seeks to address this problem. Many members of the list, including core developers, take a lot of time and trouble to patiently answer questions asked, and we users should take as much trouble to ask properly formulated questions. Try to follow the steps outlined below to make for a more pleasant and rewarding experience on the list. 
    5  
    6 == Inspecting Python objects == 
    7 Here is a great mailing list thread which explains some good ways on how to inspect Python objects: 
    8 http://groups.google.com/group/django-users/browse_thread/thread/69631b8fe7eb4412/ddf4bdb4b18e2997?hl=en&lnk=gst&q=Inspecting+objects#ddf4bdb4b18e2997 
    9  
    10 == Migrating from other frameworks/tools == 
    11 People migrating from other frameworks/tools face particular issues, mainly regarding basic concepts. We try to address some of these issues here. 
    12 === Zope/Plone === 
    13  * The fundamental difference here is that Zope is a *server* and completely self contained. It is a webserver cum database server cum templating engine. On the other hand Django is a loosely coupled set of components, and one has to set up the webserver and database outside the framework on one's own - and there is a plethora of choices for these. 
    14  * The Zope templating language is practically a programming language on it's own and it is common practice to embed script python code within templates. Django, on the other hand strictly limits the amount of logic one can put in templates, and it is impossible to embed python code in templates. 
    15  * Zope has clearly defined methods for adding extensions and products. Django does not. 
    16  * It is possible for an end user to produce an enormous amount of functionality in Plone without knowing anything about python in particular and programming in general, or css or html as all these are provided readymade. With Django you have to roll your own css, html etc and will not get very far without learning python and programming. 
    17 === Drupal === 
    18 === php frameworks === 
    19 === Java === 
    20 === RubyOnRails === 
    21  
    22 == Are you new to Python? == 
    23 Asking question about Python related subjects is fine as long as; 
    24  
    25 * You follow the same guidelines as the rest of this document 
    26 * The question itself is somehow vaguely related to your Django project 
    27 * You understand that learning Django will involve learning Python as well. 
    28  
    29 For those who would like to read some tutorials on the basics of Python, you could try: 
    30 http://wiki.python.org/moin/BeginnersGuide/Programmers 
    31  
    32 You can also try: 
    33 http://learnpythonthehardway.org/ 
    345 
    356== Classify your question == 
     
    4516 'abc' generates an 'xyz' widget, does Django have this feature? 
    4617}}} 
    47 === Is Django suitable for the app I want to build === 
     18 
     19=== How does Python work? === 
     20Asking question about Python related subjects is fine as long as; 
     21 
     22* You follow the same guidelines as the rest of this document 
     23* The question itself is somehow vaguely related to your Django project 
     24* You understand that learning Django will involve learning Python as well. 
     25 
     26For those who would like to read some tutorials on the basics of Python, you could try: 
     27http://wiki.python.org/moin/BeginnersGuide/Programmers 
     28 
     29You can also try: 
     30http://learnpythonthehardway.org/ 
     31 
     32=== Is Django suitable for the app I want to build? === 
     33 
    4834=== Questions on best practices === 
    4935 
    50 == How to find the answers yourself == 
     36 
     37== Try to find the answers yourself == 
    5138* Most of the time, Google holds the answer to your question. 
    5239* Don't expect a 'one-shot / copy-and-paste' answer, there may be some work involved. 
     
    5542* Look through the django-users mailing list archive ( https://groups.google.com/group/django-users/topics?hl=en ) 
    5643 
    57 == Be imaginative with your Google keywords == 
     44=== Google: Be imaginative with your keywords === 
    5845If you are looking for information relating to say "Sphinx", just typing that in alone usually won't help.  
    5946 
     
    9784}}} 
    9885 
    99 == More on where and how to search == 
     86=== More on where and how to search === 
    10087The documentation is the best place to search. The only problem is that the search bar in the docs does not work well on multiple keywords. A search for date range will not give you the desired result. For this use the 'site' option in search engines like duckduckgo -  
    10188http://duckduckgo.com/?q=site%3Adocs.djangoproject.com+date+range 
    10289 
    103 The other place to search is the mailing list. If you *must* search blogs or forums, make sure that you check the date of the post and the django version before complaining that it doesn't work. 
    104  
    105 Note that the documentation is excellent, but not perfect. It is mostly written by developers, and they often leave out things that are glaringly obvious to them, but not so obvious to the end user. At the same time they are very receptive when this is pointed out by us. Do file a document bug if you come across such problems. 
     90The other place to search is the mailing list. If you '''must''' search blogs or forums, make sure that you check the date of the post and the Django version before complaining that it doesn't work. 
     91 
     92Note that the documentation is excellent, but not perfect. It is mostly written by developers, and they often leave out things that are glaringly obvious to them, but not so obvious to the end user. At the same time they are very receptive when this is pointed out by us. Don't complain about the documentation; rather file a document bug if you come across such problems. 
    10693 
    10794== Prepare the question == 
     
    11299* Include tracebacks (where applicable; especially if there is an error). Make sure you *paste* the *full* traceback. Do not worry about using up space - you are not paying for it. 
    113100* Include a tested example of the code you are using. 
    114 * Do not obfuscate your code or invent code snippets - if you are reading this, your code is not rocket science and no one is going to steal it. Probably no one will take it even if you pay them. 
    115101* Indicate what attempts you have made to resolve the problem/issue yourself 
    116102* Ask yourself, what extra information might you need to resolve similar problems? 
    117 * Proofread your e-mail ''multiple'' times, rewriting for clarity and brevity as needed. You will greatly increase the chances of both getting help and figuring own your stumbling block this way. 
    118 * If you post on a Friday or a weekend wait till people have a chance to get over their Monday hangover before expecting a reply. 
     103* '''Finally''': proofread your question ''multiple'' times, rewriting for clarity and brevity as needed. You will greatly increase the chances of both getting help and figuring out your stumbling block this way. 
    119104 
    120105=== Don't's: === 
     
    122107* Expect an instant or one-shot answer. The mailing list is '''not''' your personal tutor. 
    123108* Be vague e.g. "please help build a website". No one has time to write a vague answer. 
    124 * Keep repeating the same question.  If anyone has an answer, you will get it sooner or later. 
     109* Keep repeating the same question.  If anyone has an answer, you will get it sooner or later. If you post on a Friday or a weekend wait till people have a chance to get over their Monday hangover before expecting a reply. 
     110* Obfuscate your code or invent code snippets - if you are reading this, your code is not rocket science and no one is going to steal it. Probably no one will take it even if you pay them. 
    125111* Use the phrase 'it doesn't work'. The most common question on IRC is: 'What does doesn't work mean?' 
    126112* Attempt to 'bump' your question by reposting it a second time. The mailing list is not a phpBB bulletin board.  
     
    179165}}} 
    180166 
     167 
    181168== Follow up == 
    182169* Always make an effort to say thank you. 
     
    186173* Always make an effort to make your findings public. This may be in the form of a Django core ticket, djangosnippets.com, blog post, YouTube video etc. (Although sometimes, if the mailing list subject is descriptive enough, it may suffice to just have it in archive - which happens automatically.) 
    187174 
    188 == Start answering questions == 
    189 * Give something back to the community by answering questions you feel confident in. 
    190  
    191175== Real examples of how to ask questions properly == 
    192176* http://bugs.python.org/issue12455 
     
    211195OP posted a question which Google answered very easily. Shows lack of intuition/laziness. Question also wasn't appropriate for this list. 
    212196 
    213 == How to answer questions on the list == 
     197 
     198== Start answering questions == 
     199* Give something back to the community by answering questions you feel confident in. 
     200 
     201=== How to answer questions on the list === 
    214202 * We were all newbies once.  If you feel a question is too trivial to answer, do not flame - ignore the post. 
    215203 * Ideally everyone who uses django should know the basics of Python, HTML, CSS, SQL and the HTTP protocol, but we do not live in an ideal world. If a post shows lack of such knowledge, gently point the poster to resources that would help. 
     
    217205 * If you feel the user hasn't made enough effort to find the answer themselves, explain to them why, and give them some guidance on how they can do this (point them to this page). 
    218206 
    219 == Real examples of how NOT to answer questions == 
     207=== Real examples of how NOT to answer questions === 
    220208 * http://groups.google.com/group/django-users/browse_thread/thread/18ec8b88e52974ee/5f8d757781fa2fe4?hl=en#5f8d757781fa2fe4 
    221209 * http://groups.google.com/group/django-users/browse_thread/thread/c20226440220c35c?hl=en 
     210 
     211== Other Issues == 
     212 
     213=== Inspecting Python objects === 
     214 
     215Here is a great mailing list thread which explains some good ways on how to inspect Python objects: 
     216http://groups.google.com/group/django-users/browse_thread/thread/69631b8fe7eb4412/ddf4bdb4b18e2997?hl=en&lnk=gst&q=Inspecting+objects#ddf4bdb4b18e2997 
     217 
     218=== Migrating from other frameworks/tools === 
     219People migrating from other frameworks/tools face particular issues, mainly regarding basic concepts. We try to address some of these issues here. 
     220==== Zope/Plone ==== 
     221 * The fundamental difference here is that Zope is a *server* and completely self contained. It is a webserver cum database server cum templating engine. On the other hand Django is a loosely coupled set of components, and one has to set up the webserver and database outside the framework on one's own - and there is a plethora of choices for these. 
     222 * The Zope templating language is practically a programming language on it's own and it is common practice to embed script python code within templates. Django, on the other hand strictly limits the amount of logic one can put in templates, and it is impossible to embed python code in templates. 
     223 * Zope has clearly defined methods for adding extensions and products. Django does not. 
     224 * It is possible for an end user to produce an enormous amount of functionality in Plone without knowing anything about python in particular and programming in general, or css or html as all these are provided readymade. With Django you have to roll your own css, html etc and will not get very far without learning python and programming. 
     225==== Drupal ==== 
     226==== php frameworks ==== 
     227==== Java ==== 
     228==== RubyOnRails ==== 
     229