Anagrafica articoli

C’era una volta un’informatica in cui il costo per byte sia della RAM sia dei sistemi di memorizzazione era notevole. In quell’informatica di una volta i programmatori facevano di tutto per risparmiare anche un singolo byte nei database, ben sapendo che un singolo byte moltiplicato per il numero di record aveva un peso notevole.

L’informatica è cambiata, i costi per byte sono diminuiti e la potenza dei motori di database è aumentata in maniera quasi esponenziale: immaginate solo il lavoro per fare una FULL OUTER JOIN o una semplice UNION con dBase III.

Purtroppo ci sono ancora aziende la cui anagrafica articoli è ferma a metà degli anni ’90 del secolo scorso, con anagrafiche articoli esposte al pubblico di relativamente pochi caratteri.

Continue reading “Anagrafica articoli”

Y2.01K

Dopo averci scherzato tempo fa, pare che il problema della data nei software non sia sparito del tutto.

Il problema dell’anno 2000 era serio, anche se le conseguenze non sarebbero state quelle “previste” dagli “esperti” catastrofisti interrogati dalla stampa, la quale era a caccia più di sensazionalismi che di notizie. In ogni modo, sia con lo sforzo preventivo sia con l’intelligenza degli utilizzatori il problema dell’anno 2000 è stato superato.

Durante il periodo di caccia al baco precedente il primo gennaio 2000, i protocolli di test per verificare il software prevedevano, ovviamente, l’utilizzo di date successive all’anno 2000 nelle normali operazioni del software.  Ok, ma quanto successive al 2000? 2001? 2005? 2010? 2100? 3000?

Continue reading “Y2.01K”

Addio Dr. Dobb’s Journal

Per citare una frase classica dei necrologi, il Dr. Dobb’s Journal ci lascia nella forma in cui lo conosciamo dopo lunga e penosa malattia.

Chi ha cominciato a scrivere software alla fine degli anni ’80 quando le risorse online in Italia erano le aree echo della FidoNet sa che il Dr. Dobb’s Journal costituiva una risorsa notevole, sia per gli articoli, sia per gli inserti pubblicitari che conteneva.

La rivista trattava in maniera molto professionale vari aspetti della programmazione legati ai singoli linguaggi o dedicati alla teoria degli algoritmi. Tramite gli inserti pubblicitari si poteva scoprire che un software o una libreria specifica era più conveniente acquistarla presso il Programmer’s Paradise piuttosto che direttamente dal distributore ufficiale.

Già con l’avvento di Windows 95 la testata si era arroccata su posizioni eccessivamente anti-Microsoft e pro-Java, comportamento che mi ha indotto ad abbandonarne la lettura abituale. Le ultime copie che ho sfogliato erano solamente una sottile ombra della rivista di un tempo.

Da quest’anno la testata chiude per confluire in Information Week e per potenziare la parte online. Auguro al Dr. Dobb’s Journal se non un futuro prospero, quantomeno un futuro migliore di quello che è toccato a OMNI quando ha intrapreso la medesima strada.

Addio Dr. Dobb’s Journal e mille grazie per tutto quello che abbiamo imparato leggendo i tuoi articoli.

HyperB5

HyperB5HyperB5, la risorsa italiana su Babylon 5, si rinnova passando da documenti HTML statici ad un motore di visualizzazione dinamico basato su PHP e MySQL.

La notizia per me è ancora più bella in quanto Steve, il curatore del sito, ha deciso di adottare il motore di visualizzazione di HyperTrek, disponibile gratuitamente con licenza GNU GPL.

Non è certo mia intenzione pormi al livello di gestori di contenuti quali, a titolo di esempio, WordPress o Joomla, in quanto il motore di HyperTrek è assai specifico e ottimizzato per guide su serie televisive. Il motore di HyperTrek manca di un sistema di gestione dei contenuti degno di questo nome, che esiste e fornisco tranquillamente su richiesta ma non è affatto di qualità pubblicabile (ci sto lavorando per metterlo online senza vergognarmi).

