468x60

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:
sudo apt-get install mysql-server mysql-admin mysql-query-browser

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
aAdd - create a new archive, or add files to an existing archive
dDelete - remove files from an existing archive
eExtract - unarchive files
lList - display the contents of an archive
tTest - validate the integrity of an archive
uUpdate - overwrite existing files in an existing archive
xExtract - same as “e”, except that the files are restored to their exact original locations (if possible)

options
-xExclude file(s), as shown above
-tThe type of archive to create (-t7z, -tzip, -tgzip, -tbzip2 or -ttar). -t7z is the default.
-rRecurse subdirectories
-sfxCreate a self-extracting archive
-mx=9This 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.
-ospecifies the output directory (for when extracting). The default is to use the current directory.
-uUpdate 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?
-vCreate 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 i gruppi di interesse nella sezione groups.
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:
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

imagesNei casi in cui per errore abbiamo eliminato definitivamente dei files, per poi accorgerci che ci serviva, sono fondamentali i software per il recupero dei dati. Un software portable e freeware per il recupero dei dati è Restoration, un semplice strumento facile da usare, che consente di ripristinare i file rimossi dal cestino. Oltre al disco rigido del computer, il programma è in grado di provvedere al recupero anche su schede o drive Flash, e addirittura anche dopo che queste sono state formattate.

restoration installer

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.

restoration

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:
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:

  1. Scaricare Qemu da qui, ed estrarlo su una qualsiasi cartella
  2. Nella cartella dove abbiamo estratto Qemu troveremo anche il programma qemu-img
  3. Per creare un disco virtuale vmdk da 2GB basta digitare dalla shell il seguente comando: qemu-img.exe create -f vmdk Ubuntu.vmdk 2G
A questo punto avremo il file Ubuntu.vmdk, che sarà il nuovo disco virtuale.

Di seguito posto una possibile configurazione di una macchina virtuale VMware che utilizza il suddetto disco virtuale con un S.O. Ubuntu Linux:
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 = ""
Buon divertimento!

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:

  1. Scaricare l'immagine ISO del CD di Ubuntu da qui
  2. Scaricare VMware Player da qui
  3. Creare una macchina virtuale vuota per Ubuntu Linux, utilizzando il servizio gratuito del sito web http://www.easyvmx.com
  4. Dalla home page cliccate “Super Simple”
  5. Inserite “Ubuntu” nel campo “Virtual Machine Name”
  6. Selezionate “Ubuntu linux” nel campo “Virtual Machine Operating System”
  7. Abilitate l’opzione “LiveCD (ISO)” e nel campo inserite il file ISO
  8. Cliccate “Create virtual machine”. Una volta fatta questa operazione il sito vi farà scaricare un file zip.
  9. Decomprimete il file zip
  10. Copiate il file ISO nella cartella appena decompressa, contenente il file ubuntu.vmx
  11. Fate doppio click sul file ubuntu.vmx
  12. Buon divertimento!

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);
}

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);
}

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());
}
}
}

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:

  1. l'utente-1 accede al record
  2. l'utente-2 accede al record e lo modifica
  3. l'utente-1 modifica il record (senza considerare le modifiche apportate successivamente dall' utente-2 !)
La mancata gestione dello scenario sopra illustrato causerebbe la creazione di dati sporchi. Un metodo per evitare questo problema è il locking ottimistico, che consiste nel controllare la "versione" del record prima di ogni update, permettendone la modifica solo se la versione del record sul database corrisponde alla versione in memoria, letta quando era stato effettuato l'accesso al record.

JPA offre la possibilità di abilitare la gestione automatica del locking ottimistico, attraverso l'annotazione @Version:
@Version
private int version;
Basta aggiungere il suddetto codice al nostro JavaBean, ed aggiungere sul database il campo version di tipo intero.
468x60

Cerca su Google

Cerca nel Blog con Google