Sapere Senza Frontiere

Qualche giorno fa mi è tornato alla mente, per un curioso scherzo dei miei neuroni, un libro bellissimo che ho letto numerose volte da piccolo, e che rientra nel ristretto numero di cose che hanno influenzato la mia esistenza. Si trattava di un bellissimo libro a fumetti dal titolo “Cosa Pensano i Robot”, e raccontava, attraverso una serie di siparietti comici, come il protagonista riusciva a trasformare un pò alla volta il suo aspirapolvere in un robot sempre più sofisticato, descrivendo di volta in volta le problematiche affrontate e le soluzioni tecnologiche; il tutto con piglio umoristico e con un linguaggio molto semplice, nonostante la complessità delle tematiche affrontate.

cosapensanoirobot

Se desiderate traviare vostro figlio al punto di farlo crescere ingegnere, vi consiglio di lasciarlo frequentare biblioteche che posseggano una copia di questo libro. Ma adesso viene il bello: cercando per la rete, ho scoperto che il libro è ora liberamente scaricabile! Per l’esattezza, il libro (insieme ad altri dello stesso autore, di cui ignoravo l’esistenza e ora sto leggendo) è messo a libera diposizione (con tanto di traduzioni in numerose lingue) da un’associazione no profit francese, la “Savoir Sans Frontieres“; uno dei membri dell’associazione tra l’altro è proprio l’autore del libro stesso che ha donato i diritti sulle sue opere al nobile fine di diffondere e donare la conoscenza (cosa che ogni buon ingegnere dovrebbe fare).

Bando alla ciance, qui potete trovare i libri in italiano. Buona lettura!

strategiaprovaerrore

Nascondere un portatile in macchina? Pessima idea!

Eh si, proprio una pessima idea. Lo ho scoperto leggendo questo interessantissimo articolo su lastknight.com (sito che nn conoscevo, ma da oggi entra di diritto tra i 50 feed rss che tengo guardati :-) ). Secondo lo scenario presentato dall’autore dell’articolo citato, è perfettamente umano trovarsi “obbligati” a mollare il computer in macchina, magari per uscire a bere una birra dopo una pesante giornata di lavoro in ufficio. Ed è più che comprensibile pensare di nasconderlo in un posto “che se anche mi aprono la macchina non me lo trovano”, come sotto il sedile del guidatore o nel baule. E sentirsi al sicuro.

Poi torniamo alla macchina e scopriamo che, tra mille bmw e audi, solo la nostra è stata aperta, e il portatile è scomparso. Immagino il dolore, la sofferenza e le bestemmie in aramaico antico (perchè c’è più gusto a bestemmiare nella lingua del signore, come direbbe un mio caro amico). Com’è possibile? Sfiga o volere divino avverso?

Premetto che in vita mia MAI mi sono sognato di lasciare un computer incustodito in macchina, anche solo per poche ore. Memore di un’esperienza in cui è bastata mezz’ora a fare evaporare la mia cara autoradio nonchè conscio del fatto che la legge di Murphy stabilisce che se lo avessi fatto proprio quel giorno mi avrebbero aperto l’auto, e dato che la sfiga esiste e la macchina è nuova non ho voluto correre rischi.

Ma a quanto pare oltre alla sfiga adesso esiste qualcosa di più oggettivo e tecnologico, sotto forma dell’acronimo NLJD, che sta per “non linear junction detector”; in parole povere si tratta di emettere un segnale rf ad alta frequenza, il quale, se incontra delle particolari giunzioni (come quelle presente nell’hardware di moderne apparecchiature elettroniche come portatili o gps) ne viene in qualche modo alterato; rilevando questa alterazione è possibile stabilire che nel raggio d’azione dell’apparecchio c’è un qualche succoso prodotto della moderna tecnologia, anche se quest’ultimo è spento e magari anche senza batteria.

Quindi state in guardia! Immagino non sia affatto improbabile lo scenario in cui un malfattore si aggira in un grosso parcheggio alla ricerca di computer da rivendere con un aggeggio come questo, e ora c’è la certezza che se il computer c’è lui lo troverà.. quindi non siamo più al sicuro. Fate come me: i vostri preziosi giocattoli lasciateli a casa o teneteli sempre addosso in una tasca o borsa.. al momento è l’unico posto sufficientemente sicuro per loro.

Natale: the day after