Inoltre il motore di HyperTrek non è deliberatamente collaborativo, nel senso che non si basa né sul concetto di wiki dove tutti possono scrivere (e cancellare) né sul concetto di blog dove tutti possono commentare (e spammare). Probabilmente questa è una limitazione, ma non è nemmeno detto che tutti i siti del web debbano sempre e comunque permettere i commenti di ogni visitatore, anche perché chi gestisce il sito potrebbe non avere tempo per vagliare i commenti.

I due punti forti, a mio avviso, del motore sono la modularità con cui si possono costruire le pagine di diverso layout e il fatto che il motore di visualizzazione acceda in sola lettura all’archivio dei dati, rendendo poco efficace qualsiasi tentativo di SQL injection che sfrutterebbe eventuali problemi di sicurezza del motore.

Steve sta ancora lavorando alla conversione delle pagine HTML, lavoro che so essere molto lungo e oneroso. Consiglio ogni tanto di passare a dare un’occhiata alla nuova versione del sito e segnalare eventuali imprecisioni ai gestori, aiuto sempre apprezzato da chi tiene alla qualità dei contenuti di ciò che pubblica.

Apple e Dovecot

Questa mattina nella lettura delle varie mailing list che seguo ho trovato una piacevole sorpresa.

Michael Abbott di Apple ha postato un messaggio nella mailing list di Dovecot in cui annunciava la disponibilità di Apple a contribuire al progetto con alcune patch sviluppate al suo interno e già verificate.

Negli ultimi tempi Apple non è stata un esempio di apertura come tecnologie e piattaforme, ma mi sembra corretto segnalare un comportamento meritevole quando questo si verifica. Troppo spesso le ditte approfittano del software Open Source per ridurre tempi e costi di sviluppo senza, però, attenersi alle regole di questo tipo di distribuzione, ovvero senza contribuire a loro volta ai progetti che sfruttano. L’ultimo esempio di questo comportamento poco corretto sarebbe rappresentato da CISCO (la giustizia americana deciderà), contro cui la FSF ha intentato una causa.

Continue reading “Apple e Dovecot”

HyperTrek

HyperTrekPiccolo spazio pubblicità.

In agosto ho aggiornato il motore di HyperTrek, che ora è alla versione 2.0. La novità più evidente è il cambio della grafica standard: ho voluto un po’ decostruire l’interfaccia e togliere filetti, sfondi, retini e ammennicoli vari, vuoi perché oramai ce ne sono troppi nei siti, vuoi perché spero che una grafica così leggera sia più fruibile dai dispositivi portatili. La nuova grafica è figlia dell’uso massiccio di DIV e SPAN al posto delle tabelle, che sono state ridotte al minimo indispensabile. Le immagini della nuova grafica sono opera del vulcanico Sat’Rain, impagabile collaboratore del sito. Questa scelta mette a disagio chi usa ancora Internet Explorer 6, ma spero che gli utenti di questo browser pieno di vulnerabilità note a tutto il mondo aggiornino velocemente il loro programma.

Continue reading “HyperTrek”

Messaggi di errore

BSOD durante la cerimonia di apertura delle Olimpiadi (fonte: Gizmodo)Si dice che ogni programma non banale contenga almeno una variabile, una struttura di controllo e un baco. Si dice anche che per i programmi prodotti da una ben nota software house questa affermazione sia più vera che per altre software house.

Nei tempi eroici del Clipper ero membro di un gruppo di sviluppatori che lavorava per un progetto per la pubblica amministrazione. Lo sviluppatore leader del gruppo, da cui ho imparato moltissime cose, aveva creato anche una fantastica routine di gestione degli errori, molto informativa e utile per il programmatore che mostrava una bella schermata rossa con caratteri gialli al manifestarsi dell’errore. Questa funzione manda in visibilio lo sviluppatore perché si accorge all’istante dell’errore anche se è lontano dallo schermo e presenta a schermo una reportistica dettagliata. Tutto bene, finché l’applicativo non entra in contatto con quella particolare zona del Mondo degli Utenti nota come Anteprima Per Il Committente. Murphy, sempre all’erta, ci mette lo zampino e si manifesta un bug durante la demo. Fortunatamente la cosa si risolve con un’abile prestidigitazione sulla tastiera (il Committente manco si accorge di cosa sia successo), ma ci insegna una cosa: gli errori fatali non devono annunciare a oves, boves et universa pecora il fatto che ci sia un baco nel nostro software. Mai.

