Codice Forma Contenuto


Dove si intrecciano fili diversi e si acquisisce qualche molto sana abitudine. Piccoli hacker crescono. Non finisce qui …


Vi ricordate il video postato da Marvi? Ecco, riascoltatelo con molta attenzione da questo preciso punto:

http://youtu.be/5xDITZBizfY#t=0m48s

uh … preciso punto …

Ricapitoliamo:

HyperText Markup Language (HTML)
Codice per rappresentare pagine web. Definisce i vari elementi di testo: titoli di vari livelli, paragrafi, elenchi di vario tipo, elementi immagine, frammenti di codice destinati ad arricchire la pagina, quali video o altri elementi grafici particolari. Anche metadati, ovvero informazioni che descrivono la natura della pagina ma risultano invisibili. Questi sono elementi utilizzati dal browser che deve rappresentare la pagina e dai motori di ricerca; per esempio la versione di HTML con la quale è stata scritta la pagina o le parole chiave che facilitano il reperimento della pagina da parte dei motori di ricerca.
Cascading Style sheet (CSS)
Codice per definire l’apparenza grafica dei vari elementi di testo. Definisce come debbano essere rappresentati i vari elementi specificati nella pagina HTML, colore, tipo e dimensione dei caratteri, allineamento nella pagina o nelle sue sezioni e via dicendo.
Javascript
Codice per l’esecuzione di particolari operazioni che modificano l’apparenza delle pagine HTML e le rendono reattive a certe azioni dell’utente. È vero e proprio software che le pagine web portano nei computer degli utenti come un cavallo di Troia.

Potrebbe sembrare che il web sia tutto qui, in soldoni: pagine web molto belle e dinamiche. In realtà ci sono altri importanti ingredienti.

Uno di questi è la separazione fra forma e contenuto, proprio quella accennata da Michael Wesh, ed è qui che entra in gioco un altro tipo di codice, lo XML (eXtensible Markup Language). Proviamo a toccarlo con mano, prima di studiarlo sui libri.

Uno di questi è la separazione fra forma e contenuto, proprio quella accennata da Michael Wesh, ed è qui che entra in gioco un altro tipo di codice, lo XML (eXtensible Markup Language). Proviamo a toccarlo con mano, prima di studiarlo sui libri. Fate un po’ di ginnastica e stretching alle dita … alla fine, in un altro post, ci sarà anche il compito, forse 😉

Molti di voi conosceranno già Blocco note (Notepad), il piccolo editore di testo che correda tutte le versioni di Windows. Ne avevamo parlato nel post andando dove mi portano i feedback. In Windows, credo in tutte le versioni, si trova in Avvio (Start) -> Tutti i programmi -> Accessori -> Blocco note. Chi non avesse fatto il miniesercizio con il Blocco note (Notepad), descritto in quel post, lo faccia ora [1].

Il Blocco note (Notepad) è palesemente molto semplice e questo a molti potrà sembrare un fatto naturale – Che vuoi che faccia un semplice editore di testo! Niente affatto. Il mondo è pieno di sofisticatissimi editori di testo, con una miriade di strane opzioni, in tutte le salse e per tutti i sistemi. Sono gli attrezzi preferiti da professionisti, geek di varia estrazione o da chiunque mastichi con una certa frequenza qualche tipo di codice. Nei casi più estremi sono effettivamente ostici, un po’ come una macchina da corsa, scomoda e senza aiuti che perdonino gli errori del pilota, ma se la sai usare vai più forte.

In realtà gli editori di testo possono essere raffinati anche sotto il profilo grafico ma con il fine di facilitare la scrittura del codice. L’esempio più lampante, ma non certo l’unico, è la colorazione sintattica (evidenziazione sintattica, syntax highlighting), vale a dire l’uso dei colori per differenziare gli elementi di un certo tipo di codice. Una cosa semplice ma di grande utilità quando si deve rovistare in codici lunghi e complessi, ma non solo.

Roba solo per professionisti? Secondo me non proprio, magari anche per studenti dei corsi di editing multimediale … Perchè uno degli equivoci tripici è che una cosa che si chiama editing multimediale debba necessariamente essere una cosa fatta solo di link e bottoni cliccati. Niente affatto, la marcia in più invece, anche senza volere aspirare a vette stratosferiche, compare proprio quando si comincia e aggeggiare qualche codice, e qui, un vero editore di testo è proprio quello che ci vuole. Mai manipolare frammenti di codice con un word processor, sarebbe come andare a cercar funghi con il frac e il mantello, tutto il tempo andrebbe speso nel districarsi fra i rovi …

