continua (next page) main index Carissimi, vi voglio raccontare del più colossale programma che io abbia mai fatto per la megaditta dove lavoro. TUTTO VERO!

Come vi avevo già detto in un messaggio precedente, avevamo avuto tutta la documentazione in tedesco stretto e nel manuale della scheda emulazione PC/host c'era anche il capitolo Drucker-Emulation.

The story of the beginning of one of my best commercial software...

Una sera di settembre, mentre lavoravo al programma sul PC nel CED, vennero il megaboss e il XXX, e il megaboss mi chiese: "Ma tu puoi intercettare le sequenze di stampa dell'host e poi eventualmente gestirle tu?". Io risposi "ma è ovvio!" sparandomi una posa senza precedenti, perché per un attimo il XXX guardò invidiato il megaboss come se volesse dire "se solo anch'io avessi gente così nella megaditta dove lavoro io..." ...senza neppure lontanamente immaginare quanta fatica mi sarebbero costate in futuro quelle parole. Il diabolico XXX, riavutosi dall'attacco di invidia, rispose con un demoniaco "Perfetto... magnifico..." e si allontanarono discutendo di stampanti a trasferimento termico che io non avevo ancora mai visto ma che in un futuro non molto lontano mi avrebbero creato più problemi di un'invasione biblica di cavallette.

Una rivista di informatica dei primi anni ottanta Vale la pena aprire un attimo una parentesi sul favoloso CED. Era il massimo della goduria: due megacondizionatori XXX assicuravano una temperatura tra i 18.4 e i 20.6 gradi centigradi, il che ci permise di lavorare in estate quasi col massimo relax (dico "quasi" perché a causa della temperatura quello stanzone era visitato in continuazione da gente che nulla aveva a che fare con l'host e con il nostro lavoro!). Quando però tolsero al telefono la possibilità di chiamare all'esterno il CED perse una grossa parte dei frequentatori più o meno assidui...:-)

Ma torniamo a quella sera di settembre. Più tardi tornò il megaboss e mi disse che effettivamente stavano progettando un altro lavoretto, "bassa priorità" (MAI DIRE MAI!) con delle stampanti termiche che appunto il megaboss aveva adocchiato, dal prezzo praticamente assurdo (rasentava la decina di milioni al pezzo, "una vera ladrata" pensai) e dal peso praticamente industriale.

Click here for index page. Era una stampante seriale a trasferimento termico, per etichette di formati clamorosi, XXX centimetri per XXX, tanto per rispettare la vecchia tradizione del megacliente. Beh, qui trascendiamo un attimino in area "programmazione", per cui cercherò di riassumere quello che c'era da fare: un programma residente (TSR) intercetta via interrupt le chiamate dell'host verso il terminale e la stampante, gestisce da solo le chiamate "terminale" e manda le sequenze di stampa sul file BYPASS; il programma in esecuzione deve intercettare il file bypass, leggere le sequenze, scompattarle e convertirle a formato stampante thermal transfer di cui sopra, il tutto tenendo disabilitati gli interrupts il meno possibile perché l'emulatore di terminale le sparava a tradimento. Infine, il PC doveva gestire non una ma DUE stampanti, dato che il PC costa e le stampanti pure, si è ben pensato di ottimizzare i costi a scapito della tremenda complessità del programma! Le stampanti dovevano funzionare ovviamente contemporaneamente, e se una delle due si blocca per fine carta o altro errore, la sua stampa deve proseguire appena possibile sulla prima stampante. Come se non bastasse da host arrivavano richieste di stampa per etichette "replicate" (cioè stampami venti di questa, con numero consecutivo da 101 a 120) e per giunta perfino messaggi "spuri" che loro non potevano evitare che l'host mandasse, fra cui il mitico DRUCKER: DURCH... che mi ha fatto non poco disperare perché non riuscivo mai a intercettarlo e non sono mai riusciti a riprodurlo a mano volontariamente.

Ero in una situazione di disperazione totale, e mi sono inventato delle cosacce da recordman della programmazione: il BYPASS veniva intercettato a livello DOS: col mio device=bypass.sys, intercettavo tutte le scritture sul file BYPASS e le piazzavo in memoria in due buffer da 64k, rispettivamente per la prima e seconda stampante. Tragicamente in seguito il XXX mi ordinò perentoriamente di "come minimo raddoppiare la grandezza dei buffers" perché "in caso di grosse quantità di stampa non deve essere perso neppure un byte", il che mi costò una settimana di duro lavoro con puntatori a 32 bit e ammennicoli vari... ;-) La cosa più triste è che secondo i miei calcoli tale raddoppio è stato inutile perché già 64k per parte erano troppi. Però visto che dall'alto (il XXX) lo volevano (sempre e solo il XXX) allora... ZOT! :-)

