mercoledì 19 maggio 2010

Conferenza di Stallman ad Ancona - parte 1

Introduzione
Richard StallmanCercherò di riassumere e spiegare ciò che ha detto Richard Stallman nella conferenza tenuta all'Università Politecnica delle Marche il 14 Maggio 2010 dal titolo: "The Free Software Movement and the GNU/Linux Operating System". L'intervento è durato parecchio(2 ore e mezza) quindi per comodità di lettura dividerò l'articolo in più parti e darò un'ordine ai vari argomenti toccati da R.S.

Libero e Free
R.S. inizia subito dicendo che noi Italiani siamo fortunati perchè abbiamo un termine che indica 'senza alcun costo'(gratis) e 'senza vincoli'(libero). Invece nella lingua anglosassone non ci sono modi di dire per distinguerli ed il tutto è vincolato ad una unica parola: 'free'. Il termine free software, coniato da RS, spesso a causa di questa ambiguità viene confuso con software gratuito. Stallman, invece, per free, intende libero, senza vincoli proprietari. Lo ripeterà più volte durante l'intervento proprio perche vuole cercare di togliere questo diffuso fraintendimento.
Libertà del software, è il principale(se non unico) movente di RS.


Le 4 libertà fondamentali
RS ha definito 4 libertà di cui ogni utente deve godere quando utilizza un qualsiasi programma. La curiosità che si nota subito è che sono numerate da 0 a 3, ordine tipicamente 'da programmatore'

Libertà 0: Libertà di eseguire il programma, per qualsiasi scopo.
Libertà 1: Libertà di studiare il codice sorgente e di poterlo adattare alle proprie esigenze.
Libertà 2: Libertà di redistribuire copie dello stesso software a chiunque.
Libertà 3: Libertà di migliorare il programma e redistribuirlo in modo che la tutta comunità ne tragga benefici
Stallman dedica molto tempo a spiegare bene e a ripeterle una ad una. Inoltre dice che tutte e 4 sono necessarie e non può mancarne nemmeno una.
Un esempio che ha fatto sulla libertà 2 è che se non si può distribuire un software che hai sul tuo pc ad un tuo amico, hai 2 scelte: cadere nell'illegalità oppure non avere amici.
La libertà 1 necessita di conoscenze che non tutti i normali utenti hanno ma ad esempio si potrebbe pagare un programmatore che inserisca per noi una data funzionalità. Questa cosa non potrebbe funzionare se non si ha la libertà 0. La libertà 3 garantisce la trasposizione delle prime 3 libertà a tutti gli utenti e senza di questa il sistema non funzionerebbe.


Ripudio del software proprietario
Il software proprietario è il male in quanto vi nega qualsiasi libertà. Non avete possibilità di modificarlo secondo le vostre esigenze in quanto non avrete accesso al codice sorgente. Questo implica anche il fatto che non potete sapere esattamente come funziona. Ciò è fondamentale per la privacy o anche per il semplice 'studio'.
In ogni caso sarete sempre assoggettati al volere del proprietario e questa è la cosa più negativa in assoluto. Secondo Stallman bisognerebbe eliminare qualsiasi tipo di questo software dal vostro computer e dalla vostra vita.



Continua sulla parte 2...
Vai direttamente alla parte 3...

martedì 11 maggio 2010

Stallman ad Ancona il 13-14 Maggio

Richard Matthew Stallman sarà ad Ancona il 13 e il 14 maggio per un percorso che lo vedrà incontrare dapprima le autorità locali e la cittadinanza e successivamente l'Università.

La sua visita avrà inizio con un evento organizzato dal Comune di Ancona presso la sala consiliare giovedì 13 maggio alle ore 17:00 dal titolo "Cosa rende l'Inclusione Digitale buona o cattiva?"

Stallman incontrerà poi gli studenti presso l'aula magna della Facoltà di Ingegneria dell'Università degli Studi di Ancona venerdi 14 maggio alle ore 10:30.
L'incontro avra' come titolo "The Free Software Movement and the GNU/Linux Operating System" (Il movimento del Free Software e il sistema operativo GNU/Linux). Questa lezione si terrà in lingua inglese.

Entrambi gli eventi sono stati realizzati con la collaborazione dei gruppi FLOSS Marche e REES Marche.
Essi sono gratuiti e aperti a tutti.