Ok, facci usare questo Blocco note e non la menare troppo lunga! – No, vorrei che provaste un altro editore, anche perché così facendo, scopriremo qualche altra cosa.

Cliccate quindi qui: Notepad++. Leggiamo insieme alcune parti di questa pagina. Prima la sezione a destra, intitolata About:

Notepad++ is a free (as in “free speech” and also as in “free beer”) source code editor and Notepad replacement that supports several languages. Running in the MS Windows environment, its use is governed by GPL License.

Fermi.

Notepad++ è un editore di codice sorgente libero (come libera espressione e anche a costo zero [2]) che funziona anche come un sostituto più potente di Notepad, in grado di riconoscere e tenere conto di diversi tipi di codici. Gira in ambiente MS Windows e il suo impiego è regolato dalla licenza GPL [3].

Se siete andati a leggere le note, vi sarete resi conto che qui si svela un nuovo mondo, che noi proviamo a conoscere semplicemente entrandoci dentro, che qui vuol dire scaricando il software e provando a usarlo. Guardate la colonna di sinistra, cliccate sul tasto Download. Si apre una nuova pagina. Guardate la parte destra, intitolata v5.9.6.2 – Current Version. Prima di procedere, leggete sotto, anzi, riporto qui la prima e l’ultima voce dell’elenco che si vede:

  • Notepad++ v5.9.6.2 Installer
  • Notepad++ v5.9.6.2 code source (source code)

La prima voce è quella su cui dovrete cliccare per scaricare il software, ma l’ultima, che ho copiato qui sopra, vedete cosa dice? source code. Quello è il codice sorgente del software che state per scaricare. Ecco se voi voleste, potreste scaricarlo e leggerlo. Magari modificarlo per introdurre qualche vostra miglioria, magari ridistribuire in rete la vostra versione, cosa che potreste fare, a patto di corredare il nuovo prodotto ancora con la licenza GPL, in modo che il processo possa evolvere ulteriormente. Questo è il modo nel quale si sviluppa il software libero.

