martedì 30 novembre 2010

Programmi e processi

Molto spesso la parola programma e la parola processo vengono scambiate, proprio come si usa fare con due sinonimi! Esiste tuttavia un'importante distinzione che forse è meglio approfondire.
Su un sistema operativo GNU/Linux ogni cosa è un file: immagini, video, documenti, dispositivi e programmi. L'utente, oppure il sistema operativo, dispone i file in determinate cartelle del file system.
Quando serve, un programma viene quindi richiamato dal fi le system e mandato in esecuzione. Un programma in esecuzione è anche detto processo. I processi in esecuzione risiedono nella memoria principale nel nostro computer, la memoria ram (random access memory).
E' inevitabile, quindi, che la memoria ram installata sul nostro computer finisca per caratterizzare il massimo numero di processi, e quindi di programmi in esecuzione, che è possibile tenere sul nostro computer!
Sul file system ogni fi le, e quindi anche un programma, ha un nome. Se voglio cercare un programma, molto probabilmente, inizierò una ricerca per nome (ad esempio con gnome-search-tool). Ma come cercare un processo?
Ogni processo è identi cato in maniera univoca da un numero intero detto PID (process id). In molti si chiederanno: "perché Linux per identificare un processo non usa il nome del programma?"
La risposta è molto semplice, attraverso il nome del programma mandato in esecuzione è possibile identi care un gruppo di processi. A partire da un programma, infatti, è possibile generare uno o più processi. Tutti questi processi, pertanto, avranno lo stesso nome ma PID differente! Immaginate di aprire più volte il vostro browser (vi sarà capitato qualche volta), ad esempio Firefox. Tutti questi processi verranno generati dal programma di nome Firefox ma ognuno di questi avrà un diverso valore per il PID. Ecco, dunque, che l'identificazione attraverso il nome del programma non sempre è univoca. E' importante apprezzare questa distinzione. I comandi Linux kill e killall, come vedremo prossimamente, permettono di chiudere uno o più processi!

lunedì 29 novembre 2010

Lo spazio occupato da una directory con du

Mentre df ritorna informazioni su tutto il disco, il comando du (disk user) svolge lo stesso compito limitandosi a misurare lo spazio occupato da una singola cartella. Di default, se non specifichiamo alcuna cartella, il comando elenca i file (e la loro occupazione in byte) presenti nella directory di lavoro. Per ricevere una stampa leggibile è preferibile usare l'opzione -h (human readble), che usa i seguenti prefissi: K per i kilobyte, M per i megabyte, G per i gigabyte. L'elenco termina con una riga che indica lo spazio occupato dalla cartella sul disco. Per stampare tutti i file di una cartella usate l'opzione -a (all):


Se siamo interessati solo al valore totale passate, allora, al comando l'opzione -s (summarize).

sabato 27 novembre 2010

Vodafone Internet Key K3765: installazione su Xubuntu



Mi è arrivata la Vodafone Internet key (da ora in poi VIK), presa con gli incentivi statali destinati ai giovani con età compresa fra i 18 e 30 anni per l'attivazione di nuove connessioni Internet. Ho acquistato il modello in figura dallo shop online di Vodafone, pagando solo 1€ (con carta prepagata PostePay). La VIK K3765 permette la connessione tramite protocollo (per reti UMTS) HSDPA (high speed data packet access) a una velocità di 7.2Mbps (in download) e tramite protocollo HSUPA (high speed uplink packet access) a una velocità di 5.7 Mbps (in upload).
La VIK è dotata di 128MB memoria, ed è eventualmente espandibile fino a 4GB con schede MicroSD. E' in questo spazio di memoria che risiede il software autoinstallante per i sistemi operativi Windows e Mac. E per Linux? Non ho impiegato molto a trovare una soluzione per far funzionare la VIK K3765 su Xubuntu, la mia distrubuzione GNU/Linux preferita.
Dopo aver inserito la VIK in una delle porte usb del mio Aspire One ho subito chiesto al terminale la lista dei dispositivi collegati, con il comando lsusb:


Avendo eseguito il comando prima e dopo l'inserimento della VIK ho potuto notare la comparsa di una nuova voce nell'elenco! La VIK viene riconosciuta con l'ID 12d1:1465, potete vederne il nome del produttore nell'output riportato sopra. Questo è un buon segnale.
Provate a vedere se il vostro gestore di connessioni vi permette di impostare una connessione con il dispositivo rilevato. In alcuni casi occorre tuttavia installare un pacchetto per permettere la gestione della VIK. Nel mio caso è bastato digitare i seguenti comandi: sudo apt-get update (per aggiornare il database dei pacchetti software) e sudo apt-get install usb_modeswitch (pacchetto software per la gestione della VIK). Se avete problemi nella ricerca di questo pacchetto date uno sguardo qui. Adesso NetworkManager (il gestore di connessioni usato di default in Xubuntu) riconosce la VIK, osservate la voce "New Mobile Broadband" in questa figura:


