La compressione dei dati è una delle tecnologie cui la rete FidoNet non solo ha dato un impulso significativo, ma che è stata anche profondamente condizionata da eventi accaduti in rete.
Agli inizi degli anni ’80 lo spazio digitale era un bene estremamente prezioso. I primi BBS erano basati su floppy, non di rado singolo, e potevano quindi contare giusto su poche centinaia di migliaia di byte si spazio di archiviazione. Allo stesso tempo i trasferimenti via modem era lentissimi e, quindi, decisamente costosi. E’ facile capire, quindi, che ogni tecnologia che consentisse di sfruttare al meglio le modeste risorse disponibili era più che benvenuta.
I primi BBS ricorrevano spesso a due distinte utilità per ottimizzare lo spazio e rendere più efficienti i trasferimenti. Una era LU, Librarian Utility, che serviva a consolidare più file – componenti un unico programma o gruppo di dati – in un unico archivio, generalmente contraddistinto dall’estensione .lbr. Era un po’ l’equivalente per PC del comando tar di unix. Lo scopo era duplice: consentire il trasferimento di più file in un unico passaggio, e di sfruttare meglio il ridotto spazio a disposizione. Se è vero che un file .lbr occupa un po’ più della somma dei singoli file, è altrettanto vero che sia CP/M che DOS allocano lo spazio e a blocchi, e che un solo file grande solitamente occupa meno spazio di molti file piccoli. In più, in quegli anni si doveva tenere conto anche del numero massimo di file che poteva essere memorizzato su un supporto (64 per CP/M e 224 per DOS).
I file .lbr potevano poi essere compressi con altre utilità, come SQ (squeeze, che usava l’algoritmo Huffman) o CRUNCH (che usava invece il più avanzato Lempel-Ziv-Welch), che analizzano i dati memorizzati e li elaborano in modo da ridurre l’occupazione su disco. Era convenzione che fosse la seconda lettera dell’estensione ad indicare che un file era stato compresso, sostituendo la con una Q per Squeeze e Z per Crunch. Un file LZR era quindi solitamente un LBR compresso con Crunch.
Il sistema funzionava, ma era piuttosto macchinoso. Con archivi di dimensioni rilevanti (per quei tempi), spesso compressione e decompressione richiedevano più cambi di dischetti. Lavoro da fare ce n’era.
La svolta arriva nel 1985 dalla SEA, la System Enhancement Associates, di Thom Henderson. Thom è il sysop di uno dei primi nodi Fidonet, ha contribuito significativamente alla evoluzione della tecnologia, è editor delle FidoNews ed un grande attivista della rete, e con la sua azienda familiare ha già messo sul mercato prodotti molto interessanti, come il mailer FidoNet SeaDog. La sua nuova creatura è ARC, una utilità che non solo combina al suo interno le funzioni di libreria e compressione, ma aggiunge anche un controllo di integrità sui file basato su CRC-16, ed un (sia pur rudimentale) sistema di protezione dei file con password.
I “file arc” prodotti dalla sua utilità sono generalmente compressi meglio rispetto a quanto già possibile con Squeeze e/o Crunch, in quando usa entrambi gli algoritmi (LZW e Huffman) in forma ibrida.
I vantaggi evidenti in termini di funzionalità, specie in ambito BBS, lo rendono in breve estremamente popolare nell’ambiente. E dato che in quegli anni sono proprio le BBS a costituire la più ampia rete di distribuzione, in brevissimo tempo ARC diventa la standard de facto della compressione in ambito MsDos.
Nonostante Arc sia un gran successo, che travalica velocemente i confini di Fidonet, Handerson non solo rilascia il programma come shareware, ma nel contempo rende disponibili anche i sorgenti della sua creatura. Se è una decisione che contribuisce a consolidare il successo di ARC, dato che quel codice viene utilizzato per implementare le sue funzioni su piattaforme diverse dal DOS, dall’altro svela tutti i segreti della sua implementazione.
Per alcuni anni il primato di ARC è indiscusso, e le vendite vanno molto bene. Ma nei primi mesi del 1988 spunta sul mercato una alternativa ad ARC che promette risultati più efficienti, e ad un costo leggermente inferiore: è PKARC di Phil Karz. A differenza del programma di SEA, Pkarc è commercializzato con due programmi distinti, uno per la compressione ed uno per la decompressione, e grazie ad una implementazione in assembly delle parti più pesanti del codice, è più veloce del concorrente, ed in più richiede anche meno memoria.
PkArc ha inoltre una caratteristica aggiuntiva: quella di potere creare archivi auto estraibili.
Quando PKArc cominciò ad avere un suo successo commerciale, anche grazie ad un forma di pubblicità piuttosto aggressiva, Handerson rispose citando in giudizio PKWare, e dando vita ad un contenzioso legale che ha polarizzato per lungo tempo il mondo di Fidonet, e non solo.
Handerson accusava Katz di avere utilizzato i suoi sorgenti, protetti da copyright, per derivare il suo lavoro, sostenendo che nel codice sorgente fossero stati lasciati inalterati anche i commenti originali. Katza sosteneva invece che il suo lavoro fosse del tutto originale, e che le eventuali similarità fossero del tutto casuali.
Era una lotta fra due piccolissime aziende familiari, visto che Henderson lavorava con la sorella, mentre Katz con la madre. Fu invece percepita da tutta la rete Fidonet – sia dai sysop che dagli utenti – come una battaglia all’ultimo sangue fra Davide e Golia, con SEA dalla parte del cattivo prepotente, e PKWare in quella del debole tartassato. Il risultato fu la polarizzazione in due schieramenti ben delineati e contrapposti. Il primo, invero molto piccolo, a favore di SEA, e con la stragrande maggioranza nettamente a favore di PkWare. Polarizzazione che portò ad un lungo scontro culminato in una lunghissima seria di feroci polemiche, note con il nome di ARCwars.
Sta di fatto che SEA ed ARC divennero oggetto di un diffuso ostracismo. Tantissimi sysop a favore di Katz rinominarono i file da .ARC in .SUE (che in inglese significa citare in giudizio). Gran parte della rete che Handerson aveva contribuito a migliorare si rivoltò contro di lui.
Alla fine Sea vinse la causa, con un risarcimento di 62500$ da parte di PKWare e la cessazione delle vendite di PKArc. Katz, probabilmente temendo l’esito dell’azione legale, impiegò proficuamente il tempo per riscrivere ex novo il suo software utilizzando un algoritmo di compressione migliorato, che chiamò Zip.
Ma fu una vittoria di Pirro. Il danno di immagine fu fatale a SEA, che vide crollare le vendite di ARC a favore della neonata creatura di PkWare: PKZIP che in breve tempo divenne il nuovo standard de facto per la compressione.
Oggi Zip è diventato sinonimo dell’attività di compressione dei dati, mentre ARC non lo ricorda più nessuno.
- il formato ARC, su internet archive
- Fidonews 540 su ARCwars