E anche quest’anno Natale è passato. Non è stato nulla di eccezionale: non ha nevicato e io odio ancora mio fratello. Però tutto sommato è stato un bel momento passato in famiglia, nonchè il momento per tirare un pò le somme di questo anno che sta per chiudersi.

Come regalo (indispensabile nel mio Natale consumistico) mi sono fatto uno zainetto nuovo per il computer (quello vecchio si è rivelato più delicato del previsto e molto meno capiente del dovuto); inoltre mi hanno regalato un aggeggio che da tanto tempo desideravo: il sintonizzatore ibrido per il mac (WinTV-HVR900), in poche parole un aggeggio usb che mi permette di ricevere la tv analogica e il digitale terrestre, sia utilizzando una piccola antenna portatile sia collegando il cavo dell’antenna di casa. Una figata! L’ho subito provato, con il software in dotazione (EyeTV Lite) e i risultati sono eccezionali.. Non vedo l’ora di provarlo a brescia (qui il digitale terrestre arranca un pò).

eyetv screenshot

Finalmente basta inutili liti per vedere Dr. House quando qualche inutile in appartamento deve guardarsi un’ancora più inutile partita di pallone!

Host gratuito

Mi unisco al coro del mio amico picci

http://polpoinodroidi.netsons.org/index.php/2007/12/14/hosting-gratuito/

nel pubblicizzare questo ottimo servizio di hosting gratuito. La versione free mette a disposizione qualunque cosa un webmaster amatoriale possa desiderare (cito brevemente php, mysql5, 150 mega di spazio, phpmyadmin, …) e la versione a pagamento non costa poi molto (5 euro/anno) e offre davvero l’inverosimile.

Per ora ci sto giocherellando con una copia del mio blog (piccimario.netsons.org), chissà che un giorno non decida di passarci definitivamente.. vedremo.. cmq un’ottima scelta.

Creare applicazioni .app con Platypus

Come noi mac user sappiamo, il formato base per un’applicazione mac è l’archivio con estensione .app… la comodità e ordinatezza (no, non credo che questa parola esista, ma rende l’idea) alla base di MacOS fa in modo che tale applicazione assomigli in tutto e per tutto a un file, sul quale basta doppiocliccare per avviarlo, mentre in realtà si tratta di una vera e propria cartella, con una struttura standard che contiene in primo luogo il file eseguibile vero e proprio, e in più tutti i dati di cui ha bisogno (l’immagine di icona, per esempio).

In particolare, le applicazioni hanno una grossa comodità, fondamentale per un mac user ormai avvezzo all’interfaccia grafica: si possono piazzare sul desktop e raggiungere in un battibaleno, qualunque cosa si stia facendo. Tale comodità per esempio manca da morire a un ex utente linux che è abituato a risolvere problemi enormi a colpi di bash. Stessa cosa può dirsi per altri linguaggi di scripting quali perl, python e altri ancora. Risulta infatti impossibile piazzare tali script sul desktop e sperare di avviarli con un doppioclick.. sarà invece necessario aprire un terminale e lanciarli usandone il nome (con il path, ovviamente, non saranno mica tutti nella home!), in alcuni casi preceduto dal nome dell’interprete… scomodo, eh?

Qui entra in gioco Platypus, un comodissimo programma opensource (come piace a me) a cui possiamo dare in pasto files di bash, Perl, Python, PHP, Ruby, Expect, Tcl, AppleScript, e lui ci darà in cambio un comodissimo .app con la sua bella icona, pronto per essere messo sul desktop e cliccato ad ogni necessità.

L’uso del programma è facilissimo. Mettiamo caso di voler avere a portata di mano uno script di bash (ad esempio per montare una condivisione remota senza passare per il terminale). Una volta avviato Platypus, sarà subito possibile inserire il nome della nuova applicazione e selezionare il tipo di contenuto (nel mio caso “Shell”). Nel campo “script path” potrò andare a inserire il nome del file contenente lo script, oppure se non l’ho preparato a priori posso premere il pulsante “new” e avrò a disposizione un comodo editor di testo per crearlo al volo. Un click di pulsante destro sull’icona nella parte sinistra della finestra permetterà di inserire una bella icona personalizzata nella mia nuova applicazione (ne ho trovate di fantastiche qui). Per concludere, posso scegliere il tipo di output del mio programma: posso cioè scegliere se il programma non aprirà alcuna finestra (ma si limiterà a farsi gli affari suoi senza dire nulla a nessuno), oppure mostrare una progress bar che mostra l’avanzamento dello script, o infine mostrare una finestra di testo contenente l’output dello script.

