sabato 22 novembre 2008

Pirata informatico

Ecco la mail di un anonimo lettore apparsa sul numero 3114 di punto informatico. La riporto nella sua interezza per chiarire il significato di quella figura umana chiamata al giorno d'oggi pirata informatico. A voi le riflessioni.

"Scarico, da sempre, sempre. Dagli anni 70, quando scaricavo ore di musica dalla radio su tantissime cassette numerate e ben catalogate. Ho scaricato intere discografie al Liceo, da compagni di scuola che mettevano a disposizione chi Branduardi, chi De Andrè. Tutto finiva su cassetta, ma le cose importanti anche su bobine di un mitico Revox. Migliore qualità, se possibile, anche allora.

Ho scaricato centinaia di film dalla Televisione, soprattutto quando le cose migliori le trasmettono ad ore impossibili ed il videoregistratore diventò per chi ama il cinema uno strumento indispensabile per crearsi un piccolo archivio di chicche da rivedere con gli amici o in solitaria passione notturna.
Poi le tecnologie sono cambiate, e la radio ho cominciato a scaricarla nel computer, su file da masterizzare e conservare. Anche i vecchi vinili sono finiti riscaricati su CD, per far spazio e per garantirne un ascolto anche quando i giradischi non si troveranno più.

Scarico, e scaricherò, ed ho sempre continuato a comprare dischi, cd, film e ad andare al cinema e a concerti, perché mai dovrei sostituire un piacere con un altro se posso averli entrambi? Non mi sono mai sentito un ladro, ho letto tanti interventi su questo ed altri siti, ho visto centinaia di spot come tutti, anche se trovo demenziale il fatto che gli avvisi anti-pirateria li facciano al cinema e sui dvd originali, e li vedo quindi soltanto quando compro e pago, ma non ci sono mica sulle versioni piratate dei film. Ovviamente.

Le tecnologie son cambiate di nuovo, e oggi basta entrare in un grande centro commerciale per capire che c'è banda per tutti (o quasi), hard disk multimediali da collegare alla TV, e infiniti supporti mobili e non per gestire musica, e film. MP3 non è certo sinonimo di pirateria, ma se le statistiche parlano chiaro sui milioni di iPod e simili nelle tasche di milioni di appassionati non ci sono certo soltanto i brani acquistati on line.

Ora, come allora, scarico per me solo, senza guadagnare nulla e senza per questo modificare il solito, piccolo budget nella mia spesa mensile dedicata al divertimento e agli hobby. Una piccola parte di un modesto stipendio da operaio imbollinato a mille euro al mese.

Non sono un economista, ma cerco di spiegarmi: ho sempre speso il 10 per cento del mio stipendio per cinema, dischi, e svago in generale. Sia quando guadagnavo un milione al mese, che quando ne guadagnavo di più. Da minorenne non era proprio un decimo della paghetta ad essere sacrificato ma molto di più, ma si sa da giovani si fa qualche eccezione. In ogni caso la spesa era quella, prefissata, con un limite.

In casa, nel frattempo, scaricavo dal 1975 in poi, nei modi appena descritti. Oggi ho la parete dei VHS, quella dei CD, un po di vinili non ancora riversati, e tanti hard disk con musica e film collegati allo stereo e al televisore. Per me solo, privato piacere.

In che modo avrei danneggiato l'industria del disco, e del cinema, se comunque più di quel 10% non ho mai voluto e potuto spendere? Come si fa a calcolare un mancato guadagno? Se dovessi pagare tutti i film che vedo (o che registro, o che scarico da chi li registra, che differenza fa?) avrei bisogno di ben altri stipendi, ma il mio lo faccio pagando già equo compenso sui supporti, canone televisivo, maggiorazioni su tutti gli strumenti di masterizzazione e registrazione.

A volte penso all'Industria e so che l'Amo, perchè sforna capolavori e anche altre cose meno gustose ma sempre godibili. L'amo perchè la sostengo in tanti modi, l'amo perchè catalogo e curo i suoi prodotti e me lo godo, e li compro quando meritano.

Ma se io l'amo tanto, perchè l'Industria è sempre così arrabbiata con me?
Più di tanto non posso dargli, ma il mio amore è sincero.

Facciamo pace, perchè al mio archivio non voglio rinunciare e siamo troppo adulti entrambi per scene pietose come la restituzione dei regali dopo una litigata.

Ricominciamo il rapporto in un modo nuovo se vuoi, ma nel frattempo non trattarmi come un malandrino: esisti anche grazie a me, e se io sparisco tu sparisci.

