Help us help you

Welcome to the OPeNDAP discourse! Whether you are an intrigued new user or an experienced software engineer, working with software and scientific data can often lead to common errors due to a misuse of its protocols, outdated CF conventions in the data, faulty server installation, or potentially discovering a bug in the code. We consider all these essential to OPeNDAP since these can lead a greater discussion that improves the software design and its implementation.

OPeNDAP follows a client-server model, and understanding it all is not an easy task. Furthermore, it can be complicated to fully explain desired behavior, or to diagnose and fix bugs. To ensure broad community engagement, we recommend the following simple steps for posting:

  1. Avoid duplicate posts. Search thoroughly through discourse, making use of categories, tags, and topics. Chances are other people within the community have faced a similar problem before and marked it as solved, or there is an active ongoing discussion about it.

  2. Self-describing title. Add tags related to APIs such as Python, Matlab, and servers such as Hyrax and Thredds, and associate it with relevant categories, when appropriate. This will help grab the attention of community members with the relevant technical experience, and make it easier for people to find.

  3. Get yourself familiarized with Markdown and Latex syntax. These can be useful when explaining a desired behavior.

  4. When appropriate, use a spell-checker. Typos are common, and most are benign, but the misuse of punctuation marks can significantly alter the sentence’s meaning and lead to unnecessary delays due to miscommunications.

  5. Quote code whenever possible, following proper code indentations, and disclose the programming API (client) and server you are using. It is not always obvious from code snippets. For example:

```python
""" This is python code.  """
if statement:
    print('here')
else:
    print('not here')
```

will produce this:

""" This is python code.  """
if statement:
    print('here')
else:
    print('not here')
  1. Include a Minimal Working Example (MWE) and the relevant software or virtual environment that you are working with. An MWE is one that, upon copy-paste-ing into a fresh environment, reproduces the error identically. Working on a MWE can be time-consuming, but a proper MWE can significantly speed up diagnosis and the solution timeline.

  2. Include the full Tracebacks. These can be long but contain very useful information, even when they are cryptic. A complete Traceback helps the community better understand the error and whether it relates to the client or the server. It is also important to quote the Traceback (see 4). An accepted format to include the Traceback is to include an abbreviated quoted version of it, and append the complete Traceback in the format of a txt file. This practice will help other community members facing the same issues as you this the thread some time in the future.

  3. If you get an answer that solves your problem, mark it as solved by clicking on the “solution” button. This will make it easier for future help-seekers to find it and avoid duplicate posts.

  4. Avoid extending the original thread with new questions once your original question has been solved. Instead, we recommend opening a new thread. This practice will make it easier for future users to better understand the outcomes of the thread.