Quando gli studenti scoprono i prossimi passi …


È quello che ho appena detto in pochi minuti di chiacchiere, qui ad una conferenza presso la IUL: in realtà io ho una traccia in mente, o meglio, una manciata di argomenti che vorrei tangere in qualche modo, ma non la dico, non la rivelo in un “programma” dichiarato a priori. Uso gli argomenti come delle pedine da giocare, ma non le metto in fila. Le tengo lì, pronte sul tavolo. Poi cerco di far sì che la blogoclasse si muova, più possibile autonomamente. Quando giunge il momento, calo la pedina che mi sembra appropriata. Nei momenti di stanca, mi può capitare di decidere da me quale sia la prossima pedina da giocare, ma di solito è la blogoclasse stessa che me mi dà il pretesto per calarla. Talvolta, può addirittura succedere che siano gli studenti a giocare le pedine che stanno sul mio tavolo! Questi sono i momenti migliori. Ieri ne avete giocate due.

Mvcarelli ieri ha segnalato un video molto famoso, di Michael Wesh, che complementa benissimo i nostri discorsi sul codice. Sono diversi anni che io lo utilizzo, dal 2007 a questa parte. Metto volentieri il link al post di Mvcarelli, invece di udare uno dei miei vecchi link. Nel video si parla anche della codifica XML. La riprenderemo successivamente.

L’altra pedina è stata giocata da Claude a proposito del catalogare e come catalogare. In pratica ha introdotto il tagging. Prendo quindi la pedina che chiamo tagging e la piazzo qui, per ora.


Tre marmellate su uno scaffale: more, prugne e mirtilli. Se non avessi messo delle etichette sui barattoli sarebbe un pasticcio, dovrei andare per tentativi perché sono tutte e tre più o meno blu scuro.

Buona idea quella di mettere le etichette. Continuo a fare marmellate.

Trenta marmellate di cinque tipi su più scaffali, messe tutte alla rinfusa. Dov’è finita quella di rosa canina? Ho fretta … mi arrabbio …

Faccio ordine: raggruppo tutte quelle di more su uno scaffale, poi quella di prugne su un altro e così via. Perfetto, ora non ho più problemi.

continua a leggere …

Non catalogare, organizzare bensì esplorare, scoprire, riconoscere


Oggi, devo andare ad una conferenza e forse poi ne dirò qualcosa. Domani devo andare ad un’altra conferenza e forse poi ne dirò qualcosa. Mercoledì parto per un viaggio che non ho potuto rimandare e tornerò Domenica. Continuerò ad essere reattivo qui ma con qualche ovvio impedimento. Per esempio, salvo inconvenienti, il prossimo incontro online, mercoledì alle 21, sarà condotto da Romina.

Pensando alle vostre reazioni, che ricevo attraverso vari canali e che sono la cosa più importante, trovo una grande varietà, che va dall’entusiasmo allo sconforto. Lo sconforto concerne la sensazione di non acchiappare tutto, il timore di disperdersi: “Devo organizzare, devo catalogare …”.

No no, almeno qui, almeno per questa volta, lasciate perdere, infischiatevene di organizzare e di catalogare. Accedete a questi spazi per “vedere che combinano oggi quei perditempo …” o qualcosa del genere. E invece provate a fare le piccolezze che vi suggeriamo – che a volte appaiono curiosamente difficili. Non scambiate alcuni vostri inevitabili fallimenti per un vostro problema. Come ho scritto in un commento stamani

Tu sapessi quante cose a me non riescono … diciamo che su 10 che ne provo ne azzecco forse 2 alla prima, 5 ce la faccio con un po’ di fatica, 3 proprio non mi riescono, e allora cerco un’escamotage, una via alternativa, e questi iniziali fallimenti si trasformano sempre nelle più feconde occasioni di crescita …

Fate come hanno fatto Gaetano e Claude nei commenti al post precedente, dove si vede che io ieri non ho risolto loro un bel niente!

Allora stamani ho un po’ esplorato, scoprendo che questa faccenda di quale codice HTML sia consentito inserire nei commenti ad un blog WordPress.com è un po’ fumosa.

In primo luogo, pare che l’autore del blog e i commentatori esterni abbiano diritti diversi, come Claude aveva ipotizzato a metà discussione, ma dico questo solo in base al fatto che io ho potuto inserire i titoli e gli altri no.

Inoltre ho trovato che la quantità di tag HTML che si possono inserire nei commenti dipende dal tema adottato nel blog. In questo, sembra, ma non sono sicuro, che possano essere usati i seguenti:

<a href="" title=""> 
<abbr title=""> 
<acronym title=""> 
<b> 
<blockquote cite=""> 
<cite> 
<code> 
<pre> 
<del datetime=""> 
<em> 
<i>
<q cite=""> 
<strike>
<strong> 

Fate delle prove, scrivetemi dei commenti giusto per provare questi tag. Alcuni non li conosco nemmeno io. Cercate voi, provateli qui e spiegateceli a tutti. Provateci tutti. Se trovate che alcuni tag sono stati già descritti, provate con altri. Senza ansia per carità, come in un gioco …

E fate questo anche con qualche blog in blogger, di qualcuno di voi, poi cerchiamo con il contributo di tutti, di mettere un punto fermo su questa faccenda.

Il codice gemmante


Prologo

Questo post continua il filone della paginetta sfrucugnata, che avevamo lasciato nel post del diario della nonna. Vi invito a frugare negli esempi che seguono con la solita tecnica per vedere la sorgente delle pagine html: tasto destro del mouse e Pagina sorgente o HTML, a seconda del tipo di browser.

Anche se ci dilungheremo mostrando alcuni spezzoni di codice, lo scopo non è quello di diventare programmatori. Non fatevi venire l’ansia di voler sapere tutto di HTML, CSS o altro. Noi qui vogliamo familiarizzare ulteriormente con il codice, semplicemente abituarsi a vederlo, senza chiudere l’occhio della mente quando lo sguardo cade su un pezzetto di codice, frammisto al testo. Noi qui vogliamo anche percepire, anzi toccare con mano la caratteristica gemmante del codice, una caratteristica che credo sia propria della lingua, in generale. Sarebbe interessante poter vedere in maniera visiva e dinamica, l’evoluzione dell’insieme delle lingue da diecimila anni a questa parte, contraendo la scala dei tempi a qualche minuto, forse qualcuno l’ha fatto. Assisteremmo a qualcosa di estremamente dinamico, una fantastica proliferazione fiammeggiante di lingue, dialetti e gerghi. Il codice fa parte di questo, credo, solo che evolva appunto in tempi molto più contratti di quelli caratteristici delle lingue parlate.

Il perseguimento di tali obiettivi generali non preclude la possibilità che qualcuno di voi finisca per manipolare effettivamente qualche frammento di codice, in pratica. Qualcuno lo sta già facendo, sulla scorta di esperienze pregresse. Per esempio, avete già visto che con pochi rudimenti di HTML si possono scrivere commenti più ornati ai post dei blog, o anche inserire link attivi. Ma nei vostri stessi blog si possono fare molte altre cose ancora, se si possiede una minima confidenza con il codice, per esempio potete personalizzare ampiamente il loro aspetto grafico, ma non precorriamo i tempi, non abbiamo alcuna fretta. Aggiungo invece che questa agilità che ci proponiamo di acquisire, può tornare molto utile nella vita pratica. Questa blogoclasse è popolata principalmente da insegnanti i quali sono interessati anche, e presumibilmente in modo non trascurabile, all’impiego delle tecnologie nella pratica didattica. Vi sono fra di voi persone che lo stanno già facendo, in maniera anche approfondita. È inevitabile, lavorando con questi strumenti, “sporcarsi le mani”, progressivamente, cambiando oggi una cosa qua, domani una là. Non ci si deve sentire soli, Internet è prodiga di consigli, esperienze, soluzioni, ma non va dimenticata l’eredità di un’esperienza come quella della blogoclasse. Potrà essere molto naturale chiedere ad un ex compagno di blogoclasse un consiglio su un problema che si sospetta lui abbia già affrontato.

