Tillbaka till svenska Fidonet
English   Information   Debug  
ENET.LINGUISTIC   0/13
ENET.POLITICS   0/4
ENET.SOFT   0/11701
ENET.SYSOP   33903
ENET.TALKS   0/32
ENGLISH_TUTOR   0/2000
EVOLUTION   0/1335
FDECHO   0/217
FDN_ANNOUNCE   0/7068
FIDONEWS   24126
FIDONEWS_OLD1   48223/49742
FIDONEWS_OLD2   0/35949
FIDONEWS_OLD3   0/30874
FIDONEWS_OLD4   0/37224
FIDO_SYSOP   12852
FIDO_UTIL   0/180
FILEFIND   0/209
FILEGATE   0/212
FILM   0/18
FNEWS_PUBLISH   4408
FN_SYSOP   41678
FN_SYSOP_OLD1   71952
FTP_FIDO   0/2
FTSC_PUBLIC   0/13599
FUNNY   0/4886
GENEALOGY.EUR   0/71
GET_INFO   105
GOLDED   0/408
HAM   0/16070
HOLYSMOKE   0/6791
HOT_SITES   0/1
HTMLEDIT   0/71
HUB203   466
HUB_100   264
HUB_400   39
HUMOR   0/29
IC   0/2851
INTERNET   0/424
INTERUSER   0/3
IP_CONNECT   719
JAMNNTPD   0/233
JAMTLAND   0/47
KATTY_KORNER   0/41
LAN   0/16
LINUX-USER   0/19
LINUXHELP   0/1155
LINUX   0/22092
LINUX_BBS   0/957
mail   18.68
mail_fore_ok   249
MENSA   0/341
MODERATOR   0/102
MONTE   0/992
MOSCOW_OKLAHOMA   0/1245
MUFFIN   0/783
MUSIC   0/321
N203_STAT   926
N203_SYSCHAT   313
NET203   321
NET204   69
NET_DEV   0/10
NORD.ADMIN   0/101
NORD.CHAT   0/2572
NORD.FIDONET   189
NORD.HARDWARE   0/28
NORD.KULTUR   0/114
NORD.PROG   0/32
NORD.SOFTWARE   0/88
NORD.TEKNIK   0/58
NORD   0/453
OCCULT_CHAT   0/93
OS2BBS   0/787
OS2DOSBBS   0/580
OS2HW   0/42
OS2INET   0/37
OS2LAN   0/134
OS2PROG   0/36
OS2REXX   0/113
OS2USER-L   207
OS2   0/4786
OSDEBATE   0/18996
PASCAL   0/490
PERL   0/457
PHP   0/45
POINTS   0/405
POLITICS   0/29554
POL_INC   0/14731
PSION   103
R20_ADMIN   1121
R20_AMATORRADIO   0/2
R20_BEST_OF_FIDONET   13
R20_CHAT   0/893
R20_DEPP   0/3
R20_DEV   399
R20_ECHO2   1379
R20_ECHOPRES   0/35
R20_ESTAT   0/719
R20_FIDONETPROG...
...RAM.MYPOINT
  0/2
R20_FIDONETPROGRAM   0/22
R20_FIDONET   0/248
R20_FILEFIND   0/24
R20_FILEFOUND   0/22
R20_HIFI   0/3
R20_INFO2   3218
R20_INTERNET   0/12940
R20_INTRESSE   0/60
R20_INTR_KOM   0/99
R20_KANDIDAT.CHAT   42
R20_KANDIDAT   28
R20_KOM_DEV   112
R20_KONTROLL   0/13271
R20_KORSET   0/18
R20_LOKALTRAFIK   0/24
R20_MODERATOR   0/1852
R20_NC   76
R20_NET200   245
R20_NETWORK.OTH...
...ERNETS
  0/13
R20_OPERATIVSYS...
...TEM.LINUX
  0/44