A questo punto potremmo anche accontentarci, ma Platypus non si limita a queste funzioni base: il power user è libero di esplorare la sezione di UI che appare premendo “Show advanced options”: a partire da lì è possibile inserire nell’applicazione files di supporto, impostare parametri come il path dell’interprete da utilizzare, ed eseguire un tuning un tantino più complesso di tutto quanto (ad esempio, si può attivare il supporto al drag&drop, in modo che lo script potrà agire su qualunque file io lasci cadere sulla sua icona).  Questo e molto altro ancora.

A questo punto è sufficiente premere il pulsante “Create Application”, selezionare il nome file della nuova applicazione e voilà, il gioco è fatto. Il mio script è ora una comoda applicazione cliccabile. Un modesto guadagno, diranno i puristi, ma in fin dei conti abbiamo in mano un sistema fatto per essere comodo, che senso ha non sfruttarne al pieno le potenzialità? Lasciamo la riga di comando a task più complessi!

GPG da riga di comando

Nel mio precedente post, cui vi rimando per le istruzioni di installazione, ho spiegato come fosse possibile comunicare mediante email cifrate con gpg utilizzando Apple Mail. Però è ovvio che il fantastico e indistruttibile algoritmo di crittatura pgp non sia limitato all’uso della posta elettronica, ma si possa estendere al fine di cifrare qualunque file. Se voglio che un determinato file possa essere letto solo da una persona, da più persone o magari solo da me (come un elenco di password, mai una buona idea ma spesso necessario per non impazzire dietro a milioni di username e password differenti), la maniera più sicura di fare ciò è darlo in pasto a gpg insieme alla chiave pubblica di ciascuno dei destinatari autorizzati. Benchè sicuramente esistano comodi frontend grafici per fare questo, è talmente facile farlo da riga di comando che consiglio a tutti quest’ultimo approccio: dopotutto saper usare la riga di comando è sempre cosa buona e giusta.

Supponiamo che io abbia un file denominato “secret.c” che contiene il codice PIC-C del mio progetto di tesi. Supponiamo ora che io debba passarlo via chiavetta USB a un mio professore, magari perchè sono in laboratorio e non ho accesso alla rete per potergli mandare una mail. E supponiamo che il professore abbia mandato da me con la sua chiavetta il suo malvagio assistente, che da mesi brama di posare le sue losche mani sul mio bellissimo codice. Naturalmente non sarò felicissimo di limitarmi a copiare tale codice sulla chiavetta e darla in mano al pericoloso individuo, voglio essere certo che solo il destinatario possa leggere il file. Soluzione: posso cifrare il file con la chiave pubblica del destinatario:

gpg -o nomefilecifrato -r professore@ing.unibs.it -e secret.c

-e sta per “encrypt”, -r sta per “recipient” (destinatario), -o sta per “output file”

In questo modo ho creato un file cifrato (se non specifico l’opzione “-o” avrà il nome di default “secret.c.gpg”) che potrà essere aperto solo dal destinatario selezionato. Volendo avrei potuto inserire più destinatari ripetendo più volte l’opzione “-r” seguita dall’indirizzo corrispondente. In effetti, avrei anche potuto trascurare di indicare i destinatari da riga di comando, e in tal caso ci avrebbe pensato il programma a chiedermi di inserirli.

Il destinatario, una volta ricevuto il file cifrato, dovrà semplicemente eseguire il comando:

gpg -o nomefileinchiaro -d nomefilecifrato

-d sta per “decrypt”

per riottenere il contenuto del file ricevuto trascritto in chiaro nel file “nomefileinchiaro”.

Come vedete con gpg la cifratura di messaggi è semplicissima. E se tutti cominciassimo a preoccuparci un pò di più della sicurezza dei dati con cui abbiamo a che fare tutti i giorni, probabilmente il mondo sarebbe un posto più sicuro e sereno. Con questo spero di essermi spiegato bene e in modo chiaro, se avete qualche dubbio non esitate a contattarmi e provvederò a correggere errori o a scrivere spiegazioni più dettagliate su argomenti che fossero risultati oscuri.. Saluti&baci!