Ovviamente anche la porta seriale me la son dovuta gestire io a bassissimo livello, scrivendo il mio famosissimo XXX, una specie di fossil driver scritto e tagliato proprio su mia misura. Non ho usato né XXX né XXX perché poi c'era il problema che la megaditta ci avrebbe guadagnato di meno, fatto meno figura, e il megacliente avrebbe dovuto mandare qualche dollaro a programmatori in posti sperduti della terra... da XXX stavo per cavarne fuori il mio portentoso Fossil Driver, cosa che non ho più fatto per motivi di tempo. Mi sa che lo rilascio come shareware, giusto per vedere un po' di gente far pianto greco pur di diventare support & REGISTRATION site per questo o quel paese, pur di avere una registrazione gratuita e di sentirsi importanti per qualcosa. Oramai tutte le BBS sono support site di qualcosa, a proposito cerco un support/registration site per l'Italia per il mio programma XXX.BAS di 114 bytes, qualcuno si vuole offrire volontario? Avrà registrazione gratuita!

Una motrice E444R Il programma per la stampante, la prima release funzionante, era di poco meno di 14k di .C totale, più ovviamente i due moduli bypass e XXX che però sono programmi a parte. Dal novembre 199X non ho avuto più bisogno di aggiornare XXX; il bypass invece è cresciuto per un altro anno abbondante. Il programma di conversione etichette invece è cresciuto fino ad oltre i 100k di .C sorgente (!) che purtroppo non comprendono la massa sterminata di funzioni realizzate ed in seguito eliminate in seguito a richieste pressanti dall'alto. Una sera il Baffo mi disse -a sorpresa- "vabbè, ma questo numero qui è un contatore, lei non lo gestisce? se le arriva 00005 lei deve generare cinque etichette uguali numerate però in quel posto da 1 a 5... non ci metta gli zeri, sono bruttini... no, noi non possiamo fare a meno di mandarli altrimenti dovremmo modificare la procedura di generazione etichette ed è proprio «un gran casino»...". Erano le cinque di un venerdì sera, già assaporavo il mio treno espresso delle 20:35 da Milano Centrale per la Sicilia, con fermata a XXX in piena notte, e lui mi stava semplicemente dicendo che dovevo farmi un altro paio di giorni di lavoro la settimana prossima, che putacaso divennero una settimana piena piena a causa delle numerosissime modifiche in seguito richieste (in particolare quella di un ulteriore numero da gestire per quando le etichette non cominciassero da 1 in poi... ;-)

All'inizio esisteva un unica etichetta, con pochi dati sopra... si vedeva ad occhio nudo che c'era un bel po' di spazio libero sull'etichetta, e così cominciarono a schiaffarci sopra le cose più diverse e i dati più assurdi e inutili. Col risultato che quando cambiarono formato e cominciarono ad usare etichette del 60% più piccole in nome del risparmio cartaceo, e pretesero di avere ancora tutti i dati di prima sull'etichetta, sono stato costretto a salti mortali: non per niente prima avevo disegnato l'etichetta con un programma apposito (che fece spendere XXX lire più iva al megadirettore megagalattico, che si rose il fegato per non aver potuto scopiazzare a sbafo quel programma che avremmo usato secondo lui sì e no un paio di volte)... e alla fine mi ritrovai a disegnare l'etichetta "a mano", con la squadretta milimetrata e con la calcolatrice con i decimali ;-).

Ho detto che all'inizio esisteva una sola etichetta: infatti subito ne nacque una seconda più una variazione della prima e in breve arrivarono anche la terza e la quarta. Fu un periodo di lavoro intenso: il codice a barre me lo facevano mettere e togliere (nelle settimane dispari non c'era ;-), le informazioni sul cliente passavano da destra estrema a centro-sinistra per fare spazio alla nuova formazione di dati che si addensava verso il centro-destra, praticamente pareva il Parlamento quando XXX XXX ;-)

Semaforo Circumvesuviana in controluce Ah, già! Lì erano una massa di XXX e pseudo-XXX. Nessuno di loro ebbe mai il coraggio di spacciarsi per sia pure solo simpatizzante di XXX, al limite facevano i qualunquisti tipo il carrellista di XXX che vi presento più avanti. Interminabili discussioni politicoidi tutte riassumibili in "a XXX XXX, viva XXX". Era una cosa incredibile: computers XXX, stampanti XXX, morte ai XXX che XXX e che non XXX - invece io venivo trattato più che bene... io mica andavo a XXX, sapevano bene che io andavo lì per lavoro e andavo a liberarli dai guai! ;-) Pure gli operai del magazzino lo sapevano, e -incredibile ma vero- a nessuno di loro stavo antipatico. Quelli di Roma ("er Paolino", Arf, il megaboss) godevano di un filino di ammirazione in meno... :-)

