Un ricordo per due grandi scomparsi

La scorsa settimana ci ha lasciato Steve Jobs, un gran visionario del mondo dei computers, la persona sicuramente più conosciuta di questo settore assieme a Bill Gates.
Non ho scritto nulla a proposito sul momento perchè ci hanno abbondantemente pensato i giornali.
In qualsiasi caso, non la penso certo come Stallman, però non posso certo annoverarmi tra gli innamorati di Steve Jobs: do atto del suo grande appeal, della sua capacità comunicativa, del suo buon gusto. Reputo i dispositivi Apple, da sempre, degli ottimi pezzi di ferro che sono bellissimi da vedere. Non mi piace la parte software: i sistemi operativi MacOS e iOS sono “delle roccie antiscemo” perchè sono a prova di bomba, ma sono tutto tranne che flessibili e non si hanno le mani libere come si sistemi operativi open come Linux o xBSD.
Jobs però è un “frontman”, uno che grazie alla sua capacità comunicativa è riuscito a rendere piacevole a molti i tecncismi degli ottimi ingegneri che stavano dietro di lui. La cosa che mi è sempre piaciuta di Jobs è la sua spregiudicatezza nel proporre cose davvero innovative anche se spesso si è schiantato contro clamorosi insuccessi (ad es. il Newton o il PowerMac cube o il 20th Anniversary Macintosh)… ma fa parte del gioco e ce lo ricordiamo principalmente per i sui molti successi.

Oggi, però, viene a mancare un altro grande e si tratta della morte di una persona che suo malgrado non è conosciuta ai più come Steve Jobs, ma che grazie al suo lavoro è stato possibile realizzare tutti i principali sistemi operativi Linux, MacOS, iOS, Windows, e anche molti applicativi.
Oggi ci lascia Dennis Ritchie che assieme a Brian Kernighan e Ken Thompson ha inventato il linguaggio C. Nella sua vita, oltre a questa invenzione, si è dedicato allo sviluppo di teorie sui Sistemi Operativi dedicandosi con Ken Thompson in particolar modo all’ambiente Unix di cui è uno dei principali svilupparoti e, difatti, nel 1983 i due sono stati insigniti del premio Turing; per chi non lo sapesse, il premio Turnig è l’equivalente del Nobel per i tecnici dell’informatica.

Organizziamo gli accessi SSH

Nel mio lavoro ho spesso la necessità di lavorare contemporaneamente su più server a cui mi connetto tramite terminale con il protocollo SSH.

Una delle cose peggiori che si possono fare in questa situazione, è inserire dei comandi in una shell mentre si è convinti di lavorare su un’altra macchina: potenzialmente si può arrivare a forattare il disco del server sbagliato, anche se la cosa peggiore che a me è capitata è stata semplice un riavvio…

Onde evitare la possibilità che si verifichino simili errori, ho configurato il mio PC di lavoro con delle scorciatoie da desktop attraverso cui connettrmi al server, in grado di settare automaticamente un profilo con colorazione personalizzata.

Vediamo per punti come ho configurato il sisitema:

1) Abilitazione dell’accesso tramite certificato
Sebbene questo passaggio non sia necessario, risulta davvero comodo utilizzare il certificato per collegarsi ai server senza dover quindi ricordarsi una password specifica.
Per far ciò, sul mio pc ho lanciato il comando ssh-keygen per creare una chiave utilizzabile per collegarmi in ssh ai server. Lasciando le impostazioni di default, verrà creato il file .ssh/id_rsa.pub contenente la chiave pubblica da caricare sul server.

a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa): 
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e:4f:05:79:3a:9f:96:7c:3b:ad:e9:58:37:bc:37:e4 a@A

Quindi, sul server, creiamo la directory .ssh (può già esistere):

a@A:~> ssh b@B mkdir -p .ssh
b@B's password:

e carichiamo la chiave pubblica del nostro server:

a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:

A questo punto possiamo collegarci al server tramite ssh senza dover più ricordare la password di accesso, cosa che rende l’operazione di accesso molto più veloce.

