Visualizzazione post con etichetta personale. Mostra tutti i post
Visualizzazione post con etichetta personale. Mostra tutti i post

04 novembre, 2019

Portatili, telefoni, social-media e _____


Io sono vecchio e poco mobile, anzi molto statico. Ho quindi tutto su un desktop con Ubuntu dentro e basta. Non ho nemmeno più il telefono, quello che si usa adesso, se è proprio emergenza da codice rosso fiammante c'è quello fisso, ma tenete conto che devo alzarmi, trasferirmi nell'altra stanza.

Questo dovrebbe mitigare la meraviglia di tutti così ho la possibilità di raccontarvi della mia. Queste note sono state scritte e riscritte a pezzettini, sono il risultato di sforzi tremendi, ripensamenti e rimuginazioni su perplessità, anche se --ammetto-- il risultato può sembrare scontato e banale.

All'inizio non ne ero cosciente, poi non ci credevo, sarà qualche piccola percentuale mi dicevo e invece pare di no: per tanti internet è il telefono portatile, qualcuno lo chiamava (tanto tempo fa) l'aiFon, poi è diventato il telefonino e infine il telefono. Spesso solo quello per tanti (troppi?). Poi è vero che c'è anche il computer, spesso portatile che è più pratico, puoi spostarlo, portarlo con te, ma capita anche che è come il mio in ufficio o locale equivalente facente funzione. A scuola anche, certo. Sì perché per tanti oggi si comunica con l'Amministrazione Pubblica attraverso il Web (no, non ho niente da dire, non riporto nemmeno "ah, quando c'era il fax!"). A volte anche con altri, anche via computer ma il telefono è meglio, più pratico. Tranne quando devi stampare qualcosa (atz! manca il giallo 🙁).

Il telefono, ho scoperto, tardi ma ci sono arrivato, è diverso dal computer. E cambia con chi lo usa, magicamente. C'è chi ci parla (urla) dentro e quello risponde, come si usava una volta ma lo fanno in pochi, i vecchi, me. Gli altri lo usano per tutto il resto: si fanno e mandano le foto, si compra su Amazon (è divertente sfogliare il catalogo, fare confronti, valutare anche se il risultato è che alla fine selezioni qualcosa di diverso da quello che ti serviva), si mandano messaggi.

A proposito dei messaggi, oltre alla dimostrazione (definitiva) dell'utilità del pollice opponibile, e di averne due, resto stupito dalla velocità, in tutti i sensi. Sono tutti mooolto più rapidi di me nel digitare, ovvio mi manca l'allenamento. Sono tutti molto più rapidi e decisi nel comporre il messaggio, ex-novo, nessuna bozza, nessun ripensamento, nessuna correzione tornando indietro sul già scritto, buona la prima come si diceva lollando nel gergo dei miei tempi (si capisce ancora?). Sono molto più rapidi anche nel leggere il messaggio in arrivo. Lì però conta il formato del messaggio: quasi sempre c'è l'immagine che dice tutto, a saperla leggere, e poi è questione di sintassi, semplice, priva di ambiguità, razionale. Non è tra i miei contatti ma The Donald illustra perfettamente la tipologia; non solo i tweets ma anche i suoi discorsi politici riesco a capirli al volo (non ho detto che li condivida).

Ho nominato Twitter ma non si usa, per niente. Non ne so molto ma ho intravisto Facebook, app per i video (devo informarmi, anche per il motivo che il video è in verticale) e, sopratutto, Instagram; per qualche motivo si deve usare anche la mail (spesso Yahoo) ma sono casi meno comuni. Io, se riesco, impongo l'uso della mail, altrimenti mi rassegno ai messaggi via Facebook. La cosa a cui proprio non riesco ad abituarmi è l'istantaneità, provo a raccontarla.

Il messaggio, oltre alla foto di solito presente, dev'essere composto da una sola frase, senza secondarie o incisi. Altrimenti ti arriverà la risposta solo per la prima frase, il resto andrà perso. Per cui se inizi (OK, è un vizio mio che devo cercare di perdere) dicendo "caso non semplice, da esaminare..." ti devi aspettare la risposta standard (forse esiste un tasto apposito) "lo so" (notare che io userei "sì, lo so" ma il testo dopo la virgola andrebbe perso). Capita che mentre sto rispondendo via mail componendo con Firefox (e bozza in txt) riceva segnalazioni continue di nuove mail in arrivo, i bip fanno sembrare il 'puter un contatore Geiger (quello dei film, uno vero mai visto). Alla fine l'interlocutore si rassegna o capisce; e io devo pulire la casella, leggendo prima tutte le comunicazioni, ce ne sono di non previste. Certo sto esagerando ma capita, troppo sovente.

