Feeds:
Articoli
Commenti

Archive for settembre 2007

Mentre il mio Firefox è in grado tranquillamente di riprodurre animazioni Flash, Opera sembra non volerne sapere chiedendomi tutte le volte di installare il mancante plug-in. Il problema è che il plug-in Acrobat in questione sembra esser studiato per Firefox assumendo che su ogni distribuzione Linux giri questo browser e ignorando l’esistenza di alternative (Opera compreso). La seguente procedura ha risolto il problema. Si parte con un download di Flash Player 9 da qui. Non utilizzando una derivata Red Hat o Suse, ho scaricato il file in fornmato tar.gz. Una volta scompattato, trovate dentro uno script chiamato flashplayer-installer. Apritelo con un normale editor di testo (gedit per esempio) e sostituite tutte le occorrenze della parola ‘mozilla’ con ‘opera’. La sostituzione va fatta in maniera case sensitive. Vale a dire: la differenza tra minuscole e maiuscole fa differenza. Chiudete, salvate ed eseguite lo script:

./flashplayer-installer

e ora doverste essere capaci di apprezzare animazioni o filmati in flash anche con Opera.
Questo ovviamente non è l’unico metodo ma mi ha sorpreso per la sua immediatezza.

Read Full Post »

XDVDShrink è un programma scritto in BASH and Perl-Gtk2 per convertire dvd in formato DVD9 (dvd a doppio strato -dual-layer dalla capacità di 8.5G) in più comuni ed economici DVD5 (dvd a strato singolo – single-layer dalla capacità di 4.7G): in sostanza si propone di assolvere gli stessi compiti affidati al quasi omonimo DVDShrink in ambiente Windows. XDVDShrink funziona sia da terminale a riga di comando che tramite una semplice e spartana interfaccia grafica. Per installarlo, prima di tutto, bisogna scaricare il programma da qua. Ci sono diversi packages, scegliete

dvdshrink-2.6.1-10mdk.tar.gz

Terminato il download copiate il file sotto la directory /opt (o un’altra directory di vostra scelta) e scompattate il file. Da terminale:

tar -zxvf dvdshrink-2.6.1-10mdk.tar.gz

o semplicemente facendo doppio click sul file e estraendo il contenuto tramite Archive Manager. In entrambi i casi vi dovreste trovare con una cartella dal nome dvdshrink. Prima di procedere occorre installare tutte le dipendenze richieste dal programma.
Attraverso Synaptic (System -> Administration -> Synaptic Manager) cercate per nome i seguenti pacchetti e, se non già presenti sul vostro sistema, provvedete all’installazione:

  • Transcode
  • SubtitleRipper
  • Dvdauthor
  • libgtk2-perl

Se preferite a Synaptic la via da terminale:


sudo apt-get install transcode
sudo apt-get install subtitleripper
sudo apt-get install dvdauthor
sudo apt-get install libgtk2-perl

Adesso spostatevi all’interno della directory dvdshrink

cd /opt/dvdshrink

dove dovreste trovare lo script install.sh ed eseguirlo:

sudo ./install.sh

Terminata l’installazione potete avviare l’interfaccia grafica di XDVDShrink dando da terminale il comando:

xdvdshrink.pl

ovviamente potete sempre semplificarvi la vita aggiungendo il programma alla barra delle applicazioni attraverso la creazione di un apposito launcher. Per usare XDVDShrink da terminale, con riga di comando e senza interfaccia grafica, date il comando:

dvdshrink

La pocedura d’installazione è stata testata su Ubuntu 7.04 Feisty Fawn ma a parte la sezione sulle dipendenze, si dovrebbe adattare a qualsiasi distribuzione Linux.

Read Full Post »

tomcat

Tomcat è un servlet container o in parole semplici è un server su cui è possibile far girare Servlet e JSP che sono alcune delle tecnologie Java (J2EE) più utilizzate nella programmazione web. Alcune cose utili da sapere prima di procedere con l’installazione:

  • Tomcat è free, open source ed è scritto in Java per cui è anche multipiattaforma
  • Essendo scritto in Java dovete avere Java installato. Vedere qui per come fare
  • tecnologie come EJB, JMS, ecc. richiedono per l’appunto un EJB container: vale a dire non potete far girare EJB su Tomcat.
  • Tomcat può anche servire normali pagine statiche HTML ma a questo scopo e per usi professionali si tende ad utilizzare Apache. In ambito aziendale Tomcat trova spesso il suo impiego “dietro” un server Apache che si occupa di servire i contenuti statici e demanda a Tomcat il compito di servire pagine dinamiche.

