Insegnare la costruzione di siti web con Linux
di Alan Ward
(traduzione di
G. V. Felchero e P. Blason)
Abstract
Questo articolo è indirizzato soprattutto a quegli insegnanti che vogliono dedicarsi alla costruzione di siti web, anche se può comunque essere di un certo interesse per tutti gli altri. E' basato sulla mia esperienza personale di questi ultimi quattro anni. Ogni anno finisco con il fare le cose in un modo diverso, e questo articolo è da intendersi come una sintesi della pratica effettiva.
Introduzione
Oggigiorno le questioni più importanti quando si insegna a costruire per il web sono:
Per quanto riguarda l'ambiente, intendo dire: su quale tipo di server (relativamente al software) deve essere collocato il nostro sito? La scelta fondamentale è tra un server Microsoft che lavora sotto Windows NT (professional) o Windows 9X (intranet locale), oppure un server Unix. In questo ultimo caso, Apache sembra aver conquistato un'ampia fetta di mercato, ma senza diventare un monopolio :-).
Questa è una questione importante dal momento che ciascun server ha le sue caratteristiche e le sue idiosincrasie.
La questione dell'editor HTML dipende fino a un certo punto dalla risposta alla prima domanda. Se stiamo sviluppando per un server Microsoft, ha senso scrivere le nostre pagine con MS Frontpage (completo o Express). Vale lo stesso discorso per un server Netscape e Netscape Communicator. Per Unix/Linux il discorso deve essere approfondito.
Noterete che non ho alcun particolare pregiudizio pro o contro i prodotti Microsoft. Sono sicuro che Internet sia ampia abbastanza per trovare gente che lavori con una qualsiasi combinazione di hardware e software - allo stesso modo! Io personalmente sviluppo con un server Linux+Apache e un client Windows+iExplorer+Netscape+HotJava.
Naturalmente, le nostre risposte a queste domande dipendono sia dalla scelta personale che dal risultato finale che vogliamo ottenere. Per analizzare questi aspetti possono essere presi in considerazione diversi fattori, che formulerò come domande.
L'ambiente del server
Il primo fattore è:"Vogliamo produrre qualcosa (per es. un sito web reale) come conclusione del nostro progetto?" La risposta a questa domanda è quasi sempre sì. Allora, dobbiamo vedere dove sarà collocato. Il sito web sarà collocato su una rete locale (intranet), o deve andare su una rete globale (Internet)? Incomincierà a vivere localmente (per es. per sviluppo e testing) - e speriamo di poterlo portare successivamente su rete globale (quando completo)? Se è così, particolare attenzione deve essere prestata a utilizzare lo stesso tipo di server su entrambe.
Un esempio: diciamo che sviluppiate localmente con un Personal Web Server (PWS) della Microsoft, e quando avete finito inviate il vostro sito al vostro ISP preferito - che gestisce Unix+Apache. Con PWS è facile scrivere "\" per "/" per separare le subdirectory, e PWS comunque funziona bene. Apache invece non lo fa, rispettando così la convenzione Unix (è ragionevole, vero?). Un errore stupido, ma a me è accaduto.
Ecco dove Linux entra in gioco. Il server Apache lavora esattamente nello stesso modo sulla vostra Linux box locale e sul Sun/Solaris del vostro ISP. In questo modo avete una ragionevole certezza che se funziona sulla vostra macchina, lavorerà anche sul Web. Questo punto è particolarmente importante quando si insegna ai ragazzi: se quello che stanno facendo non funziona perché loro hanno pasticciato, tutto OK. Se non funziona a causa di un "problema tecnico", ahi, ahi. :-(
Ragione in più per conoscere il vostro ISP. Il mio è il genitore di uno studente - in questo modo ogni cosa io faccia in classe torna a casa per il controllo! Questo mi tiene con i piedi per terra.
Un altro punto che può essere messo in evidenza - e che i miei studenti mi hanno fatto notare - è l'utilizzo di un client FTP. La manutenzione del Web è qualcosa di cui mi piace parlare nelle mie lezioni. Tuttavia la maggior parte della gestione è fatta oggigiorno attraverso l'utilizzo dell'FTP per caricare pagine sul server. Come probabilmente saprete, Microsoft Frontpage utilizza la rete locale per caricare pagine direttamente sul server locale, mentre un server Linux+Apache quasi sempre ha un server FTP in esecuzione, proprio come una "grande" macchina Unix.
In questo modo ci si può esercitare localmente per caricare pagine sul server, prima di andare on line. Si possono anche indirizzare oggetti come home directory sul server di contro alle directory ".public".
La mia esperienza finora è che le mie lezioni su Unix/Linux aiutano gli studenti a comprendere meglio la complessità dei server web, mentre le mie lezioni sulla gestione del web li aiuta a trovare applicazioni dirette, in situazioni di vita reale per la loro conoscenza di Unix. Penso che sia importante darne una rappresentazione completa e coerente.
L'editor HTML
Così abbiamo scelto il nostro server locale, e non ci resta che incominciare a sviluppare il nostro sito web. Ora, la questione è: "Quale editor utilizzare?"
Io preferisco incominciare con un editor testuale, in questo modo possono rendersi conto della codificazione HTML pura, prima di avventurarsi con qualcosa di più sofisticato. Se sono in grado di scrivere HTML, impareranno ad utilizzare in fretta un editor avanzato come Frontpage, e - cosa forse ancora più importante - saranno in grado di correggerne l'output. Il contrario non è sempre vero.
Sotto Windows, io utilizzo NotePad. Fondamentalmente per sfuggire ai problemi relativi ai differenti formati dei file che possono essere una scocciatura con Write, Works o Word. Sotto Linux, utilizzo qualsiasi editor adatto allo scopo (gedit, kedit, vi ...). Sto scrivendo questo articolo con il mio preferito: Emacs con la modalità HTML attivata.
Quando passeremo ad un editor più avanzato, Netscape Composer è quello con cui scieglierò di lavorare in questo corso. Questo perché è disponibile su molte piattaforme: i miei studenti hanno a casa macchine Intel con Windows e Linux (colpa mia!), e anche Macintosh. Non sono stato in grado di trovare così tante versioni di altri editor come MS Frontpage Express o Hotmetal. Il Frontpage completo di Microsoft lo lascio perdere, dal momento che non sembra interfacciarsi bene con i server Unix.
Continuando con la nostra analisi, vale la pena esaminare le possibilità offerte da MS Word o Publisher. OK, so che producono codice HTML veramente terrificante! Ma comunque lo fanno - a partire da documenti già esistenti - con relativa facilità. Ho tenuto un corso su Frontpage questa estate, e alla fine mi sono reso conto che la maggior parte degli studenti (erano di fatto insegnanti colleghi sottoposti a "formazione") volevano utilizzare Word per produrre le loro pagine. Il punto era che volevano pubblicare dei testi - che erano stati scritti in Word - sul Web. Ora, quando metterò le mani su StarOffice, può darsi che debba rivedere il mio giudizio.
Fare il debug
Un ulteriore fattore è: "Chi mi leggerà, e con quale browser?" Come saprete, i browser HTML possono produrre un output piuttosto diverso della stessa pagina. E per parafrasare la legge di Moore: se esiste un browser strano, qualcuno là fuori certamente lo utilizzerà.
Il solo modo per assicurarci che ciò che abbiamo prodotto sia più o meno universalmente accessibile è farne il debug: cioè, provare localmente il nostro sito con diversi browser. Idealmente, sarebbe bello:
Questo può essere anche un modo pratico per mettere a confronto sistemi operativi in classe, di modo che gli studenti possano rendersi conto della diversità dei sistemi operativi e dei browser disponibili. Non è un cattivo modo di presentare Linux a studenti che sono ancora nella fase Windows.
Potete anche vedere che cosa funziona con ognuno di questi. Alcuni problemi possono derivare da:
Un ultimo punto che merita attenzione e debug è (per noi utenti della codifica Latin charset) l'accentazione. Per esempio, io ho testato le mie pagine con un Windows spagnolo e francese (gli accenti hanno codici ASCII diversi con queste codifiche).
Conclusione e previsioni
Benché l'impressione finale, dopo questi quattro anni, sia fino ad un certo punto di confusione, almeno ne comprendo le ragioni. Su Internet coesistono molte diverse configurazioni hardware e software (e materiale umano). Di fatto, questo è uno dei soli modi in cui molta gente entra in contatto con questa varietà.
Perciò, dal punto di vista dell'insegnante, si può chiudere gli occhi e nascondere la testa nella sabbia (non vedo, non sento), o si può affrontare questa varietà - e trasmetterla agli studenti (non ne parlo!). E' una buona idea presentarla direttamente agli studenti, con il conseguente pericolo di creare confusione? Io posso rispondere parlando solo della mia situazione personale: mi sembra che i miei ragazzi (17-18 anni) abbiano abbastanza esperienza come utenti di Internet che questa varietà si è insinuata gradualmente nella loro coscienza. Così non può essere troppo sbagliato se io faccio chiarezza sui dubbi che sorgono.
Un campo analogo, nel quale vorrei lavorare in questo corso, è la programmazione per il web, sia lato server (CGI) che lato client (Java). Qui, il server Apache ancora una volta mi dà, a differenza di Microsoft, ciò di cui ho bisogno per sviluppare CGI sia con C che con Perl. Un punto da considerare è che il mio ISP mi permette di includere script Perl nella mia pagina, ma non programmi in C (che dovrebbe ricompilare).
Dall'altra parte, il Java Development Kit (JDK) è disponibile per il download da Sun (java.sun.com) sia per Linux che per Windows. Un'altra cosa che mi è anche piaciuta molto è la loro abitudine di dare molti esempi. C'è modo migliore di imparare a programmare?
[Nota dell'editore: Il precedente articolo dell'autore in LG #45, Condividere un server Linux con X in classe, è ora disponibile in ungherese come Linux szerver megosztása a tanteremben X-Window segítségével. -Ed.]
Copyright, per la versione americana, © 1999
Alan Ward
Pubblicato sul n. 47 della Linux Gazette, novembre 1999
Copyright, per la versione italiana, © 1999 LGEI (Linux Gazette Ed. Italiana) n. 6 Anno III