Ci sono cose che con il telefono, per quel che ne so, non si possono fare ma sono solo per pochi, non serve programmare quando fai solo cose normali. Per i pochi (uh!, me too) poi avrei pronta un'altra lunga lista di lamentazioni, l'intefaccia grafica, il linguaggio e --sì-- il sistema operativo. Ma, ora che ci penso, anche la gente normale ormai si è resa conto che di Windows se ne può fare a meno: sul telefono non c'è c'è Android (spesso a insaputa generale) eppure è tutto OK! tranne che poi per scrivere la tesina sul 'puter vorrebbe Word, quello vero, M$; e PowerPoint per la presentazione. Ci sono equivalenti di Office open e free ma non sono la stessa cosa, è la differenza che passa tra il barolo e il nebbiolo (anche se di solito va benissimo la barbera (è femminile, siete voi che sbagliate). Tutto questo anche per Photoshop. E altri. Ma non ne voglio parlare, mi farei nemici e sangue cattivo.

Devo aggiornarmi? Penso di no, sono senior (ahemmm...) e il mondo può farcela anche senza di me; io anche.
🔴

24 settembre, 2019

Scorciatoie che devo ricordarmi


Alle volte la memoria (la mia)... Ma se lo scrivo qui me lo ricorderò, sempre che mi ricordi che l'ho scritto tutto qui.

Io sono della vecchia scuola e ho cominciato quando il monitor era tutto nero e ci potevano stare solo caratteri (bianchi o verdi) fino a 80 per riga e 25 righe. Roba vecchia, poi quando è arrivata l'interfaccia grafica (per me con Apollo) con le finestre sovrapponibili: una meraviglia 💥 --cose vecchie. Ma, ecco, ancora adesso, spesso, anzi abitualmente.

Per ovviare ai problemi di memoria (miei), copiando da 14 Essential Ubuntu Keyboard Shortcuts mi costruisco il memo da appendere di fronte al terminale (uso un desktop, sono vecchio (come forse già detto)).

Ctrl + Alt + T apre un nuovo terminale.
Super + D nasconde tutte le finestre se visibili, le visualizza se nascoste.
Ctrl + Alt + Delete per chiudere la sessione; non so se utile (per me).
Print Screen cattura l'immagine del desktop e la mette in ~/Immagini.
Shift + Print Screen cattura la porzione del desktop che selezioni con il mouse; come per la scorciatoia precedente non le uso, ho 3 scripts per catturare schermo, pozione di schermo e finestra.
Super + Freccia sx/dx sposta la finestra corrente a sinistra/destra; con Freccia su/giù ridimensiona; ripetendo il comando ripristina; non so se mi serve.
Alt + F2 Quick Command Prompt: apre una finestra per comandi, quella che su Apollo (OK, lo so che lo ricordo solo io) si chiamava Display Manager. Shortcut comodissima & usatissima; se chiudo un terminale le applicazioni lanciate da quello terminano, quelle lanciate con QCP restano vive per tutta la sessione o finché vengono chiuse.
Super + H minimizza la finestra corrente.
Shift + Ctrl + Alt + R inizia/temina la registrazione dello schermo; il video viene memorizzato in ~/Video. Tutto spiegato bene qui.
Super visualizza tutte le finestre aperte per poter scegliere quella che serve rapidamente; ripetendo il comando lo annulla. La stessa cosa si ottiene con click su Attività (in alto a sinistra).
Super + Freccia su massimizza la finestra; Super + Freccia giù de-massimizza (come si dice?).
Super + N dove N in [1:9] lancia/apre l'app numero N sul Dock, la barra delle apps a sinistra.
Super + PgSu/PgGiù cambia workspace; lo stesso effetto si ottiene con Crtl + Alt + PgSu/PgGiù; comodo quando si hanno troppe finestre aperte contemporaneamente, basta ridistribuirle ma occhio alla memoria (non la mia la sua).

Ahemmm... non ho capito come posso creare shortcuts ma tanto non sono mature (cit.).


Uh! bonus last minute: Shift + Crtl + U + f200 mi da

🔴

20 maggio, 2019

Evoluzione - archeologia