Su Ubuntu Tomcat è disponibile nei repository ufficiali nella versione 5.5 ed è facilmente inspallabile attraverso Synaptic (System -> Administration -> Synaptic Manager) o se preferite da terminale:

sudo apt-get install tomcat5

Tuttavia la versione nel repository non è la più aggiornata. Sul sito è disponibile la versione 6 che al di là degli ovvi bug fixing supporta una versione più aggiornata della specifiche Servlet e JSP di Sun.

Brevemente:

  • Tomcat 6.0.x supporta le specifice Servlet 2.5 e le specifiche JSP 2.1
  • Tomcat 5.5.x supporta le specifice Servlet 2.4 e le specifiche JSP 2.0
  • Tomcat 4.1.x supporta le specifice Servlet 2.3 e le specifiche JSP 1.2
  • Tomcat 3.3.x supporta le specifice Servlet 2.2 e le specifiche JSP 1.1

Ne consegue che se volete installare la versione più aggiornata o una datata, dovrete installare Tomcat a mano (il che è veramente semplice)

La seguente procedura è testata su Tomcat 6.0.14 e Ubuntu 7.04 con java settato come in uno dei miei precedenti post ma sarei veramente sorpreso se non si adattasse alle altre principali distribuzioni Linux e alle altre versioni di Tomcat. Iniziamo con lo scaricare Tomcat da qua per la versione 6 oppure scegliete un’altra versione da qua. Selezionate il file tar.gz sotto “Core” sotto “Binary Distributions” a fate il download.
Scaricato il file spostatelo sotto /opt o in un’altra directory di vostra scelta e scompattatelo. Vi ritroverete con una directory dal probabile nome di apache-tomcat-6.0.14 e potete anche rimuovere il file .tar.gz. Di fatto l’installazione è terminata. Per usare il server appena installato vi potrebbero far comodo le seguenti basilari informazioni.

  • Avvio e shutdown del server: potete avviare e stoppare tomcat attraverso due script che trovate nella directory bin. Da terminale eseguite:

    /opt/apache-tomcat-6.0.14/bin/startup.sh (per avviare il server)

    /opt/apache-tomcat-6.0.14/bin/shutdown.sh (per stoppare il server)

    Ora dipende dai vostri gusti ma se volete semplificarvi la vita ed evitare ogni volta di digitare tutta la stringa potete aggiungere al $PATH anche la directory di Tomcat (vedi env_vars nel post su Java) o creare un link e metterlo in una delle directory già nel $PATH (per vederlo: echo $PATH) o creare un launcher sulla barra delle applicazioni, ecc.

  • Log del server: per qualsiasi problema il primo posto dove guardare è il log del sistema che si troverà in questo esempio in:

    /opt/apache-tomcat-6.0.14/logs/catalina.out

    Se è molto lungo potete utilizzare da terminale:

    tail -500 /opt/apache-tomcat-6.0.14/logs/catalina.out

    che stamperà a video solo le ultime 500 righe del file.

  • Configurazione: non dovreste avere bisogno di cambiare niente dei settaggi di default, almeno per una configurazione standard. In ogni caso il comportamento del server è regolato attraverso una serie di file presenti sotto la cartella /opt/apache-tomcat-6.0.14/conf e principalmente il file server.xml dove tra le altre cose è definita la porta di default su cui il server si pone in ascolto (8080) e altre opzioni avanzate (cluster, connectors, ecc.)
  • Amministrazione se il server è stato avviato senza intoppi (ed è stato installato in locale come si suppone in questo esempio) potete inserire in un browser in seguente indirizzo:

    http://127.0.0.1:8080/

    e vi apparirà la schermata di amministrazione del server. Le finzioni sotto administration richiedono il login quindi prima dovete creare uno user. Aprite il file/opt/apache-tomcat-6.0.14/conf/tomcat-users.xml e aggiungete le seguenti due righe:


    <role rolename="manager"/>
    <user username="manager" password="password" roles="manager"/>

    in modo che il file finale assomigli a qualcosa di questo tipo:


    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    .
    .
    <role rolename="manager"/>
    <user username="manager" password="password" roles="manager"/>
    </tomcat-users>

    Riavviate il server e ora dovreste essere capaci di accedere a “Tomcat Manager” con le credenziali appena create. Da questa sezione di amministrazione potrete poi controllare le java web applications attive sul sistema, deployarle, aggiungerne di nuove attraverso l’upload di un file .war e tante altre belle cose ancora.

  • Monitoraggio: per monitorare il server potete sempre usare i seguenti due comandi da terminale:

    ps -ef | grep tomcat

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

    sudo nmap -sS 127.0.0.1

    per controllare le porte aperte sul vostro computer e il particolare quella su cui Tomcat è in ascolto. Tenete presente che nmap potrebbe non essere installato sul vostro sistema.
    Questi basilari comandi vi aiutano anche in un primo troubleshooting. Se per esempio il server non parte e controllando catalina log vedete qualcosa del tipo:


    LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.net.BindException: Address already in use:8080

    vuol dire che la porta 8080 è già occupata da un altro processo, forse una precedente istanza di tomcat che non è stata propriamente stoppata (ve lo potrebbe dire ps -ef) oppure c’è un qualche altro programma in ascolto su quella porta (ve lo potrebbe dire nmap).