C’è poi un aspetto molto interessante. Quando si insegna, si è a contatto con gli studenti, che talvolta possono avere delle competenze o delle capacità incredibili. Ricordo di uno studente che aveva scoperto delle gravi falle in un database di una grande organizzazione, alla quale io appartenevo. Mi disse: “Prof, dica qualcosa a questa gente perché chi ha fatto quel sistema non sa lavorare …”. E non era uno studente di informatica! Queste non sono circostanze da temere, sono colpi di fortuna, che possono essere volti a vantaggio di tutti, insegnante compreso. Io ho imparato molte cose da alcuni miei studenti.

Ultima osservazione, gli esempi qui sotto potrebbero essere svolti in molti altri modi. Il codice si può sempre scrivere in modi differenti, specialmente quando codici diversi si intrecciano in un’unica cosa. Il criterio che ho privilegiato qui è quello della massima semplicità, preferendo i costrutti più semplici e riducendo al massimo il numero di nuovi simboli.

Un testo codificato in HTML

Con tali premesse, partiamo da questa semplicissima pagina. Riporto la sorgente qui sotto per agevolare la lettura del post, anche se potete accedervi direttamente dalla pagina stessa, con il solito metodo. Anzi, vi invito a copiare le sorgenti di questi documenti in file sul vostro disco in modo da provare voi stessi a sperimentare delle varianti, tornando bambini, come si diceva in un commento precedente.

<html>
	<body>
		<h1>Animali</h1>
		<h2>Mammiferi</h2>
		<p>Cane</p>
		<p>Gatto</p>
		<h2>Uccelli</h2>
		<p>Passerotto</p>
		<p>Aquila</p>
	</body>
</html> 

… ornamentato …

Rendiamo ora la pagina più gaia, per esempio colorando un po’ il testo. L’avevate già visto fare nella paginetta sfrucugnata, ecco la versione colorata della nuova pagina. Già che ci siamo, introduciamo un minimo di nomenclatura. I codici HTML, tipo <p> o <h1>, si chiamano elementi o tag. I tag possono avere attributi. Per esempio, nel codice dell’ultimo link che ho scritto

<a href="http://lai.dfc.unifi.it/lab/p2.html">versione colorata della nuova pagina</a>

Abbiamo usato il tag <a> arricchito dall’attributo href al quale abbiamo dato il valore di http://lai.dfc.unifi.it/lab/p2.html. Ricordo, per chi vuole approfondire le meraviglie di HTML, la Scuola W3, che è veramente ottima. Può convenire rifarsi dalla prima pagina, leggendo e sperimentando con gli esercizi proposti, una dopo l’altra, almeno all’inizio.

Ebbene, nella versione colorata della nuova pagina abbiamo arricchito i tag <p>, <h1> e <h2> con l’attributo style, al quale abbiamo assegnato i valori color:red, color:blue e color:green, come si vede nel codice qui sotto:

<html>
	<body>
		<h1 style="color:red">Animali</h1>
		<h2 style="color:green">Mammiferi</h2>
		<p style="color:blue">Cane</p>
		<p style="color:blue">Gatto</p>
		<h2 style="color:green">Uccelli</h2>
		<p style="color:blue">Passerotto</p>
		<p style="color:blue">Aquila</p>
</body>
</html> 

Fin qui non molto di nuovo, rispetto alla paginetta. Siamo contenti di poter colorare il testo e ci rallegriamo di poter fare chissà quante altre cose – basta frugare fra i materiali della Scuola W3. Dobbiamo tuttavia ammettere che fino ad ora è stato facile perché abbiamo lavorato su di un documento molto breve, molto più breve dei documenti che manipoliamo quotidianamente. La prospettiva di editare un testo molto lungo per cambiare il colore di tutti i paragrafi non è molto piacevole. Sì, ci possiamo aiutare con gli automatismi che molti editori forniscono, ma si fa presto a combinare pasticci in un documento lungo e complesso. Ci vorrebbe una magia per poter dire in un colpo solo: “Colorami tutti i paragrafi con l’arancione!” Fortunatamente, questa magia è stata già fatta. Vediamola prima di darle un nome (qui la pagina in rete):

<html>
	<head>
		<style>
			h1{color:red;}
			h2{color:green;}
			p{color:blue;}
		</style>
	</head>
	<body>
		<h1>Animali</h1>	
		<h2>Mammiferi</h2>
		<p>Cane</p>
		<p>Gatto</p>
		<h2>Uccelli</h2>
		<p>Passerotto</p>
		<p>Aquila</p>
	</body>
</html> 

È facile vedere come sia stata attuata la magia invocata. Il testo codificato è stato separato in due parti, una racchiusa fra i tag <head> e </head>, che ho evidenziato mediante lo sfondo grigio, e l’altra fra i tag <body> e </body>. Nella sezione head troviamo tutte le specifiche relative agli ornamenti e nella sezione body troviamo il testo codificato in HTML.

In questo modo, se vogliamo cambiare il colore di tutti i paragrafi del documento, non abbiamo da fare altro che da alterare adeguatamente il codice opportuno nella sezione che descrive le ornamentazioni.

Questo, nel nostro racconto, è il punto nel quale gemma un nuovo codice, quello che si trova fra <head> e </head>. Anzi, occorre essere più precisi, la “buccia” della nuova gemma è costituita dai tag <style> e </style>, evidenziati in giallo, perché la sezione delimitata dal tag <head>, può ospitare anche altre gemme. Accenneremo ad un’altra di queste dopo. Il nuovo codice è appunto nuovo, ha un sintassi diversa anche se si riconosce facilmente la sua origine, dai simboli p, h1, e h2.

Il nuovo codice si chiama CSS (Cascading Style Sheet) e serve a formattare (io ho parlato di “ornare” fin qui) i vari elementi di un testo codificato in HTML (e non solo). La sintassi base di una codifica CSS è molto semplice e si può riassumere così:

selettore {
	una_proprietà:un_valore;
	altra_proprietà:altro_valore;
	eccetera:eccetera
}
altro_selettore {
	eccetera:ecetera;
	}

Anche con il CSS, per chi vuole approfondire c’è la relativa scuola W3.

La gemmazione, nella sostanza è avvenuta, ma può essere perfezionata con un passo ulteriore. È vero che i due codici, HTML e CSS, sono stati completamente separati nell’esempio che abbiamo mostrato, ma continuano a risiedere in uno stesso documento, e come tale anche in uno stesso file. Il passo successivo è breve, eccolo (qui la pagina in rete):

<html>
	<head>
		<link rel="stylesheet" href="p4.css" type="text/css">
	</head>
	<body>
		<h1>Animali</h1>
		<h2>Mammiferi</h2>
		<p>Cane</p>
		<p>Gatto</p>
		<h2>Uccelli</h2>
		<p>Passerotto</p>
		<p>Aquila</p>
	</body>
</html> 

Anche qui c’è un “luogo” per il codice destinato all’ornamentazione, ovvero alla formattazione, ma è stato ridotto ad un mero riferimento, espresso dal tag <link> i cui attributi, ci dicono che il documento è collegato ad un altro che descrive lo stile (stylesheet), che si trova in un file di nome p4.css il quale contiene testo codificato in CSS. Ovviamente, affinché la cosa funzioni, il file p4.css deve esistere, eccolo (qui la pagina in rete):

h1 {color:red;}
h2 {color:green;}
p {color:yellow;}

… dinamizzato …

Senza spingersi troppo in là, può valer la pena di intravedere un’altra gemmazione, che negli ultimi anni ha ampliato molto le potenzialità del Web. Introduciamola questa volta bruscamente, alterando di poco i documenti precedenti:

<html>
	<head>
		<link rel="stylesheet" href="p5.css" type="text/css">
		<script type="text/javascript">
			document.getElementByClass('changeMe').onmouseover.style;
		</script>
	</head>
	<body>
		<h1>Animali</h1>	
		<h2>Mammiferi</h2>
		<p class="ChangeMe">Cane</p>
		<p class="ChangeMe">Gatto</p>
		<h2>Uccelli</h2>
		<p class="ChangeMe">Passerotto</p>
		<p class="ChangeMe">Aquila</p>
	</body>
</html>
h1 {color:red;}
h2 {color:green;}
p.changeMe {color:blue;}
p.changeMe:hover {color:yellow;}

