I computers non sono più quelli di una volta

I ‘puters non sono più quelli di una volta.
E l’utente è funzione del ‘puter (non funzione nel senso di function ma nel senso che viene condizionato a fare cose indotte (o invogliate) dal ‘puter).

Ne ho già parlato, non è importante dove perché ho una soluzione migliore, definitiva (forse o comunque per adesso e in ogni caso solo per me), del problema dell’a-capo nel passaggio dei documenti di testo da Linux a Windows. Ignorando –per il momento– che i giovani ignorano i file di testo ecco la mia soluzione.
Al solito non è mia ma viene da Stack Overflow: How to convert DOS/Windows newline (CRLF) to Unix newline (\n) in bash script?

La soluzione di Jonathan Leffler 😀 funziona perfettamente 😀
Jonathan la sa lunga, la sapevate quella del $:

3.1.2.4 ANSI-C Quoting
Words of the form $’string’ are treated specially. The word expands to string, with backslash-escaped characters replaced as specified by the ANSI C standard. Backslash escape sequences, if present, are decoded as follows:
[…]
\n newline
\r carriage return

Ecco un test iniziale fatto con un mio giovane contatto windowsiano, il file scritto su Linux viene visto così nel Blocco note (Notepad):

ac0

Processato con lo script di Jonathan il documento diventa tutto OK per Blocco note:

ac1

Notare che ormai la limitazione al set di catatteri ASCII è definitivamente archiviata, Unicode dappertutto, emoji compresi 😀

Quindi prima di subito lo script wnl (windows’ newline):