Possiamo procedere con la configurazione della connessione! Prima però vorrei spiegarvi l'utilità del pacchetto appena installato. Come potete osservare nell'immagine sopra sul desktop è comparsa l'icona "MyDisc" che fa riferimento a un lettore cd-rom! Se inseriamo una scheda di memoria MicroSD nello slot della VIK vedremo comparire sul desktop una nuova icona, quella relativa alla scheda di memoria inserita. La VIK inserita realizza tre dispositivi contemporaneamente: un modem per la connessione a reti UMTS, un disco cd-rom con il software per installare la VIK (su sistemi operativi Windows e Mac) e un lettore di schede di memorie. Con il pacchetto usb_modeswitch il sistema operativo riesce adesso a gestirne le tante funzioni. Per configurare la connessione in NetworkManager cliccate sulla voce "New Mobile Broadband" e seguite la procedura per il setup.






Per navigare con Vodafone va inserita la stringa web.omnitel.it come APN (Access Point Name). Al momento della connessione NetworkManager vi chiede di inserire il PIN della vostra SIM dati. Possiamo anche installare l'applicazione Vodafone Mobile Connect per Linux, che offre gli stessi servizi dell'omonima applicazione usata sui sistemi operativi Windows e Mac. Trovo particolarmente utili i contatori per il traffico di rete fruito, oltre al servizio per l'invio e la ricezione di SMS. Vi consiglio di installare questa applicazione.
Il software che vi descrivevo poco fa si trova su Betavine Forge, scaricate e installate i seguenti pacchetti: ozerocdoff_0.4-2_i386.deb (di questo pacchetto esistono versioni dedicate anche ad altre architetture) e vodafone-mobile-connect_2.25.01-1_all.deb. Installate i due pacchetti cliccando due volte sopra il file scaricato, oppure con il comando sudo dpkg -i ozerocdoff_0.4-2_i386.deb mobile-connect_2.25.01-1_all.deb, da eseguire all'interno della cartella che ospita i file scaricati. Se all'interno della cartella che ospita i file sono presenti solo i due pacchetti detti sopra potete installarli anche con il comando (breve) sudo dpkg -i *.deb. Se seguite l'output prodotto sul terminale durante l'installazione dei pacchetti noterete alcuni messaggi di errore. I due pacchetti vengono in ogni caso installati, tuttavia, per sistemere un po di cose (dipendenze da librerie di programmi) date il seguente comando: sudo apt-get install -f.
Nel menu di Xubuntu (o della vostra distribuzione GNU/Linux), all'interno del menu dedicato alle applicazioni di rete troverete l'applicazione appena installata: Vodafone Mobile Connect. Quando avviate il software la prima volta vi viene proposta una schermata simile a quella che segue:


L'applicazione riconosce la VIK inserita, cliccate su OK e impostate un nuovo profilo attraverso le finestre che man mano vi vengono proposte.


Cliccate su "Connetti" per avviare la connessione attraverso la VIK, vi verrà chiesto il PIN della vostra SIM dati (è possibile disattivare la richiesta del PIN all'interno dell'applicazione). A beneficio di altri utenti riporto qui di seguito la mia esperienza nell'attivazione della SIM dati abbinata alla VIK:

Ho ricevuto la VIK direttamente a casa (con corriere GLS) , dopo 9 giorni (ordinata il 16/11/2010 e ricevuta il 25/11/2010, sono 6 giorni lavorativi).
All'interno del pacco che ho ricevuto ho trovato 3 fogli: una fattura che riassume l'ordine da me richiesto (a), un foglio dove vengo ringraziato per l'acquisto e contenente informazioni sull'attivazione della SIM (b) e un foglio per l'autocertificazione così intestato "Modulo di richiesta contributo statale per la larga banda 2010" (c).
Sul foglio (b) leggo che la SIM dati ricaricabile presente all'interno della confezione sarà attivata entro 5 giorni lavorativi dalla consegna. Nessuna istruzione sul foglio (c), il modulo per l'autocertificazione.
Ho allora chiamato il 190 e ho parlato con un operatore, spiegando le stesse cose che ho riportato sopra e chiedendo alla fine: "Cosa devo fare con il foglio Modulo di richiesta contributo statale per la larga banda 2010?". L'operatore mi ha detto di non inviarlo poiché hanno già i miei dati per procedere alla registrazione della SIM dati e che l'incentivo statale mi è stato riconosciuto nel momento in cui ho acquistato la Internet key ad 1€. Mi ha poi detto di mettere, di tanto in tanto, la SIM dati in un telefono perché è lì che riceverò un sms che mi avvisa dell'attivazione della stessa. Infine, alla mia domanda: "Che promozione mi verrà attivata sulla SIM dati?". L'operatore mi ha risposto così: "Internet small, che le permette di navigare 30 ore al mese, gratis per 3 mesi, rinnovabile in futuro etc... etc...".
Il giorno dopo ricevo una una mail: "Ti informiamo che la SIM dati Ricaricabile, presente nella confezione della Vodafone Internet Key acquistata sullo Shop di vodafone.it, è stata correttamente attivata. Per usufruire di tutti i vantaggi della tua Area personale 190 Fai da te ti ricordiamo di registrare la tua nuova SIM sul sito vodafone.it". Ho quindi messo la SIM dati nel mio telefono e dopo un po mi sono arrivati 2 sms (in precedenza la SIM dati non entrava nella rete Vodafone). Il primo sms mi da il benvenuto in Vodafone e mi informa che se voglio conoscere il credito disponibile sulla mia SIM dati devo inviare un sms al numero 404 con scritto "Traffico". Il secondo sms mi informa, invece, che sulla mia SIM dati è attiva la tariffa (base, assegnata di default a quanto pare) Daily Travel Tariff (per navigare in Internet per 50MB/giorno a 15 o 30€, con addebito anticipato). Ho allora inviato un sms con la stessa SIM per verificare il credito disponibile, in breve tempo ho ricevuto un terzo sms: "Traffico disponibile Euro 5.00". Stavo proprio pensando che mancava solo la promozione Internet Small quando un minuto dopo l'ultimo sms ne ricevo ancora un altro. Quest'ultimo dice: "Internet Small è attiva e sarà valida fino al 27/02/2011". Ho mandato un sms a un mio numero Vodafone per conoscere il numero della mia SIM dati (per scoprire il numero della propria SIM dati ho saputo in seguito che è possibile chiederlo a un operatore del 190, comunicando il numero di serie stampato sulla SIM dati). Sono quindi andato sul sito di Vodafone e ho registrato lì la mia SIM dati (facendomi mandare il codice per sbloccare, la prima volta, l'accesso dal sito alle informazioni sulla SIM dati). Ora posso controllare il traffico e le promozioni attive della scheda attraverso l'area "190 fai da te" del sito. Nella sezione "Servizi e promozioni" ho potuto verificare di persona lo stato della promozione "Internet small", che risulta attiva. Adesso posso navigare con la mia Internet key (K3765) anche quando sono lontano da casa. Spero di aver riportato informazioni utili per altri utenti alle prese con l'attivazione della SIM dati.

venerdì 26 novembre 2010

Informazioni sull'uso del file system

df (disk free) ci dice lo spazio disponibile e usato su ogni file system esistente nella partizione del disco. L'output del comando esprime di default le suddette quote in byte. E' preferibile eseguire il comando con l'opzione -h (human readble), che stampa il risultato applicando alle quote i seguenti prefissi: K per i kilobyte, M per i megabyte e G per i gigabyte.


Sul mio disco, come potete vedere, è presente un unica partizione (sda1), montata in / (la directory radice). Essa è grande 6.9GB, di cui 4.1GB usati e 2.5GB liberi (la partizione è impegnata per il 63% del totale).
Se siamo interessati allo spazio usato da una precisa cartella della partizione possiamo passare al comando il path che punta alla stessa. Ad esempio,ecco l'output del comando df -h /var/cache/:

giovedì 25 novembre 2010

Informazioni sull'uso della memoria ram

Con free possiamo sapere come viene usata la memoria ram sul nostro sistema operativo GNU/Linux. Il comando riporta di default i quantitativi di memoria in byte (opzione -b). Possiamo ottenere la stampa degli stessi quantitativi in megabyte se passiamo al comando l'opzione opzione -m, per i gigabyte usate l'opzione -g.
Il comando, inoltre, mostra i vari parziali di memoria (usati e liberi) relativi all'area di memoria sul disco dedicata allo swap e quella impiegata dal kernel. Il comando è in grado di aggiornare l'output ad ogni intervallo di tempo indicato, se viene combinato con l'opzione -s tempo, dove tempo esprime i secondi di aggiornamento.


Nell'immagine sopra la prima riga (Mem) si riferisce alla memoria ram sul mio sistema. Le colonne total, used e free indicano rispettivamente il quantitativo di memoria ram totale, usate e libera!
Il mio Aspire One 110L ha 512 MB di memoria ram, come mai il comando free -m me ne segna solo 485MB? Una quota della memoria ram totale viene condivisa con la scheda video (ed è usata per il kernel). Ecco perché il comando ci dice che disponiamo di un quantitativo di memoria inferiore alle specifiche dell'Aspire One.
L'ultima riga (Swap) indica l'utilizzo della partizione di swap, nel mio caso: la partizione di swap (di 540MB) è interamente libera. La riga più importante è a mio avviso quella centrale (buffers/cache), dove viene indicata la reale esigenza, in termini di memoria ram, del nostro sistema operativo. Provate, infatti, a sommare i due quantitativi. Fatto? Come potete ben notare la somma dei valori espressi in questa riga corrisponde al quantitativo di memoria ram (disponibile) totale. Pertanto, dei 485MB disponibili, 240MB risultano effettivamente impiegati mentre i restanti 245MB sono a disposizione di altri processi!

mercoledì 24 novembre 2010

Ricerche nei file di testo

Con il comando grep (general regular expression print) possiamo cercare parole all'interno di uno o più file di testo. Se siamo alla ricerca di una parola da modificare all'interno di un file di configurazione, il comando grep fa allora al caso nostro! Lo stesso comando, come vedremo fra un po, permette inoltre di filtrare l'output generato da altri comandi.
La sintassi usata dal comando è la seguente: grep opzioni pattern file, dove: opzioni indica al comando come cercare e stampare il testo trovato, pattern è la parola da cercare e può essere sia una semplice stringa che un'espressione regolare, file indica al comando il nome del file in cui cercare il testo, si può indicare uno o più file. Se il parametro file non viene specificato il comando effettuerà la ricerca sullo standard output.
Le opzioni usate da grep sono tante, mi occuperò di quelle che solitamente uso. Come sempre, un elenco più lungo e una descrizione assai più dettagliata su grep può essere letta accedendo alla pagina del manuale con il comando man grep.
Osservate l'output di questo comando grep Adamo "La divina commedia.txt":


Vengono stampate tutte le righe che contengono la parola Adamo nel file La divina commedia.txt! Se siamo interessati a conoscere il numero delle righe che contengono la parola cercata, occorre passare al comando l'opzione -n (number):


Per dire al comando di ignorare la differenza fra le lettere scritte in maiuscolo e minuscolo (che i sistemi operativi GNU/Linux applicano di default) si usa invece l'opzione -i (ignore):


Talvolta può essere utile, per individuare in seguito la parola all'interno del testo, stampare la riga che precede o segue la parola trovata. A tale proposito il comando prevede due utili opzioni: -B (before) per stampare la riga che precede la parola ed -A (after) per la riga successiva. Se usiamo queste due opzioni dobbiamo necessariamente indicare anche il numero di righe da stampare prima e dopo la riga contenente la parola trovata! Ecco ad esempio l'output del comando grep -ni -B1 -A1 ADAMO "La divina commedia.txt":


Con l'opzione -c (count) vengono invece conteggiate le parole cercate:


Se qualche vostro amico vi chiama da "Chi vuol essere milionario", per un aiuto da casa, ricordatevi di grep! Se non sappiamo bene in che file cercare possiamo dire almeno a grep di avviare una ricerca ricorsiva nei file che si trovano in una cartella del filesystem, l'opzione da usare è -r (recursive).
Il comando permette infine di descrivere il pattern con un'espressione regolare (opzione -E) o con una semplice stringa (opzione -F). Se stiamo cercando tutte le parole che iniziano per pattern meglio allora descrivere lo stesso con il tag \<. Per le parole che terminano con pattern usate il tag \>.
Come dicevo prima se non viene indicato il parametro file in cui cercare il testo il comando grep assume come input lo standard input. Quest'altro modo di usare grep è spesso associato all'uso di una pipe: con un comando generiamo nel terminale un output e con grep lo filtriamo, stampando le righe che ci interessano! Osservate questa immagine e capirete:


Il comando lsmod stampa l'elenco di tutti i moduli caricati nel kernel. Un elenco che a volte, a seconda della configurazione, può essere molto lungo.

martedì 23 novembre 2010

Cercare file e cartelle con find!

L'alternativa a locate (altro comando per la ricerca dei file) è il comando find. La ricerca avviene passando al comando il path della cartella in cui cercare e il nome del file o una sua descrizione (mediante espressione regolare, in tal caso va passato al comando l'argomento -regex).
Se non passiamo nessun path al comando la ricerca viene condotta all'interno della directory di lavoro e nelle sue sotto directory. Possiamo dire a find di attraversare al massimo n sotto directory se passiamo al comando l'opzione -maxdepht n (con n numero intero). Come dicevo poco fa la ricerca dei file continua in tutte le sotto directory, il comando di default non segue i link simboli a cartelle che man mano trova nel path assegnato per la ricerca (opzione -P, passata di default). L'opzione -L permette di fare il contrario. Che tipo di file stiamo cercando?
Se abbiamo le idee chiare possiamo dare al comando ulteriori informazioni sul tipo di file che stiamo cercando attraverso l'opzione -type char, dove char può essere: b (block) per un file di blocco, d (directory) per una cartella, f (file) per un file regolare ed l (link) per un collegamento. Per una lista completa delle opzioni del comando find consultare la pagina del manuale in linea (comando man find).
Possiamo anche indicare le dimensioni dei file da considerare, con l'opzione -size +n per dire al comando di considerare i file più grandi di n byte, -size -n per quelli più piccoli di n byte. Oppure -size -n se il file che stiamo cercando è esattamente n byte (che memoria, se ricordate la dimensione esatta del file!). Nello specifico, n rappresenta un numero ed è seguito da un prefisso: k per i kilobyte, M per i megabyte e G per i gigabyte. Ad esempio, l'opzione -size +5M sta a indicare tutti i file che, oltre a rispettare i vincoli sul nome, sono più grandi di 5 MB.
Il pattern per il nome da usare per la ricerca va passato con l'opzione -name (possiamo usare il carattere jolly, *). I file di un solo utente vanno invece cercati con l'opzione -user nome_utente. Con -ctime n facciamo capire al comando che siamo interessati a file creati o modificati negli ultimi n giorni! La lista delle opzioni che è possibile passare a find è davvero lunga, mi fermo qui.