Ora torniamo a noi. Cliccate quindi sulla prima voce, vi viene così chiesto se volete scaricare un file di nome npp.5.9.6.2.Installer.exe (Nota per chi non usa windows. Dite di sì e, una volta scaricato, cercate il file, nella cartella Download o dove siete comunque abituati a scaricare la roba da Internet, e poi eseguite quel file – perché come dice l’estensione del suo nome, .exe, si tratta di un file eseguibile. In seguito a questa operazione, vi ritroverete Notepad++ fra i vostri programmi. Lo trovate in Avvio (Start) -> Tutti i programmi -> Notepad++.

Se vi va di provarlo, per esempio caricandoci dei file che conoscete, magari qualcuno dei file HTML con i quali avete giocato qualche tempo fa, fatelo. Poi tornate qui, sennò procediamo subito, leggendo nella (copio e traduco qui sotto) pagina principale di Notepad++, sempre nella sezione a sinistra, About, in fondo, sotto alla figura che si vede:

Siete incoraggiati a tradurre Notepad++ nella vostra lingua madre, nel caso tale traduzione non fosse ancora disponibile nella pagina Binary Translations. E se l’idea vi piace, l’aiuto che darete traducendo il sito ufficiale di Notepad++ nella vostra lingua madre sarà molto apprezzato.

Seguite il secondo link (il primo contiene le istruzioni, ma guardatelo dopo, solo se volete): avete visto in quante lingue è stato tradotto? Le ho contate: 62, se non mi sono sbagliato. Ecco, il modello cooperativo del software libero, non concerne solo strettamente il software ma anche altri aspetti. Questo delle lingue è molto interessante perché con questo sistema, si hanno traduzioni in lingue minoritarie, che ad una multinazionale del software potrebbe non convenire finanziare. Invece, in un processo dal basso all’alto di questo genere, sono le comunità di utenti stessi che modulano i prodotti sulle esigenze locali.

Bene, risalite in cima alla pagina Binary translation.

Scaricate due file, quello denominato english.xml – uh … – e quello con la bandierina italiana, che qui chiamo con il suo nome italian.xml – ri-uh … Lo potete fare anche da questi due link, fatelo con il tasto destro del mouse e poi selezionate Salva destinazione con nome Save link as.

Aprite questi due file con Notepad++, esplorateli e confrontateli. Ne parleremo la prossima volta.


[1] Scrivete un file con dentro il testo “pippo” con Notepad e salvatelo con il nome pippo.txt. Poi scrivete lo stesso testo “pippo” in un word processor e salvate il file con il nome pippo.doc o pippo.odt o quello che volete, a seconda del word processor che usate. Guardando nella cartella che contiene tali file, confrontate la lunghezza. Io l’ho fatto in questo momento usando Vi (un editore di testo tipico di Unix) e OpenOffice Write: pippo.txt è venuto 6 byte e pippo.odt 8841 byte! Ebbene, in pippo.txt i byte sono 6 perché ci sono i 5 caratteri (un byte per carattere secondo la codifica ASCII) di “pippo” più un carattere finale che rappresenta la fine della riga. Invece il file pippo.odt è venuto 8841 caratteri perché i rimanenti 8835 caratteri servono per descrivere le caratteristiche grafiche del testo, anche se di fatto non le abbiamo usate.

[2] Deriva da un famoso slogan coniato da Richard Stallman, padre dell’idea di software libero ma anche padre di ampi pezzi di codice che compongono il sistema operativo Linux, proprio per questo giustamente chiamato GNU/Linux, dove GNU è il sistema di componenti scritti da Stallman negli anni 80, abbondantemente usati da Linus Torwald per costruire il nocciolo di ciò che oggi è GNU/Linux, nelle sue innumerevoli “salse”, Debian, Ubuntu, Redhat ecc. Lo slogan di Stallman era: Libero come libera espressione e non come birra gratis, intendendo con questo che l’enfasi era sul concetto di libera diffusione dei prodotti dell’ingegno e non di prodotto venduto a costo zero. La precisazione era necessaria perché in inglese la parola “free” vuole dire ambedue le cose: free beer è birra gratis.

[3] General Public Licence, è una licenza inventata da Richard Stallman, che consiste in un documento associato ad un software che regola la distribuzione del medesimo, in armonia con l’idea di libera circolazione dei prodotti dell’ingegno. In pratica la licenza GPL assicura all’utente libertà di utilizzo, copia, modifica e distribuzione. È la più diffusa licenza per il software libero. Mi rendo conto che liquidare questo concetto con una frasetta è paurosamente riduttivo, ma affrontare ora il tema delle licenze “libere” e dei diritti d’autore ci porterebbe troppo fuori strada perché il tema è vastissimo e assai intricato. Proveremo a sollevare la questione più avanti, se ce ne sarà il tempo. Preferisco toccare con mano la questione, intanto.

[Nota per chi non usa Windows] Chi non usa Windows non può evidentemente eseguire un file tipo .exe. Quindi gli utenti di Mac o di Linux NON devono scaricare quel file, bensì possono seguire il resto delle istruzioni, esplorando il sito di Notepad++, scaricare i file english.xml e italian.xml (continuate a leggere il post prima) e poi aprire tali file con un altro editore. Non mancano tuttavia ottimi editori di testo negli altri sistemi, anzi! Per gli utenti di Linux c’è gedit, quasi sicuramente disponibile nel sistema. Gli utenti Mac possono scaricare TextWrangler.

13 pensieri riguardo “Codice Forma Contenuto”

  1. Ok, per consolare coloro che si ritengono utonti, riscrivo daccapo questo commento che ho appena cancellato inavvertitamente 😦

    Rispondo quindi a Claude.

    Sono tutti della stessa famiglia etherpad, piratepad e notepad? o si tratta di una somiglianza superficiale?

    1) Notepad è un editore di testo che gira sul computer dove è stato installato. Non sa assolutamente nulla di rete e di utenti multipli.

    2) Etherpad era un progetto di Google per uno strumento agile da usare in modo collaborativo attraverso la rete. Ad un certo punto lo ha mollato ma ha posto, lodevolmente, il codice sorgente in rete, offrendolo così alla comunità del software libero.

    3) Piratepad è la versione aggiornata e offerta al pubblico dagli hacker (ricordare sempre: gli hacker sono buoni, non sono cattivi …) del partito pirata tedesco. È ancora disponibile, eccolo. L’ho usato abbastanza spesso e mi piace molto.

    4) Ehterpad Lite, come ci spiega Martin, è una versione riscritta in modo più pulito e in modo da facilitare la gestione di un insieme di problemi che uno strumento del genere pone a chi deve mantenerlo e svilupparlo e anche a chi lo gestisce, il cosiddetto amministratore di sistema, lo admin. L’ho provato stasera, delizioso. Ecco il documento che ho linkato nel commento precedente: http://beta.etherpad.org/p/Prova%20di%20etherpad%20lite. Ci potete pasticciare se volete, anzi, fatelo!

    Il sito https://github.com/Pita/etherpad-lite è quello nel quale Martin offre il software per scaricarlo o per svilupparlo ulteriormente. Che vuol dire questo? Per usarlo si può usare subito nel loro server (presumo del partito pirata tedesco), qui: http://beta.etherpad.org/. Perché scaricarlo allora sul proprio computer? Questo ha senso se uno vuole offrire Ethernet Lite da un proprio server, magari per avere un maggiore controllo del sistema e per essere così più sicuro che funzioni per una certa comunità nel web. Quindi ha senso se uno ha un server aperto al pubblico. Volendo si può benissimo scaricare e installare anche su un computer privato, se questo è settato per fungere da server, e la cosa ha senso per uno che vuole sviluppare ulteriormente Etherpad Lite.

    Claude, ho piazzato la presentazione di Martin in Universal Subtitles: http://www.universalsubtitles.org/en/videos/AL7wQtpnjILk/info/, ci ho scaraventato dentro qualche sottotitolo inziale in italiano, probabilmente da riaggiustare, domani se ci riesco continuo. Vorrei condividerlo con la blogoclasse.

  2. Ciao Andreas,

    28c3 (che sarebbe il canale del Chaos Computer Club tedesco) ha appena caricato 28c3 LT Day 3: Etherpad Lite, presentato da Peter Martischka. Sembra proomettente, e nella descrizione c’è un link che rinvia a https://github.com/Pita/etherpad-lite, la pagina del progetto. Solo che non ci capisco granché, purtroppo. Però dalla demo http://beta.etherpad.org/ sembra assomigliare al piratepad che mi avevi fatto vedere.
    Sono tutti della stessa famiglia etherpad, piratepad e notepad? o si tratta di una somiglianza superficiale?

  3. 😀 ci hai detto di esplorare e confrontare i 2 file, e io so soltanto farlo così,cioè come nelle concordanze filologiche a tabella tra versioni di un testo letterario, perché è questa la mia formazione. Non dico: se fossi stata anch’io XMLofona provetta, avrei potuto leggere i due file in diagonale e capire subito le strutture e ciò che fa ogni pezzo di struttura. ma la mia comprensione dell’XML si limita a file brevi brevi (i file SMIL dove vedi la roba che coordinano) o un po’ più lunga, con struttura ripetitiva semplice (gli RSS feed): ed è una comprensione molto relativa: un po’ come capisco lo schwytzertütsch dell’Alto Vallese, sui 20-30%.

  4. Che ci volete fare, Claude è fatta così: ti racconta di avere pasticciato qualcosa e poi ti travolge con un lavoro mostruoso … 🙂

    Quanto a quello che tu chiami il modo casereccio, io non conosco altri modi di imparare. Tutti, i miei lavori che hanno portato qualche risultato, ma proprio tutti, li ho fatti senza conoscere il contesto e i basics. Molto spesso mi è stato detto dopo, come si chiamava accademicamente l’ambito nel quale io avevo ottenuto un risultato nuovo. E mi sono convinto, che spendere troppo tempo nei basics sia semplicemente nocivo, eccetto per compiti e mansioni molto semplici e definite. E del tempo trascorso a scuola, son contento di una sola intuizione: che meno tempo ci passavo meglio era, in generale. Ciò che mi ha fatto riuscire nel lavoro è molto dovuto a questa intuizione. E non sono affatto l’unico a dire una cosa del genere …

    Rileggo. Ok, addolcisco un po’ la pillola: ci sono un paio di circostanze che sono contento di avere vissuto. Il tempo passato al liceo con il professore di scienze, severissimo ma appassionato, e la mostruosa quantità di esercizi fatti a Fisica 1 con un professore severissimo ma appassionato.

  5. La mia esperienza del codice XML è molto più limitata e passiva delle vostre; per ordine cronologico: aggiungere degli item in quello di un podcast con copia-incolla, cercando di ricordarmi di cambiare i dati pertinenti al file audio contenuto (data, titolo ecc); guardare cosa c’è oltre al link alla versione per umani nella versione per macchine di licenze creative commons; leggere i file di metadata degli item di Internet Archive; aprire un file .SMIL di sottotitolazione per capire come funzionava – e idem con il file OPML dei flussi RSS dei blog dei partecipanti a questo percorso qui in cima a destra.
    Perciò il compito di confrontare i file XML inglese e italiano di Notepad++ l’ho fatto in modo molto casareccio e DIY, un po’ come quando avevo copiato uno sciàl all’uncinetto senza aver imparato i “punti” di base.

  6. Sì, Stefano. A suo tempo conobbi, non so più come, il pensiero di Seymour Papert e mi piacque, non sapendo che era il padre di Logo, che avevo già incontrato prima per vie familiari-scolastiche. Quando mi accorsi di questo fu una fantastica convergenza di pensieri. In seguito ho letto tutto quello che ho trovato di Seymour Papert e mi ha fatto una grande impressione. Ne riparleremo in seguito, ma sarebbe bello se tu potessi mostrare come hai usato e come usi ancora Logo con i tuoi ragazzi. A proposito, io me lo ricordo sotto forma di un piccolo eseguibile per DOS su un floppy disk. In che forma lo usate voi ora?

    1. Di versioni di Logo ce ne sono diverse, in italiano la più conosciuta è Superlogo che ora si chiama Iperlogo tutte e due realizzate da Giovanni Lariccia di Roma.
      Ora esiste una nuova versione la winlogo, tradotta anche in italiano, che si può scaricare liberamente da internet.
      A differenza di quello che si crede il Logo non è un linguaggio per bambini ma, come diceva Papert, è talmente potente che può essere utilizzato dai bambini. Io ho lavorato con Giovanni Lariccia più di 20 anni fa e ho realizzato dei micromondi logo che si possono ancora vedere e utilizzare ma che erano progettati per msdos e ora ho paura che abbiano qualche problema di compatibilità con le nuove versioni di Windows. In Italia è stato appunto relegato alla scuola primaria mentre in America viene utilizzato anche all’Università, basta leggere il libro “La geometria della tartaruga” di Abelson-Disessa che riporta esercizi di geometria di alto livello.

  7. Proprio estinto… io con tutti i ragazzi che mi capitano un po’ di logo lo utilizzo. Tra l’altro il logo è un importantissimo strumento per iniziare a fare robotica educativa con i ragazzi utilizzando il LEGO- MINDSTORM. Cosa c’è di meglio che far vedere come si possa controllare un robot virtuale (la tartaruga ) per passare poi ad un robot vero?

  8. È proprio così che si impara a controllare il codice. Sono contento che ci sia qualcuno di voi che abbia già percorso strade del genere. Penso che aiuti a creare maggior fiducia negli altri.

    Ho visto lavorare un giovane con Logo, alla scuola media. Era un ragazzo particolare, ma Logo si rivelò una palestra di pensiero formidabile oltre che un’ottima introduzione al controllo del codice. Anch’io mi sono rammaricato molto dell’estinzione di Logo nella pratica.

  9. Se ho capito bene è quello che ho cercato di fare qualche anno fa con la piattaforma Spaghetti learning, diventata ora Docebo, una suite di Claudio Erba che permette di creare corsi on line ma che contiene anche un CMS per creare siti dinamici. Ho passato un’estate a trdurre le parti fisse per renderla accessibile anche ai bambini della scuola elemantare. Mi sembra che il risultato sia stato buono ma soprattutto è il metodo che preferisco, e che mi serve di più, per imparare in pratica il codice sorgente, in questo caso il PHP. Per fare questo ho utilizzato un editor gratis scaricato da Internet. In realtà era un po’ più di un notepad perchè facilitava l’editazione di file PHP, infatti si chiama phpeditor. Quella di partire da sorgenti già fatti e cercare di modificarli per personalizzarli è un metodo che ho sempre usato fin da quando, ad esempio per imparare il basic, modificavo programmi che trovavo nelle riviste di informatica.
    A margine di questo discorso mi rammarico che l’abitudine di lavorare con i bambini su un linguaggio di programmazione, come il logo, si sia persa a favore dei Son et Lumière tanto di moda con i media di oggi. Anche questo discorso mi piacerebbe riprenderlo con i colleghi del corso.
    Buona domenica (sera) a tutti.

Lascia un commento