Un post non so quanto serio ma ci tengo. Racconta di me, dell'evoluzione dei linguaggi di programmazione (uno solo in realtà, il Fortran). Roba che oggi non si usa più, come il latino, per cui lo dico subito: caveat emptor (archeo-cit.).

Questa è l'ennesima riscrittura, grazie anche alle osservazioni di AP, ex collega (non vuole che lo si ricordi come boss), peccato non foglia comparire ontehtoobz.

L'idea iniziale era completamente diversa, partita da Compiler Explorer. Una piccola modifica al codice produce variazioni anche grandi nell'assembly; se poi si cambia linguaggio... Ecco, il Fortran, antichissimo, cambiato, evoluto nei suoi quasi 70 anni (proprio come cambia un umano) ma sempre vivo (forse, ancora qualcuno che lo usa?) o almeno compilabile.

Provo a scrivere --come sono capace, portate comprensione-- un programma banalissimissimo, la somma dei numeri naturali da 1 a 10 compreso. Roba che in Python si può scrivere così:

#!/usr/bin/python3

j = 0
for i in range(1, 11):
    j += i

print(j)

Eseguendo si ottiene:

$ python3 -q sum.py
55


(in realtà ho l'alias py3='python3 -q' ma non l'ho usato per chiarezza, spero verrà apprezzato come segno di buona volontà.)

Quando io ho iniziato a interagire con il computer, c'era già una storia, c'erano già dei vecchi. I vecchi, non tutti ma qualcuno, rifiutavano le cose troppo nuove, per esempio per fare il ciclo non usavano l'istruzione DO (in Fortran il for si chiama così) ma l'IF aritmetico, lo trovate qui a p.21. Sì, come leggere le tavolette d'argilla dei babilonesi; ma si può fare! (cit.)

Allora il contenuto delle schede perforate sarebbe stato qualcosa come questo:

C 34567
      I = 0
      J = 0

   10 CONTINUE
      I = I + 1
      J = J + I
      IF(I-10) 10, 20, 20
   20 CONTINUE

      WRITE(*, 90) J
   90 FORMAT(41HLA SOMMA DEI NUMERI NATURALI DA 1 A 10 È, I4)

      END


Come si usava allora scrivo (con un certo ribrezzo) tutto maiuscolo. Anzi no, ho fatto come al solito poi per la bella (questo post) ho convertito usando tr:

cat $* | tr [:lower:] [:upper:]

La prima riga è un commento (C in colonna 1) per agevolarmi a visualizzare i campi: commento in colonna 1, etichette (numeriche) nelle colonne [1:5], flag di continuazione in colonna 6 e codice nelle colonne [7:72].

Le variabili il cui nome inizia con [I:N] sono intere, float tutte le altre; è tuttavia possibile dochiararle di tipo diverso, ma i vecchi non avrebbero approvato.

L'istruzione WRITE scrive sull'unità predefinita (ahemmm... dipendeva dalla macchina, qui * è il terminale. Notare il formato Hollerith così chiamato in suo onore: dopo il carattere H ho il numero prima indicato di caratteri; oggi il compilatore accetta anche le lettere accentate!

Il ciclo è compreso tra le due istruzioni CONTINUE, gestito dalla (deprecata da prima che iniziassi) IF aritmetica che calcola l'espressione tra parentesi e salta alla label corrispondente a valore negativo, zero e positivo rispettivamente.

CONTINUE, usatissima allora è un segnaposto, non fa niente di suo ma serve per l'etichetta.

Semplice vero? Compilo ed eseguo:

$ gfortran -o f0 F0.f
$ ./f0
LA SOMMA DEI NUMERI NATURALI DA 1 A 10 È  55
$


Quando ho iniziato a mettere le mani sul 'puter (il PR1ME 550-II) si usava il Fortran IV, 1966. Anzi no: seguendo IBM ognuno si riteneva libero di apportare aggiornamenti allo standard vecchio ormai di di 15 anni; per il mio esempio non ne servono, ecco il Fortran IV:

      J = 0
      DO 10, I = 1, 10
          J = J + I
10    CONTINUE

      PRINT *, J

      END


Notare il ciclo DO identificato dall'etichetta 10. I vecchi avrebbero avuto da ridire per l'indentazione del blocco (qui una sola riga) ma penso che 1) il codice è più chiaro; e 2) oggi non mi diranno più niente.

Non sono sicurissimo se PRINT fosse standard, potrei andare a controllare, ma per edasso la uso.

Ottengo

$ gfortran -o f1 F1.f
$ ./f1
          55
$


