home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2370 < prev    next >
Encoding:
Internet Message Format  |  1990-12-28  |  18.9 KB

  1. From: xanthian@zorch.SF-Bay.ORG (Kent Paul Dolan)
  2. Newsgroups: alt.sources
  3. Subject: USENet vote taking script examples, Part02/02
  4. Message-ID: <1990Dec19.225206.4635@zorch.SF-Bay.ORG>
  5. Date: 19 Dec 90 22:52:06 GMT
  6.  
  7. Submitted-by: xanthian@zorch.SF-Bay.ORG (Kent Paul Dolan)
  8. Posting-number: <fill in the blank>
  9. Archive-name: vote_tools/Part02
  10.  
  11. This is the second part of a two part distribution.
  12.  
  13. Enclosed is a "how to run a USENet vote" document to accompany the set
  14. of scripts I used to run the comp.sys.amiga reorganization vote
  15. acceptance.
  16.  
  17. There are more explanations in the README, in the first part of this
  18. distribution.
  19.  
  20. There is no trailing signature, and this shar is complete in this
  21. posting. A first posting and shar contains the remainder of the files
  22. for this distribution. Thanks to Rich Salz for his cshar that packaged this
  23. distribution so nicely. Enjoy!
  24.  
  25. Kent, the man from xanth.
  26. <xanthian@Zorch.SF-Bay.ORG> <xanthian@well.sf.ca.us>
  27.  
  28.  
  29. #! /bin/sh
  30. # This is a shell archive.  Remove anything before this line, then unpack
  31. # it by saving it into a file and typing "sh file".  To overwrite existing
  32. # files, type "sh file -c".  You can also feed this as standard input via
  33. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  34. # will see the following message at the end:
  35. #        "End of archive 2 (of 2)."
  36. # Contents:  docs/POLLING_PLACE
  37. # Wrapped by csa-vote@zorch on Wed Dec 19 14:05:29 1990
  38. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  39. if test -f 'docs/POLLING_PLACE' -a "${1}" != "-c" ; then 
  40.   echo shar: Will not clobber existing file \"'docs/POLLING_PLACE'\"
  41. else
  42. echo shar: Extracting \"'docs/POLLING_PLACE'\" \(16763 characters\)
  43. sed "s/^X//" >'docs/POLLING_PLACE' <<'END_OF_FILE'
  44. XPOLLING_PLACE
  45. X
  46. XA description of how a USENet vote is actually run, from start to
  47. Xfinish, including setting up the files, and the use of the enclosed
  48. Xscripts, from experience with the comp.sys.amiga reorganization vote
  49. Xand the earlier comp.sys.amiga.games vote.
  50. X
  51. XKent Paul Dolan, LCDR, USNOAA Corps, Retired.
  52. X15 December 1990
  53. X
  54. XPermission is hereby granted to freely excerpt and copy this file for
  55. Xany purpose whatsoever.
  56. X
  57. X1) Thinking it over.
  58. X
  59. XIs the vote, and the newsgroup change, really needed?  For a big vote,
  60. Xyou are going to give away all your spare time for four months; be
  61. Xready to do this.
  62. X
  63. XIs there active support for such a change? Have people been muttering on
  64. Xthe net "I wish somebody would take charge of cleaning up this mess"? If
  65. Xthe support is only in your mind, you have a heck of a job ahead of you,
  66. Xand net politics is frustrating in the extreme. Contrariwise, if the
  67. Xsupport is there, you'll have lots of assistance, but most of the job
  68. Xwill still fall on you.
  69. X
  70. X2) Getting started.
  71. X
  72. XDon't jump right into news.groups and news.announce.newgroups; sane
  73. Xpeople ignore those groups under normal circumstances, so you have to go
  74. Xwhere the audience for your change currently exists, and lure them into
  75. Xfollowing a discussion in news.groups. Expect to spend four to six weeks
  76. Xgetting together a proposal in the group where your audience lurks. Lots
  77. Xof votes fail for lack of a coherent proposal or an interested audience
  78. Xfollowing the discussion; the time spent _before_ "going public" is the
  79. Xmost valuable part of your effort to the final result, so don't hurry
  80. Xand don't let yourself be hurried by the calls to "just get on with the
  81. Xvote, damn it".
  82. X
  83. XThe net has a significant, sometimes multi-week lag in responses, so you
  84. Xcan find yourself fielding answers to proposal items long changed or
  85. Xabandoned. Practice civility and patience; folks at sites out in the
  86. Xweeds have no choice in the turn around times they experience.
  87. X
  88. XTake strong charge of the discussion, but don't get your ego tied up in
  89. Xthe final proposal details; to get a passing vote, the proposal must be
  90. Xwhat the intended audience wants, and what the rest of the net will
  91. Xtolerate; this is unlikely to coincide much at all with your initial
  92. Xvision, and trying to hold it to that standard is a recipe for failure.
  93. X
  94. XAgree with sensible changes by posting a revised proposal. You may do
  95. Xseveral iterations of this; I did three over six weeks. Use easily
  96. Xdistinguished subject lines for ease of deciding what edition of your
  97. Xproposal the responses are considering. I used "REV 0", REV 1", and so
  98. Xon to highlight the editions.
  99. X
  100. XWhen you have a concensus, and a coherent proposal drafted, with a
  101. Xdescription of the purpose of each new group or other change, a
  102. X"moderated" or "unmoderated" status for each, moderators chosen as
  103. Xneeded, and a meaningful name for each new or renamed group chosen, it
  104. Xis time to "go public".
  105. X
  106. XFirst, proofread your proposal. If English is not your native tongue, or
  107. Xspelling and grammer are not your strengths, get someone to review your
  108. Xintended posting for errors or unclarity.
  109. X
  110. X3) Going public.
  111. X
  112. XPost your proposal to moderated newsgroup news.announce.newgroups, with
  113. Xcrosspostings to news.groups and the groups where your intended audience
  114. Xlurks, and followups to news.groups, with a subject line like "CALL FOR
  115. XDISCUSSION, comp.eggplant.lifecycle.* REORGANIZATION". The caps will
  116. Xmake the subject line stand out when, inevitably, it is pulled back to
  117. Xother, busy groups.
  118. X
  119. XYou are required to run a three week discussion period, but just say in
  120. Xyour posting "there will be a twenty one day discussion period from the
  121. Xdate this is posted to news.announce.newgroups"; don't try to guess the
  122. Xdate yourself.
  123. X
  124. XIt is _very_ _important_ to have a Keywords: line all in caps that says
  125. Xsomething a lot like "NOT THE BALLOT. POST NO VOTES. FORGE NO NEWGROUPS."
  126. XThe behavior of people on the net must be experienced to be believed, but
  127. Xheading off trouble in advance is the best bet, and this will help.
  128. X
  129. XThe moderator of news.announce.newgroups habitually batch posts articles
  130. Xon weekends, so post your intended Call for Discussion by midweek at the
  131. Xlatest to allow time for email transit.
  132. X
  133. XNominally, the rest of the discussion takes place in news.groups.
  134. XActually, most of it will continue in the groups where your audience
  135. Xlurks, so you must follow perhaps more groups than you ever have before.
  136. XMake sure that each of your postings in response to these discussions
  137. Xcontains a crosspost and a followup to news.groups. By this means, you
  138. Xcan slowly lure more and more of the intended audience into following
  139. Xthe main discussion.
  140. X
  141. X4) Slings and arrows.
  142. X
  143. XNot all of the newsgroup creation process is a lot of fun; there are a
  144. Xgroup of people whose only joy in life is causing mischief to newsgroup
  145. Xproposals.  You're going to need patience for this part.
  146. X
  147. XThe crowd that hangs out in news.groups all consider themselves world
  148. Xclass experts on the best names for newsgroups, and the best shapes for
  149. Xheirarchies, and they are definitely world class experts at ranting and
  150. Xraving, and determined control freaks. Most of them will have no
  151. Xinterest whatever in the subject matter of your intended group, but lots
  152. Xof interest in dictating how you name or locate it.
  153. X
  154. XYou'll find lots of folks convinced that the net is going to crash and
  155. Xburn if one more group, yours, is allowed to be created, and others who
  156. Xthink that all subjects except those personally interesting to them need
  157. Xto be excluded from the net by all possible means, and others who can't
  158. Xlive with the existance of any but comp groups on the net, though those
  159. Xhave long been in the minority, and others who want to censor anything
  160. Xwith a chance of being fun.
  161. X
  162. XGood luck at being civil in response; I didn't even try. A kill file is
  163. Xa godsend in this part of the effort; answering these jerks is a waste
  164. Xof time, while ignoring them deprives them of the feedback they crave,
  165. Xand lets your ulcer heal.
  166. X
  167. XIf you come into this part of the discussion with a coherent proposal
  168. Xagreed upon among your intended audience, this is the time to get
  169. Xstubborn about changes away from that standard to fit the whims of those 
  170. Xwho will never follow the group anyway.  Only agree to sensible, well
  171. Xfounded changes, but when you agree, agree publically by posting a revised
  172. Xproposal to news.groups.
  173. X
  174. X5) Setting up for the vote.
  175. X
  176. XGet a separate account for collecting votes! You will find an incredible
  177. Xamount of trash accumulating, and you'll need a modified mail handling
  178. Xprocedure for acknowledgements; both can make a mess of your normal
  179. Xaccount, and you'll need your system administrator's support for the
  180. Xeffort anyway. For a big vote, you can find yourself using three to five
  181. Xmegabytes of storage, adding several megabytes a week to your system's
  182. Xemail traffic, sucking up cpu cycles by the ten billions to process the
  183. Xvotes, so you need approval in advance for the impact your vote will
  184. Xhave on your system. You might as well get the temporary account at the
  185. Xsame time.
  186. X
  187. XUnder the main directory, set up directories for the votes, one ballot
  188. Xper file, for the acknowledgements, one big file will do, for the
  189. Xbounced acknowledgements, for problem ballots, for gossip email sent by
  190. Xmistake to the vote account, for the working data files created in
  191. Xtallying the votes, for the csh scripts, and for the awk source files.
  192. X
  193. XIn the main directory keep a current report of the vote status, the text
  194. Xchunks used to build it, a "thanks for the votes" form letter for the
  195. Xacknowledgements, a raw ballot for those who can't find the posted ones
  196. Xand request a private copy, and a straight "yes" ballot for the 5% of
  197. Xvotes that come in as "yes on all proposals" without a ballot, so you
  198. Xcan edit one into the ballot letter quickly.
  199. X
  200. XSet the scripts in place, and modify the .mailrc, as detailed in the
  201. Xaccompanying FILE_PURPOSES document.
  202. X
  203. XWrite up a ballot; the most successful one I used looked like this:
  204. X
  205. X-----
  206. X"Y" = yes, "N" = no, "A" = abstain; return all 14 vote lines.
  207. X
  208. XYNA Create comp.sys.amiga.misc           (renames comp.sys.amiga)
  209. XYNA Create comp.sys.amiga.programmer     (renames comp.sys.amiga.tech)
  210. XYNA Create comp.sys.amiga.announce       (moderated)
  211. XYNA Create comp.sys.amiga.reviews        (moderated)
  212. XYNA Create comp.sys.amiga.introduction   (monitored)
  213. XYNA Create comp.sys.amiga.audio
  214. XYNA Create comp.sys.amiga.graphics
  215. XYNA Create comp.sys.amiga.marketplace
  216. XYNA Create comp.sys.amiga.multimedia
  217. XYNA Create comp.sys.amiga.applications
  218. XYNA Create comp.sys.amiga.emulations
  219. XYNA Create comp.sys.amiga.advocacy
  220. XYNA Create comp.sys.amiga.datacomm
  221. XYNA Create comp.unix.amiga
  222. X\ / ^---------------------------------^ Leave this part alone
  223. X `----Remove two of these, leave your choice; remove any ">", etc., from front
  224. X                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  225. X-----
  226. X
  227. XI didn't have the "^^^^^" part, but I recommend it; folks just don't seem to
  228. Xsee that part without it.  This summarizes your ballot proposal and how to
  229. Xvote, all in a compact format.
  230. X
  231. X6) Starting the vote.
  232. X
  233. XWhen your files are set up, and an email friend or two has tested the
  234. Xaccessiblity of your address and the workability of your scripts by
  235. Xmailing you test copies of your ballot from offsite, the three week
  236. Xdiscussion is nearing an end, a consensus on names and purposes of the
  237. Xgroups has mostly been achieved (it will never be perfect), and you've
  238. Xtaken a big, deep breath, you are almost ready to conduct the vote.
  239. X
  240. XMake a posting for news.announce.newgroups out of the ballot, your
  241. Xlatest edition of the proposal, and a bit of extra text.
  242. X
  243. XPut a line at the top saying: "Justification follows the ballot", then
  244. Xput the ballot where voters can find it quickly; below the ballot, put
  245. Xyour revised proposal below a line saying:
  246. X
  247. X------------ delete remainder before returning ballot------------------
  248. X
  249. XPost your vote call to news.announce.newgroups, crossposted to the
  250. Xinterest groups and news.groups, and with followups directed to
  251. Xnews.groups as before, with a Subject line like "CALL FOR VOTES,
  252. Xcomp.eggplant.lifecycle.* REORGANIZATION".
  253. X
  254. XUse a Summary: (not Keywords:) line like "THIS IS THE BALLOT. EMAIL
  255. XVOTES ONLY. DON'T POST VOTES."
  256. X
  257. XThe reason to use the Summary: line is that it doesn't get copied to the
  258. Xfollowup articles. To cope with them, put in a Keywords: line like:
  259. X"VOTE ONLY WITH ORIGINAL BALLOT. FORGE NO NEWGROUPS. POST NO VOTES."
  260. X
  261. XThere will still be people who don't seem to be able to read, but there
  262. Xwill be fewer if you take all these precautions.
  263. X
  264. XPut in a line near the top saying: "the vote will run for three weeks
  265. Xfrom the date this is posted"; the moderator of news.announce.newgroups
  266. Xwill set the exact date for you.
  267. X
  268. XWhile discussion is nominally over, the control freaks never give up,
  269. Xand go wild when a vote is actually called. You may find yourself
  270. Xdefending everything you thought already settled, again. Be patient, it
  271. Xhelps run up the vote totals.
  272. X
  273. X7) Conducting the vote.
  274. X
  275. XNow you will see an amazing thing happen; 20% of your final vote total
  276. Xwill arrive within twelve hours of the article being posted by the
  277. Xmoderator, and 60% within two days.  You are going to be very busy for
  278. Xa while, and then very bored.
  279. X
  280. XFor each ballot received, read it to be sure it is correctly formatted;
  281. Xif so, save it to directory "votes" under a unique file name; the login
  282. Xid of the voter is best, extend it with other identifying information
  283. Xif it is a common first or last name.  If using "mail", watch for the
  284. X"new file" after you save the ballot, to assure that there hasn't been
  285. Xa filename collision.
  286. X
  287. XIf the ballot is badly formatted, but usable, use the edit command of
  288. Xyour mail reader (for "mail" this is "e") to correct the problems without
  289. Xchanging the intent of the vote, then save to directory "votes" as before.
  290. X
  291. XIf the ballot is unusable (no way to determine the voter's intentions),
  292. Xsave the ballot to directory "problems".
  293. X
  294. XIf the email is not a ballot, but a bounce of one of your acknowledgements,
  295. Xif you can cope with it then, by mailing a new acknowledgement to a better
  296. Xformatted address (remember, you can look at the original ballot in "votes"
  297. Xto see other possible addresses), do so and delete the bounce.  If you can't,
  298. Xor don't have time, save the bounce to directory "bounces" under the same
  299. Xname as the ballot in "votes", and go on to the next email.
  300. X
  301. XFor ballots, respond with your canned "thanks for voting" note; in "mail",
  302. Xthis is done by typing "R", entering a subject like "thanks for your vote"
  303. Xif necessary, typing "~r thanks" return, pausing, then typing "." return
  304. Xor "^D" depending on whether you have "set dot" in your .mailrc.
  305. X
  306. XFor problem ballots, mail back a description of the problem and a copy of
  307. Xthe raw ballot instead of the "thanks" note.
  308. X
  309. XWhen you are done processing the current email votes, exit the mailer
  310. Xwith whatever method deletes all the already saved mail.
  311. X
  312. XIn the main directory, with ~/bin in your path, execute "dothevotes &"
  313. Xreturn.  You can then su to your real account and read news or do work
  314. Xor whatever, with the occasional blast of trash to your screen to tell
  315. Xyou when one or another phase of the vote counting is done.
  316. X
  317. XWhen you see "WRITELETTER DONE" in a row of stars, you can exit back to
  318. Xthe vote account and review the scoreletter to see how the vote is going.
  319. XIf you see some "invalid" votes counted, search the tally/parsedvotes
  320. Xfile for "I " to see whose ballot slipped a problem by you, and then fix
  321. Xthe ballot or move it to the problems directory as appropriate and run
  322. Xdothevotes again.
  323. X
  324. X8) Vote huckstering and status reporting.
  325. X
  326. XYou owe the world a copy of "scoreletter" (and the other reports if you
  327. Xlike), "parsedvotes" and a list of the ballots (by mailpath) still
  328. Xsitting unusable in "problems", at the end of the voting period. More
  329. Xbelow.
  330. X
  331. XWhile not mandatory, it is customary to post an intermediate mass
  332. Xacknowledgement copy of "parsedvotes", but without the vote information,
  333. Xat a midpoint of the voting period. Since there are two weekends between
  334. Xthe start and end of the voting period, and since well over half of the
  335. Xvotes of the votes arrive in the first couple of days, use the first
  336. Xweekend.
  337. X
  338. XAgain post the article by Friday at the latest to
  339. Xnews.announce.newgroups with a Subject: line like "FIRST MASS
  340. XACKNOWLEDGEMENT, comp.eggplant.lifecycle.* REORGANIZATION VOTE", and
  341. Xagain a keywords line like "NOT THE BALLOT. USE ORIGINAL BALLOT ONLY.
  342. XDON'T POST VOTES." Sigh.
  343. X
  344. XIt is also a fact of life that many sites expire news in two or three
  345. Xdays. If your vote total is running short, post more ballots to the
  346. Xinterest groups (and news.groups if you are willing to take the
  347. Xcomplaints) every few days.  A few grumpy people will vote against
  348. Xyour proposal out of spite, but this is more than balanced by the 40%
  349. Xor so of the vote that can only be gained by being pushy.
  350. X
  351. XThere is a slight infelicity in the voting rules, in that the weekend
  352. Xposting habits of the news.announce.newgroups moderator and the 21 day
  353. Xminimum vote rule collide to put a week of dead time waiting for the
  354. Xballot results to be posted. If you have plenty of votes, no more seem
  355. Xto be arriving, and the issues are not in doubt, cheat and close the
  356. Xpolls a little early so you can flash your results to the moderator. If
  357. Xthe issue is in balance, or votes are still flooding in, suffer the week
  358. Xdelay.
  359. X
  360. XYour results posting should contain the scoreletter and the parsedvotes
  361. Xfile.  If you get _lots_ of votes so that your posting would exceed maybe
  362. X45Kbytes, break it into several postings that size or smaller, with the
  363. Xscoreletter at the top of each.  This is because the vote order in the
  364. Xscoreletter is the same as the vote order on each ballot line, allowing
  365. Xvoters to check their ballots.
  366. X
  367. XYour scoreletter sl_header text should say the appropriate things about
  368. Xhow the vote came out, thank everyone for participating, and mention the
  369. Xfive day "vote challenge" period.  Normally, you leave the job of posting
  370. X"newgroup" control messages to the moderator of news.announce.newgroups.
  371. X
  372. X9) Aftermath.
  373. X
  374. XAccept the plaudits of your friends and proposal supporters, the heaped
  375. Xscorn of the opponents, say "sorry, too late" to late arriving votes,
  376. Xsquirrel away the ballots if you like, or nuke them after the newgroups
  377. Xgo out, and go have that nervous breakdown you've been working and
  378. Xwaiting for, and so richly deserve now that you have time for it.
  379. X
  380. X                                                           /// It's Amiga
  381. X                                                          /// for me:  why
  382. XKent, the man from xanth.                             \\\///   settle for
  383. X<xanthian@Zorch.SF-Bay.ORG> <xanthian@well.sf.ca.us>   \XX/  anything less?
  384. X--
  385. XConvener, ongoing comp.sys.amiga grand reorganization.
  386. END_OF_FILE
  387. if test 16763 -ne `wc -c <'docs/POLLING_PLACE'`; then
  388.     echo shar: \"'docs/POLLING_PLACE'\" unpacked with wrong size!
  389. fi
  390. # end of 'docs/POLLING_PLACE'
  391. fi
  392. echo shar: End of archive 2 \(of 2\).
  393. cp /dev/null ark2isdone
  394. MISSING=""
  395. for I in 1 2 ; do
  396.     if test ! -f ark${I}isdone ; then
  397.     MISSING="${MISSING} ${I}"
  398.     fi
  399. done
  400. if test "${MISSING}" = "" ; then
  401.     echo You have unpacked both archives.
  402.     rm -f ark[1-9]isdone
  403. else
  404.     echo You still need to unpack the following archives:
  405.     echo "        " ${MISSING}
  406. fi
  407. ##  End of shell archive.
  408. exit 0
  409.