<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-language" CONTENT="nl">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Mailing Lijsten en Forums</title>
    <link rel="stylesheet" href="../../netbeans.css" type="text/css">
</head>

  <body>
	  <h1>Mailing Lijsten en Forums</h1>

      Of je nu een gebruiker bent die op zoek is naar hulp met betrekking tot
      de IDE of een ontwikkelaar die de discussie voert over aspecten van de
      nieuwe release, op deze mailing lijsten mailing lijsten gebeurt het
      allemaal. Volg om je in te schrijven, uit te schrijven, het archief te
      raadplegen, of voor meer informatie over een individuele lijst de links
      hieronder.

    <p class="blue">
      <a href="top.html">Hoofd-Niveau lijst</a> Nieuwe gebruikers beginnen hier!
      Bevatten overzicht aankondigingen, de algemene gebruikers mailinglijst
      (nbusers), de NetBeans ontwikkelingslijst (nbdev), de gebruikersinterface
      lijst (nbui) en de OpenAPI lijst.
    </p>

    <p class="blue">
      <a href="other.html">Other Lists</a> : Build proces lijst (automatische uitvoer van het continue build
      proces, en testen voor API veranderingen), bug en CVS aankondigingen lijsten (verscheidene types van bug en
      CVS lijsten. Het verkeer op deze lijsten bestaat alleen maar uit
      automatische aankondigingen van CVS check-ins of bug status
      veranderingen) ...
    </p>

    <p class="blue">
      <a href="../../about/legal/license.html">Licentie discussies:</a> Zie de licentie pagina voor suggesties met
      betrekking tot discussie over die licentie.
    </p>

    <p class="orange">
      <h2>Op welke lijsten zou ik me moeten inschrijven?</h2> <br>
      Het ligt natuurlijk aan je interesse en betrokking welke lijsten geschikt
      voor je zijn. Dit is voor iedereen verschillend, en zal zeker veranderen
      wanneer je erachter komt dat het verkeer op een bepaalde lijst niet
      interessant voor je is. Hier is een ruwe schets om me te beginnen -
      <ul>
	<li>Als je geinteresseerd bent om NetBeans te gebruiken, schrijf je
	    dan in op 'nbannounce' en 'nbusers'.</li>
	<li>Als je geinteresseerd bent om aan NetBeans te ontwikkelen, schrijf
	    je dan in op 'nbdev' en 'dev@openide'.</li>
	<li>Als je iets ontwikkelt met een gebruikersinterface, schrijf je dan
	    in op 'nbui'.</li>
	<li>Als je <i>veel</i> mee ontwikkelt aan de IDE, dan zouden de
	    resterende lijsten ook interessant kunnen zijn - de build, bugs en
	    CVS lijst.</li>
      </ul>
    </p>

    <p class="orange">
      <h2>NNTP access</h2> <br>
      Als alternatief, mocht je USENET nieuws prefereren ten opzichte van
      mailinglijsten, alle hoofd-niveau lijsten hebben een gateway naar niews -
      post naar de mailinglijsten wordt doorgesluisd naar de nieuwsgroepen,
      en vice-versa. Stel je nieuwslezer in op <a href="news://news.gmane.org/">news.gmane.org</a>. Let op, de groep
      namen zijn niet precies hetzelfde als de mailinglijstnamen (dit om te
      conformeren aan Gmane conventies), de meeste liggen voor de hand. Gebruik
      je nieuwslezer en zoek naar de "netbeans" groepen - bijv.
      gmane.comp.java.ide.netbeans.users
    </p>

    <p>
      <b>Note : </b> SourceCast (de applicatie die netbeans.org host)
      heeft geen ondersteuning voor NNTP, dus word dit verzorgd door de
      gratis mailing lijst naar NNTP gateway <A HREF="http://www.gmane.org/">Gmane</A>.
    </p>

    <p class="orange">
      <h2>Mailinglijst Etiquetten</h2> <br>
      Commentaar van iederen is welkom, maar omdat de hoog-niveau lijsten een
      zeer veel verkeer genereren is het verstandig om een bericht duidelijk
      op te stellen. Het kan het verschil betekenen tussen een bericht dat
      een antwoord krijgt en eentje die dat niet krijgt. Houd
      <i>Alsjeblieft</i> de volgende voor de hand liggende etiquetten in
      het oog wanneer je bericht post! Een aantal tips.
      <ol>
        <li>Post een bericht niet naar meer dan 1 lijst - bepaal een lijst en
	post alleen daar. Als het de verkeerde lijst mocht zijn dan zal iemand
	je dat laten weten en een alternatief suggereren.</li>
        <li>Wanneer je antwoord op een bericht verander dan het onderwerp niet
	compleet, dit omdat 'threaded mailprogrammas' het dan op een vreemde
	plaats tonen; stuur een nieuwe boodschap wanneer je een nieuwe thread
	begint.</li>
        <li>Lees Eric Raymond's handleiding om vragen op een "Slimme Manier" te
	stellen op <a href="http://www.catb.org/~esr/faqs/smart-questions.html">http://www.catb.org/~esr/faqs/smart-questions.html</a>
        </li>
        <li>Verkort het originele bericht in je antwoord. Voeg alleen de tekst
	toe van het origineel die relevant is. De ergste gewoonte denkbaar is
	om een antwoord te geven van een regel, waarbij de originele email in
	het geheel volgt.</li>
        <li>Daar aan gelijk, als je een punt voor punt antwoord maakt, waar je
	wat originele tekst gevolgd door je antwoord en hetzelfde met het
	volgende punt, zorg er dan voor dat je antwoorden dan gemakkelijk te
	vinden zijn. Als je een bericht maakt met 40 regels van originele
	tekst gevolgd door een antwoord op een regel, en dan vervolgens weer
	40 regels van originele tekst, is het erg moeilijk om je antwoord te
	vinden. Mocht je echt de volle 40 regels van de originele tekst nodig,
	hebben dan is het misschien raadzaam om een lege regel voor en na je
	antwoord misschien zelfs twee regels te gebruiken voordat je verder
	gaat met opnieuw wat originele tekst.
        <li>Gebruik geen opgemaakte tekst in je bericht. Je keuze van font,
	font grootte, font kleur, ed kan je bericht nagenoeg onleesbaar maken
	voor anderen! Gebruik het liefst platte tekst tenzij er een zeer goede
	reden is om dat niet te doen. Als je geen opmaak gebruikt dan kan
	een ieders mailprogramma het opmaken zoals zij het willen, en dat
	garandeert dat het leesbaar is en een plezier voor het oog voor
	iedereen.</li>
        <li>Daar aan gelijk, stuur geen HTML berichten! Leesbaarheid, de
	grootte van de berichten en veiligheid zijn slechts een aantal redenen
	om geen HTML berichten te versturen. Een goede beschrijving van deze
	en andere problemen, zowel als de instructies hoe je HTML berichten
	uitzet in veel gebruikte mailprogrammas is beschikbaar op
	<a href="http://kb.mozillazine.org/Plain_text_e-mail_%28Thunderbird%29">http://kb.mozillazine.org/Plain_text_e-mail_%28Thunderbird%29</a></li>
      </ol>
    </p>
    <p>
      HTML <i>bijlages</i> is natuurlijk geen probleem!
    </p>
    <p class="orange">
      <h2>Een notitie over mailfilters</h2> <br>
      Omdat een aantal lijsten zeer veel verkeer genereren hebben we een aantal
      conventies die helpen in het sorteren en filteren. De mailinglijst
      software voegt een voorvoegsel toe aan het onderwerp, in dit geval de
      naam van de mailinglijst, bijvoorbeeld krijgen de berichten van de
      'nbdev' lijst <b>[nbdev]</b> voorgevoegd bij het onderwerp.
    </p>

    <p>
      Het is ook gebruikelijk dat men een label toevoegt dat betrekking heeft
      op het onderwerp dat men bespreekt, bijv. [Stable 3.1 Release]. Dit wordt
      natuurlijk overgelaten aan het individu.
    </p>

  </body>
</html>