R20_PROGRAMVAROR   0/1
R20_REC2NEC   534
R20_SFOSM   0/340
R20_SF   0/108
R20_SPRAK.ENGLISH   0/1
R20_SQUISH   107
R20_TEST   2
R20_WORST_OF_FIDONET   12
RAR   0/9
RA_MULTI   106
RA_UTIL   0/162
REGCON.EUR   0/2056
REGCON   0/13
SCIENCE   0/1206
SF   0/239
SHAREWARE_SUPPORT   0/5146
SHAREWRE   0/14
SIMPSONS   0/169
STATS_OLD1   0/2539.065
STATS_OLD2   0/2530
STATS_OLD3   0/2395.095
STATS_OLD4   0/1692.25
SURVIVOR   0/495
SYSOPS_CORNER   0/3
SYSOP   0/84
TAGLINES   0/112
TEAMOS2   0/4530
TECH   0/2617
TEST.444   0/105
TRAPDOOR   0/19
TREK   0/755
TUB   0/290
UFO   0/40
UNIX   0/1316
USA_EURLINK   0/102
USR_MODEMS   0/1
VATICAN   0/2740
VIETNAM_VETS   0/14
VIRUS   0/378
VIRUS_INFO   0/201
VISUAL_BASIC   0/473
WHITEHOUSE   0/5187
WIN2000   0/101
WIN32   0/30
WIN95   0/4288
WIN95_OLD1   0/70272
WINDOWS   0/1517
WWB_SYSOP   0/419
WWB_TECH   0/810
ZCC-PUBLIC   0/1
ZEC   4

 
4DOS   0/134
ABORTION   0/7
ALASKA_CHAT   0/506
ALLFIX_FILE   0/1313
ALLFIX_FILE_OLD1   0/7997
ALT_DOS   0/152
AMATEUR_RADIO   0/1039
AMIGASALE   0/14
AMIGA   0/331
AMIGA_INT   0/1
AMIGA_PROG   0/20
AMIGA_SYSOP   0/26
ANIME   0/15
ARGUS   0/924
ASCII_ART   0/340
ASIAN_LINK   0/651
ASTRONOMY   0/417
AUDIO   0/92
AUTOMOBILE_RACING   0/105
BABYLON5   0/17862
BAG   135
BATPOWER   0/361
BBBS.ENGLISH   0/382
BBSLAW   0/109
BBS_ADS   0/5290
BBS_INTERNET   0/507
BIBLE   0/3563
BINKD   0/1119
BINKLEY   0/215
BLUEWAVE   0/2173
CABLE_MODEMS   0/25
CBM   0/46
CDRECORD   0/66
CDROM   0/20
CLASSIC_COMPUTER   0/378
COMICS   0/15
CONSPRCY   0/899
COOKING   32896
COOKING_OLD1   0/24719
COOKING_OLD2   0/40862
COOKING_OLD3   0/37489
COOKING_OLD4   0/35496
COOKING_OLD5   9370
C_ECHO   0/189
C_PLUSPLUS   0/31
DIRTY_DOZEN   0/201
DOORGAMES   0/2057
DOS_INTERNET   0/196
duplikat   6002
ECHOLIST   0/18295
EC_SUPPORT   0/318
ELECTRONICS   0/359
ELEKTRONIK.GER   1534
Möte FIDONEWS_OLD1, 49742 texter
 lista första sista föregående nästa
Text 47909, 233 rader
Skriven 2007-01-29 15:09:49 av Roy Witt (1:397/22)
  Kommentar till text 47892 av Michiel van der Vlist (2:2/2.0)
Ärende: FidoNews 24:05 [02/05]: General Articles
================================================
29 Jan 07 01:21, FidoNews Robot wrote to All:

I'm not a programmer myself, but it should be easy as pie to start
re-coding a new program all over again, with newly suggested perameters.
:o)


 FR> =================================================================
 FR>                         GENERAL ARTICLES
 FR> =================================================================

 FR>                  Frustrations of a FidoNet programmer
 FR>                  By Michiel van der Vlist, 2:280/5555

 FR> Most of us who have at some point in their career had job
 FR> descriptions that included "writing computer programmes" will be
 FR> familiar with the frustrations of having to meet with the demands of
 FR> customers and management. What customers and managers usually have in
 FR> common is that they can not program themselves out of a wet paper bag
 FR> even if their lives depend on it, but who nevertheless have firm
 FR> perceptions on the ease by which their demands can be met. "I am not
 FR> a programmer myself, but this should be easy to add" is heard too
 FR> often.

 FR> All the more frustrating is that ever so often the customer's wish
 FR> would have been relatively easy to meet, had the customer come up
 FR> with it in an early stage of the project instead of when it is 99%
 FR> finished. Honesty compels me to admit that the opposite also happens:
 FR> a customer coming up with a wish that just needs a few key strokes to
 FR> fulfil, but him/her believing it is major alteration. (And willing to
 FR> pay according to his/her beliefs...)

 FR> When writing as a volunteer for a non profit organisation such as
 FR> FidoNet, one would hope and maybe even expect to be free of such
 FR> frustrations and to just be allowed to program for fun. Unfortunately
 FR> this is not true. Not any more I am afraid. Let me give you an
 FR> example of something I came across while programming for FidoNet.

 FR> When I became R28 pointlist keeper over a decade ago now, I felt the
 FR> need for a programme that could not only assemble pointlists from
 FR> segments, but that would also check things like flags for correct use
 FR> as well. There was MakeNl and there was ERRFLAGS, but the latter
 FR> would not work on pointlists and I found it too limited as well.
 FR> MakeNl was abanonware at the time and I was not satisfied that
 FR> either. So I decided to write my own programme.

 FR> Part of this programme was to be the flag checker. Of course the
 FR> flags that it recognised should not be hard coded, but be
 FR> configurable. We have seen too much problems with hard coding, I did
 FR> not want to saddle the users of my programme with the the burden of
 FR> having to nag for an update every time a new flag was added to the
 FR> nodelist. Flags should be configurable.

 FR> Sounds easy. Just make the user enter in the config, a list of flags
 FR> he would like to have recognised as valid and if the flag is in the
 FR> list, it is ok, and if it is not, generate a warning or an error.
 FR> Something like:

 FR> FLAGS V22,V32,V32B,V90C,V90S,VFC,V34

 FR> But wait, there are userflags and normal flags, so we should have two
 FR> classes of flags:

 FR> FLAGS XA,XB,XC,XP,XR,XW,XX,CM,MO,MN,LO,V42,V42B,MNP,V22,V32,V32B,
 FR> V32T,ZYX,Z19,HST,H14,H16,MAX,PEP,CSP,VFC,V34,V110L,V110H,
 FR> V120H,V120L,X75,ISDN,X2S,X2C,V90S,V90C

 FR> USERFLAGS NC,REC,NEC,ZEC,ENC,RPK,NPK,CDP,SDS,SMH

 FR> All pretty straightforward. Oh, well, there are the Tyz flags. We do
 FR> not want the user to have to enter all 2256 valid permutations all by
 FR> himself, so we define wildcards for the flags. The Tyz flags are
 FR> added:

 FR> USERFLAGS NC,REC,NEC,ZEC,ENC,RPK,NPK,CDP,SDS,SMH,T$$

 FR> But only a-x and A-X are actually allowed as substitutes for the
 FR> wildcards. And permutations with the same letter in the second and
 FR> third position are also invalid. Ok, no problem, exclude those
 FR> combinations:

 FR> EXCLUDEFLAGS TY$,Ty$,TZ$,Tz$,T$Y,T$y,T$Z,T$z,T$<

 FR> It started to get a little complicated by now, but still pretty
 FR> straightforward. There was one thing still missing though. Flags can
 FR> have parameters. Up until the coming of Fido over IP this was not a
 FR> big issue as although flags can have parameters, this was hardly used
 FR> until the flags for IP and E-mail protocols came into use. The new
 FR> flags however van have one or two optional parameters: an address,
 FR> host name or e-mail address and or a port number. A decent flag
 FR> checker programme should of course check the validity of the
 FR> parameters as well. And not just their validity if present, but also
 FR> if the required information to make a connection is present. A line
 FR> with a lone IBN flag and no hostname or IP address in the system name
 FR> field or another field holding a default value should be flagged as
 FR> an error.

 FR> My first step was to write a subroutine that could determine if a
 FR> strings is:
 FR> 1) a valid IP quad or:
 FR> 2) a valid fqdn (Fully Qualified Domain Name) or:
 FR> 3) a valid IPv6 address or:
 FR> 4) A valid e-mail address or:
 FR> 5) a valid port number.

 FR> Two more classes of flags entered the scene. IPGLAGS end EMAILFLAGS.
 FR> The syntax for an IPFFLAG is
 FR> FLAG[:<hostname|ip-quad|ipv6address>][:portnumber] and for an
 FR> EMAILFLAG: FLAG[:emailaddress][:portnumber].

 FR> So in the config this was added:

 FR> IPGLAGS IBN,IFC,IFT,ITN,IVM,IP
 FR> EMAILFLAGS IMI,ISE,ITX,IUC,IEM,EVY,EMA

 FR> Implementing all this was a major operation that required a complete
 FR> overhaul of the flag check routines. Not only the flag fields
 FR> themselves had to be checked, but also other fields that can contain
 FR> default values for the parameters. To show some initiative I added
 FR> the feature of letting flags inherit parameters from previous flags
 FR> in the same class.

 FR> So IBN:fido.vlist.eu,IFC,IFT:fido2.vlist.eu would mean the same as
 FR> IBN:fido.vlist,IFC:fido.vlist.eu,IFT:fido2.vlist.eu

 FR> Summarising, I had now defined five classes of flags:

 FR> 1) Normal class flags, no parameters used
 FR> 2) User class flags, no parameters.
 FR> 3) Ip class flags, two optional defaultable inheritable parameters
 FR> 4) email class flags, two optional defaultable inheritable
 FR> parameters. 5) Flags that are explicitly excluded although defined by
 FR> implemantion by one of the other four.

 FR> Default port number is of course the default port for the protocol in
 FR> question and default parameter # 1 is inherited from the system name
 FR> field, or the telephone number field.

 FR> Then someone who said "I am not a programmer but..." proposed to put
 FR> the default connection information not in the system name field, but
 FR> in the field destined for the location, separated from the location
 FR> itself by a # character. And it found its way into the nodelist.
 FR> Sigh..

 FR> I felt uncomfortable about it - Yet Another Method of listing IP
 FR> nodes- and the use of the '#' character conflicted with a recently
 FR> submitted proposal for listing IPv6 information of the nodelist, but
 FR> alas, it was not too hard, so a few more lines were added to my flag
 FR> checker routines. But I was getting a bit tired of it. Also my
 FR> programme was getting a bit too big for my taste. I was a bit worried
 FR> it would become top heavy...

 FR> But still the concept of different classes of configurable flags that
 FR> each had their own specific syntax and things to check remained. As
 FR> it turned out, my efforts to implement that particular way of listing
 FR> IP nodes was a wasted effort. It is no longer in use. Not an
 FR> incentive really...

 FR> And then someone invented the INA flag. Again a politician, not a
 FR> programmer. The INA flag should hold the default value for the
 FR> connect info for IP flags. It should end all discussion about where
 FR> to put it and appease those who refused to give up the BBS name in
 FR> field 3.

 FR> I tried to fit it in, but found I could not without almost starting
 FR> all over again and without sacrificing the concept of configurable
 FR> classes of flags. I could not fit it in in any of the existing
 FR> classes. The INA flag requires one and only one parameter. The other
 FR> flags have either none, or two optional parameters. Also, the INA
 FR> flag does not stand on its own, if there is no IBN flag or other IP
 FR> flag, the presence of the INA flag is an error condition. So I would
 FR> have to add a new class just for this flag alone. Adding a class for
 FR> a single case almost boils down to hard coding a flag, something I
 FR> wanted to avoid.

 FR> Top it off with the added complication that there is no requirement
 FR> that the INA flag be listed before any other IP protocol flags, so
 FR> that in my particular case, I would have to add a separate pass while
 FR> parsing the line to extract info from the INA flag, before parsing
 FR> the other flags. All the more frustrating is that had it been
 FR> proposed five years earlier, I would have started on a different
 FR> track and implemented it without much problems. As it is, it just
 FR> does not fit in with what I already have. That annoys me.

 FR> In the old days, it would go like this: a programmer would write
 FR> something into his programme and when people started to use is, the
 FR> nodelist clerks would enter the flags needed to support it, into the
 FR> nodelist. Programming was fun. It also ensured that by the time a
 FR> flag or another feature reached the nodelist, it was always clearly
 FR> and unambiguously documented what it was supposed to do. Nothing is
 FR> as nitpicking as a computer when it comes to being told what
 FR> something is supposed to do. Any ambiguity will be severely punished.

 FR> Now, it is the other way around: FidoNet has been taken over by the
 FR> politicians. People who by their own admission "are not programmers,
 FR> but..." invent nodelist flags. With no regards whatsoever for the few
 FR> remaining programmers. How the programmers implement it, is their
 FR> problem. No matter how illogical it is or how ill if fits into what
 FR> already exists. Programmers are not consulted. The FTSC is not
 FR> consulted. When programmers speak up to vent their objections, they
 FR> are ignored.  With the result that programmers who have retired from
 FR> programming for a living, and who now do it for the fun of it, find
 FR> themselves in the same position as when they were still paid for it.
 FR> They have to dance to the tune of the customers and the managers.
 FR> With the difference of course that they do not get paid any more.

 FR> People are afraid that with the few participants we have, changes
 FR> will drive people away. If people are forced to change node number,
 FR> they will leave they say. But nobody is concerned about an even
 FR> smaller
 FR> group: the programmers. What about them? Should it not be an even
 FR> greater concern not to piss off and drive away the programmers by
 FR> political decisions that force them to do major rewrites or just
 FR> throw in the towel?


 FR> (c) 2007, Michiel van der Vlist. All rights reserved.
 FR> Permission to distribute via the Fidonews file echo
 FR> and the FidoNews echomail conference.


 FR> -----------------------------------------------------------------

 FR> --- Azure/NewsPrep 3.0
 FR>  * Origin: Home of the Fidonews (2:2/2.0)

               R\%/itt




--- Twit(t) Filter v2.1 (C) 2000
 * Origin: SATX Alamo Area Net * South * Texas, USA * (1:397/22)