#!/bin/bash
if [[ $# -eq 0 ]]; then
    echo manca il file txt
    exit 2
fi
sed $'s/$/\r/' $1 > w-$1

dopo averlo reso eseguibile con chmod +x wnl conviene spostarlo in ~/bin in modo da poterlo eseguire da qualunque directory.
OK, caso chiuso 😀

Però… 👿
Il giovane potrebbe chiedere “perché ti ostini a usare quella roba?”. Loro sono abituati al documento tipo Word (uso i nomi di M$Office anche se i nuovi adesso usano –finalmente– LibreOffice) che oltretutto è già formattato come si deve (o almeno come sperano). Già per me non esiste neretto, corsivo, dimensione del carattere e compagnia.
I giovani in oggetto la sanno lunga: a me è arrivata la dritta “mandami il tuo testo in una mail, non un allegato, il testo nella mail”. Anche se non sanno che le mie mail sono di solito sempre senza evidenziazioni di sorta, proprio come si usava una volta.

I miei fraintendimenti con il giovane mica finiscono qui, anzi!
“Quant’è grosso il tuo documento?”. Detesto la versione “quanto pesa” che di solito usano solo quelli dell’esosa MelaMorsicata. Dovevo produrre almeno una pagina di testo di Word-equivalente formattato normalmente.
Ahemmm… si, a sentimento ci sono ma –come dire– io uso altri sistemi di misura.

wc-t

wc –word count– scrive il numero di linee, parole e caratteri. Con l’opzione –c restituisce solo il numero di caratteri (e si vede che nei due files varia di 6, tante quante sono le linee).
Con Windows è tutt’un altra cosa!

we

ci sono skifetse, ci interessano solo i files t e td, che vengono indicati con una dimensione di 1KB. È ovviamente un valore approssimato, per saperne di più bisogna ricorrere a Prompt dei comandi (via cerca cmd), navigare (o arrimpicarsi visto che si parla di alberi delle directories) per giungere dove i files si trovano e eseguire il comando dir:

dir

dove finalmente i numeri tornano.

Ma, dice il mio interlocutore: “il comando wc funziona solo per i txt” (loro chiamano così i misteriosi files di testo, anche se l’estensione .txt non si lascia vedere quasi mai. Qui sono stato davvero un modello (mi auto-complimento per il mio auto-controllo). Ho indicato l’URL di un testo ormai un po’ vecchio ma sempre altamente consigliato, anzi lo aggiungerò al mio elenco di manuali, The Art of Unix Programming di Eric Raymond. Si parla di Unix ma vale (praticamente) tutto per Linux.

In particolare nel cap. 1, Basics of the Unix Philosophy troviamo (ma è tutto da leggere) “Write programs to handle text streams, because that is a universal interface”.
E non dimenticate (è sempre lì) la regola 6 di Rob Pike 😉

Per i windowsiani si fa diversamente. Per un file di testo facciamo click con il tasto destro sull’icona del file, e scegliamo proprietà.

wc-txt

Consideriamo un documento Word-like, ecco:

wc-w

info che ottengo per il documento aperto via Strumenti/Conteggio Parole.

Insomma due mondi completamente diversi. E qui voglio chiudere con un rimpianto relativo al bel tempo andato, ho anche un titolo.

C’era una volta il Basic

Tanti ex-giovani hanno scoperto il mondo dell’informatica attraverso il Basic. Oggi non c’è più perché il computer si usa per produrre i documenti Office richiesti dalla scuola, usare il browser (spesso quello M$, Chrome per i più evoluti) per Facebook e Wikipedia (per la scuola, ma sono finiti i tempi del copyncolla), i giochi, YouTube e niente più. Per tutto il resto c’è il telefono. Anzi i giochi si fanno lì. E si chatta e messaggia a tempo pieno.

Niente programmazione. Anche quando sarebbe gratuita e semplicissima.
Torniamo, per esempio, da dov’eravamo partiti: la dimensione dei file di testo. Lo faccio sulla mia macchina perché da noi ultimamente ci sono stati problemi gravi di virus e ci sono divieti di installare alcunché.
Un linguaggio semplice ma professionale che consiglio è Python. Eccolo all’opera nella versione interattiva:

py

Oppure un utility sexy (almeno io lo reputo tale, c’è dietro una lunga storia) che fa molto nerd ma è semplicissimo, newLISP:

nl

Ultimamente sto studiando Racket, una variante Lisp recente, über-nerd, non facilissima ma gratificante:

rkt

Si, per tutti bisogna usare il terminale, quello che per Windows si chiama Prompt dei comandi. Proprio come si faceva una volta. Anche prima che ci fossero le finestre, ve ne ho mai parlato di quando ho cominciato? 😉

Posta un commento o usa questo indirizzo per il trackback.

Commenti

  • bakerstreetboy  Il 2 ottobre 2015 alle 21:41

    Io continuo a dire che noi gggiovani di file di testo non sappiamo granché.
    Già quando io ero piccolino, 11 anni nel ’97, mi ricordo molto bene che a scuola, al corso estivo di informatica, ci fecero usare la prima versione di Word.

    • juhan  Il 3 ottobre 2015 alle 07:39

      Difatti non è colpa vostra (se ti riconosci nella categoria di cui racconto).

  • bakerstreetboy  Il 2 ottobre 2015 alle 21:41

    Comunque sì, mi interesserebbe un post sulle origini del tuo interesse per la programmazione. Come hai cominciato?

    • juhan  Il 3 ottobre 2015 alle 07:42

      Dunque c’era (una volta) questo calcolatore (allora si chiamavano così, a parte i giornalisti che dicevano cervello elettronico) e al Poli un esame su come interagirci l’avevo pure fatto (senza mai vedere il calcolatore) e allora… 😉

  • shintakezou  Il 3 ottobre 2015 alle 23:20

    Come discorso generale a me viene in mente questo: quando mi sono trovato davanti per la prima volta un computer (era uno Spectrum ZX 48k), era chiarissimo che stava aspettando istruzioni. Da me. Era lampante che il computer fosse qualcosa da programmare, visto che ti si presentava con un “prompt” che era anche un editor di linea per scrivere del codice. Oggi i computer sono elettrodomestici, prima di tutto: strumenti preprogrammati per fare varie cose. Il fatto che siano programmabili (anche dall’utente) è “nascosto”… non così tanto da dover scavare a fondo, ma abbastanza perché l’utente medio possa ignorare del tutto il fatto. … Per quanto riguarda accapi e codifiche… una babele! Per impallidire un po’, provate `iconv –list`… Per conversioni CRLF, CR ⇒ LF io di solito uso il perl, p.es. `perl -i.bk -pe ‘s/\r\n$/\n/’ xxx`.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: