home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / HATCH / WWIVNEWS.ZIP / 9210_2.NWS < prev    next >
Text File  |  1992-10-27  |  25KB  |  490 lines

  1.  
  2. ───────────────┬─────────────────────────────────────────────┬───────────────
  3.                │        USERREC - The Next Generation        │
  4.                │             by Tolkien (1@3456)             │
  5.                └─────────────────────────────────────────────┘
  6.  
  7. Editor's NOTE: As hinted at on Amber and in a recent Mail_to_all_sysops, 4.22
  8. will feature a new userrec structure, one that will incorporate some features
  9. previously found in major modification files such as FROM.MOD and 8COLORS.MOD.
  10. In addition, there are certain aspects of pointer structuring that will be
  11. handled quite differently to accommodate 4.22's ability to support up to
  12. 999 message bases.
  13.  
  14. As a service to WWIVnews' modders' contingent, the co-author of this new 
  15. structure, Tolkien, has contributed the following article detailing what this
  16. new userrec will look like following the release of 4.22, and has included some
  17. of the technical details behind the pointer structures as well. Modders are
  18. advised to take note of the additions to the standard user record, and take
  19. this opportunity to update their mods accordingly prior to 4.22's actual
  20. release sometime in the first quarter of 1993.
  21.  
  22. ─────────────────────────────────────────────────────────────────────────────
  23.  
  24. Well, as you all may or may not be aware, the following is the new "super
  25. userrec" structure for WWIV v4.22 and later. The differences merit some
  26. discussion, thus this article. However, first, here is the new structure:
  27.  
  28. typedef struct {
  29.  
  30.     char
  31.       name[31],       /* user's name/handle */
  32.       realname[21],   /* user's real name */
  33.       callsign[7],    /* user's amateur callsign */
  34.       phone[13],      /* user's phone number */
  35.       dataphone[13],  /* user's data phone */
  36.       street[31],     /* street address */
  37.       city[31],       /* city */
  38.       state[3],       /* state code [MO, CA, etc] */
  39.       country[4],     /* country [USA, CAN, FRA, etc] */
  40.       zipcode[11],    /* zipcode [#####-####] */
  41.       pw[9],          /* user's password */
  42.       laston[9],      /* last date on */
  43.       firston[9],     /* first date on */
  44.       note[61],       /* sysop's note about user */
  45.       macros[3][81],  /* macro keys */
  46.       sex;            /* user's sex */
  47.  
  48.     char
  49.       res_char[78];   /* bytes for more strings */
  50.  
  51.     unsigned char
  52.       age,            /* user's age */
  53.       inact,          /* if deleted or inactive */
  54.       comp_type,      /* computer type */
  55.       defprot,        /* deflt transfer protocol */
  56.       defed,          /* default editor */
  57.       screenchars,    /* screen width */
  58.       screenlines,    /* screen height */
  59.       num_extended,   /* extended description lines */
  60.       optional_val,   /* optional lines in msgs */
  61.       sl,             /* security level */
  62.       dsl,            /* transfer security level */
  63.       exempt,         /* exempt from ratios, etc */
  64.       colors[10],     /* user's colors */
  65.       bwcolors[10],   /* user's b&w colors */
  66.       votes[20],      /* user's votes */
  67.       illegal,        /* illegal logons */
  68.       waiting,        /* number mail waiting */
  69.       ontoday,        /* num times on today */
  70.       month,          /* birth month */
  71.       day,            /* birth day */
  72.       year,           /* birth year */
  73.       language;       /* language to use */
  74.  
  75.     char
  76.       res_byte[50];   /* reserved for byte values */
  77.  
  78.     unsigned short
  79.       homeuser,       /* user number where user can be found */
  80.       homesys,        /* system where user can be found */
  81.       forwardusr,     /* mail forwarded to this user number */
  82.       forwardsys,     /* mail forwarded to this system number */
  83.       net_num,        /* net num for forwarding */
  84.       msgpost,        /* number messages posted */
  85.       emailsent,      /* number of email sent */
  86.       feedbacksent,   /* number of f-back sent */
  87.       fsenttoday1,    /* feedbacks today */
  88.       posttoday,      /* number posts today */
  89.       etoday,         /* number emails today */
  90.       ar,             /* board access */
  91.       dar,            /* directory access */
  92.       restrict,       /* restrictions on account */
  93.       ass_pts,        /* bad things the user did */
  94.       uploaded,       /* number files uploaded */
  95.       downloaded,     /* number files downloaded */
  96.       lastrate,       /* last baud rate on */
  97.       logons,         /* total number of logons */
  98.       emailnet,       /* email sent via net */
  99.       postnet,        /* posts sent thru net */
  100.       deletedposts,   /* how many posts deleted */
  101.       chainsrun,      /* how many "chains" run */
  102.       gfilesread,     /* how many gfiles read */
  103.       banktime;       /* how many mins in timebank */
  104.  
  105.    char
  106.      res_short[50];   /* reserved for short values */
  107.  
  108.     unsigned long
  109.       msgread,        /* total num msgs read */
  110.       uk,             /* number of k uploaded */
  111.       dk,             /* number of k downloaded */
  112.       daten,          /* numerical time last on */
  113.       sysstatus,      /* status/defaults */
  114.       wwiv_regnum,    /* user's WWIV reg number */
  115.       filepoints;     /* points to spend for files */
  116.  
  117.     char
  118.       res_long[56];   /* reserved for long values */
  119.  
  120.     float
  121.       timeontoday,    /* time on today */
  122.       extratime,      /* time left today */
  123.       timeon,         /* total time on system */
  124.       pos_account,    /* $ credit */
  125.       neg_account,    /* $ debit */
  126.       gold;           /* game money */
  127.  
  128.     char
  129.       res_float[32];  /* reserved for real values */
  130.  
  131.     char
  132.       res_gp[100];    /* reserved for whatever */
  133.  
  134. } userrec;
  135.  
  136. Okay, there are some significant differences between this structure and all
  137. of the ones prior. The "old" userrec (the one you are currently using) had
  138. grown into somewhat of a kludge over time. There wasn't really any way to
  139. avoid that, at least not without a complete change of the structure from
  140. version to version, which was impractical at best.
  141.  
  142. So, Wayne waited a long time before agreeing to make this level of change.
  143. The first major difference is that there are several fields that are no
  144. longer going to be in the USER.LST file at all: the qscan pointers, the nscan
  145. pointers, and the sysopsub field. Because of this, you would think that the
  146. USER.LST file itself would be smaller, but planning ahead is prudent and a
  147. hefty amount of padding spread throughout the new userrec has been added. The
  148. reason for this should be fairly obvious: people can use or change the
  149. padding for whatever reason they wish, but utilities that are written for
  150. this userrec will >*still be compatible*<. This is the single most useful
  151. improvement over the prior structures. No more incompatibility problems such
  152. as many of us have experienced over the past few years.
  153.  
  154. You can also see that there are several fields *added* to this structure:
  155. an enhanced set of FROM fields (with a country field, and a zipcode field
  156. large enough to accommodate both the extended US zipcodes as well as the
  157. Canadian zipcodes), a language field, and some general purpose statistical
  158. fields (deletedposts, chainsrun, banktime, gfilesread, filepoints). A field
  159. for data telephone number was also added, and the color fields were expanded
  160. to accommodate 10 ansi colors and 10 black-and-white colors (hey, there's
  161. 10 numeric keys, why not use 'em).
  162.  
  163. *HOWEVER*, some people seem to be making the assumption that because all
  164. these fields are now going to be stock, that Wayne himself is going to
  165. immediately use all of them internally. Not so. Some of them, maybe even
  166. all of them, will not see use by Wayne, almost definitely not immediately.
  167. Many or all of these additions are because large numbers of people already
  168. add these fields in every time anyway. It's likely (and probable) that if
  169. you wish to make use of them, you will have to add the code to do so
  170. yourself. The storage has simply been allocated ahead of time, in an effort
  171. to make long-term userrec compatibility vastly easier to attain (and
  172. maintain).
  173.  
  174. I suspect that a little bit after 4.22 is released we shall see a fair number
  175. of modifications that implement some of these additional fields. The planned
  176. purposes for some of the additional fields are as follows:
  177.  
  178. FIELDNAME      PURPOSE
  179. ────────────   ───────────────────────────────────────────────────────────── 
  180. colors[10]     Ten user-definable ansi colors, instead of 8 (0-9).
  181. bwcolors[10]   For consistency with the ansi colors.
  182. deletedposts   How many posts the caller has made that have been deleted by
  183.                  a sysop or cosysop.
  184. chainsrun      How many "chains" the caller has executed.
  185. gfilesread     How many gfiles the caller has viewed.
  186. filepoints     How many "points" the caller has to spend on downloading
  187.                  files.
  188. banktime       How many minutes the caller has "stashed" in the virtual
  189.                  "bank".
  190. language       Numeric value (much like computer type) representing this
  191.                  caller's default viewing language (0=English, etc).
  192. dataphone      The caller's data (or BBS) telephone number.
  193. note           General-purpose note about the caller. Not an addition, but
  194.                  expanded by twenty characters.
  195. street         The caller's home street address.
  196. city           The caller's home city.
  197. state          The caller's home state.
  198. country        The caller's home country (three-character designator).
  199.  
  200. The various res_xxxx fields are reserved for additional fields of a specific
  201. type, either for later use by Wayne, or for you to make use of without
  202. making your userrec incompatible. Fully one third of the new userrec is
  203. devoted to this compatibility-maintaining padding (so I, for one, won't
  204. have a lot of pity for anyone who goes so far as to make their userrec
  205. incompatible - you'd really have to try hard to make doing so necessary).
  206.  
  207. Wayne made all these changes, indirectly, from suggestions from others.
  208. Actually, I asked if the time was right for this level of change and asked
  209. if I could coordinate it if so. I was somewhat surprised when he agreed.
  210. Since I cannot think of everything myself, I solicited suggestions from about
  211. three dozen boards or so (a representative sampling of the entire network),
  212. and did the above design, then submitted it to Wayne. Wayne then tweaked it
  213. somewhat (I hadn't allocated an extra character for a null terminator for
  214. the state and country fields, and he wanted the sysopsub moved into one of
  215. the additional files in order to prevent unnecessary opening and closing of
  216. files).
  217.  
  218. Hopefully this has been a semi-lucid explanation of the intended purposes of
  219. the new fields, as well as an indicator that Wayne most certainly does take
  220. suggestions seriously and - if they're reasonable ones - implements them,
  221. even when the changes are this sweeping. I *highly* recommend upgrading to
  222. v4.22 when it is released - for the userrec structure alone, even if the
  223. ability to have sub-gating and up to 999 subs and dirs isn't enough for you.
  224. This "next-generation" userrec will enable third-party developers to write
  225. better software, easier and quicker, usable by more people than ever before.
  226. The userrec enhancement alone makes the 4.22 version of WWIV the single best
  227. upgrade (in my opinion) - ever.
  228.  
  229. ───────────────┬─────────────────────────────────────────────┬───────────────
  230.                │          Filo's Mod of the Month            │
  231.                │              by Filo (1@5252)               │
  232.                └─────────────────────────────────────────────┘
  233.  
  234. The Mod-of-The-Month Selection represents my choice of what appears to be a 
  235. useful, practical mod to WWIV. It does not mean it is the best mod posted or
  236. even that it works as I may not have tested it. Given the limitations of this
  237. media, uuencoded mods are NOT eligible for selection as mod-of-the-month.
  238.  
  239. This month's mod is by Lady Danica and offers a means of e-mailing the sub host
  240. from BOARDEDIT.
  241.  
  242. ─────────────────────────────────────────────────────────────────────────────
  243.  
  244. Editor's NOTE: some of the lines of code are larger than 80 characters, and
  245. have been split by a CTRL-A. Be sure you correct these lines prior to 
  246. installing this mod. 
  247.  
  248. "Thou hast been warned..."
  249.  
  250. ─────────────────────────────────────────────────────────────────────────────
  251. ┌───────────────────────────────────────────────────────────────────────────┐
  252. │ Mod Name: LDANICA2                   Mod Author: Lady Danica 1@15286      │
  253. │ Difficulty: 1 file, 3x 5-line blocks Date: It's 16 Oct, 1992              │
  254. │ WWIV Version: v4.21a (maybe others; ask an expert, not me)                │
  255. │ Description: Write email to sub hosts right from boardedit, if the sub    │
  256. │              isn't autorequestable. Even adds a special "RE:" line.       │ 
  257. └───────────────────────────────────────────────────────────────────────────┘
  258.  
  259. #include WITTY_DISCLAIMER
  260.  
  261.  Step 0: Just do it.  The programming gods are watching you, and if you 
  262.          don't do it, they'll see that and punish you for it.
  263.  
  264.  Step 1: In SUBREQ.C, void sub_type_change, look for:
  265.  
  266.    rem_from_files(r->type);
  267.  }
  268.   if (!ok) {
  269.    npr("\r\nYou should email 1@%u and ask to be dropped from sub type %u.
  270. \r\n\r\n",ui, r->type);
  271.  
  272. And add this:  (right after the previous excerpt, Dilbert)
  273.  
  274. /* begin LDANICA2.MOD */
  275.       npr("Would you like to write the mail now?\r\n");
  276.       if (yn())
  277.          {
  278.          sprintf(irt,"RE: Sub Type %u - DROP Request", r->type);
  279.          email(1,ui,0,0);
  280.          }   
  281. /* end LDANICA2.MOD */
  282.  
  283.  Step 2: Go a bit lower down (3-4 screens), and find:
  284.  
  285.              npr("\r\nAutomated add request sent to @%u\r\n\r\n",ui);
  286.             pausescr();
  287.           } else {
  288.             npr("\r\nYou should email 1@%u and ask to be added to sub type %u
  289. .\r\n\r\n", ui, type);
  290.  
  291.  And then add:  [guess where?]
  292.  
  293. /* begin LDANICA2.MOD */
  294.             npr("Would you like to write the mail now?");   
  295.             if (yn())
  296.                {
  297.                sprintf(irt, "RE: Sub Type %u - ADD Request", type);
  298.                email(1,ui,0,0);        
  299.                }  
  300. /* end LDANICA2.MOD */
  301.  
  302.  Step 3: Find this (about another screenful down):
  303.  
  304.              sub_req(main_type_sub_add_req, type, ui);
  305.           } else {
  306.             npr("\r\nYou should email 1@%u and ask to be added to sub type 
  307.                   %u.\r\n\r\n",ui, type);  
  308.             /* NOTE: above line reformatted to fit 80-columns */
  309.  
  310.  And guess what you do now?
  311.  
  312. /* begin LDANICA2.MOD */
  313.             npr("Would you like to write the mail now?\r\n");  
  314.             if (yn())
  315.             {
  316.                sprintf(irt,"RE: Sub Type %u - ADD request",type);
  317.                email(1,ui,0,0);        
  318.             }
  319. /* end LDANICA2.MOD */
  320.  
  321.  Step 4: Don't even bother sending money; it's too late.  I already died of 
  322.          malnutrition and complications thereof. But, some e-mail would be 
  323.          nifty; it'd look really nice on the coffin. Closed casket, as 
  324.          starvation isn't pretty!
  325.  
  326. #include POINTLESS_THANKS
  327. #include WITTY_BBS_ADD
  328.  
  329. ───────────────┬─────────────────────────────────────────────┬───────────────
  330.                │             Dateline: @#$*()#!              │
  331.                │     Editor's Notes by Omega Man (1@5282)    │
  332.                └─────────────────────────────────────────────┘
  333.  
  334. Before I get to this month's editorial/call for articles, I'd like to take a 
  335. moment of "Mea Culprit" and correct a mistake made in last month's issue.
  336.  
  337. Apologies go out to Spackle, who is not 1@1995, but 1@19955. Somewhere in the 
  338. transfer of the document from one machine to another, a 5 got dropped between
  339. the cracks. Sorry about any confusion caused by this error, and rest assured
  340. it's been corrected for this and the final installment of Spackle's series on
  341. .GIF compression techniques.
  342.  
  343. Another apology goes out to everyone who's requested back issues of WWIVnews,
  344. and either hasn't gotten a reply or been able to log on to Klingon Empire and
  345. download them. At this time, the "guest" account for @5282 hasn't been set up
  346. yet, as I need to fix a nasty little bug that allowed some 13-year-old pest
  347. to log on and change the account to suit his fancy. When this is taken care
  348. of, the guest account will be opened for all to call and download all the
  349. back issues of WWIVnews they can stomach! Until then, we apologize for the
  350. inconvenience, and appreciate your patience.
  351.  
  352. On a side NOTE, the pest I mentioned is a sysop of a part-time Telegard BBS.
  353. So go figure...
  354.  
  355. Finally, I'd like to dispel a rumor that's been going around lately about
  356. WWIVnews. It is in no way, shape or form true that the December issue of
  357. this electronic newsletter will contain a 32k infomercial for OS/2 that will
  358. be indistinguishable from the normal editorial content. That sort of trick
  359. may have been tried in the pages of _PC Magazine_, but it won't happen here,
  360. I assure you!
  361.  
  362. So, with all apologies aside, let's get to this month's editorial/call for
  363. articles, shall we?
  364.  
  365. As most of us know by heart, the first official network for WWIV was, of 
  366. course, WWIVnet. Founded on elements from both benevolent totalitarianism and
  367. controlled anarchy, WWIVnet was somewhat of a different environmental approach
  368. to BBS networking than anything previously attempted on a national level of
  369. distribution. In retrospect, it probably should have come as no surprise when
  370. the first rumblings of discontent were heard regarding the way WWIVnet was
  371. being managed and utilized. It should also have come as no surprise when
  372. roughly 150 systems abandoned ship and formed the first alternative WWIV
  373. network, WWIVlink.
  374.  
  375. Alternative WWIV networking is therefore not a new concept. WWIVlink itself
  376. has been around for over two years now, not to mention the fact that there have
  377. been Usenet and Fidonet interfaces running around with varying degrees of 
  378. functionality for at least as long. Prior to 4.21a, however, running a board 
  379. with more than one WWIV network usually required either running a BBS for
  380. each network you wished to carry - which required its own set of specialized
  381. network executables - or modding the source using your own coding and at your
  382. own risk. This risk, not to mention the inconvenience of having to extensively
  383. mod the source to account for an extra network, was too great for most people.
  384. Many felt the safest recourse was to simply run one network and be satisfied 
  385. with that.
  386.  
  387. With the arrival 4.21a in August of this year came something of a welcome
  388. surprise: built-in multi-net capabilities. Overnight the risks and headaches
  389. of running a BBS with more than one WWIV network virtually went out the 
  390. window. With the exception of WWIVlink, virtually all the WWIV alternative
  391. networks could now be accessed using one BBS, and with a little extra work
  392. gatewaying between those networks was finally within reach as well.
  393.  
  394. About the same time, Wayne used his column in _WWIVnews_ to explain his 
  395. policies regarding the registration of the netup program, as well as
  396. his views on starting an alternative WWIV network. Wayne stressed that starting
  397. a network wasn't all fun and games, and that it was a lot of thankless work
  398. that took real dedication. Granted, a network coordinator's job possesses a 
  399. bit of prestige included with the satisfaction of a job well done, but there's 
  400. a lot of labor and headaches that one must go through as well as part of the
  401. process. Running a WWIV network - or any network, for that matter - takes a
  402. lot of dedication and hard work, and those in it for the glory and the power
  403. probably need not bother trying to register the network source.
  404.  
  405. To further discourage those without the proper commitment and motivations from
  406. starting networks that would be doomed from the start, Wayne also announced 
  407. that the registration fee for the netup program would be $300. Despite the price
  408. tag, several people made serious inquiries, and one in particular resulted in
  409. IceNET. Other, more enterprising individuals decided that the price was too
  410. steep, and began work on their own set of third-party WWIVnet-compatible
  411. executables. The first of these, the Network Coordinator by Doctor Fred 
  412. (FREDnet 1@1, WWIVnet 1@9800) has already been announced on several of the
  413. National-level sysop subs, and rumors are heard through the E-mail paths
  414. of at least two other Coordinator-configurable shareware clones of EN1 and 
  415. DE1.EXE that are currently in beta-test.
  416.  
  417. So, it should really have come as no surprise that as soon as WWIV 4.21a was 
  418. declared a stable version, that there was a population explosion in the number
  419. of alternative WWIV networks. Overnight we saw the births of WWIVgrid, GayNet,
  420. DrakeNet, and several other specialized networks. IceNET itself saw a massive
  421. jump in membership, and interest grew from within WWIVlink in making the
  422. original alternative network a bit more accessible to the WWIVnet it left
  423. behind in disgust.
  424.  
  425. However, there has been some question of late as to whether or not the global
  426. WWIV community of sysops and users will actually benefit from this sudden
  427. increase in the number of available networks. Most of the sysop subs on both
  428. the national and local levels have seen an increase in traffic regarding this
  429. topic, and while most of the conversation has been rather devoid of the 
  430. expected combustion, the conclusions reached have been rather mixed and
  431. somewhat incomplete.
  432.  
  433. So, as you may have guessed by now, this retrospective is an introduction of
  434. sorts for an official call for articles. The November WWIVnews - that's next
  435. month's issue - will be a special issue dedicated to alternative WWIV-based
  436. networks. The technical, operational and ethical aspects of this radically
  437. new and advanced facet of WWIV networking will be analyzed in detail in an
  438. attempt to present the world-wide WWIV community with as complete a set of
  439. facts and figures as possible. With this information in hand, the future of
  440. Multinetted WWIV can be plotted with a bit more ease than the usual shots in
  441. the dark that we've reveled over in the past.
  442.  
  443. However, for this issue to become a reality, your help is needed. This is an
  444. official call for articles and opinion pieces on the subject of alternative
  445. WWIV networking and WWIV 4.21a's new Multi-Net capabilities. If you are a 
  446. Coordinator for an Area, Group, Server, Zone, or even an entire Network itself,
  447. or even if you're just an average "Joe User" who likes to haunt the networks,
  448. you are urged to contribute your views, opinions, knowledge and information
  449. on any aspect of this special topic. Technical articles, operational analysis
  450. and testimonials, opinion/editorial pieces, anything relating to this topic
  451. are requested and welcomed.
  452.  
  453. The deadline for submissions is November 24th, with the issue being sent for
  454. distribution the following night. Those wishing to submit articles for this 
  455. special issue are also urged to request a WWIVnews Writer's Guide by E-mailing
  456. 1@5282. This guide contains valuable information on how to compose, format and
  457. submit articles for print in WWIVnews, and no sysop or user who has the urge 
  458. to write for a networked electronic newsletter should be without at least one
  459. copy.
  460.  
  461. Again, your assistance is appreciated in this call for articles. If you know
  462. of an NC, ZC, SC, GC, AC, or of someone who would definitely be able to 
  463. contribute to the topic, please feel free to drop them a copy of this editorial
  464. and let them know what's going on. As not all alternative networks receive this
  465. newsletter even though it's part of the general WWIVnet distribution, there's
  466. always the possibility that someone won't hear the call for articles because
  467. it wasn't directed their way.
  468.  
  469. See you in a month, and keep those e-mails and articles coming!
  470.  
  471. ┌───────────────────────────────────────────────────────────────────────────┐
  472. │                             Closing Credits                               │
  473. ├───────────────────────────────────────────────────────────────────────────┤
  474. │ WWIVnews is an independent newsletter published monthly as a service to   │
  475. │ the WWIV community of sysops and users. The opinions and reviews expressed│
  476. │ herein are the expressed views of the respective writers, and do not      │
  477. │ necessarily reflect those of the WWIVnews staff. Reproduction in whole or │
  478. │ in part is allowed provided proper credit is given. All rights reserved.  │
  479. ├───────────────────────────────────────────────────────────────────────────┤
  480. │ The distribution sites for WWIVnews are the Klingon Empire BBS (512-459-  │
  481. │ 1088), WWIVnet node @5282, and the WWIVnews Editorial Desk networked      │
  482. │ subboard, subtype 15282 host 5282. Information regarding article and      │
  483. │ editorial submissions, back issue requests, and the WWIVnews Writer's     │
  484. │ Guide, can be requested in e-mail from the WWIVnews editor, 1@5282.       │
  485. ├───────────────────────────────────────────────────────────────────────────┤
  486. │            WWIV and WWIVnet, copyright 1986,1990 by Wayne Bell            │
  487. │  Any product or company mentioned or reviewed herein are copyrighted of   │
  488. │  their respective owners, creators, and other corporate pseudoentities.   │
  489. └───────────────────────────────────────────────────────────────────────────┘
  490.