Giugno 2020 archive

Dato vs. Informazione

Ipotizziamo di indossare un orologio particolarmente evoluto che, ogni ora, identifica la nostra posizione e legge a voce alta la temperatura esterna.
Ogni ora ci comunica la temperatura esterna.
La temperatura esterna è un dato.
A che ora il dato diventa informazione?
Dipende.
Da cosa dipende?
Dipende a che ora ci stiamo vestendo per uscire. Solo in quel momento il dato della temperatura esterna diventa informazione perchè ci permette di attuare una scelta su quali vestiti indossare in funzione della temperatura esterna.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/dato-vs-informazione/

Eric S. Raymond – La cattedrale e il bazaar

La cattedrale e il bazaar di Eric Steven Raymond è un testo (o saggio… ma mi sembra eccessivo) del 1997 dove Raymond, utilizzando come esempio lo sviluppo del software fetchmail (sviluppato dallo stesso Raymond), analizza il successo della metodologia di sviluppo software introdotte la Linus Torvald per il progetto Linux, in contrasto al paradigma di programmazione “a cattedrale” in voga in gran parte del mondo commerciale (ma anche all’interno della stessa Free Software Foundation di Stallman di cui Raymond era un “seguace”). L’analisi dei due modelli viene condotta confrontando le diverse modalità di interpretare l’attività di debugging.

Al di là dei tecnicismi però ci sono degli spunti molto interessanti che scorrono costantemente su due binari paralleli: da un parte Raymond con il suo software fetchmail e sull’altro binario Torvalds con Linux e la grande rivoluzione del software open source.

Stallman storcerebbe il naso ad una simile definizione… preferirebbe “free software”… ma d’altronde HURD non ha ancora visto la luce…

Ed ecco le 19 regole che emergono, come capisaldi, dal nuovo paradigma del bazaar:

  1. ogni buon lavoro software inizia dalla frenesia personale di uno sviluppatore.
  2. I bravi programmatori sanno cosa scrivere. I migliori sanno cosa riscrivere (e riusare).
  3. “Preparati a buttarne via uno; dovrai farlo comunque.” (Fred Brooks, “The Mythical Man-Month”, Capitolo 11)
  4. Se hai l’atteggiamento giusto, saranno i problemi interessanti a trovare te.
  5. Quando hai perso interesse in un programma, l’ultimo tuo dovere è passarlo a un successore competente.
  6. Trattare gli utenti come co-sviluppatori è la strada migliore per ottenere rapidi miglioramenti del codice e debugging efficace.
  7. Distribuisci presto. Distribuisci spesso. E presta ascolto agli utenti.
  8. Stabilita una base di beta-tester e co-sviluppatori sufficientemente ampia, ogni problema verrà rapidamente definito e qualcuno troverà la soluzione adeguata.
  9. Meglio combinare una struttura dati intelligente e codice non eccezionale che non il contrario.
  10. Se tratti beta-tester come se fossero la risorsa più preziosa, replicheranno trasformandosi davvero nella risorsa più preziosa a disposizione.
  11. La cosa migliore, dopo l’avere buone idee, è riconoscere quelle che arrivano dagli utenti. Qualche volta sono le migliori.
  12. Spesso le soluzioni più interessanti e innovative arrivano dal fatto di esserti reso conto come la tua concezione del problema fosse errata.
  13. “La perfezione (nel design) si ottiene non quando non c’è nient’altro da aggiungere, bensì quando non c’è più niente da togliere.” Antoine de Saint-Exupèry (aviatore e designer di aerei, quando non scriveva libri per bambini)
  14. Ogni strumento dovrebbe rivelarsi utile nella maniera che ci si attende, ma uno strumento davvero ben fatto si presta ad utilizzi che non ci si aspetterebbe mai.
  15. Quando si scrive del software per qualunque tipo di gateway, ci si assicuri di disturbare il meno possibile il flusso dei dati – e mai buttar via alcun dato a meno che il destinatario non ti ci costringa.
  16. Quando il linguaggio usato non è affatto vicino alla completezza di Turing, un po’ di zucchero sintattico può esserti d’aiuto.
  17. Un sistema di sicurezza è sicuro soltanto finché é segreto. Meglio diffidare degli pseudo-segreti.
  18. Per risolvere un problema interessante, comincia a trovare un problema che risvegli il tuo interesse.
  19. Stabilito che il coordinatore dello sviluppo abbia a disposizione un medium almeno altrettanto affidabile di Internet, e che sappia come svolgere il ruolo di leader senza costrizione, molte teste funzionano inevitabilmente meglio di una sola.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/eric-s-raymond-la-cattedrale-e-il-bazaar/