GPG su Apple Mail

Inizio a scrivere cose che presumo possano essere useful sul mio blog raccontando com’è possibile aggiungere a Apple Mail un optional che i power user (e anche i medium user come me) usano o perlomeno dovrebbero usare più spesso: GPG (ovvero l’implementazione GNU di PGP) per crittare o anche solo firmare la posta elettronica con Mail. A che serve tutto ciò? Gpg è un sistema di crittatura a chiave pubblica, ovvero un metodo che prevede l’uso di 2 chiavi; i dati cifrati con una chiave possono essere decifrati solo con l’altra. Per questo motivo una chiave si chiama privata (la mia ce l’ho solo io e la custodisco gelosamente) e l’altra è pubblica (ovvero devo diffonderla il più possibile). Se qualcuno vuole mandarmi una mail riservata, la cifra con la mia chiave pubblica (disponibile in rete), e sarà sicuro che solo con la mia corrispondente chiave privata sarò in grado di leggere il contenuto della mail. Fiko, no? Inoltre è possibile firmare le mail, pur senza cifrarle; questo serve a impedire che qualcuno possa modificare il contenuto della mail in transito. Non mi dilungo ulteriormente, anche perchè non sono un esperto nel campo. Ulteriori informazioni utili le potete trovare qui.

Iniziamo dunque con l’installazione del supporto GPG a Mail. Il primo passo è installare GPG vero e proprio.  Andiamo a questa pagina e scarichiamo “Gnu Privacy Guard”. Apriamo il dmg ed eseguiamo l’mpkg che si occuperà di tutto. Una volta fatto ciò, dallo stesso sito scarichiamo anche il “GPG keychain access”, un piccolo frontend grafico che ci aiuterà a svolgere operazioni che altrimenti avremmo potuto fare comodamente da riga di comando, ma visto che c’è tanto vale approfittarne e stare comodo :-) .

A questo punto per usare gpg non ci resta che creare la nostra coppia di chiavi, pubblica e privata. Apriamo dunque il “keychain access” e premiamo il pulsante “new”. Rispondiamo a qualche domanda (se non sappiamo cosa stiamo facendo perchè non ci siamo letti un buon manuale di gpg, cospargiamoci il capo di cenere, incidiamoci sulla fronte con un temperino la scritta RTFM e poi accettiamo i valori di default), e come per magia il nostro keychain contiene la nostra coppia di chiavi. Già che ci siamo, preoccupiamoci di pubblicizzare la nostra chiave pubblica: selezioniamola e dal menu “key” scegliamo la voce “send to keyserver”: la nostra chiave pubblica è ora su un server pubblico, dalla quale chiunque la vorrà potrà scaricarla. Altro passo importante è procurarci le chiavi pubbliche delle persone con cui vogliamo interagire. Per fare ciò è sufficiente selezionare dal menu “key” la voce “search for key” e inserire il parametro di ricerca, tipicamente la mail del destinatario. Le chiavi pubbliche trovate in questo modo saranno aggiunte al nostro portachiavi.

Passiamo alla fase successiva: installare il supporto a gpg in Mail. Per prima cosa scarichiamo il comodo plugin da questo sito. Teniamo presente fin da subito che questa versione non supporta Leopard, e al momento in cui scrivo l’autore sta ancora lavorando al porting. Scarichiamo l’ultima versione e installiamo.

A questo punto come per magia Apple Mail ha il supporto GPG: creando una nuova mail si ha a disposizione una piccola barra aggiuntiva che permette di selezionare una chiave per crittare/firmare la mail (con la chiave pubblica del destinatario, ovviamente). L’uso è talmente intuitivo che non sto lì neanche a spiegarlo, lascio alla vostra voglia di sperimentare. Se avete qualche dubbio o correzione scrivetemi. Quando mi verrà voglia provvederò a postare l’utilizzo di gpg come sistema per cifrare da riga di comando qualunque file.

QoS un bel paio di palle

Oggi ho fatto delle cose interessanti.. pubblicherei delle foto al riguardo, ma sfortunatamente in questo paese senza legge nessuno sembra in grado di costringere Libero a fornire il servizio per cui ho pagato con una qualità sufficiente a navigare in modo decente.. quindi libero può anche succhiarmi il *****, e le foto le posto domani da Brescia.. almeno lì la rete funziona.. sayonara