OK. Nel '78 era uscito il nuovo standard, il Fortran 77 con parecchie nuove possibilità. Da me arrivò a inizio '80 ed era visto male perché esoso di risorse e poi if it's works don't fix it (cit.). Eccolo, sì in minuscolo:

      program sum10

      implicit none
      integer i, j

      j = 0
      do 10, i = 1, 10
          j = j + i
10    end do

      print *, j

      end


Dovrei controllare se implicit none era già standard o lo sarebbe diventato in seguito; raccomandato dai non-vecchi. program era un'istruzione solo estetica, il blocco del do conveniva chiuderlo con end do. Ah! dimenticavo: gli spazi non sono significativi per cui si possono mettere e togliere a piacimento, è valida enddo, come lo sarebbero altre in altri casi come goto e go to, da sempre. Ci sarebbe anche la cosa che zero è blank ma non voglio infierire.

Compilazione ed esecuzione lasciate come esercizio; passo alla versione '90.

Parecchie cose nuove, qui non le uso tranne una: il free format visto che le schede non le ricordava più nessuno. Una cosa sul do che credo valesse già nel '77 (o era un'estensione?): l'etichetta è opzionale e viene usata solo se condivisa da più cicli:

program sum10

implicit none
integer i, j

j = 0
do i = 1, 10
    j = j + i
end do

print *, j

end


Poi ho smesso, cioè no è il mondo che è cambiato. E continua a cambiare.

per esempio il codice Python usato all'inizio si potrebbe scrivere:

$ py3
>>> sum(range(1, 11))
55
>>>


dove uso la funzione predefinita sum(). Ma posso fare anche senza, per esempio, usando reduce():

>>> from functools import reduce
>>> reduce((lambda x, y: x + y), range(1, 11))
55
>>>


Uh!
sono di nuovo finito là; e mi sa che continua 🧐

🔴

17 maggio, 2019

Un po' di storia; una mia ossessione

Carlo Nardone

Quando io ero piccolo (cioè già cresciutello, finita la scuola) mi trovai a pasticciare con un grosso 'puter, come avevo sempre desiderato, almeno da quando avevo capito che non sarei mai diventato un calciatore o un astronauta --sigh! 🙄

OK, adesso quello si potrebbe chiamare molto grosso, enorme ma le prestazioni sarebbero imbarazzanti. E anche altri venuti dopo, lo stesso. E anche oggi --ma ho smesso, niente telefono.

Una cosa non sono mai riuscito a metabolizzare (chissà se è la parola giusta...) completamente: allora al computer si davano comandi; ero della generazione successiva alle schede (i batches, poi M$ avrebbe rispolverato questo termine per indicare i command-scripts, ma sto divagando). Sempre in modalità divagazioni quando comparvero le interfacce a finestre (à la Smalltalk) più che i widgets la novità vera era di avere più finestre aperte contemporaneamente (overlapping windows), tanti terminali tutti in foreground!

Ma prima delle finestre passando da una macchina a un'altra non potei esimermi a una cit. classica: "Εύρηκα!" completata con "UAU! la pipe!".

La faccio breve; dove lavoravo (pochi si ricordano di quei tempi) era normale eseguire un'elaborazione suddividendola in fasi; per prog tipicamente si aveva:

run pre_prog
run prog
run post_prog


nell'ipotesi che fose tutto OK, altrimenti si esaminavano i risultai parziali (logs e files) intermedi. Nota: ho semplificato, con il Prime il programma si lanciava, a seconda dei casi, con co, run (abbrevviabile in r), seg e (raramente) con altri comandi; questo quando ho iniziato, poi ci fu un'evoluzione/semplificazione.

Con UNIX, con le pipes, diventò

pre_prog | prog | post_prog

OK, ho semplificato (forse troppo) e non è visibile il salto tecnologico, raccontare tutto sarebbe troppo lunghissimissimo.

Ecco l'idea (e l'implementazione) della pipe è quello che avrei voluto fare io. Purtroppo Doug e Ken... Dai bravi, grazie ancora.

Ora, ehi! 2019, surfando online trovo questo documento: Unix Users Talk Notes Jan '73.

Notevole. Doug ha una calligrafia peggio della mia, si capisce niente. Ma è storia. E la metto qui in previsione di ritornarci ogni tanto --nostalgia 🙄

Ah! travolto dall'entusiasmo ho scoperto altri link, complementari, chiarificatori:

Ci sarebbe altro ancora ma poi il post diventa troppo lungo. <mode nostalgia off> 🧐

🔴