Richard Matthew Stallman stesso ci invita a partecipare chiarendo che i suoi interventi non sono di taglio tecnico: i temi del software libero e dell'inclusione digitale trattano di aspetti etici e politici che riguardano tutti gli utilizzatori di computer.
A parte il copia e incolla della notizia io parteciperò alla lezione all'università. Penso che poi scriverò qualcosa di quello che ho capito e di quello che penso.
In ogni caso vedere Stallman da vicino sarà di sicuro un'esperienza interessante

giovedì 25 marzo 2010

Boost, thread and Eclipse

Recently I hade a problem with Eclipse. It don't create the binaries when compiling a code with some commands taken from boost/thread.
Searching on the net i found that I should put some argument when launching g++. Noone specify what library should i link.
Actually using boost >1.38 require this:

-lboost_thread-mt
In Eclipse click with the right button on the project and choose 'Propierties'.  Select 'C/C++ Build' then 'Settings'. Now under 'Tool Settings' click on GCC C++ Linker Libraris and add in the box 'libraries(-l)':
boost_thread-mt
Now all should work.


Recentemente ho avuto un problema con Eclipse. Non creava i binari quando lanciavo la compilazione usando comandi presi dalla libreria boost/thread.
Cercando sulla rete ho visto che dovevo aggiungere un parametro al compilatore g++. Purtroppo nessuno indicava quale libreria da linkare.
Attualmente usando boost >1.38 bisogna scrivere:
-lboost_thread-mt
In Eclipse dovete cliccare con il tasto destro sul progetto e scegliere 'Proprieties'. Selezionate 'C/C++ Build' e poi 'Settings'. Ora sotto la scheda 'Tools Settings' cliccate su GCC C++ Linker Libraries e nel box 'libraries(-l)' aggiungete questa riga:
boost_thread-mt
Ora tutto dovrebbe funzionare

giovedì 28 gennaio 2010

Installare driver ethernet atl1e atheros su linux