E questo non è bello per nessuno dei due, tesoro.

Anonimo scaricatore"

martedì 30 settembre 2008

Spostare Drupal da un host ad un altro

La procedura consiste in quattro passi:

  1. Spostare la directory drupal
  2. Esportare il database di drupal su un file
  3. Importare il database di drupal sulla nuova macchina
  4. Aggiornare il file sites/nome_sito/settings.php
Assumendo di lavorare con mysql e che il nome del database è 'drupal', così lo esportiamo:

mysqldump --add-drop-table -u mysqlusername -p drupal > drupal.sql
dove mysqlusername è l'utente che state utilizzando per l'accesso al DBMS.

Una volta copiato il file sulla nuova macchina, per l'importazione è sufficiente il seguente comando:

mysql -u mysqlusername -p drupal < drupal.sql
Se invece lavoriamo da remoto, ci occorre specificare l'indirizzo dell'host attraverso il parametro -h host, in entrambi i casi.

Infine apriamo il file settings.php e modifichiamo i parametri di connessione al DBMS mysql, in modo da adeguarci al nuovo sistema.

sabato 31 maggio 2008

Velocizzare Eclipse

Ovviamente mi riferisco alla versione per linux, che di default utilizza gcj e lo heap size è settato uno schifo. Vediamo come risolvere.

1. Sotto una distribuzione ubuntu-like installiamo eclipse e la jvm di casa sun:

sudo apt-get install eclipse sun-java6-jdk

2. Impostiamo la jvm della Sun come quella predefinita nel sistema:

(k/e/...)ubuntu: sudo update-java-alternatives -s java-6-sun

opensuse: sudo update-alternatives --config java

3. Editiamo i file /etc/jvm e il file /etc/eclipse/java_home aggiungendo in cima il percorso della nuova jvm:

/usr/lib/jvm/java-6-sun

4. Infine settiamo lo heap size editando il file /usr/lib/eclipse/eclipse.ini. Ecco come ho modificato il mio, avendo 1 GiB di memoria RAM:

-vmargs
-Xms256m
-Xmx512m

... i valori di default erano scandalosi anche per vecchi sistemi desktop... :)


lunedì 5 maggio 2008

Gentoo su Acer Travelmate C100

