Feeds:
Articoli
Commenti

Archive for agosto 2007

MySQL è probabilmente tra i più popolari database open source (stando al motto che campeggia sul sito “The world’s most popular open source database“, IL più popolare in assoluto). Certo è che, insieme a PostgreSQL, è tra i più quotati database a codice libero, in grado di trovare un impiego anche in ambiti aziendali (dove la gestione di milioni di records è richiesta) e di rubare fette di mercato ai più blasonati cugini (Oracle, SQL Server, ecc.). MySQL presenta la maggior parte delle caratteristiche che ci si aspetterebbe da un database professionale ma il presente post focalizza l’attenzione sull’installazione su un singolo pc, più che altro per scopi amatoriali o per testing. Non si fa menzione quindi di cluster, backup, ecc. ma una esauriente documentazione è disponibile sul sito (http://www.mysql.com/) assieme ad una versione enterprise (non più gratis in questo caso).

Dato che MySQL server è disponibile attraverso i repository ufficiali, possiamo facilmente installare i pacchetti che ci servono attraverso Synaptic (System -> Administration -> Synaptic Manager).

Click su “search” e cerchiamo per nome “mysql”. Ovviamente è sempre possibile l’alternativa da terminale:

sudo apt-get check mysql-server

Essenzialmente abbiamo bisogno del mysql-server package e delle sue dipendenze e con questa operazione, di fatto, installiamo MySQL. L’installazione dovrebbe avviare automaticamente il server, potete controllare con un:

ps -ef | grep mysql

da terminale e verificare che vi sia mysqld tra i processi attivi. Dal output vedrete anche la porta su cui il server è in ascolto (di default è la 3306).
A questo punto si aprono due alternative: fermarsi qua e gestire MySQL attraverso la riga di comando oppure installare le comode interfacce grafiche (GUI) per fare il lavoro sporco in maniera più amichevole.
Per chi sceglie la prima strada occorre avviare il server (ma dovrebbe già essere stato avviato come dicevo)

sudo /etc/init.d/mysql start

Buona cosa cambiare la password dell’utente root (di MySQL non del sistema)

mysqladmin -u root password *vostra-password*

mysql -u root -p

poi non rimane altro che loggarsi con la nuova password che vi verrà richiesta. Per la documentazione fare riferimento qui e alle pagine man dei comandi.

Dato che mi piaciono le cose comode, spendo qualche parola in più sull’alternativa grafica. Esistono due utili strumenti che possiamo installare per amministrare il nostro MySQL server attraverso una comoda interfaccia grafica: MySQL Administrator (per compiti di amministrazione) e MySQL Query Browser (per le operazioni su DB: select, update, insert, ecc.). Per entrambi è disponibile una guida in italiano qui.
Per installere questi due utili tools al solito si può procedere tramite terminale:

sudo apt-get check mysql-admin

sudo apt-get check mysql-query-browser

oppure tramite Synaptic. Una volta installati saranno disponibili nel menù Applicazioni (Applications -> Programming). Avviamo MySQL Administrator:

MySQL Administrator

Inizialmente l’utente root non ha nessuna password quindi il campo va lasciato vuoto. La porta è quella di default (3306). Ci sono già due DB presenti (vedi voce “Catalogs”) ma sono di sistema e non vanno toccati. Per iniziare a smanettare consiglio di seguire i seguenti passi:

  1. Selezionare “User Administration” poi “root” nello spazio in basso a sinistra e assegnate una password di vostra scelta all’utente (che va ovviamente memorizzata)
  2. Cliccare su “New User” nella stessa finestra e create uno user a vostro piacere.
  3. Cliccare su “Catalogs”. Nello spazio in basso a sinistra vedrete i database attualmente presenti sul server. Click con il tasto destro del mouse su uno dei DB nella lista e selezionate “Create Schema”.Create new schemaDate un nome al vostro nuovo DB (per es. test) e salvate le modifiche apportate.
  4. Selezionare di nuovo “User Administrator”. Selezionate lo user che avete creato al passo 2 nella lista in basso a sinistra e poi selezionate “Schema Privileges”. Selezionare il nuovo DB creato al passo precedente. Selezionare i privilegi che vogliamo assegnare al nostro user sul DB di prova (dato che è solo una prova potete selezionare tutte le voci). Click sulla freccetta per spostare i privilegi nella colonna “Assigned Privileges”.

Fatto questo lo user avrà la possibilità di operare liberamente sul DB che abbiamo creato, creando tabelle, definendo constraints ed eseguire query (previa una certa dimistichezza con SQL) utilizzando MySQL Query Browser (Applications -> Programming -> MySQL Query Browser)

MySQL Query Browser

dove “vostro-user” è il nome dello user creato al passo 2 e “vostro-db” è il nome del DB creato al passo 3.

Ultima nota da tenere presente. MySQL viene installato di default come servizio, vale a dire come programma che parte all’avvio del sistema. È probabile che sul vostro desktop questa configurazione non sia ottimale: se si tratta di un database di test che usate solo in locale potreste valutare di disabilitarlo come servizio ed evitare di avere la porta 3306 perennemente aperta in ascolto. Per disabilitare il servizio: menù System -> Administration -> Services togliete il flag alla voce relativa a MySQL e chiudete la finestra. Il servizio verrà chiuso immediatamente e rimmarrà chiuso anche ai successivi riavvii dovrete perciò avviare MySQL a mano ogni volta ne avrete necessità. Essendo un servizio, troverete lo script in:

/etc/init.d

per cui potete avviarlo da terminale con il comando:

sudo /etc/init.d/mysql start

e stopparlo con:

sudo /etc/init.d/mysql stop

In ogni momento potete verificare lo stato del server MySQL con i seguenti due comandi da terminale:

ps -ef | grep mysql

per controllare se MySQL è tra i processi attivi sul vostro pc oppure:

sudo netstat -tap | grep MySQL

per evidenziare le porte e connessioni aperte da MySQL (sempre che sia avviato).
Altre utili informazioni sono disponibili al seguente link:

http://help.ubuntu-it.org/7.04/ubuntu/serverguide/it/databases.html

Read Full Post »

Da qualche settimana il presente blog è stato aggregato su Tuxfeed (lodevole iniziativa di Alessandro Pagano e Leonardo Racanelli) e ne do notizia con colpevole ritardo. Tuxfeed aiuta a districarsi nella miriade di blog su Linux: in un unico sito possiamo trovare tutti (o quasi) i post apparsi sui blog italiani, rimanere al passo con le notizie e imparare tante cose nuove sul sistema operativo del pinguino. Un grazie di cuore agli autori per la fiducia accordata.

Read Full Post »

Ubuntu include già una sua implementazione della java virtual machine (gcj) ma per alcuni scopi questa non è abbastanza o non è soddisfaciente (per esempio Eclipse 3.2 si inchioda). Se non avete mai avuto problemi con applicativi Java potreste smettere di leggere quanto segue ma se per qualche ragione lavorate o smanettate con Java o usate applicativi Java piuttosto “esigenti” (Eclipse, Tomcat, ecc.) sarebbe meglio passare alla JVM della Sun (o anche IBM).
Prima di tutto bisogna fare una distinzione di base tra il JRE e il JDK:

  • Entrambi contengono la JVM (Java Virtual Machine)
  • il JRE (Java Runtime Environment) contiene diverse librerie e consente di far girare tutti gli applicativi Java
  • il JDK (Java Development Kit) comprende il JRE più tutta una serie di strumenti utili per lo sviluppo con Java

La via più veloce consiste nello scaricare il JDK o JRE tramite Synaptic. Al momento in cui scrivo sono disponibili la versione 5 (Java SE 1.5) e 6 (Java SE 1.6). Se per qualche ragione si vuole installare la versione 4 (Java SE 1.4) non rimane che fare il download dal sito della Sun. Programmatori o smanettoni potrebbero anche volere l’ultimo build disponibile per una data versione e anche in questo caso non rimane che affidarsi al sito della Sun in quanto la versione nel repository non è quasi mai aggiornata all’ultima disponibile. Potete scaricare l’ultima versione (1.6) da qui, oppure quelle precedenti (1.5, 1.4, 1.3) da qui.
Lavorando con più versioni Java, preferisco installare da solo i vari JDK scaricati da Sun senza dipendere in alcun modo dal repository ma se non avete particolari esigenze non vale la pena complicarsi la vita.
Nell’ipotesi in cui vogliate scaricare, supponiamo, il JDK 6 (1.6), dovete selezionare il file Linux self-extracting file (procedura praticamente identica per il JRE e per le versioni vecchie). Spostate il file scaricato nella directory in cui volete installare Java (per esempio /opt), date i permessi di esecuzione al file:

chmod + x jdk-6u2-linux-i586.bin

potreste anche aver bisogno dei privilegi del superuser, dipende in quale directory avete spostato il file. In quest’ultimo caso ovviamente:

sudo chmod + x jdk-6u2-linux-i586.bin

poi eseguite il file:

./jdk-6u2-linux-i586.bin

Anche in questo caso probabilmente avrete bisogno di usare sudo.
La directory che otterrete dopo l’installazione jdk1.6.0_02 sarà la vostra JAVA_HOME: una variabile di ambiente che vedremo come settare tra poco.
Il problema in cui sono incappato subito dopo l’installazione è che Ubuntu (almeno le versioni 5.10, 6.06 e 6.10) dimostra una certa riluttanza a far girare gli applicativi Java con la JVM di Sun appena installata preferendovi la sua di default (che come detto può causare alcuni problemucci). Il problema consiste quindi nel far capire a Ubuntu quale JVM utilizzare. Disinstallare gcj non sembra risolvere il problema per cui ho optato per una soluzione diversa.
Creare un file in

/etc/X11/Xsession.d/

chiamato

55load-my-env-vars

Editare il file e scrivere il seguante contenuto

. /opt/env_vars

creare un altro file nella directory

/opt

chiamato

env_vars

aprite il file appena creato e scriveteci dentro le seguenti righe


# Sourced by:
# /etc/bash.bashrc (for interactive non-login shells)
# /etc/X11/Xsession.d/55load-my-env-vars (for Xsessions)
PATH=/opt/java/bin:$PATH
export JAVA_HOME=/opt/java

Ovviamente il path deve puntare alla directory in cui avete intallato la JMV (nel mio caso appunto /opt/java). Aggiungete la seguente riga di testo al file .bashrc nella vostra home directory:

. /opt/env_vars

A questo punto al prossimo reboot il settaggio della java virtual machine dovrebbe essere corretto. Concludo con un paio di note: questa procedura è utile nel caso si avvii il sistema Linux direttamente in modalità grafica (penso sia la norma ormai). Se avviate il siste non in modalità, allora potrebbe essere sufficiente semplicemente definire il PATH ed esportare la JAVA_HOME editando solo il file .bashrc nella vostra home directory. Potete sempre verificare la versione della JVM installata con un

java -version

da terminale. Per controllare quale versione della JVM i vostri programmi Java utilizzano, dovrebbe essere sufficiente un

ps -ef | grep nome-programma

da terminale.

Read Full Post »

Spedire SMS gratis con Linux (ma non solo) vale a dire come installare e usare MoioSMS. Una settimana fa mi è capitato di dare un’occhiata all’esauriente post di illusion22 sul tema e incuriosito ho installato e provato questo programmino. MoioSMS è stato scritto in Python, è gratis, open source, sotto licenza GPL ed è disponibile per Linux, Mac OS X e Windows. A dire il vero sul sito è disponibile solo il pacchetto .deb e i sorgenti. Il team di sviluppo di MoioSMS è piuttosto piccolo e non può curare i pacchetti per tutte le distribuzioni ma è ben contento di ricevere la collaborazione degli utenti per cui se volete farvi avanti impacchettare il programma per la vostra distribuzione prefereita penso sarete i benvenuti. Ci sono diverse compagnie che permettono di inviare sms gratis dal loro sito web a determinate condizioni ed entro certi limiti. Genaralmente avrete bisogno di registrarvi, ottenere una user e una password (cosa in alcuni casi possibile solo se disponete di una sim del dato gestore), ecc. Dietro le quinte MoioSMS non fa nulla di particolarmente misterioso: si connette a questi siti per voi (su cui vi dovete registrare prima e indipendentemente dal utilizzo del programma), vi chiede password e username la prima volta (ma poi li potete memorizzare), che servizio volete utilizzare per l’invio e il numero (che potete salvare in una rubrica) risparmiandovi la fatica di aprire un browser, barcamenarvi tra pubblicità, connessioni lente, immagini di controllo, ecc. Come risultato, dopo dieci minuti di utilizzo, MoioSMS è entrato a far parte dei programmi “inamovibili” dal mio box:-)
L’instalazione su Ubuntu 7.04 è veramente semplice: scaricate il file .deb da qui e appena terminato il download, doppio click sul file o se preferite la procedura da terminale:

sudo dpkg --install moiosms-#versione#.deb

L’icona per lanciare il programma ve la dovreste trovare sotto Applicazioni -> Internet -> MoioSMS o se preferite da terminale date il comando:

sms

MoioSMS si presenta con una interfaccia spartana e minimale ma ha tutte le funzionalità base che ci si aspetterebbe da un programma di questo genere.

MoioSMS

Prima di iniziare a smanettare col programma, vi conviene dare un’occhiata sul sito per prendere visione delle diverse modalità di invio sms disponibili con i diversi gestori.
Può disorientare all’inizio il fatto che manchi un menu con la voce “preferenze” o qualcosa di simile. Nessun problema, le funzionalità ci sono ma vi verranno offerte durante l’utilizzo. Digitate il numero di cellulare a cui volete inviare il messaggio e MoioSMS vi offrirà la possibilità di inserirlo in rubrica. Quando selezionate il sito per l’invio e spedite l’sms, MoioSMS vi chiede le credenziali (user e password) per accedere a quel determinato sito. Una volta immesse, avete la possibilità di memorizzarle (non in chiaro ovviamente) evitandovi di doverle reimmettere ai successivi utilizzi e di scegliere una password master unica che vi verrà chiesta all’avvio del programma.

Read Full Post »

OpenC6