2: Creiamo un profilo personalizzato in Terminator
Come già detto in questo articolo, sono un fan di “Terminator”: si tratta di una applicazione simile ad X-Term ma con caratteristiche più evolute. In questo caso utilizzeremo la funzionalità “Profili” per creare una combinazione specifica di colori per l’accesso ssh al nostro server.
Click con il pulsante destro del mouse e scegliamo “Preferenze”.
Quindi andiamo in “Profiles” e click su “Aggiungi” per creare un nuovo profilo che chiameremo come il server (in questo caso “B”).
Infine andiamo in “Colors” e scegliamo “Custom” dal primo menu a tendina. Dalle due palette sottostanti scegliamo un colore di background e uno per il carattere.

3: Creiamo un pulsante di accesso per lanciare il terminale personalizzato
Ora bisogna aggiungere un pulsante al nostro Desktop Manager. Io uso XFCE e ho voluto creare un pannello aggiuntivo in cui inserisco i “lanciatori” per le mie sessioni terminale. La procedura da utilizzare è diversa se si usa Gnome o KDE (o qualsiasi altro DE), quello che conta è il comando da far eseguire al lanciatore:

terminator -p B -e 'ssh b@B'

Ecco che al click sul lanciatore, verrà aperta una nuova finestra di Terminator utilizzando il profilo “B” con i nostri colori personalizzati che eseguirà in automatico all’apertura il comando “ssh b@B” e l’accesso al server avverrà automaticamente grazie alla presenza del certificato.

Arch Linux, breve recensione

Tra le distribuzioni che ho citato in questo articolo, ne manca una alla quale mi sono avvicinato di recente e che mi sta davvero dando notevoli soddisfazioni: Arch Linux.
Questa distribuzione è concettualmente simile a Gentoo, quindi è una “rolling release”: ciò vuol dire che non si è fermi ad una particolare versione della distribuzione (Debian 5, Debian 6, ecc.) ma un aggiornamento di sistema installerà sempre i pacchetti più aggiornati e non ci sarà mai la necessità di operare una “distro upgrade”.
Al contrario di Gentoo, Arch utilizza di default pacchetti precompilati e li gestisce attraverso il tool di gestione “pacman” che quanto a potenza e funzionalità non ha nulla da invidiare ad “emerge” di Gentoo (e quindi, a mio avviso, è molto più potente di yum/rpm e apt-get/aptitude). Inoltre c’è il comando yaourt per installare i pacchetti da sorgente gestendo in maniera automatica le dipendenze analogamente a ciò che fa emerge in gentoo.
Quanto al sistema di repository dei pacchetti, viene utilizzata una politica molto interessante: non ci sono innumerevoli repository di “proprietà” degli sviluppatori per i pacchetti non ufficiali così come avviene nella maggior parte delle distribuzioni (sia le “classiche”, sia Gentoo), bensì c’è un unico grande repository liberamente accessibile chiamato AUR.
La comunità di sviluppo di Arch è davvero vasta e sul wiki si trovano tutte (ma proprio tutte) le informazioni necessarie per l’utilizzo di praticamente tutti i pacchetti esistenti.
Altra caratteristica particolare di Arch è l’organizzazione dei file di configurazione in etc, molto simile all’impostazione “Vanilla” di Slackware: i demoni di avvio si trovano in /et/rc.d ma non sono presenti le classiche directory per linkare i demoni e avviarli (o fermarli) ad uno specifico runlevel: per tutte le configurazioni di sistema si usa un unico file /etc/rc.conf.
Ultima cosa degna di nota: ho installato Arch per “disperazione” in quanto ho acquistato un nuovo portatile con scheda video ATI HD6650M: tutte le altre distribuzioni provate creavano problemi con i driver ATI OpenSource già all’avvio di X, mentre con i driver Catalyst proprietari appariva il logo “unsupported hardware”; Arch, con i driver ATI Opensource, funziona alla grande e senza aver dovuto fare alcuna configurazione!
Nonostante l’hardware del mio portatile sia decisamente importante (Intel core I7 con 8 GB di RAM), ho installato l’interfaccia grafica Xfce: ho un PC senza fronzoli ma che si avvia velocemente. La potenza di un PC con l’immediatezza di un tablet!