Read Full Post »

Quando vi capita di effettuare un download di un file (generalmente un programma) vi sarete forse accorti che oltre al file vero e proprio in alcuni casi e su alcuni siti è disponibile una stringa di caratteri strani chiamata MD5. Un esempio lo trovate qua: è il server Geronomo di Apache (che non ci interessa più di tanto sapere cosa sia e cosa faccia) e di fianco al programma da scaricare in formato tar.gz è ben visibile un link MD5 che mostra il checksum del programma. In sostanza si tratta di una stringa di caratteri casuali che costituisce la firma di quel programma e che viene messa a disposizione per garantirci l’autenticità del file che andremo a scaricare. Immaginate di voler scaricare un qualche programma dal sito del produttore. Il programma presente sul sito ufficiale rappresenta il nostro target ma quando clicchiamo per scaricarlo un diabolico hacker fa in modo di far arrivare sul nostro computer una versione modificata (magari con un virus o bachi di sicurezza, ecc.). L’esempio un pò paranoico del diabolico hacker mette però in luce la necessità di disporre di uno strumento che ci consenta di verificare l’integrità del file che abbiamo scaricato e ci garantisca che sia uguale a quello originale.
L’MD5 è un algoritmo per la crittografia dei dati che risponde a questa esigenza. In parole semplici questo algoritmo prende in input dei dati e produce come risultato una stringa casuale di caratteri di modo che le seguenti condizioni siano verificate:

  • dati in input uguali producono come risultato la stessa stringa di caratteri
  • data la stringa di caratteri generati è impossibile (o quasi) risalire ai dati che l’hanno prodotta
  • dati in input diversi producono come risultato stringhe diverse

Date queste proprietà L’MD5 viene usato in questo modo:

  • Il produttore calcola il checksum MD5 per il file o programma e lo rende pubblico sul sito
  • L’utente scarica il programma, genera da questo un checksum e lo compara con quello pubblico sul sito
  • Se combaciano, allora il programma scaricato corrisponde byte per byte a quello presente sul sito

Ora non ci rimane che generare un MD5 checksum da un generico file scaricato. In Linux possiamo usare il seguente comando da terminale:

md5sum nome_file

per esempio,

md5sum pippo.tar.gz

produrrà qualcosa tipo:

3b18ff250d8172737c4f67f11631f68a pippo.tar.gz

dove “3b18ff250d8172737c4f67f11631f68a” è il checksum MD5 che dobbiamo raffrontare con quello presente sul sito.
Per la cronaca è anche disponibile un plugin per Firefox che automatizza il procedimento per i download da internet. Trovate tutti i dettagli qua.

Read Full Post »