C6, per chi non lo conoscesse, è il messenger di Alice. Nato nel 1999, c’è stato un tempo (nell’informatica le ere durano a volte pochi anni) in cui probabilmente si è potuto fregiare del titolo di messenger tra i più popolari d’Italia. C6 è ancora vivo e vegeto molto intuitivo nell’utilizzo e riservato prevalentemente ad un’utenza di lingua italiana. Per lungo tempo C6 è stato riservato agli utenti Windows ma ormai da qualche anno e grazie agli sforzi di Giorgio Alfarano e altri sviluppatori è disponibile una versione open source in C++ che implementa il protocollo C6 e coerentemente (e non sorprendentemente) prende il nome di OpenC6.
Tra le caretteristiche di OpenC6 vanno menzionate:

  • ricercare tra altri utenti di C6 (con varie opzioni di ricerca)
  • trasferimento file peer to peer
  • gestione delle stanze e dei gruppi
  • log delle conversazioni
  • possibilità di chattare con i contatti di google talk

Per installare OpenC6, scaricate il pacchetto .deb da qui. In questo esempio faccio riferimento a Ubuntu 7.04 ma sul sito sono disponibili pacchetti per altre distribuzioni, il semplice .tar.gz e anche una versione per Mac. Fate doppio click sul pacchetto scaricato e al termine dell’installazione, vi dovreste trovate OpenC6 nel menu applicazioni: Applicazioni -> Internet -> OpenC6.
Per accedere è necessario disporre di un indirizzo email name@virgilio.it, @tin.it o @alice.it e relativa password. Come username utilizzate l’intero ildirizzo email (per esempio pippo23ko99@alice.it). Se non avete un account potete sempre crearlo gratuitamente per esempio cliccando sul pulsante “registrati” che vi invierà alla pagina di registrazione di Alice.