In più c'era da aggiungere che gli operai lì intorno non mi lasciavano mai un attimo in pace: "si è incastrata la stampante", "qui non escono le stampe che ho richiesto" (era colpa dell'host ma loro insistevano che era colpa mia), "le etichette non si staccano" (gli operai avevano le unghie corte), "senta io ho comprato uno stereo Kenwood e..." (XXX, che XXX vuole questo da me?), "ma lei è giovane, eh? quanti anni ha? uh? solo XXX anni? sa, io ho un figlio della sua stessa età, sta cercando lavoro..." (e che lo vuole da me? guardate poi la tizia come continua :-) "ma chissà sua madre come è contenta che lei lavora così lontano da casa e guadagna tanti soldi" (aò, mia madre si preoccupa solo dei soldi che le porto, cioè praticamente niente perché ho da comprare il computer, e per giunta non è contenta ma è inquartata come una belva!), "mio figlio voleva tanto trovare un bel posto di lavoro" (e io che sono, l'ufficio di collocamento?) "ma tu come hai fatto?" (con una megaraccomandazione, altrimenti col fischio che stavo qui a farmi massacrare dal XXX e dal Grassone!) "ma tu come hai imparato" (tutto da solooo!!! e poi mi sono sempre letto i manuali e la documentazione!) "ma che scuola hai fatto?" (ho preso XXX/60 al liceo scientificoooooo!) e via di seguito. Chiaramente non sono stato così duro nel risponderle, però le ho detto proprio tutte quelle cosucce (e cioè la verità).

C'era poi un carrellista di XXX che guidava il trilaterale manco fosse una bicicletta per bambini (quella con due rotelle extra sulla ruota di dietro in modo che se uno si scorda di pedalare non casca come un "pìro fràceto" [pera marcia] per terra). Le primissime volte quasi non ci credeva a vedere uno che imprecava in napoletano (il mio famoso "all'anm'é chi t'sòn'a XXX" ha fatto storia, ma non sono mai riusciti a pronunciarlo correttamente). Mi diceva sempre ogni volta "aò, XXX, ma ché se rìce abbàsh a Nàpule?", e "ó vincìmm ó shkudètt' chìst' ànn'?". Wow, quale onore... ;-)

Nel giro di pochi mesi i magazzinieri, carrellisti ed operai cominciavano -clamoroso, quasi tutti milanéus- a cantare canzoni napoletane, la più gettonata era "dicìtincéll' à sta' cumpàgna vòst'" soprattutto perché io avevo leggermente storpiato il seguito:

(testo censurato perché troppo osceno!!!).

C'erano tre tipi di carrelli elevatori, tutti a batteria (a seconda dei modelli, tra i XXX e i XXX volts con un amperaggio da far paura): erano chiamati con due lettere e due cifre (le due cifre erano il numero del carrello), così il XXX era il "XXX" (il più strano, a guida "in piedi" - poteva alzare il piano di guida fino a tre metri da terra), il XXX era il "XXX" (perché oltre ad alzarsi poteva anche tirare indietro), e il XXX era il "XXX", un bestione da XXX milioni, dal peso biblico e che poteva girare in tre direzioni il carrello, oltreché alzarlo fino a dieci metri (a riposo era alto solo sei metri!).

Sono riuscito a farmi qualche giro sui XXX e sui XXX, ma non mi hanno mai lasciato guidare il mitico XXX - una volta Arf riuscì a portarlo avanti per mezzo metro, poi vistosi scoperto scese subito, ma continuò per mesi a vantarsi di essere stato l'unico a condurlo.

Una volta ci facemmo una corsa nel magazzino ad ora di pranzo, io ed er Paolino su due XXX ed Arf sul XXX, che mostrò essere più veloce ma meno maneggevole da guidare... quando ci scoprirono ci sentimmo come tre bambini pronti a ricevere il meritatissimo "paliatóne", invece miracolosamente non ci dissero nulla, neppure un "attenti a dove guidate" che invece ci aveva fornito il nostro amato/odiato megadirettore megagalattico un attimo prima della partenza.

Più volte invece ci lasciarono correre con i "muletti", dei carrellini di dimensioni abbastanza ridotte, abbastanza veloci (forse anche i 3 [tre] km/h di punta). Però purtroppo dalla fine del 199X in poi non avemmo più un minuto libero di tempo per fare altre gare - oltretutto l'Antipatico cominciava a venire un po' troppo spesso, anche una o due mezz'ore alla settimana, il che era troppo pericoloso... :-)


Click here for index page.

indietro (previous page) - send e-mail - continua (next page)