Effettivamente una nuova gemma è spuntata fra i tag <head>;, e la sua “buccia” si chiama <script>. In generale il termine script designa una un insieme di istruzioni, ovvero, se vogliamo, un programma, un frammento di codice da eseguire. Questo è un fatto assai rilevante. Ci stavamo occupando della codifica di un documento ed eventualmente della sua ornamentazione, e ora all’improvviso scopriamo che nel nostro documento è emerso un frammento di codice da eseguire, ma per fare cosa? Provate voi stessi viaggiando con il mouse sulle parole dell’ennesima versione della nostra pagina (e qui la corrispondente pagina CSS in rete).

Visto l’effetto? È così che le pagine web divengono dinamiche. Il codice in questione, nel nostro semplice esempio una sola riga (la riga numero 5), è codice Javascript (qui la scuola W3. Con questo semplice esempio, vi potete rendere conto com’è che, quando caricate nel browser una pagina Web, in realtà non state caricando solo informazioni ma anche funzionalità, e questo ha anche varie altre implicazioni, che forse riprenderemo in qualche discorso successivo.

Andando dove mi portano i feedback …


26 Novembre 11:24, completo questo post che avevo interrotto bruscamente ieri sera in preda al nervoso, per mancanza di tempo e per scarsa affinità con l’editore di articoli, (futuro) punto di forza del tema Annotum di wordpress. Tutto ciò che aggiungo oggi a questo post è scritto in verde.

L’ambiguo

  • Dice Costantino

    Forse un giorno bisognerà parlare un pochino di “fuzzy logic” rispetto alla progettazione funzionale dei tempi passati.

    L’imparare per tentativi presuppone una certezza: non posso fare catastrofi.

    I più maturi si ricordano ancora delle famigerate combinazioni di carattere che cancellavano un intero disco di informazioni.

    Adesso anche il cellulare più economico non procede senza porre domande e senza farti cambiare almeno il dito che deve inviare il comando: in poche parole esiste sempre una possibilità di salvezza.

    Quelli abituati a prodotti non rispettanti la Fuzzy logic [Monica ha proposto un link per fuzzy logic] non hanno questa fiducia e leggono, capendoci ben poco, le istruzioni nell’illusione di evitare disastri.

    I ragazzi invece sanno che non sono possibili; la differenza di approccio è enorme e loro si permettono un apprendimento nel fare che in qualche modo è negato ai padri o nonni.

    Vero. Tuttavia, io credo che la distinzione fra il prima e il dopo non sia così netta. È comune contrapporre nettamente questi due paradigmi:  studiare come funziona e poi usare contro imparare come funziona usando. Credo che questi due paradigmi siano magari preferiti, l’uno o l’altro, da persone di indole diversa, questo sì. Ma se penso all’esperienza di tanti ricercatori che ho conosciuto, e di tante persone creative che ho conosciuto in rete, ma anche  conosciute personalmente nel mondo dell’artigianato per esempio, il secondo paradigma prevale nettamente sul primo. Se dovessi provare a quantificare quanto viene imparato e prodotto con il primo e quanto con il secondo, azzarderei qualcosa come 20% contro 80%. È proprio questo uno dei fatti che volevo mettere in evidenza con il post sul codice mutante, con il quale ho cercato di descrivere un contesto in continuo mutamento “imparato” semplicemente vivendolo. Il post è autobiografico ma solo perché facevo prima a scriverlo. Farò un altro esempio in uno dei prossimi post – se riesco a riprendere il fiato fra i feedback 🙂 Costantino diceva del “fare disastri”. I disastri si fanno, è inevitabile farli quando si prova a fare qualcosa di nuovo. Ricordo di avere fatto tanti terribili disastri e non c’era il tasto undo. Ma l’apprendimento di qualsiasi attività “difficile” comporta uno “sciupo” fatto di disastri. Ciò non significa negare il valore della sistematizzazione delle materie e della riflessione precedente all’azione, bensì riconoscere la necessità di equilibrare i due paradigmi.

  • Scrive Monica

    Insegnare ad avere competenze, significa fornire ai ragazzi tutti i tool in nostro possesso conditi dalle nostre competenze ed esperienze, insegnare come si utilizzano per poi dar modo loro nella vita, di saper trovare le soluzioni ai più svariati problemi.

    Ecco, sì, ma penso che significhi anche fornire i tool di cui noi non siamo in possesso, in primo luogo perché sempre più spesso non possiamo conoscere tutto ciò che potrebbe servire loro, ma anche perché molti di quelli che conosciamo non esisteranno più quando serviranno loro, mentre molti di quelli che loro dovranno usare non esistono ancora.

    Ecco, dobbiamo insegnare ciò che non esiste. Questo significa, non tanto insegnare ad usare qualcosa, quanto insegnare ad imparare ad usare quella cosa, affinché quelle successive le imparino poi da soli.

  • E poi Luca

    Mi piacerebbe veramente imparare a gestire un blog di classe. ne ho aperto uno, presto ne voglio aprire un altro, ma NON CONOSCO le FUNZIONALITA’ e LA NOMENCLATURA. Aristotele direbbe che occorre prima di tutto una buona explicatio terminorum

    Ma Aristotele quando ha affrontato il nuovo non aveva nessun manuale. Il mondo è ridondante rispetto a qualsiasi riduzione in termini e noi siamo animali evoluti per stare in tale mondo. Escogitiamo metodi e artifici per aiutarci a vicenda ma hanno tutti il valore di deboli semplificazioni, rispetto alla realtà. La creatività dei bambini e la loro prodigiosa capacità di apprendimento sono la manifestazione di questa capacità di adattamento al mondo, soverchiamente complesso e mutevole.

Io vedo queste tre osservazioni riunite in un argomento, che potrei chiamare il valore dell’ambiguo. L’ambiguo spaventa, imbarazza e mal si presta alle pianificazioni economiche. Ma poi, guarda un po’ che caso strano, la maggioranza delle pianificazioni di questo mondo falliscono – ricordo di avere letto sull’Economist degli articoli interessanti sul preoccupante rate di fallimento, totale o parziale, dei grandi progetti industriali di Information Technology.  L’ambiguo scacciato dalla porta che rientra dalla finestra … tant’è, forse vale la pena di ingegnarsi a tenersela, una ragionevole quantità di ambiguo. Nella scuola, tutta, fino all’università ma anche oltre, nei tanti desolanti aggiornamenti professionali, l’ambiguo è tabù.

Editori editori editori …

Fecondi gli squarci aperti da Claude, ora esploratrice indomita, ora scolara afflitta … perché non ho osato chiedere … 😀 …

Fortunatamente, prevale molto in Claude la prima natura, e dopo avere dichiarato

Grazie per l’ulteriore spiegazione su WYSIWYG / WYSIWYM, Andreas: veramente, prima credevo che “editore di testo” fosse la traduzione di “word processor”, ma siccome scrivi che sono diversi, ho letto le pagine relative di Wikipedia in italiano e in inglese e mi sembrava di aver capito.

… se ne va in esplorazione e torna rovesciando sul tavolo il suo sacco:

Però poi ho seguito il link verso Annotum in More spring cleaning out of season, dove Google dà l’ottima notizia della fine dei knol, ma dice che gli autori potranno trasferire i propri knol in blog WordPress con template Annotum, appunto.

Niente da temere: le release notes di Annotum su come impostarvi le collaborazioni sono abbastanza complesse da scoraggiare la maggior parte di coloro che hanno mandato il progetto knol – di per sé interessante – in vacca, copiandovi pari pari testi altrui o scrivendo altre scemenze (saranno una minoranza, però purtroppo parecchio knolifica).

Tornando a bomba: in queste note appare un ulteriore acronimo: “WYSIWYAATD (What-you-see-is-what-you-are-allowed-to-do)”. In un certo senso, è quel che già accade con blog collaborativi dove ci sono ruoli gerarchici, certo: non tutti vi possono fare le stesse cose. Però vederlo nominato ed addirittura acronimato fa impressione lo stesso. Cioè: che razza di editor / processor avranno a disposizione i vari ranghi? A poter fare ciò che intendono saranno soltanto i ranghi superiori?

Claude enfant terrible … allora, procediamo in disordine …

  • Questione editore di testo <—> word processor
    Gli editori di testo veri elaborano solo caratteri ASCII. Punto.  I caratteri ASCII sono descritti da un byte ciascuno. Un byte è fatto di 8 bit e quindi ci si possono rappresentare 2 alla 8 cose= 256 cose, in questo caso 256 caratteri. ASCII vero e proprio, siccome se l’erano fatto gli americani usava solo 7 bit (128 possibili caratteri) ma a loro andava bene perché l’inglese non ha caratteri accentati. Con ASCII esteso,  si usa anche l’ultimo bit, per poter rappresentare anche molti caratteri accentati. Poiché questo non basta neanche lontanamente per la maggior parte delle lingue del mondo, è nato UNICODE, che usa vari byte per carattere, ma per il momento ci fermiamo qui, altrimenti divaghiamo troppo.
    Ora, se vogliamo che un carattere venga rappresentato in grassetto, con i soli caratteri ASCII non si può fare, non c’è posto per contenere questa informazione aggiuntiva. Infatti, con gli editori di testo puri, i caratteri si rappresentano e basta, senza nessun ornamento. I Word processor sono specializzati nel permettere la realizzazione degli ornamenti, insieme a tante altre cose, e la loro rappresentazione. 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.
    Quando si deve editare un documento scritto con una qualche codifica di markup, tipo HTML, gli editori di testo sono ottimi perché tutto il codice HTML che si usa appunto per ornare, e non solo, il testo sono tutti rappresentabili in ASCII. Esistono anche word processor, per così dire, finalizzati alla scrittura di documenti HTML, ma come ci ha ricordato Gaetano, possono produrre “codice molto sporco”.  Facilitano per certi versi il lavoro, ma per fare questo prendono molte decisioni per conto loro e se le nostre esigenze salgono, tali decisioni possono non piacerci più molto. Invece con un editore di testo e HTML (o LaTeX tanto per fare un altro esempio) si è padroni totali della propria opera!
  • Questione Annotum, WordPress.org, WordPress.com. Come molti di voi sanno, in sistemi come WordPress o Blogger si può scegliere un tema che rappresenta il layout grafico del blog. Per esempio, se andate in fondo a questa pagina vedete che io ho usato il tema Sandbox 1.6.2, un tema di WordPress fatto apposta per essere modificato facilmente. Annotum è appunto un altro tema che si può scegliere in WordPress ed è concepito per generare, oltre ai post tradizionali, veri e propri articoli strutturati secondo i canoni principali degli articoli accademici.
    Qui tuttavia bisogna distinguere fra WordPress.com e WordPress.org. WordPress.com è un servizio web che si può usare per creare un blog, come ho fatto io e alcuni di voi. WordPress.org è invece un software, distribuito secondo il modello open source, che si può installare su un server gestito in proprio. Sono ambedue prodotti dalla stessa azienda e infatti  blog pubblicati con i due sistemi sono molto simili. Con wordpress.org si è molto più liberi di modificare tutti gli aspetti del blog ma ci si deve sobbarcare la fatica di gestirlo e anche la soluzione di eventuali problemi. Con WordPress.com ci sono dei vincoli – magari ne parleremo – ma si deve solo pensare a scrivere. Le release notes citate da Claude si riferiscono alla versione del tema Annotum da inserire in un proprio blog in WordPress.org, e rispecchiano appunto il fatto che fare da se è più oneroso. Invece, il tema Annotum si può anche selezionare per un proprio blog in Worpress.com, come ho fatto stasera perché non ho resistito alla tentazione di provare. Ho quindi creato il blog, anzi ho rinomato uno vecchio con il nome “provare provare provare” e ci ho scritto un articolo per fare qualche esperimento di editing. Alcune osservazioni:
  • L’espressione WYSIWYAATD (What-you-see-is-what-you-are-allowed-to-do) significa che l’editore cambia – insomma, un pochino eh … – i comandi possibili che ti offre in funzione della sezione che stai editando, non che siano previsti diversi livelli di autori-editori.
  • È carino da usare, ma avendo molta esperienza di editing di articoli del genere, già intravedo limiti … e ogni tanto va in crash, basta salvare spesso comunque. Eh no, non è sufficiente salvare spesso. Bisogna anche capire come funziona,e senza poter vedere il codice, che mi pare la peggior limitazione, per ora di questo editor.
  • Divertente inserire le voci bibliografiche: se sono citate in PubMed (motore di ricerca di riferimento per la letteratura biomedica e dintorni), basta inserire il codice PubMed dell’articolo e zac, tutto viene messo al suo posto. Inoltre genera automaticamente i link alla sezione “References”.
  • Si possono introdurre formule e, udite udite, queste si devono editare in LaTeX! Fantastico … peccato che l’editore sia estremamente farraginoso e instabile … mi spazientisco e mostrerò domani, forse, il risultato … Stamani, a mente fredda ho recuperato i misfatti causati dall’editor, imbizzarrito dai miei frenetici click. Sì ma cose troppo lunghe e complesse non si possono fare, per ora, forse in futuro, se lo migliorano …
  • Come si vede nell’intestazione dell’articolo, si può stampare, e quindi esportare in pdf. Viene prodotto così un documento abbastanza affine ai formati classici delle pubblicazioni accademiche.
  • Sempre nella medesima intestazione, si trova il link per esportare l’articolo in formato XML, che ci servirà in seguito.

Ancora una volta, il feedback dalla blogoclasse offre ottimi spunti per i prossimi passi …

Qualche feedback dalla rete strappata …


  • 13:47 – Anche oggi, la rete dell’università di Firenze è giù, quindi niente iscrizioni e niente file OPML

  • 15:18 – La rete è resuscitata …


Ed io mi trovo in aula informatica, a disposizione degli studenti per verbali e colloqui, fra le 10 e le 15. Nel frattempo tento di contribuire alla blogoclasse. Se non fosse per la mia “chiavetta”, anzi “saponetta” perché è ormai di vecchio tipo, sarei isolato da tutto ciò che sta fuori da unifi.it. E se non avessi predisposto la replicazione del database su questo portatile, non potrei nemmeno controllare i voti degli studenti che vengono a discutere. La solita vita da italiani che si arrangiano, vivono di espedienti, in pratica clandestini a casa propria …

Vediamo di affastellare qualche feedback, malgrado distrazioni e depressione. Vado in disordine.

  • Ieri c’è stata la prima riunione online “ufficiale” – ce n’erano state un paio prima, non previste ma che hanno svolto la stessa funzione. Qualcuno ha lamentato problemi di accesso, che paiono essere stati di due tipi: difficoltà a trovare il link e difficoltà di fruizione dell’audio. Il primo problema non l’ho capito, considerato che nel penultimo post c’era il link scritto grosso così:

    stasera alle ore 21:00 riunione in aula virtuale

    Se seguite tale link ora, trovate la registrazione delle sessione, che è priva di disturbi.

    Per il secondo, ha risposto compiutamente Costantino nel suo commento di stamani. Grazie Costantino per avere aderito così prontamente alla mia richiesta. Inoltre riporto qui i consigli iniziali che Romina ci aveva dato

    Vi invitiamo ad iscrivervi su questo sistema di classi virtuali dove potrete
    trovare anche molti spunti per la vostra professione:

    http://www.wiziq.com/

    una volta effettuata la registrazione (gratuita) dovrete  testare le vostre
    dotazioni hardware: sono indispensabili cuffie e microfono.

    Per quanto riguarda il vostro browser (explorer, firefox, chrome ecc…)
    provvedete ai necessari aggiornamenti seguendo le indicazioni  che trovate in
    questo URI

    http://www.wiziq.com/info/technicalinfo.aspx

    Per ogni problema ricordatevi che mi potete contattare in qualsiasi momento vi
    sia la necessità di farlo.

    Romina

    Poi, qui ci sono dei tutorial su questi tipi di problematiche. Sono in inglese, e in questo momento, continuamente interrotto, non posso far di più che mettere il link.

    Direi comunque, considerato che …

    • in passato abbiamo fatto circa una trentina di queste riunioni e nel complesso sono andate bene
    • il vantaggio della completa apertura al resto del mondo sia percepito e condiviso da molti
    • si possono facilmente inglobare video Youtube, che può essere utile
    • in ogni caso, ingegnarsi a far funzionare bene, ognuno dalla sua parte, uno strumento molto popolare nel mondo, possa essere un migliore “esercizio di editing multimediale”, piuttosto che cercare subito un altro ambiente che dia meno problemi tout court, ammesso che ce ne sia uno

    … valga la pena di insistere.

  • C’è stata una domanda, ora non ricordo chi l’ha fatta, che mi ha stupito e che forse ho capito male. Più o meno: “Ma i blog sono chiusi o sono accessibili dall’esterno?” Se ho capito bene la domanda, rispondo riportando qui il seguente brano del post di inizio:

    No, un’altra cosa. Occorre che ognuno usi un quaderno, ma deve essere un quaderno magico, visibile a tutti gli altri. Il (per)corso non è infatti solo un percorso individuale, dove ognuno procede a testa bassa per i fatti suoi. Pensatelo come un viaggio nel quale si alternano momenti di riflessione individuale a momenti di confronto e di cooperazione. È così che successivamente può materializzarsi la “blogoclasse”.

    Qualcuno di voi forse avrà già un blog, oppure l’avrà avuto. Altri invece saranno intimoriti dall’idea e vorrebbero delle istruzioni precise. È veramente molto facile aprire un blog, non occorrono istruzioni, anzi, andare un po’ per tentativi fa bene, si finisce col guadagnare in autonomia. Avete presente i ragazzi che imparano a usare qualche nuova diavoleria senza leggere il libretto delle istruzioni? Ebbene, imitateli un po’ e vi ritroverete presto nativi digitali. Ok, imitateli, sì ma senza esagerare!

  • Lo sconforto per l’invasione degli acronimi. Ci sono stime secondo le quali ogni due anni la quantità di nuova informazione prodotta raddoppia. In qualunque campo, uno dei maggiori problemi dei rispettivi operatori del settore, è quello di venire a capo di una quantità di informazione e di conoscenza che cresce a ritmo esplosivo. I medici annaspano nella loro sterminata letteratura scientifica, arrampicandosi su per i meta studi, vale a dire studi che sintetizzano i risultati di gruppi di altri studi. Lo stesso succede nel settore delle ricerche nel campo della formazione; interessante in questo caso quanto poco tracimi nella pratica, Gianni Marconato ha scritto un post interessante in proposito. I fisici sperimentali non riescono più a capire cosa vogliono sperimentare i fisici teorici. Del resto, non c’è nemmeno bisogno di andare così lontano. Il vocabolo serendipità, che ora è sulla bocca di tutti, nel Dizionario Etimologico Italiano di Carlo Battisti e Giovanni Alessio (Firenze, Barbera, 1950-57) non esisteva nemmeno. Ancora più vicino: chi ha sentito parlare dello spread anche solo pochi anni fa? Ora sembra che non sapere cosa sia lo spread voglia dire essere fuori dal mondo. E si tratta sicuramente di un concetto evanescente, almeno nel preciso senso che gli viene oggi attribuito, di differenziale rispetto ai bond tedeschi. Ieri i bond tedeschi, per la prima volta, non li ha voluti quasi nessuno …

    È chiaro che, a fronte di una continua generazione di nuova informazione, più o meno volatile, sorga il problema di dare un nome ad una massa di cose nuove, che magari verranno presto dimenticate, ma intanto ci sono. Da qui anche la proliferazione degli acronimi. Non c’è molto da fare, se non imparare a digerirli in una memoria più o meno a breve termine, come si fa con il numero di telefono che usi una volta e poi subito dimentichi. Da qui l’importanza di disporre di strumenti, sempre più “leggeri” e agevoli, per supplire prontamente a questa impossibile richiesta di memoria.

  • Scrive Claude:
    Che bello il concetto WYSIWYM. Ma non è anche presente negli stili degli editori di testo normali? Uso soltanto gli stili di paragrafo in Writer di OpenOffice (salvo se devo mettere il titolo di un libro in corsivo), e mi pare che si possa anche fare con MS Word.
    Sì, ovviamente, con i sistemi WYSIWYG (What You See Is What You Get: ciò che vedi è quello che ottieni) si fa molto, ci mancherebbe, sono fatti apposta. Tuttavia, si può fare molto per un insieme di esigenze di editing che sono nel mainstream della richiesta del mercato. Se si chiede di più, iniziano ad essere piuttosto scomodi, se si chiede molto di più diventano insopportabilmente scomodi. E diventano scomodi anche se si chiede notevolmente meno: uno dei problemi dei word processor che vanno per la maggiore è quello di offire un insieme esagerato di funzionalità, che per taluni utenti e talune esigenze rischiano di divenire una zavorra, per esempio quando basta un semplice editore di testo, Notepad (Windows) o Textedit (Mac) o Gedit (Linux) – hanno tutti chiara la distinizione fra word processor e editore di testo, per inciso? Sennò si dicono due parole. E in ogni caso ci sono una moltitudine di wordprocessor leggeri. Ma per tornare all’altro estremo, quello delle esigenze superiori, il caso tipico è quello delle scritture tecniche, ricche di figure, tabelle, formule, magari dove sono richieste impaginazioni complesse, tipo in doppia colonna con titolo iniziale e abstract a tutta pagina, con lunghe bibliografie, che magari devi in buona parte riciclare su riviste diverse che seguono convenzioni tipografiche e bibliografiche diverse. Oppure la stesura di un libro con una articolata strutturazione in capitoli, sottocapitoli di vari livelli e riferimenti bibliografici. Per esempio, per quanto riguarda le formule, ricordo che in MS Word c’era un tool che si chiamava Equation Editor. Alle prime prove sembrava anche bellino ma bastava che le cose si complicassero di poco perché si trasformasse in un nemico dispettoso. Le formule matematiche, affinché appaiano in maniera adeguatamente chiara in forma stampata, richiedono un’elevatissima qualità tipografica e devono consentire di realizzare una sterminata quantità di combinazioni di simboli complessi, corsivi di vari tipi, grassetti, lettera puntate, magari in modo doppio o triplo, doppi o triplo, con combinazioni di diverse sorte di accenti, indici superiori e inferiori, talvolta multipli, dimensioni finemente variabili dei simboli così composti, in funzione della posizione della formula e via dicendo. Ecco, in casi del genere un sistema come LaTeX è insuperabile perché non ti puoi fidare di quella che è una “promessa”: WYSIWYG (ciò che vedi è quello che otterrai …) ma accetti solo il risultato a posteriori: WYSIWYM (Quello che vedi è quello che intendevi per davvero …). Claude, non ho poi dimenticato la domanda su <i> <—> <em> <b> <—> <strong> ci arrivo …

Il codice mutante


Il blocco della rete dell’Università di Firenze (!) mi impedisce di accedere al server dove si trovano i balocchi della blogoclasse. Forse facevo meglio a pagare un server esterno? Magari americano?

Sta di fatto che ora non posso piazzarci niente di nuovo: aspettando, la mente vaga. Maria Grazia ha aperto la soffitta dei ricordi e, si sa, guardando una cosa se ne vede un’altra. Il codice per l’appunto. E m’è venuto fatto di ripensare a tutte le mutazioni di codice per le quali sono passato in tutti questi anni, quale semplice operatore del settore. E allora poi mi sono rammentato di ciò che avevo scritto l’altro giorno:

Espressioni come quella di Marvi (credo)

Prof ci sono riuscita anch’io con la combinazione dei tasti ctrl+u. Quante cose che si ignorano…,

di Gaetano Non sono mai riuscito a imparare a memoria il linguaggio HTML, e credo che non ci riuscirò mai, ma riesco in buona parte a riconoscerlo, capirlo e ad intervenire per apportare delle piccole modifiche

o di Stefano Non ho imparato bene l’html, riuscivo solo a modificare il codice generato da Fronte Page

mi stuzzicano: cosa vuol dire saper fare qualcosa? Cosa vuol dire essere produttivi in un mondo nel quale strumenti e informazioni proliferano a ritmo esponenziale? Che vuol dire oggi essere “preparati”? Quasi quasi ci torniamo domani …

Io nel codice sono inciampato a 22 anni, mi pare. A fisica di computer non ci aveva parlato nessuno, anche se ormai era già entrato di prepotenza nella ricerca, e internet era già fiorente presso gli ambienti accademici scientifici. Ma avevo scoperto che a matematica qualunque studente poteva esercitarsi in una molto faticosa tenzone con quelle misteriose, affascinanti, grandi macchine. Ecco una di quelle schede ...Scoprii che chiunque poteva sedersi ad una di quelle grosse macchine da scrivere che con frastuono meccanografico sputavano una scheda perforata per ogni riga di codice battuta. Poi il pacco di schede stampate si consegnava all’apposito servizio e il giorno dopo si andava a prendere lo stampato con i risultati, 9 volte su dieci sbagliati per i troppi errori. Fu una grande scuola che mi appassionò e per la quale credo di avere trascurato un esame o due, facendo anche arrabbiare molto un prof potente che me la fece pagare, a suo modo. Ma non mi pento di avere pagato quel prezzo, so di averci guadagnato.

Fu così che conobbi il Fortran, linguaggio nato per il calcolo scientifico, pur essendo grosso modo mio coetaneo, ancora oggi è molto usato, primariamente nel calcolo ad elevate prestazioni sui supercomputer. Infatti successivamente, negli anni 90, lo utilizzai su di un super computer Cray T3E del Cineca, macchine usate per esempio per i calcoli che servono alle previsioni metereologiche.

Il Fortran mi servì già per la tesi. In nessun esame del corso di laurea in fisica ci avevano parlato di computer, ma già nella tesi mi resi conto che sarebbe stato il mio principale strumento di lavoro! Imparai quindi a parlare alle macchine per laurearmi, a furia di tentativi ed errori, consultando alcuni manuali che avevo scovato in un armadio della medicina nucleare di Firenze.

Non avrei mai immaginato di passare la vita saltando da un linguaggio a un altro, nessuno lo avrebbe immaginato a quei tempi. Provo a fare un lista di quelli con i quali ho prodotto lavori di una certa consistenza, alcuni dei quali mi sono valsi proposte di lavoro. Saltate la lista se vi annoiate, al fine del post può essere sufficiente giusto percepirne la varietà. Tendenzialmente ho messo i link alle voci inglesi di Wikipedia. Per avere le versioni italiane, se esistenti, non avete che da cliccare, in ciascuna pagina Wikipedia, su Italiano fra le lingue nella colonna di sinistra.

  • Il Fortran appunto.
  • L’assembly,  linguaggio strettamente imparentato con il tipo di computer che si usa. Si dice di basso livello, come se per chiedere ad uno studente di venire alla cattedra, si dicesse: “Alzati, gira su te stesso di 90 gradi a sinistra, fai un passo, gira su te stesso di 90 gradi a destra, fai 10 passi, ecc. Ne ho usati di due tipi, uno per computer veri e propri e uno per schede di calcolo superveloci da infilare in altri computer.
  •  Il linguaggio macchina. Peggio dell’assembly. In pratica la stessa cosa ma dove le istruzioni sono espresse proprio in 0 e 1, quelle che capisce la CPU del computer. Capita di dover lavorare con questi oggetti quando si deve decifrare quello che un software fa, conoscendo solo i numeri binari che esprimono le istruzioni. Io potevo fare questo guardando il display fatto di 16 lucine rosse, che rappresentavano, ad ogni istante, quello che faceva il computer, ad ogni istante (era proprio questo, in alto a destra si vedono 3 lucine e posso dire che sta eseguendo l’istruzione 1001001000000000, che non so più cosa significhi 😀 ).
  • Il C. Nato negli anni 70, è diventato il più diffuso linguaggio, utilizzato moltissimo per costruire i sistemi operativi. Il fenomeno del software open source, tipo Linux e tutto il resto, galleggia sul C.
  • Un misto dei precedenti: per certe applicazioni era necessario mescolare Fortran, C e assembly.
  • Matlab, inizialmente per risolvere problemi di algebra lineare, oggi è diffusissimo nel mondo matematico ma anche ingegneristico per fare tutto ciò che richiede calcolo numerico. Al contrario dell’assembly è di alto livello, una semplice istruzione come a=b/c può inglobare una quantità di matematica che sta in un libro intero.
  • Interactive Data Language, anche questo un linguaggio matematico di alto livello orientato alla manipolazione delle immagini, piace molto agli astronomi ma anche a chi fa imaging medico.
  • Bash Unix Shell, è un linguaggio con il quale, mettendo insieme comandi del sistema operativo Unix, quindi anche Linux, si costruiscono veri e propri programmi. Uno dei vantaggi del sistema operativo Linux è che in questo modo ci si può fare praticamente tutto quello che si vuole.
  • Ruby. Un linguaggio tuttofare messo in circolazione a metà degli anni 90 da un trentenne giapponese, Yukihiro “Matz” Matsumoto. Con questo linguaggio avevo incollato i vari servizi web (Google Docs, Google Reader, Dropbox …) per la gestione delle blogoclassi degli anni precedenti.
  • L’ambiente R è qualcosa di simile a Matlab ma orientato alle elaborazioni statistiche. Ci ho costruito i sociogrammi nelle blogoclassi dell’anno scorso.
  • Il LaTeX non  è un linguaggio bensì un codice di marcatura, proprio come l’HTML, solo che serve per la preparazione di documenti – PDF ma non solo – di qualità tipografica professionale. È lo standard de facto per la scrittura di documenti scientifici, ma ha anche schemi per scrivere poesie – qui un piccolo esempio. Come filosofia è l’opposto dei word processor più noti, di tipo WYSIWYG (What You See Is What You Get), e si descrive con la formuletta WYSIWYM (What You See Is What You Mean), proprio per il fatto che se necessario si può arrivare a controllare ogni particolare del proprio documento. Se conoscete uno studente di matematica o fisica è molto probabile che preferisca di gran lunga LaTeX a Word.
  • HTML
  • CSS. Serve a controllare gli stili nei documenti HTML ed altri ancora. Vedremo qualcosa.
  • Javascript. Serve a rendere dinamica una pagina HTML. Si tratta di pezzetti di codice appesi al documento HTML che quando vengono caricati dal browser conferiscono funzionalità varie alla pagina. Vedremo qualcosa, forse.
  • MySQL. Sistema di gestione di database basato sul cosiddetto Structured Query Language. I dati della blogoclasse sono conservati e gestiti in un database MySQL, che risiede in un server, quello a cui stasera non si accede, appunto.
  • PHP. Ci si scrive il software che, sul server, consente di controllare il database MySQL (o anche di altro tipo, ce ne sono altri) e di comunicare con il computer richiedente. Ricapitolando un attimo, quando voi vi iscrivete alla blogoclasse, per esempio, e inviate la vostra scheda di iscrizione, succedono, semplificando, le seguenti cose:
    • voi introducete i vostri dati e molte delle vostre azioni sono immediatamente processate, nel vostro computer, da pezzetti di codice scritti in Javascript, per esempio per dire: “Hai scritto un indirizzo di email non valido!”
    • quando avete riempito la scheda, il vostro browser, mettiamo Firefox, spedisce la richiesta con i dati che avete introdotto al server (che stasera non è raggiungibile …)
    • qui un modulo scritto in PHP, utilizzando dei comandi SQL, accede al database MySQL per introdurre i nuovi dati e magari estrarne di altri, poi spedisce eventuali risultati, al minimo una notifica del successo dell’operazione, rinfrescando la pagina che state vedendo sul browser.
  • Ajax. È un insieme di funzioni scritte in Javascript che serve a rendere più fluide, in particolare asincrone le comunicazioni fra client, la macchina dove voi navigate con il vostro browser, e server, la macchina dove risiede il database. In pratica può servire a far sì che, per esempio, quando riempite un lungo modulo e il browser o altro collassa a metà del lavoro, voi non perdiate i dati già introdotti, che così ritroverete quando ripartirete. Questo succede perché con Ajax i dati vengono inviati al server via via e non alla fine quando cliccate Invio, o qualcosa del genere.
  • jQuery. Un insieme di funzioni che semplifica molto la scrittura dei programmi in Javascript. Utilizza un modo molto intelligente di individuare gli elementi HTML presenti nella pagina, per lavorarci. L’ha inventato nel 2006 un giovanotto che si chiama John Resig, ora ventisettenne, già una star del software. Le funzioni jQuery sono usate già nel 50% dei siti più importanti del mondo. Vale a dire, che la metà delle volte che fate click siete serviti da un web server dove c’è dentro un prodotto messo in circolazione cinque anni fa da un ragazzo di 23 anni …
  • Le espressioni regolari. Non è di per se un linguaggio autosufficiente, ma un insieme di regole che consentono di cercare in un testo qualsiasi insieme di caratteri e di farci qualsiasi manipolazione. In pratica è integrato in quasi tutti gli altri linguaggi, e in ognuno di questi in un particolare dialetto! Quindi quando si usano in un comando Unix, o in un istruzione PHP o in un istruzione Javascript – tutte cose molto frequenti – le espressioni regolari cambiano un pochino. Se uno non le conosce un po’,  sembrano un rompicapo assurdo. Per esempio questo può essere un modo per “frugare” dentro a un indirizzo internet:  /^(http:\/\/)?([^\.\/]+)\./ Perché si usano? Perché consentono di risolvere in maniera estremamente concisa complessi problemi di ricerca e manipolazione di testo.

Per inciso, eccetto Matlab e IDL, tutta questa roba è open source: si scarica dalla rete. Documentazione, innumerevoli tutorial e discussioni su tutti i problemi possibili immaginabili sono tutti liberamente accessibili in rete.

Credo che ce ne sia abbastanza per avere un’idea della vitalità e della ricchezza della lingua con la quale si parla alle macchine, cioè del codice. Ma c’è un altro aspetto, più importante, che voglio mettere in luce.

Non immaginerete mica che io sappia tutta questa roba a memoria? A casa mia non ci crederebbe nessuno … Ho una pessima memoria o meglio, ho una memoria spiccatamente affettiva, emozionale (ma forse molti altri …). Vale a dire che mi ricordo se mi emoziono. È raro emozionarsi leggendo un manuale software, eccetto forse in qualche introduzione, dove si scoprono delle nuove idee interessanti. Il resto è mortalmente noioso. Infatti, non leggo mai i manuali ma prendo qualche esempio in rete, lo osservo, provo a farlo rifunzionare cambiando qualcosa,  inizio a fare i cambiamenti che mi interessano, poi costruisco su su, dando un’occhiata ai manuali solo quando serve, piazzando i codici di errore in Google per trovare subito chi e come ha risolto il problema, nove volte su dieci si trova subito. E tutti quelli che scrivono software fanno così.

Ma a pensarci bene, anche il lavoro scientifico in laboratorio, al di là della parte informatica, è così. Anche il lavoro del matematico silenziosamente seduto al suo tavolo, coperto di fogli pieni di formule – computer acceso perché oggi mezza matematica è fatta di software. Questa è tutta gente che con un occhio deve guardare al problema che ha in mano e con l’altro a quello che sta accadendo nel resto del mondo, perché un altro potrebbe avere trovato ieri una soluzione migliore di quella alla quale stai giusto per arrivare oggi, oppure perché qualcuno ha scoperto un marchingegno che ti può far fare cinque passi avanti gratis come nel gioco dell’oca.

Ma a pensarci bene, anche quando parlo con il mio amico elettricista, o il mio amico idraulico, ho la stessa sensazione. Stai finendo di montare il tuo impianto solare, anzi, sei a 2/3 del lavoro ed ecco che compare un nuovo tipo di pannello solare, che ti cambierebbe molto le cose, e devi imparare cosa cambia e come …

Che vuol dire quindi oggi “possedere le competenze”?

Che vuol dire oggi insegnare ad “avere le competenze”?

meno male … c’è chi riannoda i fili per me …


Miracoli del cyberspazio. E la cosa più interessante è che, mentre per i più questo evoca le idee di volatilità e di dinamiche eccessivamente mutevoli, se invece si persevera con costanza e attenzione a coltivare un campicello interessante, profondendovi energie nelle sue primavere e lasciandolo riposare nei suoi inverni, una stagione dopo l’altra, ecco apparire come per incanto frutti di piante seminate in tempi remoti. Faccio quasi fatica a rammentare le tracce rispolverate da Maria Grazia. Su alcune c’è la mia firma. Non le riconosco, ma sono d’accordo! E quel bel video che ha fatto Maria Grazia … anche di quello m’ero scordato! Grazie e benvenuta anche a te, anzi, bentornata 🙂 Ho collegato il video alla classe di stasera, così lo commento un po’. A proposito:

stasera alle ore 21:00 riunione in aula virtuale

Comunità di pratica – incontro online


9:55 Aggiornamenti lampo in rosso

Una giornata densa mi impone di anticipare subito qualcosa perché non so se riuscirò poi ad aggiungere altro. Quindi prima un osservazione che non voglio smarrire e poi una nota sull’aula virtuale.

La comparsa di contributi come quello di Costantino, e altri del genere, rappresentano un importante valore aggiunto della blogoclasse aperta. Si parla molto un po’ in tutti i settori, di aggiornamento professionale e lifelong learning. Ho avuto modo di osservare, in vari campi, che molto aggiornamento professionale fornisce spesso risultati sub-ottimali. Sono persuaso che la miglior formazione continuativa sia quella che deriva dallo scambio reciproco delle esperienze e dalla cooperazione. Qualche tempo fa trovai una conferma di questo in un articolo dell’Economist sul tema della scuola. Scrissi un post su questo, prendendo spunto da un dibattito sulla LIM che ebbe luogo in rete circa un anno fa. Il punto che mi interessa mettere in evidenza qui, si trova nella conclusione dell’articolo dell’Economist, da me goffamente tradotto:

Laddove i sistemi scolastici raggiungono l’eccellenza [cioè dei paesi più avanzati], si scopre che la parola chiave è “decentralizzazione”. In questi sistemi la dirigenza lascia un elevato grado di autonomia agli insegnanti – la maggior parte dei quali sono molto motivati e godono di alti livelli di preparazione  – favorendo lo scambio di idee in modo che essi possano apprendere gli uni dagli altri per adottare le pratiche migliori [grassetto mio].  In conclusione, quando si tratta di raggiungere i massimi livelli, sono gli insegnanti che sanno come fare.

Il blog di blog segnalato da Costantino è interessante anche al margine della discussione del valore del blog-diario che ho visto dipanarsi qua e là. È un ottimo esempio di blog pensato come strumento di lavoro …

Veniamo ora all’aula virtuale. Mi accorgo solo ora che in wiziq alcuni di voi si aggirano in cerca di aule di cui scoprono le tracce e  che io ho aperto per fare degli esperimenti. Mi scuso con gli encomiabili esploratori 🙂

Ieri ho prenotato un’altra aula per le 19:30 di oggi, la dovreste poter raggiungere qui, per chi vuole provare e magari fare due chiacchere. La descrizione della classe che trovate nel suddetto link è demenziale ma deriva dal fatto che esigevano 250 caratteri e io avevo fretta …

Tuttavia, dopo averla prenotata, ho saputo di dover sostituire un’altra persona nella gestione di una discussione successiva alla proiezione di un film, per gli studenti di medicina, oggi pomeriggio alle 14:30. Questa cosa dovrebbe finire alle 17:30 ed io dovrei farcela ad essere di ritorno nel mio studio per le 19:30, ma non ho la certezza. Quindi, se l’aula fosse deserta, sapete perché …

La neomacchina e il codice


Leggo dal Webster’s Ninth New Collegiate Dictionary:

code: a system of signals or symbols for communication. Ovvero, codice: un sistema di segnali e simboli per la comunicazione, in generale.

Per esempio, il numero di telefono è un codice, inserito nel contesto giusto e nel modo giusto dà vita a un contatto telefonico, mentre se lo vediamo scritto su un muro è solo un numero. Potrebbe anche non sembrarci un numero di telefono, se per esempio fosse scritto in maniera un po’ scompaginata. L’IBAN è un codice, un indirizzo email è un codice. I codici funzionano se vengono inseriti nel contesto giusto e nel modo giusto. Noi usiamo codici per dare istruzioni alle macchine che popolano la nostra vita. Un numero di telefono consente di dare luogo ad una precisa sequenza di accadimenti in una rete telefonica. Il numerino stampato su un biglietto di un parcheggio (caro) di Firenze Parcheggi può essere digitato su di una tastiera che consente di accedere alla toilette (sporca) del parcheggio.

Anche Internet è una macchina, una macchina complicatissima sparpagliata per tutto il pianeta, composta da un gran numero di macchine diverse, computer, telefoni, tablet e tanti altri tipi e ibridi possibili immaginabili. Forse molto presto, oppure già ora, anche frigoferi, forni, magari orologi o parti di indumenti … E queste macchine sono tutte collegate fra loro mediante una miriade di connessioni diverse, realizzate con cavi di rame, fibre ottiche, canali radio, anche questi in una grande varietà.  Come non chiamare macchina tutto ciò? In fin dei conti tutte le macchine sono composte da tante sottomacchine. Internet è solo tanto tanto più complicata ed eccezionalmente sterminata.

A pensarci bene però non è proprio così. Un’automobile, che è innegabilmente una macchina, funziona se c’è un conducente che la guida, ovviamente. Poi può essere parcheggiata e dimenticata per ore, giorni – mesi no perché la batteria si scarica – per essere poi ripresa e usata. Tutte le macchine sono così. Il decespugliatore ora se ne sta buono in cantina, come inutile e stupidamente aggrovigliata composizione di metalli, cavi e plastiche. Tuttavia, quando lo riprenderò in mano, in primavera, lui ripartirà docile, spero.

Internet non è così. Internet funziona sempre. Se all’improvviso cessasse di funzionare, cioè se improvvisamente, tutti questi nostri browser si congelassero e così tutti i cellulari e tutte queste finestre e finestrine divenissero come la finestra che, qui davanti a me dà sul buio della notte, allora penseremmo che sarebbe successo qualcosa di terribile, penseremmo ad una qualche catastrofe planetaria, un conflitto nucleare,  un grande meteorite. In altre parole, noi attribuiamo ad Internet la stessa certezza di esistenza che attribuiamo all’umanità, nel senso che se Internet improvvisamente sparisse, immediatamente paventeremmo un grande pericolo per l’umanità intera, per come noi la conosciamo, per come noi siamo ormai abituati a starci dentro, a questa umanità.

E questo accade perché Internet dà luogo ad un nuovo spazio, che è uno spazio immateriale, ma che gli umani possono colonizzare, esattamente come gli spazi fisici, perché gli umani vivono di materialità ma anche e forse più di immaterialità, generata dai loro pensieri e dai loro sentimenti. Gli umani hanno colonizzato il cyberspazio, substrato immateriale ospitato dal substrato fisico di Internet, come i pensieri popolano la mente, substrato immateriale ospitato dal substrato fisico della rete neuronale del cervello.

Internet quindi non è una macchina e lo è allo stesso tempo. Diciamo che non è solo una macchina, ma qualcosa di più. Molto di più. È una neomacchina. Poiché la neomacchina è nuova, nel senso che non se ne era mai vista una simile prima, essa genera tutta una serie di prospettive nuove. Per esempio presenta molte delle caratteristiche delle cose vive. Parti di essa nascono, crescono, maturano, interagiscono in maniera complessa, spesso solo in parte prevedibile, con altre parti, si indeboliscono, muoiono. Internet è viva ed ha due nature che non possono essere isolate, quella umana e quella della macchina. Se si toglie una di queste due parti dal sistema essa scompare come una bolla di sapone.

Essendo una macchina ci aspettiamo che ad essa si possano comunicare delle cose, come siamo abituati a comporre il numero di telefono all’apparecchio telefonico. Tuttavia, non essendo, allo stesso tempo, una macchina, ci aspettiamo di poterci comunicare come comunichiamo fra di noi, per esempio scrivendo una lettera al direttore di un’organizzazione, o intervenendo a Prima Pagina, Su Radio 3. Ovvero ci aspettiamo di poter scrivere lettere, pronunciare discorsi e così via.

Ma come possiamo fare questo? Come possiamo esprimerci naturalmente attraverso una macchina. Beh, direte come il telefono. Quando si fa una telefonata si instaurano due tipi di comunicazione, la prima banale, con la macchina, che necessita solo l’inserimento del numero di telefono, essa ci risponde attraverso sequenze di toni – libero, occupato … – e, se le cose vanno bene, stabilisce il contatto con la persona che vogliamo chiamare. Da qui in poi parte una comunicazione normale, anche se limitata alla sola voce.

I tecnici chiamano questo modo di comunicare a commutazione di circuito. La macchina si limita a stabilire un contatto, se questo funziona si crea un micromondo virtuale popolato da due persone. La neomacchina è completamente diversa sotto questo aspetto. I tecnici dicono che funziona mediante la commutazione di pacchetto. Con questo sistema l’informazione viene segmentata in tanti piccoli pacchetti che grazie a ciò che è stato “scritto sul loro involucro” trovano autonomamente la loro strada nella rete, anche se questa è sterminata e aggrovigliata. Così, in ogni istante di tempo, lungo un qualsiasi tratto di linea della rete, si trovano una miriade di pacchetti appartenenti a comunicazioni diverse, un pezzo di questo post che sto caricando sui server wordpress, un frammento di voce di una mamma che parla con un figlio dall’altra parte del mondo, una scheggia di un tutorial sulla realizzazione di un calzino e via e via … tutto insieme mescolato in un caotico mostruoso bazar. Come si fa a comunicare a questa cosa senza poter usare un numero di telefono?

Grazie al codice, che è mutato velocemente nel corso del tempo, diversificandosi, stratificandosi e apparentandosi in una varietà di modi con il testo. Le mutazioni del codice stanno avendo luogo ad una velocità crescente, credo in modo esponenziale. Nuovi strati di codice nel giro di pochi mesi dilagano e dopo pochi anni vengono usati da milioni di persone nel mondo.

Ecco perché ci siamo messi a fare dei piccoli esercizi con i quali si può vedere l’HTML. La scrittura in HTML non è certo un obiettivo di un corso del genere, ma qualche semplice esempio di questo tipo di codice è ottimo per dare sostanza ai discorsi che andiamo facendo. Poi, se qualcuno, grazie a questi banali esempi, finisce che riesce a scrivere commenti inserendo parole in grassetto o a confezionare qualche link in un qualsiasi luogo del cyberspazio, tanto di guadagnato.

Ho detto “questo tipo di codice” ma è scorretto. È proprio questo il punto, un documento scritto in HTML non è né testo puro né codice puro, è tutti e due.

Il testo HTML di questa frase dove la parola grassetto è scritta in grassetto è questo:

Il testo HTML di questa frase dove la parola <b>grassetto</b> è scritta in <b>grassetto</b> è questo:

Questa riga è composta da testo, trattandosi di una normalissima frase, ma vi sono degli elementi estranei, <b> e </b>, che non avrei mai incluso in una lettera alla mia nonna. L’insieme di tali elementi costituisce il codice di questo piccolo documento, fatto di una riga sola. Per inciso, il codice che istruisce i browser a rappresentare in grassetto i caratteri è <b> … </b> perché in inglese grassetto si dice bold.

I comandi HTML non concernono solo la rappresentazione del testo ma possono conferirgli funzionalità.

Ecco come si rappresenta il link a questo preciso punto di questa pagina:

<a name="QUESTO_PUNTO">Ecco</a> come si rappresenta il <a href="https://iamarf.org/2011/11/21/la-neomacchina-e-il-codice#QUESTO_PUNTO">link a questo preciso punto</a> di questa pagina:

La parola ecco è circondata dal codice che le assegna il nome QUESTO_PUNTO e la parola link è circondata dal codice che dice dove deve finire chi clicca su di essa.

Così si comunica con la neomacchina: inviando commistioni di testo e di codice.

L’HTML non è l’unico esempio di scrittura codificata. Noi lo usiamo qui perché è molto pertinente, essendo destinato a rappresentare i testi nelle pagine dei browser. Ve ne sono altri e di almeno uno di questi vorrei dire qualcosa, in seguito. Soprattutto, daremo un’occhiata con la stessa semplicità ma con altrettanta attenzione a qualche successiva stratificazione di codice, emersa su HTML. Per ora basta. Meglio magari andare a fare qualche balocco con i link, sulla paginetta sfrucugnata.