OpenC6 home page: http://openc6.sourceforge.net/

Read Full Post »

KeyMan è un piccolo tool ad interfaccia grafica (free e liberamente installabile) sviluppato da Thomas Eirich del IBM Zurich Research Laboratory per la gestione client side della public key infrastructure (PKI). Tra le altre cose offre la possibilita di gestire chiavi, creare certificati self-signed, gestire le certificate revocation lists (CRLs) e così via.
Si tratta di un programma scritto in Java che tra l’altro funziona anche con una versione del JDK 1.2 (o superiori) decisamente vecchiotta. Essendo scritto in Java il programma è multipiattaforma Linux compreso a patto di avere il JDK installato (date il comando java -version a terminale per verificarlo).
Come riportato dalla documentazione ufficiale, queste sono alcune caratteristiche del programma:

  • supporto completo del ciclo di vita del certificato
  • gestione di vari chiavi/certificato repositories (compreso jks utilizzato in ambito Java)
  • supporto di tokens criptografati via interfaccia PKCS#11
  • accesso ai repositories di certificati Windows
  • supporto di X.509/PKIX (certificati V3, CRLs V2)
  • creazione di certificati self-signed
  • possibilità di importare i certificati attraverso i protocolli LDAP e HTTPS
  • compatibile con gli standard PKCS (#7, #10, #11, #12)

Per installarlo (procedura eseguita sotto Ubuntu 7.04 con JDK 1.5) occorre prima di tutto scaricare il programma da qui. Se non avete in account IMB selezionate “Proceed without an IBM ID”: vi verrà richiesto di compilare una breve form con alcuni vostri dettagli e di prendere visione della licenza. Fatto questo potrete scaricare la versione .tgz sul vostro PC. Doppio click sul file (si dovrebbe aprire con Archive Manager) e estraetelo. Per estrarre il contenuto dell’archivio da terminale invece date il comando:

tar -zxvf keyman-aW-1_69.tgz

Copiate la directory ottenuta in un percorso a vostro piacere (io ho scelto /opt), spostatevi dentro la directory (dovrebbe chiamarsi “KM”) e da terminale date il comando:

./km

e il gioco è fatto.

KeyMan

Ovviamente è anche possibile aggiungere KeyMan alla barra delle applicazioni:
click con il tasto destro del mouse sulla barra -> Add panel -> Custom application launcher come command inserite il percorso completo al file km. Dipende poi che uso di KeyMan farete ma potreste aver bisogno di modificare i parametri di configurazione nel file km.setup.
Maggiori informazioni su KeyMan sono disponibili qui

Read Full Post »

Lo sviluppo di internet, telefonia, ecc. ha portato molti di noi a convivere con una serie di diverse credentials. Abbiamo una username e una password per l’account di posta elettronica (spesso più di uno), per il conto corrente in banca (la cui gestione on line è di indiscussa praticità), per un blog, per chattare, per inviare sms gratis sul sito del nostro gestore di telefonia mobile, uno per eBay, uno per Amazon, uno per PayPal e così via. Diretta conseguenza di questo scenario è che ci dobbiamo destreggiare tra un numero crescente di password (più relativa username) e invecchiando, come succede a tutti, non è sempre facile ricordarsele.
Una soluzione potrebbe essere quella di usare un’unica password. Per quanto questa “unica” password possa essere sicura e generata con criteri di casualità, questa strategia presta il fianco a diversi inconvenienti e problemi. Se uno sconosciuto dovesse venire in possesso della password, l’intero dominio dei servizi di cui siamo titolari ne verrebbe compromesso. Non solo il malintenzionato potrebbe leggere la mia posta, ma potrebbe facilmente acquistare libri su Amazon addebitandoli a me, effettuare operazioni sul mio conto corrente, postare sul mio blog e chi più ne ha più ne metta. Non è un ipotesi peregrina: mi aspetto che la mia banca utilizzi una connessione criptata (su https) e questo mi metterebbe abbastanza al sicuro ma se poi utilizzo la stessa password per mandare sms con internet per cui non è richiesta un’autenticazione sicura (dati che viaggiano su una normale connessione http) ecco che mi espondo ad un rischio potenziale. A questo si aggiungano i tentativi (più o meno maldestri e invitanti) di phishing. Insomma può succedere che la nostra password non sia più segreta (e può succedere in una miriade di modi differenti) e se questo succede vorremmo che i danni fossero limitati.
Una strategia “a compartimenti stagni” (un servizio – una password) offre un ridotto profilo di rischio: se una password viene compromessa, il solo servizio corrispondente viene compromesso ma gli altri restano al sicuro. Questo ci riporta al punto di partenza con miriadi di password e users da ricordare. è a questo punto che un password manager potrebbe fare la sua comparsa in scena e venirci in aiuto. In ambiente Linux uno dei più conosciuti è MyPasswordSafe.
Il principio alla base di MyPasswordSafe è piuttosto intuitivo. Detta in parole semplici, si crea un unico file in cui si mettono tutte le credentials (user e password) e si protegge l’accesso al file con una password. Potrebbe sembrare un circolo vizioso in quanto siamo tornati ad avere un’unica password (e relativi rischi di compromissione di tutto il nostro registro di credentials) ma a ben vedere ci sono delle differenze. La password con cui proteggiamo il file di MyPasswordSafe deve ovviamente essere sicura e casuale. Ma non viene (o non dovrebbe) essere trasmessa in rete ma solo immagazzinata nella nostra testa e usata solo per MyPasswordSafe. Un eventuale compromissione di questa password inoltre richiederebbe comunque al malintenzionato un accesso alla nostra macchina (o al pc su cui il file di credentials risiede).
Alcune caratteristiche di MyPasswordSafe:

  • possiamo generare password casuali
  • le passwords che salviamo nel file vengono criptate e non sono visibili “in chiaro”
  • non c’è bisogno di vedere la password immagazzinata in MyPasswordSafe. Una volta immessa nel file la possiamo recuperare con un click del tasto destro del mause selezionando la voce “fetch password”

MyPasswordSafe (parliamo di Ubuntu 7.04) è disponibile nei repository ufficiali per cui la procedura di installazione è la solita:

sudo apt-get install mypasswordsafe

oppure attraverso Synaptic (System -> Administration -> Synaptic Package Manager).
Una volta installato lo si può lanciare con il comando

MyPasswordSafe

mypasswordsafe

e creare un “safe” (il file con usernames e passwords) selezionando la corrispondente voce da menu (Create new safe) e scegliendo la password (sicura) per il nostro file. Diamo l’ok e ora non ci rimane che inserire le nostre passwords. Da menu:

Edit -> Add Passwords

eventualmente possiamo creare più gruppi per password appartenenti alla stessa area (per esempio tutti gli accounts che abbiamo sul nostro pc con Linux). Salviamo prima di uscire e decidiamo il percorso dove il file verrà salvato.
Per maggiori info, la guida ufficiale è disponibile qui.

Read Full Post »

Older Posts »