sudo apt-get install mysql-server mysql-admin mysql-query-browser
giovedì 28 maggio 2009
Installare MySql Server e GUI Tools su Ubuntu
Per installare MySql Server ed i GUI Tools su Ubuntu basta digitare il seguente comando dalla shell:
Eseguire 7-Zip da uno shell script
Se occorre eseguire 7-Zip in modalità batch attraverso uno script, è possibile farlo dalla shell con il seguente comando:
7z.exe action [options] filename[.zip] file(s)
action
options
filename.zip
Specifica il nome del file Zip coinvolto. Specificare il nome completo del file (inclusa la directory).
files
E' una lista di uno o più files, oppure il carattere @ seguito dal nome del file che contiene la lista dei files da aggiungere, un nome per linea. Wildcards (e.s. *.bak) sono permessi.
Esempi:
7z.exe a -tzip c:\output.zip c:\myfiles\
Se ci sono spazi usare gli apici nel seguente modo:
7z.exe a -tzip c:\output2.zip "c:\My Documents\file1.doc"
| a | Add - create a new archive, or add files to an existing archive |
| d | Delete - remove files from an existing archive |
| e | Extract - unarchive files |
| l | List - display the contents of an archive |
| t | Test - validate the integrity of an archive |
| u | Update - overwrite existing files in an existing archive |
| x | Extract - same as “e”, except that the files are restored to their exact original locations (if possible) |
options
| -x | Exclude file(s), as shown above |
| -t | The type of archive to create (-t7z, -tzip, -tgzip, -tbzip2 or -ttar). -t7z is the default. |
| -r | Recurse subdirectories |
| -sfx | Create a self-extracting archive |
| -mx=9 | This can be any number from 0 to 9, where 0 means no compression (just store the files), and 9 means maximum compression (takes longer). -mx=5 is the default, a compromise between the amount of compression obtained, and the time required to perform the compression. |
| -o | specifies the output directory (for when extracting). The default is to use the current directory. |
| -u | Update options. this switch works in conjunction with the add, delete, and update commands to determine conflict resolution. For example, what happens when a file being added to an archive already exists in the archive and the timestamp on the source file is older than the timestamp in the archive. Should the file in the archive be left alone, or overwritten? |
| -v | Create Volumes — This switch allows you to specify the maximum size for an archive file. If the archive file would be bigger than that, 7-Zip will automatically split it into multiple volumes. this will ensure that its the archive files can fit on whatever storage media you have at hand. |
filename.zip
Specifica il nome del file Zip coinvolto. Specificare il nome completo del file (inclusa la directory).
files
E' una lista di uno o più files, oppure il carattere @ seguito dal nome del file che contiene la lista dei files da aggiungere, un nome per linea. Wildcards (e.s. *.bak) sono permessi.
Esempi:
7z.exe a -tzip c:\output.zip c:\myfiles\
Se ci sono spazi usare gli apici nel seguente modo:
7z.exe a -tzip c:\output2.zip "c:\My Documents\file1.doc"
mercoledì 27 maggio 2009
Configurare Subversion su Ubuntu per connessione attraverso un Proxy
Avendo una connessione ad internet attraverso un proxy è necessario configurare in modo opportuno Subversion su Ubuntu. Basta editare il file /etc/subversion/servers configurandolo nel seguente modo:
Impostate il proxy per ogni gruppo aggiunto.
Ad esempio:
[gruppo1]
http-proxy-host = ip.del.proxy
http-proxy-port = porta
http-proxy-username = miousername
http-proxy-password = miapassword
Impostate i gruppi di interesse nella sezione groups.
Ad esempio:
[groups]
gruppo1 = url.progetto.ext
Ad esempio:
[groups]
gruppo1 = url.progetto.ext
Impostate il proxy per ogni gruppo aggiunto.
Ad esempio:
[gruppo1]
http-proxy-host = ip.del.proxy
http-proxy-port = porta
http-proxy-username = miousername
http-proxy-password = miapassword
Ora potrete utilizzare svn tramite http passando per il proxy
martedì 26 maggio 2009
Eseguire WinZip da uno shell script
Se occorre eseguire WinZip in modalità batch attraverso uno script, è possibile farlo dalla shell con il seguente comando:
-min specifica che WinZip deve essere eseguito minimizzato. Se -min è specificato, deve essere il primo parametro.
action
-a for add, -f for freshen, -u for update, and -m for move. Bisogna specificare una (ed una sola) di queste actions.
options
-r corrisponde alla checkbox Include subfolders e aggiunge i files dalle sotto directory. Aggiungendo -p, WinZip memorizzerà informazioni sulle cartelle per tutti i files aggiunti, non solo per i files delle sotto directory.
-ex, -en, -ef, -es, e -e0 determinano il metodo di compressione: eXtra, Normal, Fast, Super fast, e no compression. Il default è "Normal". -hs include files nascosti e di sistema. Utilizzare -sPassword per specificare una password case-sensitive. La password può essere racchiusa tra apici, ad esempio, -s"Secret Password".
filename.zip
Specifica il nome del file Zip coinvolto. Specificare il nome completo del file (inclusa la directory).
files
E' una lista di uno o più files, oppure il carattere @ seguito dal nome del file che contiene la lista dei files da aggiungere, un nome per linea. Wildcards (e.s. *.bak) sono permessi.
Esempi:
winzip32.exe -min -a -r c:\output.zip c:\myfiles\
Se ci sono spazi usare gli apici nel seguente modo:
winzip32 -a c:\output2.zip "c:\My Documents\file1.doc"
winzip32 [-min] action [options] filename[.zip] file(s)
-min specifica che WinZip deve essere eseguito minimizzato. Se -min è specificato, deve essere il primo parametro.
action
-a for add, -f for freshen, -u for update, and -m for move. Bisogna specificare una (ed una sola) di queste actions.
options
-r corrisponde alla checkbox Include subfolders e aggiunge i files dalle sotto directory. Aggiungendo -p, WinZip memorizzerà informazioni sulle cartelle per tutti i files aggiunti, non solo per i files delle sotto directory.
-ex, -en, -ef, -es, e -e0 determinano il metodo di compressione: eXtra, Normal, Fast, Super fast, e no compression. Il default è "Normal". -hs include files nascosti e di sistema. Utilizzare -sPassword per specificare una password case-sensitive. La password può essere racchiusa tra apici, ad esempio, -s"Secret Password".
filename.zip
Specifica il nome del file Zip coinvolto. Specificare il nome completo del file (inclusa la directory).
files
E' una lista di uno o più files, oppure il carattere @ seguito dal nome del file che contiene la lista dei files da aggiungere, un nome per linea. Wildcards (e.s. *.bak) sono permessi.
Esempi:
winzip32.exe -min -a -r c:\output.zip c:\myfiles\
Se ci sono spazi usare gli apici nel seguente modo:
winzip32 -a c:\output2.zip "c:\My Documents\file1.doc"
Usare apt-get in una rete con proxy
Alcuni giorni fa ho avuto problemi nell'installare nuovi packages su Ubuntu Linux, perchè la connessione ad internet era dietro un proxy. Ecco come fare...
Per utilizzare apt-get in una rete con proxy, bisogna configurare APT affinché utilizzi il proxy, editando il file /etc/apt/apt.conf aggiungendogli la seguente riga:Acquire::http::proxy “http://username:password@indirizzo_proxy:porta″;
lunedì 25 maggio 2009
Ripristinare sources.list in Ubuntu
Per rigenerare il file sources.list in Ubuntu Linux basta seguire questa procedura:
- Eseguire un backup del sources.list corrente
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
- Cancellare tutto il contenuto del file sources.list lasciandolo vuoto, utilizzando un text editor (qui utilizzeremo l'editor visuale gedit)
gksudo gedit /etc/apt/sources.list
- Eseguire il comando
sudo apt-get update
- Aprire il Synaptic Package Manager e click su: settings > repositories. Mettere un check su tutti i repositories che si desiderano per ogni categoria. Inoltre, controllare l'authentication tab. Le authentication keys dovrebbero essere mostrate lì. Infine chiudere la finestra dei repositories e click su reload.
Questo dovrebbe ricostruire il file sources.list. Buon divertimento!
giovedì 21 maggio 2009
Restoration - applicazione portable per il recupero dati
Una volta scaricato il programma, che consiste in un file auto-estraente, basterà indicare una cartella di destinazione dove scompattare i file, e avviare l’applicazione cliccando su Restoration.exe (esegui come amministratore in Windows Vista). Al termine della scansione ci verranno mostrati tutti i file di cui è possibile il recupero.
mercoledì 20 maggio 2009
Formattare un disco con Ubuntu Linux
Ecco una breve guida su come formattare dischi con Ubuntu Linux
- Creare una partizione
Per creare una partizione utilizzare il comando fdisk oppure il tool visuale qtparted. Da terminale digitare:
Una volta sistemate le partizioni, puoi farne una unica se e’ un disco di “repository”, oppure più di una. Ora possiamo procedere con la formattazione, ovvero la creazione del filesystem.
Prima di fare questo, devi stabilire se il disco, la chiavetta il pen-drive usb deve essere utilizzato solo con Linux oppure con Windows e Linux.
- Creazione del Filesystem per utilizzo con Linux
Da terminale digitare:
- Creazione del Filesystem per utilizzo con Linux e Windows
Da terminale digitare:
- Creare una partizione
Per creare una partizione utilizzare il comando fdisk oppure il tool visuale qtparted. Da terminale digitare:
sudo fdisk /dev/sdX(dove X è la lettara del tuo disco che hai identificato prima). Premendo “m” otterrai il menu (”d” e’ per cancellare le partizioni “n” per aggiungerle). Es.: sudo fdisk /dev/sdb
Una volta sistemate le partizioni, puoi farne una unica se e’ un disco di “repository”, oppure più di una. Ora possiamo procedere con la formattazione, ovvero la creazione del filesystem.
Prima di fare questo, devi stabilire se il disco, la chiavetta il pen-drive usb deve essere utilizzato solo con Linux oppure con Windows e Linux.
- Creazione del Filesystem per utilizzo con Linux
Da terminale digitare:
sudo mkfs.etx2 /dev/(o mkfs.ext3 se vuoi usare il journaling o anche mkfs.reiserfs). Es.: sudo mkfs.ext2 /dev/sdb1
- Creazione del Filesystem per utilizzo con Linux e Windows
Da terminale digitare:
mkfs.vfat /dev/Ubuntu ora dovrebbe in automatico riconoscere il nuovo disco e mostrarti un’icona sul Desktop. Se questo non dovesse accadere, basterà “montare” manualmente il disco dalla shell con il comando mount.
Es.: sudo mount -t ext2| /dev/sdb1 /mnt/
o
Es.: sudo mount -t vfat /dev/sdb1 /mnt/
Aggiungere un disco virtuale ad una macchina virtuale
Utilizzando una macchina virtuale VMware ho avuto l'esigenza di aggiungere un disco virtuale. Un metodo semplice per farlo è attraverso il software open source Qemu, seguendo questa semplice procedura:
Di seguito posto una possibile configurazione di una macchina virtuale VMware che utilizza il suddetto disco virtuale con un S.O. Ubuntu Linux:
- Scaricare Qemu da qui, ed estrarlo su una qualsiasi cartella
- Nella cartella dove abbiamo estratto Qemu troveremo anche il programma qemu-img
- Per creare un disco virtuale vmdk da 2GB basta digitare dalla shell il seguente comando: qemu-img.exe create -f vmdk Ubuntu.vmdk 2G
Di seguito posto una possibile configurazione di una macchina virtuale VMware che utilizza il suddetto disco virtuale con un S.O. Ubuntu Linux:
Buon divertimento!config.version = "8"
virtualHW.version = "3"
ide0:0.present = "TRUE"
ide0:0.filename = "Ubuntu.vmdk"
memsize = "256"
MemAllowAutoScaleDown = "FALSE"
ide1:0.present = "TRUE"
#ide1:0.fileName = "auto detect"
#ide1:0.deviceType = "cdrom-raw"
ide1:0.fileName = "ubuntu-9.10-install-i386.iso"
ide1:0.deviceType = "cdrom-image"
ide1:0.autodetect = "TRUE"
floppy0.present = "FALSE"
ethernet0.present = "TRUE"
usb.present = "TRUE"
sound.present = "TRUE"
sound.virtualDev = "es1371"
displayName = "Ubuntu"
guestOS = "Ubuntu"
nvram = "Ubuntu.nvram"
MemTrimRate = "-1"
ide0:0.redo = ""
ethernet0.addressType = "generated"
uuid.location = "56 4d 5c cc 3d 4a 43 29-55 89 5c 28 1e 7e 06 58"
uuid.bios = "56 4d 5c cc 3d 4a 43 29-55 89 5c 28 1e 7e 06 58"
ethernet0.generatedAddress = "00:0c:29:7e:06:58"
ethernet0.generatedAddressOffset = "0"
tools.syncTime = "TRUE"
ide1:0.startConnected = "TRUE"
uuid.action = "create"
checkpoint.vmState = ""
Etichette:
virtualizzazione
Virtualizzare Ubuntu
Per diverse ragioni può capitare di voler virtualizzare un sistema operativo. Avendo necessità di testare su un ambiente Linux alcune applicazioni Java da me sviluppate, ho pensato di creare una macchina virtuale con Ubuntu (una distribuzione di Linux molto ben fornita e semplice da utilizzare). Elenco qui di seguito i passi necessari per creare la macchina virtuale VMware:
- Scaricare l'immagine ISO del CD di Ubuntu da qui
- Scaricare VMware Player da qui
- Creare una macchina virtuale vuota per Ubuntu Linux, utilizzando il servizio gratuito del sito web http://www.easyvmx.com
- Dalla home page cliccate “Super Simple”
- Inserite “Ubuntu” nel campo “Virtual Machine Name”
- Selezionate “Ubuntu linux” nel campo “Virtual Machine Operating System”
- Abilitate l’opzione “LiveCD (ISO)” e nel campo inserite il file ISO
- Cliccate “Create virtual machine”. Una volta fatta questa operazione il sito vi farà scaricare un file zip.
- Decomprimete il file zip
- Copiate il file ISO nella cartella appena decompressa, contenente il file ubuntu.vmx
- Fate doppio click sul file ubuntu.vmx
- Buon divertimento!
Etichette:
virtualizzazione
mercoledì 13 maggio 2009
Visualizzare l'output della shell in Java
Codice Java per eseguire un comando della shell e visualizzarne l'output:
// start the process command
String []cmd = {executable,param1,..,paramN}
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec(cmd);
// put a BufferedReader on the process output
InputStream inputstream =
proc.getInputStream();
InputStreamReader inputstreamreader =
new InputStreamReader(inputstream);
BufferedReader bufferedreader =
new BufferedReader(inputstreamreader);
// read the process output
String line;
while ((line = bufferedreader.readLine())
!= null) {
System.out.println(line);
}
// check for process failure
try {
if (proc.waitFor() != 0) {
System.err.println("exit value = " +
proc.exitValue());
}
}
catch (InterruptedException e) {
System.err.println(e);
}
Etichette:
java,
programmazione
martedì 5 maggio 2009
Ottenere l'ultimo Insert ID con JDBC
Utilizzando campi autoincrementanti capita spesso di voler conoscere l'ID del record inserito in tabella. Per farlo in Java con JDBC possiamo utilizzare il metodo getGeneratedKeys() di java.sql.PreparedStatement, nel seguente modo:
String query = "INSERT INTO myTable .... ";
stmt.executeUpdate(query,Statement.RETURN_GENERATED_KEYS);
resultSet = stmt.getGeneratedKeys();
if ( resultSet != null && resultSet.next() )
{
newid = resultSet.getInt(1);
}
Etichette:
data base,
java,
programmazione
lunedì 4 maggio 2009
Scrittura Append su file in Java
Codice Java per scrivere su un file appendendo i contenuti a quelli preesistenti:
import java.io.*;
class FileWrite
{
public static void main(String args[])
{
try{
// Create file
FileWriter out = new FileWriter("out.txt",true);
out.write("Hello Java");
//Close the output stream
out.close();
}catch (Exception ex){//Catch exception if any
System.err.println("Error: " + ex.getMessage());
}
}
}
import java.io.*;
class FileWrite
{
public static void main(String args[])
{
try{
// Create file
FileWriter out = new FileWriter("out.txt",true);
out.write("Hello Java");
//Close the output stream
out.close();
}catch (Exception ex){//Catch exception if any
System.err.println("Error: " + ex.getMessage());
}
}
}
Etichette:
java,
programmazione
JPA - gestione automatica degli accessi concorrenti
Lavorando allo sviluppo di un software multi-utente ho dovuto affrontare il problema della gestione degli accessi concorrenti ai dati, ed in particolare degli accessi concorrenti in modifica. In pratica, se n utenti accedono allo stesso record per modificarlo si avrà la seguente situazione da gestire:
JPA offre la possibilità di abilitare la gestione automatica del locking ottimistico, attraverso l'annotazione @Version:
- l'utente-1 accede al record
- l'utente-2 accede al record e lo modifica
- l'utente-1 modifica il record (senza considerare le modifiche apportate successivamente dall' utente-2 !)
JPA offre la possibilità di abilitare la gestione automatica del locking ottimistico, attraverso l'annotazione @Version:
@VersionBasta aggiungere il suddetto codice al nostro JavaBean, ed aggiungere sul database il campo version di tipo intero.
private int version;
Etichette:
data base,
java,
programmazione
Iscriviti a:
Post (Atom)