Se non potete andare su internet(vi manca giustappunto il driver ethernet) e quindi ad esempio non potete scaricare il pacchetto su aur(che tra l'altro è flaggato old) dovrete installarlo a mano.

Questa procedura vale per qualsiasi distribuzione ma avrete bisogno degli headers del kernel(kernel26-headers).

Scaricate il pacchetto(da un'altro pc) dal sito web di atheros  e portatelo ad esempio sulla vostra home(o in una qualsiasi altra cartella dove avete i permessi)

Estraetelo:

tar -xvf AR81Family-linux-v1.0.1.4.tar.gz
Un utile readme è presente ma andate avanti
cd src
make install
Ora dovreste aver fatto. Per assicurarvi che il modulo è stato installato correttamente dovrebbe esserci un file atl1e.o o atl1e.ko nella cartella
/lib/modules//kernel/drivers/net/atl1e.
Ricordo che per vedere la versione del kernel in uso il comando è
uname -r
 Per trovare il file usate:

find / -name atl1e.*o
da root.

Riavviate e siete apposto.

Errori noti:
Se avete già il sorgente e vi da errore sulle EXTRA_CFLAGS vuol dire che quello che avete non è aggiornato. Scaricatelo dal mio link su in cima.
Dopo il kernel 2.6.32 se avete la versione vecchia (1.0.0.5) dei driver scaricate quella sul mio link che è aggiornata e funziona.
Errore sul cat. Non vi preoccupate non succede nulla.

Scaricare pacchetti archlinux e installarli a mano

Come mi è capitato, la rete non funzionava più ed il mio povero pc è rimasto isolato dal mondo(Internet). Guarda il caso, stranamente, per risolvere il mio problema avevo proprio bisogno del web per scaricare con pacman i pacchetti aggiornati.
Come fare?

Sono andato su internet con un altro pc. Mi sono collegato ad archlinux.org e nella home page c'è un campo di ricerca rapido del pacchetto. Ho ricercato quello che mi serviva e mi è comparsa una pagina con i risultati ordinati perfettamente. Ho cliccato su quello giusto e mi compare una pagina con i dati del pacchetto, dipendenze,... ma nessun modo per scaricarlo.
Guardando bene sulla destra c'è un link che indica: "View SVN Entry". Ci sono andato e mi ha riportato al repository subversion dei pacchetti.
Erano listati un PKGBUILD e altri file(non ci sono sempre... se servono ci sono altrimenti no :) ). Pare che dovremo compilarcelo come se l'avessimo scaricato da AUR.
Scaricate tutti i file e metteteli in una chiavetta usb.

Fermi manca ancora una cosa: il sorgente. Apriamo il PKGBUILD e vediamo la riga interessata:

source=(http://roy.marples.name/downloads/$pkgname/$pkgname-$pkgver.tar.bz2)

Se siamo fortunati ce ne è solo uno altrimenti sono elencati più siti(o file ma che dovreste aver gia scaricato insieme al pkgbuild)
Scriviamo tutto l'indirizzo sulla barra del browser facendo attenzione a sostituire le variabili ($qualcosa) con il rispettivo valore preso sempre dal pkgbuild(guardate più in alto e vedretete $qualcosa=blabla). Dando invio scaricherete il tar.gz contenente il sorgente. Mettetelo insieme al pkgbuild e agli altri eventuali file.
Portate con la chiavetta usb questi file sul computer interessato.

Prima di procedere alla compilazione(e installazione) dovrete modificare il pkgbuild
togliendo tutta l'url prima del nome e della versione del pacchetto. Questo perche ormai il sorgente lo avete scaricato e ve lo ritrovate allo stesso livello di cartella.
Nell'esempio di prima vi ritroverete:
source=($pkgname/$pkgname-$pkgver.tar.bz2)
 Salvate chiudete e aprite un terminale nella posizione di quei file.
Come di consueto:
makepgk
Prendete nota del nome del pacchetto creato.
pacman -U nome_del_pacchetto_appena_creato.pkg.tar.gz

E fatto il pacchetto nuovo/vecchio o comunque funzionante è stato appena installato. Pregate, fate gli scongiuri, toccate ferro o qualsiasi altra cosa che pensiate che vi possa portare fortuna che fosse solo quello il problema altrimenti daccapo con la procedura.

Archlinux dhcpcd-5.1.4-2 buggato

Scoperto a mie spese dopo aver ricompilato 2 kernel pensando che fosse il driver della scheda ethernet.
dhcpcd-5.1.4-2 è buggato e non riesce ad accettare l'indirizzo ip proposto dal router(timeout nella transazione).

E' scritto qui.
La soluzione è di aggiornare il sistema con la nuova versione(git qualcosa) o fare il downgrade. A quel punto ho pensato: "Interessante peccato che non riesco a connettermi a internet...").

Seguite la procedura per scaricare un pacchetto(da un altro pc) e installarlo a mano, qui.

mercoledì 20 gennaio 2010

Nuovo aggiornamento blog

Ho rimodernato la grafica del blog. Sempre più ispirata ad archlinux soprattutto il nuovo logo.
L'attuale scoperta *imbarazzante ammetterlo* di aver ricevuto qualche commento su vecchi post non dovuti ad amici o conoscenti diretti mi ha dato un po' più di fiducia.

Almeno ora so di non essere sconosciuto al web e di non aver buttato qualche ora in scritti mai letti.
Vorrei continuare a puntare su notizie e argomenti non comuni alla blogsfera come quello sulle estensioni di firefox e tra gli ultimi quello hsqldb.
Continuerò anche a scrivere di tutte le idee che mi vengono in mente in quanto chissà mai se capitasse il pazzo che possa prendere spunto da esse.

I rari aggiornamenti sono dovuti sia alla particolarità di questi argomenti sia al tempo che io ho da dedicarci visto che ho scritto sempre su cose in cui mi sono imbattuto personalmento e il racconto è sempre frutto di esperienza diretta.

Un saluto a tutti i miei lettori occasionali, fidati, passati e futuri.

sabato 9 gennaio 2010

Va bene portare giochi su linux ma...

In riferimento a questo articolo.
Ecchepalle! Sono la prima persona ad essere felice se un gioco viene rilasciato anche sotto GNU/Linux ma è ora di finirla con questi fps non se ne può più. Fate un bel rpg, platform,giochi sportivi, avventure grafiche, ecchecavolo ci sono millemila generi. Tanto a chi gli piacciono gli fps se non portate cod o gears of war non giocheranno mai a quest'altri.
E fatemi un bel gioco di ruolo.

martedì 15 dicembre 2009

Usare HSQLDB embedded in un progetto java

Translation made by me from source(Thanks to the author).
Italic text is my comment.

HSQLDB è un rapido, piccolo e robusto DBMS relazionae(RDBMS) scritto in java. HSQLDB offre un'implementazione del database sia in modalità in-memory sia in modalità disk-based(NdT spiegate meglio dopo).
Ovviamente potrete usarlo anche nella modalità classica ed installarlo sulla vostra macchina server e collegarvi con la vostra applicazione come client. Ma questo lo fanno tutti i DB e non avrei avuto motivo di scrivere questo post. Embedded significa che il DBMS verrà eseguito insieme alla vostra applicazione quindi non avrete bisogno di installarlo sulla macchina. Utile vero?

HSQLDB è piccolo abbastanza da essere incluso in una applicazione senza grandi sforzi ed è attualmente usato da molte applicazioni tra le quali le più famose sono OpenOffice, Jboss, Jira e Mathematica.
Scaricatelo ed estreatelo dalla pagina di download del sito.

Includere HSQLDB è semplice: basta aggiungere il file hsqldb.jar al tuo class path. Usando Eclipse basta cliccare sul proprio progetto con il destro e selezionare proprietà. Poi Librerie->Aggiungi un jar esterno e selezionate il file hsqldb.jar. Scaricando l'archivio dal sito trovere questo file dentro la sottocartella "lib". Una volta che avete impostato questo potrete caricare il driver HSQLDB come qualunque JDBC driver.

Class.forName(”org.hsqldb.jdbcDriver”);
Boh a me funziona anche senza questa riga(che tra l'altro necessita di almeno un try catch)

Una volta registrato il driver, ci si può connettere al DB HSQL come si farebbe con qualsiasi altro motere JDBC. E' difficile da credere ma questo è tutto quello che si deve fare per includere il database in una applicazione Java!
Ci si può connettere al DB HSQL in 2 modi: come in-memory database o persisted-file-based database

Come in ogni in-memory database, il tuo DB esisterà solo mentre l'applicazione è in esecuzione. Quando l'applicazione viene avviata nuovamente, si avrà bisogno di ricreare tabelle e di inserire i record per ricreare il DB. Un database in-memory è utile solo se la perdita di dati non è importante. Per crearlo bisogna usare il codice seguente.

String url = “jdbc:hsqldb:mem:database_name”;
String user = “sa”;
String password = “”;
Connection c = DriverManager.getConnection(url, user, password);
Se si vuole che i dati siano memorizzati e persistenti dopo che l'applicazione è terminata si avrà bisogno che il DB HSQL salvi i dati su disco. Per creare un DB file-based si userà un url JDBC come il seguente.

String url = “jdbc:hsqldb:file:/path/to/database/file”;
String user = “sa”;
String password = “”;
Connection c = DriverManager.getConnection(url, user, password);
Puoi usare anche un percorso relativo. In questo caso i file del DB verrano inseriti a partire dalla directory dove il processo JAVA ha inizio.

Una volta che la connessione JDBC al DB HSQL è stata creata si può iniziare a creare tabelle e inserire dati come si farebbe normalmente in JDBC.

Necessiterete ovviamente dell'import di
java.sql.*;
per connettervi e fare tutte le varie operazioni.

martedì 10 novembre 2009

Aspetto Firefox su kde4

Tempo fa ho scritto un articolo su come sistemare i programmi gtk in kde.
Posso dire che ora è obsoleta in quanto di default nel pannello di personalizzazione dell'aspetto di kde c'è integrata la scelta dello stile per le applicazioni gtk.

E' bastato mettere il mio buon vecchio murrine-chrome per ottenere di nuovo l'aspetto gradevole che avevo su Gnome.(Per usare i temi murrine dovete installare gtk-engine-murrine e murrine-themes-collection via pacman)
L'unico inconveniente restano le icone. Per ovviare a questo problema fate dentro la vostra home:

kate .gtkrc-2.0

Se non c'è createlo... comunque inserite questa riga:

gtk-icon-theme-name="<inseririsci nome del tema delle icone qui>"

Io ad esempio ho installato da Aur sia temi di Oxygen per gtk che OxygenRefit2 consigliato anche nella pagina del wiki di Arch
Et-voilà