Retropie – Parte 2: configurare l’SSH

Uno dei motivi che mi hanno fatto propendere per l’utilizzo di Retropie al posto di Recalbox è che con Retropie è possibile attivare e configurare il protocollo SSH; in questo modo è possibile collegarsi al sistema anche da remoto con un altro pc sulla stessa rete ed operare quindi direttamente sul sistema senza dover sempre togliere e mettere la scheda microsd.

Per abilitare l’SSH è necessario andare nel menù di configurazione
“Raspi-Config” ed entrare nella voce “Interfacing options” dove c’è proprio una voce dedicata al protocollo SSH (che ovviamente è da abilitare). Per conoscere l’indirizzo IP a cui collegarsi è sufficiente entrare nel menù di configurazione e selezionare “Show IP”… semplicissimo. Ovviamente il Raspberry e il pc devono essere collegati alla stessa rete.

Una volta attivato il protocollo SSH è possibile eseguire, ad esempio, PuTTYSSH Client e inserire l’indirizzo IP del nostro Rasbperry con installato Retropie… una volta aperta la sessione SSH inserire username (pi) e password (raspberry) ed eccoci alla console…

Ovviamente appena si inizia a lavorare direttamente con il protocollo SSH diventa chiaro che dover digitare sempre la password dell’utente root non è affatto pratico. Per questo motivo è necessario configurare il sistema in modo che l’utente root venga abilitato ad operare con tale protocollo. In questo modo è possibile impartire i comandi (o operare dalla sessione grafica) direttamente con i permessi di root senza dover eseguire il comando sudo. Ma vediamo come fare modificando opportunamente il file /etc/ssh/sshd_config.

sudo nano /etc/ssh/sshd_config

modificare la riga

 PemitRootLogin without-password

in modo che diventi

 PermitRootLogin yes

Salvare il file premendo Ctrl X e confermare la sovrascrittura del file. A questo punto è possibile impostare la password per l’utente root con il comando:

sudo passwd root

inserire la nuova password e confermarla nuovamente.

Per rendere effettiva la modifica è necessario riavviare il sistema o tramite l’interfaccia grafica oppure con il comando:

sudo shutdown -r now

Le modalità di collegamento, una volta abilitato il protocollo SSH, sono molteplici:

  • è possibile utilizzare PuTTY SSH Client
  • è possibile selezionare File -> Connetti al server dal window manager di Cinnamon
  • è possibile creare una sessione SSH con Remmina
Un esempio di sessione SSH configurata con Remmina

Permalink link a questo articolo: http://www.andrea.rustichelli.name/retropie-parte-2-configurare-lssh/

Retropie – Parte 1: l’installazione

Decido di fare una installazione di Retropie sul mio Raspberry partendo da 0 e cercando di modificare e personalizzare l’installazione dei vari emulatori e dei giochi.

Questa volta ho scaricato l’immagine retropie-4.5-rpi2_rpi3.img.gz dal sito ufficiale e l’ho decompressa. Questa volta per copiare l’immagine su scheda micro SD ho deciso di utilizzare il programma già presente nella distro Linux Mint anziché utilizzare il comando dd.

Dopo aver copiato l’immagine sulla scheda SD è necessario inserirla nel Raspberry e avviarlo per completare l’installazione. Al termine dell’installazione e al primo riavvio, EmulationStation rileva l’eventuale gamepad o joystick collegato al Raspberry e presenta subito la procedura guidata per la configurazione in modo da poter utilizzare subito il nuovo sistema.

Consiglio: quando si configura il joypad è opportuno configurare il tasto Hotkey con il tasto Select; in questo modo premendo contemporaneamente il tasto Select e il tasto Start si esce da ogni gioco.

Se si hanno problemi con l’audio collegando il Raspberry al televisore utilizzando un cavo HDMI (e quindi sfruttando la funzionalità di “pass-through”) è necessario togliere il commento dalle seguenti righe presenti nel file /boot/config.txt eseguendo la combinazione di comandi:

sudo nano /boot/config.txt

e togliere il commento dalle righe (ovvero togliere il carattere iniziale #)

hdmi_drive=2
hdmi_force_hotplug=1
hdmi_force_edit_audio=1

riavviare il sistema.

Consiglio: se dopo l’installazione del sistema Retropie funziona correttamente, NON FARE (e ripeto NON FARE) nessun aggiornamento del sistema. Può solo rendere il sistema più instabile.

Permalink link a questo articolo: http://www.andrea.rustichelli.name/retropie-parte-1-linstallazione/