lunedì 22 novembre 2010

Accorciamo i comandi con alias

Dopo aver scritto per un paio di volte un comando bello lungo la cosa migliore da fare, se useremo ancora questo comando, è rendere il comando in questione più breve da digitare. Un'operazione come questa può essere fatta con il comando alias!
Per creare un alias ad un comando basta rispettare la seguente sintassi: alias comando_breve='comando_lungo'. Molto spesso alcuni alias sono già definiti di default presso il nostro terminale che li memorizza nel file (nascosto) .bashrc, nella home dell'utente.
Non occorre, tuttavia, andare a leggere il contenuto di questo file per scoprire quali alias siano già definiti (nella maggior parte dei casi tratta di alias al comando ls). Per osservare l'elenco degli alias basta digitare l'omonimo comando alias:


Nell'esempio che segue creo l'alias dovesono al comando pwd (non proprio utile ma almeno rende l'idea di cosa può fare alias). La sintassi usata per questo esempio è stata la seguente: alias dovesono='pwd'. Sicuro dell'inutilità dell'alias appena creato ho allora cancellato quest'ultimo con il comando unalias nome_alias.

sabato 20 novembre 2010

Cercare file e cartelle con locate!

Per la ricerca di file e cartelle sul file system del nostro sistema operativo GNU/Linux disponiamo solitamente di più comandi. Uno di questi è il comando locate che, come è riportato nella pagina del manuale in linea, effettua una ricerca basandosi sul nome passato al comando come argomento (tale parametro può anche rappresentare un'espressione regolare - in tal caso la stringa va preceduta dall'opzione --regex). La sintassi da usare è la seguente: locate PATTERN.
L'output generato dal comando prevede una voce per ogni nome di file o cartella che corrisponde al PATTERN passato al comando (il comando ritorna il path assoluto al file). Lo stesso pattern può essere interpretato dal comando come base per tutti i possibili nomi che con esso si possono formare, in tal caso occorre passare al comando l'opzione -b (base name). Pertanto, il comando locate -b PATTERN trova tutti i file il cui nome coincide con PATTERN (se esiste trova, ad esempio, anche il file PATTERNS). Se il nome passato al comando va invece cercato per intero, così com'è, senza indagare su possibili varianti, occorre allora passare al comando l'opzione -w (wholename). Quindi, il comando locate -w PATTERN trova tutti i file il cui nome è PATTERN. Se siamo interessati al conteggio dei file trovati l'opzione da usare è -c (count), mentre -i (ignore case) trascura i caratteri scritti in maiuscolo e/o minuscolo nel pattern. Che ne dite di provare?


Mmm... sembra non funzionare. Pur avendo appena creato quei file! In verità il comando locate non si mette a ispezionare tutto il disco alla ricerca dei file! La ricerca viene condotta su un database locale che raccoglie i nomi di file e cartelle. In questo modo la ricerca non tiene impegnato l'hard disk per il tempo che solitamente siamo abituati ad aspettare. La ricerca con locate è davvero veloce. In questo caso però quei file non sembrano esistere. Com'è possibile?
La risposta è davvero molto semplice. Se il comando cerca il pattern in un database è evidente che quest'ultimo, dopo la creazione di nuovi file, non risulta allineato effettivamente al nostro file system. Bisogna aggiornare il database dei nomi. Come? Con il comando sudo updatedb (eseguibile solo da root). Ecco allora il secondo tentativo:


Dopo aver aggiornato il database dei nomi la ricerca con locate torna effettivamente il path dei file cercati! Il problema, adesso, sembra essere un altro. Il file new_file2.txt, pur essendo stato cancellato (osservate i comandi nell'immagine) continua ad essere mostrato nell'output di locate! Anche in questo caso il database dei nomi non era aggiornato. Pertanto, meglio aggiornarlo prima di ogni ricerca con updatedb.
Possiamo tuttavia istruire il comando locate alla verifica dei file che trova nel database. Basta passare l'opzione -e (existing), verranno mostrati i file ancora esistenti sul file system:


La ricerca effettuata con locate ritorna solo i file accessibili all'utente che invoca il comando. Pertanto, se un file non risulta essere presente, pur avendo aggiornato il database dei nomi, non dimenticate di provare la stessa ricerca con i privilegi del super utente.
Come dicevo poco fa il comando locate è veloce. Considerate, tuttavia, prima di ogni ricerca, il tempo necessario al vostro hardware per aggiornare il database dei nomi! Quanto mi costa tutto questo in termini di spazio sull'hard disk? Direi poco. La dimensione in byte del database dei nomi può essere vista con il comando locate -S (stats):


Nel mio caso, 3910909 bytes. Ovvero, circa 3.72 MB, nemmeno troppi.

venerdì 19 novembre 2010

Pidgin: impossibile validare il certificato (omega.contacts.msn.com)

Da un paio di giorni Pidgin ha problemi con il certificato omega.contacts.msn.com:


Dopo aver avviato il client il login non sempre riesce e all'utente viene mostrato un messaggio come quello sopra. Una soluzione temporanea (non saprei dire se definitiva) consiste nella sostituzione di tale certificato che, su sistemi operativi GNU/Linux, si trova nella cartella .purple/certificates/x509/tls_peers (nascosta nella home dell'utente). Per modificare il certificato in questione aprite una scheda del vostro browser sulla pagina https://omega.contacts.msn.com, visualizzerete una pagina come questa:


Il nostro obiettivo è l'esportazione del certificato rilasciato dalla pagina appena visitata! Le immagini che seguono mostrano come ottenere una copia di tale certificato con Chromium. Un'operazione come questa può essere fatta con qualsiasi browser, in molti casi cliccando sull'indirizzo o sull'icona del protocollo di rete usato per il link (quella, cioè, a sinistra dell'indirizzo). Infatti, con Chromium fate quanto appena detto:


Quindi cliccate su "Informazioni certificato":


Nella finestra aperta cliccate sul bottone "Esporta" e salvate il certificato in una cartella del vostro file system. Date al file questo nome: omega.contacts.msn.com.


Ora dobbiamo spostare il file appena salvato nella cartella per i certificati usata da Pidgin. Attenzione, all'interno della stessa cartella esiste già un certificato con nome omega.contacs.msn.com. Le istruzioni che vi propongo effettuano prima una copia del vecchio certificato e successivamente procedono alla copia di quello nuovo. Con la directory di lavoro posizionata nella vostra home digitate il comando cd .purple/certificates/x509/tls_peers/ (per spostarvi nella cartella con i certificati) e rinominate il certificato con mv omega.contacts.msn.com omega.contacts.msn.com.old. Tornate alla vostra home, o nella cartella che contiene il file scaricato, e copiate il certificato con il comando cp omega.contacts.msn.com .purple/certificates/x509/tls_peers/.


Possiamo riavviare Pidgin, che adesso dovrebbe funzionare:


Come dicevo in precedenza non so dirvi se questa soluzione è definitiva. Il problema sta nella gestione dei certificati, che adesso Pidgin non riesce più a validare. Con altri client questo problema non viene al momento riscontrato.

Aggiornamento: è stata rilasciata una nuova versione di Pidgin che corregge l'errore descritto in questo articolo. Trovate qui le istruzioni per procedere all'installazione.

giovedì 18 novembre 2010

Storie di comandi

No, tranquilli. Non intendo raccontarvi una storiella. Il titolo dato all'articolo è un po ironico ma è davvero azzeccato al trucco che sto per raccontarvi. Al di la dell'uso che un utente ha con la finestra del terminale può sicuramente capitare di dover digitare un comando già scritto in passato, magari anche bello lungo. Non sempre la memoria, poi, ci aiuta a ricordare per filo e per segno tutte le opzioni e i paramatri passati al comando. Uno scenario che, viste le cose, ci vede proiettati alla ricerca nella rete del comando trovato proprio l'altro giorno! Ma perché non me lo sono scritto, sento dire a volte.
Nessun problema, il terminale lo fa già per noi! Davvero. Ogni comando che scriviamo nella finestra del terminale finisce in un file (nascosto) che solitamente risiede nella home dell'utente, si tratta del file .bash_history (il punto davanti al nome del file indica che si tratta di un file nascosto e che, pertanto, non figura mai negli elenchi forniti dal semplice comando ls). Potete verificarne l'esistenza se e solo se decidete di passare ad ls l'opzione -a (all, per la stampa di tutti i file).
Possiamo leggere il file in questione con less .bash_history o cat .bash_history e sfogliare la lista di comandi alla ricerca di quello che ci occorre. Non proprio elegante come soluzione ma comunque utile.
Anziché usare questi due comandi per leggere il file .bash_history vi suggerisco di usare il comando history che stampa sul video l'elenco dei comandi da noi digitati (senza passare al comando il nome del file). history, inoltre, stampa ad inizio riga, prima del comando, un numero sequenziale. Fra un po apprezzeremo il suo modo di stampare l'elenco dei comandi.


Anche con history continuiamo a ricevere un elenco di comandi più o meno lungo. Se siamo interessati a scorrere l'elenco pagina per pagina meglio allora usare una pipe e digitare il comando history | more. Oppure history | less, se vogliamo invece scorrere l'elenco verso il basso ed eventualmente risalire verso l'alto.


Se sfogliando l'elenco dei comandi individuate il comando che avevate dimenticato (o che per pigrizia non volete digitare) potete invocarne l'esecuzione attraverso il numero sequenziale che precede il comando, basta scrivere !NUMERO_COMANDO. Attenzione, inutile ricordare il numero che identifica il comando, quest'ultimo infatti cambia ad ogni nuovo comando scritto.
Se nemmeno questa soluzione vi soddisfa possiamo ancora fare di meglio! Possiamo dire al terminale di eseguire di nuovo uno degli ultimi comandi con !COMANDO. Ad esempio, il comando !tar dice alla shell di cercare nel file .bash_history l'ultimo comando tar presente nella lista e di eseguirlo nuovamente!

mercoledì 17 novembre 2010

Pipe: l'output diventa input

Due comandi possono essere collegati attraverso il simbolo |, ricordato anche con il nome di pipe (tubatura). L'output generato dal primo comando diventa l'input per il successivo comando. Attraverso l'uso di una pipe possiamo ad esempio spezzare l'output generato da ls (che in alcuni casi può essere lungo) e usarlo come input per il comando more (che ne mostra l'output una pagina alla volta).


Ogni singola azione realizzata da un singolo comando può adesso essere combinata con l'azione di un altro comando!

martedì 16 novembre 2010

Aggiungere altro output (di un comando) a un file di testo

Con il simbolo > possiamo direzionare l'output di un comando su un file di testo. Il file usato per la scrittura dell'output viene inoltre sovrascritto oppure creato (nel caso in cui, all'interno della directory di lavoro, non esiste nessun file con il nome dato).
Il simbolo >> ci permette invece di accodare l'output di un comando al file da usare per la scrittura dello stesso! Anche in questo caso, se nella directory di lavoro non esiste nessun file con il nome dato quest'ultimo viene allora creato.

lunedì 15 novembre 2010

Output di un comando su file

Per un sistema operativo GNU/Linux esistono tre flussi dedicati all'input e all'output: standard input (stdin), standard output (stdout) e standard error (stderr). La tastiera collegata al nostro computer costituisce di default lo standard input per il sistema operativo. Il terminale mostrato sul video, invece, è di default sia lo standard output che standard error.
L'esecuzione di un comando nella finestra del terminale provoca la stampa su video dell'esito generato da quest'ultimo. Per scrivere l'output di un comando su un file usate il carattere > e seguite questa sintassi: comando > nome_file.txt, dopo un po (dipende dalla complessità del comando) ci verrà restituito il prompt e un nuovo file con l'output del comando verrà creato nella directory di lavoro!


Nell'immagine mostrata sopra ho direzionato l'output del comando ls nel file elenco_file.txt poi aperto con mousepad (un semplice editor di testi). Quando direzionate l'output di un comando su un file prestate sempre attenzione al nome del file da usare per la scrittura. Se il file non esiste viene allora creato un nuovo file, se il file esiste ne sovrascriviamo il contenuto!

sabato 13 novembre 2010

Caricabatterie usb

Molti dispositivi in commercio sono dotati di una porta seriale usb per lo scambio dei dati con il PC e per ricaricare la batteria interna che ne alimenta i circuiti. Gli stessi dispositivi sono da tempo presenti nella nostra borsa ogni volta che ci allontaniamo da casa. Palmari, telefoni cellulari, lettori mp3 ed mp4 etc... Allontanarsi da casa significa in molti casi restare lontani da una presa elettrica, come se la cava il nostro dispositivo? Dopo quanto tempo ci abbandona?
Vi propongo un caricabatterie usb da viaggio, l'idea è molto semplice: alimentare una porta usb con i 5V che solitamente riceve in altri modi dal PC di casa. Una soluzione semplice ed economica prevede l'uso di un regolatore di tensione, l'LM8705 (gli ultimi due numeri della serie LM78XX indicano il valore della tensione in uscita!). Ecco lo schema (disegnato con qucs) da me seguito (se ne trovano infiniti in rete):


e la lista della spesa:
  • regolatore di tensione LM7805;
  • porta usb;
  • condensatore da 100uF;
  • condensatore da 0.1uF;
  • resistore da 150 Ohm;
  • led (scegliete voi il colore);
  • switch per l'accensione (opzionale);
  • contenitore (quelle delle caramelle sono molto usati);
Cercate di realizzare il circuito disponendo i pezzi (eventualmente su una scheda forata) in un area più piccola possibile. Questo è il circuito da me costruito:


Nell'immagine di sopra ho cerchiato i fili destinati al trasferimento dei dati. Purtroppo alcuni dispositivi pur ricevendo la giusta alimentazione dalla porta usb non avviano il processo di carica se sulla linea dati non rilevano una determinata resistenza! Pertanto, se il vostro dispositivo non viene caricato cercate in questa direzione (solitamente basta aggiungere lì un resistore).
Molti circuiti in rete sono simili a quello da me seguito, la versione base di questo semplice caricabatterie prevede l'uso del solo regolatore di tensione! La presenza dei due condensatori è tuttavia necessaria se non vogliamo distruggere lo stesso regolatore di tensione (infatti C1>C2) e per livellare la tensione in uscita.
Qualche calcolo con i valori presi dal datasheet dell'LM8705 (Vout=5V): la tensione minima in ingresso è (VinputMin) di 7V, quella massima (VinputMax) di 20V. La corrente minima in uscita dal circuito è (IoutputMin) di 10mA, quella massima (IoutputMax) di 1000mA (1A). Pertanto, la potenza massima dissipata dal regolatore è (PdMax=(VinputMax-Vout)/IoutputMax) 15W, meglio non sforzare il circuito oltre questo valore!





venerdì 12 novembre 2010

Come eseguire più comandi?

Ok, adesso metto il computer a lavorare su dei file e vado a fuori a fumarmi una sigaretta! Oppure, per chi non fuma, adesso è il momento di prendere un bel caffè! Quante volte avete pensato in questo modo?
Possiamo guadagnare tempo facendo eseguire istruzioni al terminale anche in nostra assenza! Basta elencare i comandi sulla stessa riga, separandoli con il carattere ;. Ecco subito un esempio:


I comandi verranno eseguiti in maniera indipendente dall'esito dell'ultimo comando, nella stessa sequenza con cui essi sono stati scritti. Quest'ultima cosa non va affatto trascurata! L'esecuzione di un comando potrebbe infatti essere legata al precedente comando.
Meglio, allora, separare i comandi dai caratteri && che verranno adesso eseguiti se e solo se il precedente comando è terminato con esito positivo. In questo caso, se un comando non viene portato a termine viene interrotta l'intera sequenza di comandi impartiti!


Come si può notare nell'immagine sopra i comandi vengono effettivamente eseguiti. Dopo l'estrazione del file compresso si procede alla sua cancellazione (la stessa operazione verrà invece interrotta in caso di problemi, durante il precedente comando per l'estrazione).
Se invece separiamo due comandi con i simboli || verrà eseguito l'ultimo comando se e soltanto se il precedente comando ha dato esito negativo. Ad esempio, nell'unico comando comando1 || comando2, il secondo comando verrà eseguito solo se il primo non termina con successo.