Tillbaka till svenska Fidonet
English   Information   Debug  
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/22013
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   900
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/4785
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   1117
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   2810
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/13068
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/2055
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/4277
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   28592
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/2024
DOS_INTERNET   0/196
duplikat   6000
ECHOLIST   0/18295
EC_SUPPORT   0/318
ELECTRONICS   0/359
ELEKTRONIK.GER   1534
ENET.LINGUISTIC   0/13
ENET.POLITICS   0/4
ENET.SOFT   0/11701
ENET.SYSOP   33806
ENET.TALKS   0/32
ENGLISH_TUTOR   0/2000
EVOLUTION   0/1335
FDECHO   0/217
FDN_ANNOUNCE   0/7068
FIDONEWS   23548
FIDONEWS_OLD1   0/49742
FIDONEWS_OLD2   0/35949
FIDONEWS_OLD3   0/30874
FIDONEWS_OLD4   0/37224
FIDO_SYSOP   12847
FIDO_UTIL   0/180
FILEFIND   0/209
FILEGATE   0/212
FILM   0/18
FNEWS_PUBLISH   4200
FN_SYSOP   41525
FN_SYSOP_OLD1   71952
FTP_FIDO   0/2
FTSC_PUBLIC   0/13586
FUNNY   0/4886
GENEALOGY.EUR   0/71
GET_INFO   105
GOLDED   0/408
HAM   0/16053
HOLYSMOKE   0/6791
HOT_SITES   0/1
HTMLEDIT   0/71
HUB203   466
HUB_100   264
HUB_400   39
HUMOR   0/29
Möte LINUX, 22013 texter
 lista första sista föregående nästa
Text 15747, 84 rader
Skriven 2012-05-07 12:51:16 av Markus Reschke (2:244/1661)
  Kommentar till text 15744 av Maurice Kinal (1:261/38.9)
Ärende: silence is golden
=========================
Hi Maurice!

May 06 20:04 2012, Maurice Kinal wrote to Markus Reschke:

 MK> The message I am replying to unpacked was 1485 bytes.  Simply 
 MK> removing the pktHeader and the binary bits in the msgHeader, as well 
 MK> as the 16 bit pktHeader delimeter, reduces it by 74 bytes without any 
 MK> additional jiggery-pokery.  The mixed binary bytes simply bloat 
 MK> messages as well as increase the amount of CPU cycles in order to 
 MK> heave-ho them, which shouldn't have needed to be done in the first 
 MK> place had they not existed.  How do you figure they reduce file size?

Here we go: (but don't complain, you asked for it :-)

There are several address fields in the packet header and in each message
header, like origNode, destNode, origNet, destNet, origZone, destZone,
origPoint and destPoint. Each field has a size of 16 bits (2 bytes).

Take the node number for example. Its valid range is 0 up to 65535. If you want
to encode the node number in plain ASCII you'll need to provide 5 bytes (one
byte for each digit) any maybe another byte as delimiter (strings end with a
trailing 0). The binary encoding needs 2 bytes, so it saves 3 bytes or even 4
if a delimiter is used. Now do the maths :-)

And now to the CPU cycles. When processing packet/message headers one has to
access all the address fields. In binary encoding I can treat an address field
as a raw binary value and access it directly by a variable. In most cases you
would define a structure with all the fixed-sized header fields, create a
structure pointer and set the pointer to the beginning of the packet/message.
Bingo! Now you can access the fields directly via the structures elements.

With ASCII encoding you have to separate or extract the field to get a string
(terminated by trailing 0), then convert the string into an integer value while
checking if the conversion was successful. That needs a lot more CPU cycles
than just accessing binary values.

Back to your assumption about bloat and CPU cycles. If you try to process
packets/messages with tools designed for dealing with ASCII data you'll have a
hell of a lot of fun :-)

 MK> Having said the above your message in the new offline stored message 
 MK> scheme is exactly 941 bytes and didn't require the processes to deal 
 MK> with anything other than 8 bit characters, and without any 
 MK> compression whatsoever.  That in itself is a 40% savings in file 
 MK> size.

Have you stored all fields from the message header too?

 MK> Hard to say for sure how much faster this scheme is compared to the 
 MK> usual Fidonet software but it is faster in {,un}packing and tossing.  

Todays CPUs are so fast one doesn't see a difference between 0.01s and 0.005s.
In the past it was 2s vs. 1s. In order to get real numbers you should measure
the time used by both schemes.

 MK> Further savings in storage size is gained by gzipping the stored 
 MK> msg's (another 40%) and can be readily accessed by any half decent 
 MK> Unix text/file applications.  A simular strategy could be followed on 
 MK> an 8 bit CPU given the lossiness of all the 16 bit binary.

Compression is a very old technology :-)

 MK> How were/are you planning to deal with 16 bit binary data on an 8 bit 
 MK> CPU, nevermind run the usual 16 bit DOS-think Fidonet apps on it?

The same way as one deals with 64 bit data on a 32 bit CPU. Same procedure :-)
BTW, some 8 bit CPUs got (pseudo) 16 bit registers.

 MK> Also the new stored msg format lends itself well to htmlization or 
 MK> ansification on the fly.

Sure, it's ASCII too.

 MK> Lean and mean *ALWAYS* wins ... nevermind stinkin' 8 bit CPUs that 
 MK> cannot run GNU-Linux apps in the first place.  :::evil grin:::

You're totaly wrong ;-) Google for Dmitry Grinbergs ARMv5 emulator for the
Atmel ATmega1284p. He booted linux on a 8 bit CPU running at 24MHz!

Regards,
Markus

--- 
 * Origin: *** theca tabellaria *** (2:244/1661)