Continue reading “Messaggi di errore”

Security through obscurity è MALE

Ficcatevelo in testa: nascondere (o negare) i problemi di un sistema è il peggiore dei comportamenti possibili.

La considerazione nasce, ovviamente, dalla paradossale storia che ha coinvolto alcuni studenti del MIT e un servizio di trasporti pubblici del Massachussetts. Innanzi tutto va chiarito che le persone coinvolte non sono un manipolo di malviventi, ma studenti del MIT il cui professore è Ron Rivest, la ‘R’ del RSA. Gli studenti hanno scoperto un problema nel sistema di tariffazione dei trasporti pubblici e hanno applicato le procedure descritte dalla Full Disclosure Policy (RFPolicy) v2.0. La policy prevede che chi scopre un problema di un sistema contatti per prima cosa l’autore/gestore del sistema con cui stabilisce un dialogo che ha come scopo primario la soluzione del problema.

Continue reading “Security through obscurity è MALE”

Algoritmi e curve temporali

Come programmatore sono sempre stato affascinato dagli algoritmi, specialmente se compatti ed eleganti

Ci sono, però, dei problemi per la cui soluzione non esistono algoritmi efficienti; di contro, per gli stessi problemi, se viene presentata una soluzione, questa è immediatamente e facilmente verificabile come corretta. Prendete, per esempio, una mappa con un sacco di isole e ponti: non esiste un algoritmo efficiente che tracci un percorso per visitare tutte le isole una sola volta, ma se vi viene presentata una soluzione, è facile capire se sia corretta. Un altro problema da un lato più teorico, ma con tremende ripercussioni pratiche è, dato un numero, capire se sia il prodotto di due numeri primi e di quali. Se quest’ultimo problema è semplice con numeri piccoli, non lo è, fortunatamente, per numeri molto grossi. Perché «fortunatamente»? Perché la gran parte di transazioni informatiche crittografate si basa su questo assunto. Se leggete che qualcuno ha trovato un algoritmo per fattorizzare rapidamente numeri di grandi dimensioni, iniziate a preoccuparvi davvero.

Continue reading “Algoritmi e curve temporali”

Developers! Developers! Developers!

Scrivo software da… uhm… tanti anni e ho visto nascere, crescere e morire molti linguaggi del futuro.

Nei primi anni di MS-DOS e anche nei primi anni di Windows (diciamo dal 3.0 in avanti) queste erano piattaforme entusiasmanti su cui scrivere. C’erano dei bachi sia nel sistema operativo sia nei tool di sviluppo, ma erano ben noti e quasi sempre facilmente aggirabili. C’erano molte librerie di terze parti (anche senza Internet le informazioni circolavano benissimo tra i programmatori) che sopperivano alle carenze delle librerie standard dei linguaggi e alle necessità dei programmatori. C’era chi pubblicava compilatori, chi pubblicava librerie e chi comprava i due per creare programmi.

Poi è successo qualcosa, credo attorno al 1995/1996. Windows si è trasformato in una piattaforma di utilizzo in cui i tool di sviluppo c’erano, ma gestiti quasi esclusivamente dal produttore del sistema operativo. Sono usciti prodotti interessanti, ma la potenza di fuoco di Micorosft è sempre stata soverchiante: quante volte hanno cambiato il modello di accesso ai database in Access e/o in Visual Basic con la motivazione (sempre uguale) che il nuovo modello è migliore di quello vecchio, ogni occorrenza del quale nel vostro codice deve essere isolata e distrutta come un campione di malattia infettiva? La prima volta ci siamo stati dietro, la seconda abbiamo storto il naso, la terza è partita una raffica di moccoli verso Redmond ed il codice è rimasto invariato.

Continue reading “Developers! Developers! Developers!”