Eclipse è un IDE (Integrated Development Environment) principalmente per la programmazione in Java. Un IDE è un ambiente di sviluppo completo per la programmazione in un certo linguaggio e Eclipse si è affermato in ambito Java ormai da tempo anche in contesti aziendali in cui è stato preferito ad altri più o meno costosi IDE (per esempio JBuilder) principalmente per il fatto di essere open source, gratis e per avere molte delle caratteristiche che ci si aspetterebbe da un IDE professionale. Eclipse è scritto in Java e quindi dovete installare una JVM per faro girare: potete dare un’occhiata al precedente post per vedere come fare. Ultima cosa da notare: con Eclipse 3.3 (al momento in cui scrivo la più recente) viene offerto un package specifico per la programmazione C e C++ ed è inoltre sempre possibile utilizzare questo IDE per la programmazione in PHP con l’installazione di un plug-in aggiuntivo.
Se usate Ubuntu (o una derivata Debian), Eclipse è nel repository e quindi può essere installato semplicemente attraverso Synaptic (System -> Administration -> Synaptic Manager) oppure da terminale e riga di comando:

sudo apt-get install eclipse

La versione nel repository però è un pò datata (3.2) mentre quella disponibile sul sito (http://www.eclipse.org/) è più recente (3.3) e contiene molte novità e miglioramenti. Chi utilizza Eclipse di solito è un utente professionale e la versione potrebbe essere un parametro da tenere in considerazione. C’è da dire che Eclipse è espandibile e integrabile con diversi plug-in sviluppati dalla comunità e di solito le versioni più datate offrono maggior supporto e maggior scelta di questi componenti. Fatto un bilancio complessivo ho optato per la versione più recente (3.3) scaricabile dal sito (http://www.eclipse.org/) anche perché offre differenti scelte tra cui un package apposito per lo sviluppo con tecnologie java JEE.
Se volete seguire questa strada allora occorre scaricare l’occorrente da qui. Sono presenti diverse opzioni quindi dovete scegliere quella che si addice di più alle vostre esigenze. Spendo due parole in più su questi tre pacchetti:

  • Eclipse IDE for Java EE Developers: questa è la scelta ottimale se programmate con tecnologie Java EE come Servlet, EJB, JSP, JMS ecc. di solito utilizzate in ambito web per progetti enterprise di una certa importanza
  • Eclipse IDE for Java Developers: questo se vogliamo è il pacchetto standard per creare applicazioni Java. Un IDE aiuta solamente il programmatore per cui anche con questo pacchetto potete creare applicazioni Java EE. Semplicemente alcuni tools e utility non sono fornite
  • Eclipse IDE for C/C++ Developers: come dice il nome è per chi si occupa di programmazione in C e C++

eclipse

Tutti i pacchetti richiedono una versione del jdk uguale o superiore alla 1.5. Una volta scelto il pacchetto, fate il download. Nel mio caso ho scelto Eclipse IDE for Java EE Developers (ma la procedura è identica per gli altri pacchetti e in teoria si dovrebbe adattare a tutte le distribuzioni Linux). Fatto il downoad mi ritrovo con un file

eclipse-jee-europa-linux-gtk.tar.gz

che decido di installare nella directory

/opt (dopotutto è un package opzionale)

Userò la procedura da terminale ma ovviamente se preferite potete eseguire i semplici passi che seguono da interfaccia grafica. Copiamo il file in /opt:

cp eclipse-jee-europa-linux-gtk.tar.gz /opt

Potreste aver bisogno di utilizzare sudo o avere i privilegi di root (dipende dai permessi sulla directory /opt nel vostro sistema). Spostatevi in /opt:

cd /opt

e scompattate il file:

tar -zxvf eclipse-jee-europa-linux-gtk.tar.gz

e ora possiamo eseguire Eclipse semplicemente con il comando da terminale:

/opt/eclipse/eclipse

Ovviamente possiamo creare un launcher nella barra delle applicazioni, specificare /opt/eclipse/eclipse come comando e usare l’icona /opt/eclipse/icon.xpm

Segnalo anche due altri interessanti post sull’argomento:

http://www.paoloferretti.it/blog/2007/05/25/installare-eclipse-su-ubuntu-704-feisty-fawn/

http://orter.wordpress.com/2007/06/11/installare-eclipse-su-ubuntu-704-versione-64-bit/

Read Full Post »

Questo post presenta la soluzione ad un problema in cui mi sono imbattuto recentemente. Utilizzo un hard disk USB esterno con FAT32 come file system (in modo da poterlo gestire anche da Windows) e da circa un paio di settimane, poco dopo averlo collegato al mio pc su cui uso Ubuntu 7.04, non riuscivo a scrivere o cancellare file dal disco in questione con un errore tipo:

cannot write 'x.x': Read-only file system

Quando inserite una penna USB o un hard disk esterno o un qualche altro dispositivo USB, Ubuntu li monta automaticamente all’interno della directory /media
La prima cosa da fare è pertanto verificare che abbiate i permessi giusti sul dispositivo appena montato con un ls -l da terminale:

ls -l /media

L’output potrebbe essere qualcosa di simile:

lrwxrwxrwx 1 root root 6 2006-03-23 11:08 cdrom -> cdrom0
drwxr-xr-x 2 root root 4096 2006-03-23 11:08 cdrom0
drwx------ 6 lorenzo root 16384 1970-01-01 00:00 disk

Il dispositivo è stato riconosciuto e montato da Linux come “disk”. L’output dice anche che l’utente “lorenzo” ha tutti i permessi (lettura, scrittura, esecuzione) sul file system e quindi questo non sembra essere il problema.
Il prossimo passo, che nel mio caso è risultato decisivo, è quello di controllare il file system alla ricerca di eventuali errori con dosfsck. Prima diamo da terminale:

fdisk -l

per controllare la tabella delle partizioni. Dall’output risulta che “disk” corrisponde al device /dev/sdb1. Un modo analogo (forse più intuitivo nel risultato ma meno “elegante”) di determinare quale sia il device corrispondente a /media/disk è:

df | grep "/media/disk"

il quale restituisce:

/dev/sdb1 509536 467104 42432 92% /media/disk

Stesso risultato di fdisk. A questo punto eseguiamo dosfsck senza nessuna opzione solo per controllare la presenza di eventuali errori nel file system. dosfsck, terminata l’esecuzione, lascerà intatto il vostro hard disk o penna USB senza nessuna modifica.

dosfsck /dev/sdb1

se dall’output dovessero risultare problemi (nel mio caso qualche cluster era corrotto) allora vale la pena tentare una riparazione:

dosfsck -r /dev/sdb1

Nel mio caso questo ha felicemente risolto il problema.

Read Full Post »

Chi lavora con Java si sarà spesso imbattuto nella famigerata java.lang.ClassNotFoundException. Dopo le imprecazione del momento sorge spesso la necessita di scoprire in quale tra le decine di file jar nel classpath si annida questa benedetta classe. Ovviamente questo è solo un esempio di uno scenario in cui disporre di uno strumento in grado di ricercare ricorsivamente per nome una classe in svariati archivi jar può fare la differenza. Per chi lavora in ambiente Linux ho trovato una risposta qui e la ripropongo tradotta e più dettagliata nei passaggi.
Per prima cosa dobbiamo creare uno script bash che potete chiamare come vi pare (io l’ho chiamato findclass) e che va messo nel path (io ho scelto /usr/local/bin).
Da terminale spostiamoci in /usr/local/bin:

sudo touch findclass

sudo gedit findclass (o qualsiasi altro editor come vi va bene)

incollate dentro il file findclass le seguenti righe:

#!/bin/bash
# This is a program for finding a Class in a ton of jars

find . -name "*.jar" | xargs -i unzip -l {} | grep -E "^Archive:|$1" | less

Salvate e chiudete. Ora spostatevi nella directory in cui avete tutti i jar e provate da terminale a dare il comando appena creato. L’optput dovrebbe essere qualcosa tipo:

> findclass Enclosed
Archive: ./aspectj-1.5.3.jar
Archive: ./aspectjweaver.jar
Archive: ./junit.jar
651 27-03-07 14:22 org/junit/runners/Enclosed.class

Vale a dire che sono stati passati in rassegna tre archivi jar e la classe Enclosed è stata trovata in junit.jar. Il programma less, per uscire basta premere “q”.
Se per qualche ragione non vi trova il comando che avete creato (findclass) stampate il path a terminale:

echo $PATH

e controllate che il file creato sia all’interno di una delle directory riportate nel path.

Read Full Post »