La prima volta che ho installato Gentoo su questo piccolo gioiello risale a qualche tempo fa... La mia vita quel giorno divenne un vero inferno, scoprendo alla fine che il lettore CD esterno di casa Acer stava sulle palle a quasi tutte le distribuzioni linux in circolazione. Ma io sono caparbio, e alla fine ho effettuato un'installazione di rete, collegando il laptop al computer fisso sul quale girava l'ultima versione di Knoppix... devo dire che alla fine della giornata mi sentivo proprio come Steve Wozniak alle prese con il suo primo computer (... ma questa è un'altra storia...).

Non contento di avere buttato tanto tempo inutilmente, decido di mettere in via definitiva il pinguino sul laptop, sul quale girava faticosamente una versione tablet di windows XP. Ormai convinto che nessuna distribuzione avrebbe mai fatto il boot da quel maledetto lettore, provo lo stesso spostando la mia attenzione sulla signora delle distribuzioni, su quella HUMAN compatibile distribuzione ormai sulla bocca di tutti. Sicch quando chiedi a qualcuno: "che distribuzione GNU/Linux hai installato?", egli risponde "GNU che?". Così capisci che ha installato Ubuntu e te ne vai allegramente...

Perchè ho visto tanta gente, forse troppa, installare distribuzioni user-friendly (non sono proprio convinto di questa affermazione) eppoi non sapere come si fa a ricompilare il kernel Linux. Ma forse sto uscendo fuori tema. Passiamo a noi.

Per qualche strano motivo la mia scelta alla fine ricade sempre su quello strano oggetto incomprensibile ai "più" che si chiama Gentoo. Vi mostrerò come sia semplicissimo installarla, soprattutto su un rognoso portatile come il mio. Parlerò in un altro post dei motivi che mi hanno spinto ad utilizzare questa distribuzione, mettendone in evidenza vantaggi e svantaggi. Per il momento preoccupiamoci dell'installazione, che più generalmente può essere effettuata su un qualsiasi PC diverso dal mio.

Dal momento che la mia connessione a banda larga mi permette una velocità in download di 1100 KiB/s dal sito di gentoo, decido che non mi va di aspettare 10 minuti, allora scarico la versione minimale da 180 MiB in soli 3 minuti. Al termine lascio a scaricare la versione LiveDVD da 4 GiB (vi spiego dopo il perchè).

Con la versione 2008.0 beta2 di Gentoo non è più necessaria un'installazione di rete sul mio acer C100. Il lettore questa volta completa alla perfezione la procedura di boot e ci ritroviamo con un bellissimo e accogliente prompt dei comandi.


Gli step di installazione

Di seguito sono riportati i passi base attraverso i quali è possibile effettuare un'installazione completa del sistema Gentoo.
  1. Configurazione della rete
  2. Partizionamento dei dischi
  3. Copia dei file e installazione di Portage
  4. Configurare e installare il kernel Linux
  5. Installare un bootloader
  6. Configurazione del sistema
Ricordo che sarò molto breve laddove l'argomento è di carattere generale, come nei primi due step. Inoltre segnalo la sezione documentale del sito di gentoo, contenente ottime guide per una prima installazione, anche in italiano.

venerdì 21 marzo 2008

Come i software... should be!

Ero assorto nei miei pensieri... e mi è bastato qualche minuto per riconcepire i sacri principi su cui è basata la costruzione di un buon software.

Tutti parlano di buon software quando si riferiscono a Grafica Accurata, Supporto Multilingua, Supporto ai plug-in, Interfaccia Skinnable, Dozzine di Opzioni, etc. etc.

Io dico che vi sbagliate. E passo ad esporvi le mie teorie.

Un software non deve essere multipiattaforma. Vengono compiuti sforzi enormi per permettere ad un software di girare su sistemi operativi diversi. E per cosa? Tanto esisterà sicuramente un prodotto eccellente che più di tutti spadroneggia in un constesto specifico, in un dato sistema.

Qualche esempio per chiarirci. Se pronuncio le parole "windows, irc" scommetto che vi viene in mente mIRC. E a quelli di voi che adesso stanno borbottando: "ma io non uso mIRC, uso BitchX", adesso dico: "beh, sono sicuro che hai conosciuto prima mIRC...".

Torniamo a noi. Se dico browser a cosa pensate? Molti chiaramente a "Internet Explorer. Molti altri a Firefox. Quanti di voi pensano a Mozilla Firefox? Forse gli utenti di gentoo, in quanto per installarlo hanno dovuto digitare emerge -v mozilla-firefox. Chiuque tende ad associare qualcosa a qualcosa. Un semplice meccanismo mentale per ridurre lo sforzo di ricordare. Ed è per questo che quando sento pronunciare la fatidica frase: "apri internet", non penso di fracassare il mio Access Point, ma realizzo che colui che la pronuncia si riferisce (purtroppo) all'apertura di Internet Explorer. Sempre rimanendo in tema di associazioni. Quanti dicono linux per riferirsi a qualcosa ma non hanno nemmeno una vaga idea di ciò a cui si stanno riferendo? E quanti invece lo sanno ma sbagliano comunque, in quanto il sistema operativo di cui stiamo parlando si chiama GNU-Linux (con la L maiuscola), perchè Linux è solo il kernel. E quanti di voi avranno letto GNU con il suono della g di "gnomo" anzichè della g di "guru". Il perchè lo trovate poco più avanti, quanto discuterò le lingue.

Se usi windows e vuoi disegnare in 2D a che software pensi? L'ottimo Adobe Photoshop? GIUSTO! Avete mai visto un porting ufficiale di Photoshop per linux? Vi siete mai chiesti il perchè? E quanti di voi pensano a Reader per Linux anzichè a Kpdf? Senza considerare il fatto che Okular è sulla buona strada per soppiantare la concorrenza...

Un buon software non deve essere Multilingua. Il codice diventa molto più pesante da leggere e da interpretare. E molti diranno: "e a noi che ce ne frega, tanto non siamo programmatori". In realtà lo sforzo per la gestione delle lingue, dell'adattamento alle versioni, del mirroring, di miriade di file sparsi qua e là... dietro il vostro menefreghismo ci sta un lavoro disumano, dietro il vostro menefreghismo si cela la vostra ignoranza, di essere convinti ancora che free software = software gratis, e che il Desktop non è la vostra scrivania di casa. Eppoi cerchiamo di apprezzare la bellezza della lingua originale... altrimenti facciamo come gli spagnoli: prendiamo il topo e muoviamolo sullo schermo.


E a tutte quelle persone che a causa dell'età o di chissà quale altro motivo non possono imparare qualche termine in inglese dico: "non fa niente". Tanto il 50% delle persone non legge nemmeno sullo schermo, si limita ad apprendere forme, colori, gestualità e a riprodurli e a saperli riconoscere quando serve. Non serve sapere che la parola gradient significa gradiente perchè possiamo osservare la bellissima inconcina con tutte le sue sfumature per capire che premere quel pulsante ci permette di realizzare una sfumatura. E molti non sanno nemmeno cos'è un gradiente matematico...

Un buon software non deve possedere il supporto ai plug-in. Pensate quanto diventa pesante il software. Se la funzionalità di un plugin viene concepita e inglobata dall'utore stesso del software, quanto pensate possano migliorare l'usabilità e le prestazioni? Un buon software nasce e si sviluppa in una sola mente portante. Se essa compie tutto il lavoro, allora si parla di eccellenza. Non escludo comunque il lavoro di gruppo o lo sviluppo distribuito, purchè ci sia una mente coordinatrice al pari di un autore. Un dittatore se vogliamo, che si fa carico delle decisioni e sulla cui testa soltanto, ricade la brutta sensazione di fallimento in caso di esito negativo.

Microsoft Windows XP possiede un qualche supporto ai plugin? Quanti di voi hanno installato un software dedicato per cambiare il look&feel delle finestre e del pulsante START? Perchè non avete scritto un vostro plugin? E perchè quelli di Linux vengono chiamati moduli e non plugin? Qualcuno di voi sa la differenza?

Notepad possiede il supporto ai plugin? NO! Eppure è uno dei sofware più usati e conosciuti, anche se pochi realizzano ciò.

Al limite posso concepire il supporto allo scripting, per automatizzare alcune operazioni del proprio software. Oppure un'interfaccia di controllo verso l'esterno. E se qualcuno vuole scrivere un plugin, che creasse il suo software che comunica con il mio tramite tale interfaccia.

Un buon software non deve possedere molte funzionalità. Solo quelle essenziali... e forse un pizzico di più. Penso che un buon software debba essere estremamente mirato al contesto, che debba fare soltanto quello, e che lo debba fare come si deve.

Ecco perchè non uso il plug-in per l'ftp su mozilla-firefox, e non uso nemmeno client ftp che fanno anche da browser web. Il supporto a IRC in molti software: quantomai inutile! Ecco perchè un buon candidato a essere "il software per eccellenza" nell'ambito P2P, mi riferisco a XNap, è attualmente in fase di sviluppo bloccato. Il loro problema è stato che si sono persi in "chiacchiere". Cosa che per altro è successa anche a me quando mi occupavo di un certo sconosciuto software P2P di nome Karonte...

Un altro esempio. eMule, o aMule che dir si voglia, è un buon software che si è diffuso molto negli ultimi anni. Perchè? Tu apri il programma, lui si connette automaticamente a qualche risorsa, server ed2k o rete kademlia, tu apri la sezione ricerca, scrivi cosa ti serve, fai due click, scarichi il file, altri due click e lo visualizzi. Niente di più facile. Eppure a che ca**o servono tutti quei pulsanti in alto? Parliamo un attimo di HCI (Human Computer Interaction). La funzionalità statistiche è del tutto inutile, l'utente medio (circa il 90% degli utenti) non le ha mai usate. Connetti/Disconnetti, Importazione e Informazioni sono sottomenu , almeno dal punto di vista logico, di altre categorie. La finestra delle preferenze è ricca, anzi straborda di opzioni di configurazione che non verranno mai utilizzate, allora perchè mettercele? ... sarebbe meglio "hard-codare" i valori.

Cosa ne viene fuori? Un potenziale ottimo software, ma estremamente lento e usabile soltanto in parte, per fortuna nelle sezioni ricorrenti. Proposte?

Estrema leggerezza, usabilità portata al limite, grazie ad un estetica essenziale e ben curata, look pulito ed elementi identificabili ad occhio (e non a lettura). Codice altrettanto pulito e leggibile, ben commentato, con un layout tipografico stabilito a priori e disponibile agli sviluppatori esterni. Ecco le chiavi.

In conclusione riguardo un buon software. Sono convinto che 2-3 progettisti (e programmatori allo stesso tempo) e un buon grafico possano produrrre un ottimo software.

Sono fermamente convinto nei principi dell'open source, ma ci sono molte lacune nei team di sviluppo esistente. E' difficile organizzare un gruppo di migliaia di sviluppatori che lavorano sullo stesso progetto. E se il progetto è modulare va ancora peggio. Il progetto deve essere scomposto. Ogni sottoprogetto deve essere un'entità a se stante, una peersona che dialoga con un'altra, sfruttando un eventuale altro sottoprogetto, un'altra persona.

Ed ecco che KDE nella sua release 4.0 ha abbracciato proprio questo approccio...