House of quality methodology

L’House of Quality è uno schema grafico che relaziona le esigenze del cliente alle caratteristiche del processo.

Molto utile in fase di analisi delle applicazioni software per dare un riscontro al cliente di ciò che sta chiedendo.

Per maggiori dettagli su wikipedia http://it.wikipedia.org/wiki/La_Casa_della_Qualità

File di esempio di un House-of-Quality-traditionalhoq-Matita.xls

Posted in Metodiche | Comments Off on House of quality methodology

Rational Unified Process

Una metodologia da prendere in considerazione quando esistono progetti non andati a buon termine può essere il RUP (Rational Unified Process)

Per un approfondimento su wikipedia http://it.wikipedia.org/wiki/Rational_Unified_Process

Posted in Metodiche | Comments Off on Rational Unified Process

Application Nmap Port Scanner

Un utile strumento per analizzare lo stato delle porte TCP e UDP è NMAP.

Per maggiori dettagli il sito del prodotto è http://nmap.org/

Posted in Network | Comments Off on Application Nmap Port Scanner

PDF Linux Virtual Printer

In Linux (Ubuntu) è possibile installare il pacchetto cups-pdf per installare una stampate virtuale che permette di generare i PDF. I documenti generati vengono salvati nella cartella PDF all’interno della home dell’utente.

Per installare da riga comando
sudo apt-get install cups-pdf

Posted in Operating Systems, Unix Linux | Comments Off on PDF Linux Virtual Printer

Java Array Integer Duplicate

package prova.array;

/**
 * Questa classe di esempio serve per illustrare come individuare valori doppi in un array di numeri interi
 * @author Abejan
 * @version 23/11/2010
 *
 */

public class ArrayTest {
	
	public static void main(String[] args) {
		int i,j;
		
		//inizializzo l'array, con questa modalità
		// il sistema inizializza l'array con il tipo e il numero 
		// degli elementi inseriti tra parentesi graffe
		int a[]={1,25,25,35,15,12,13,14,85,86};
		
		for (i=0;i<a.length;i++){
			for (j=0;j<a.length;j++){
			  if (a[i]==a[j]&&i!=j){
				  System.out.println("Valore doppio ["+i+","+j+"]= " + a[i]);	  
			  }
			}		  	
		}
	}
}
Posted in Java, Programming Languages | Comments Off on Java Array Integer Duplicate

Java JDBC Sample Connection

// libreria classi per utilizzare i driver JDBC
import java.sql.*;

/**
 * Questa classe di esempio illustra come connettersi ad un DB
 * @version 23/11/2010
 */
public class testJDBC {

	public static void main(String[] args) {
		try {
			//PASSO1: Caricamento del driver <- dipende dal database
			// Carichiamo un driver di tipo 1 (bridge jdbc-odbc)
			
			Class.forName("com.mysql.jdbc.Driver");
		
			//PASSO2: stringa di connessione (URL) e creazione dell'oggetto Connection
			// Creiamo la stringa di connessione
			// accesso al database 'test' con user 'root' e password ''
			String url = "jdbc:mysql://localhost/test?user=root&password=";

			//Otteniamo una connessione con username e password
			Connection con = DriverManager.getConnection (url);

			//PASSO3: Creazione dell'oggetto Statement e esecuzione della query
			// Creiamo un oggetto Statement per poter interrogare il db
			Statement cmd = con.createStatement ();

			cmd.executeUpdate("DROP TABLE `test`.`myTable`");
			 
			//eseguo la query ('executeUpdate' viene utilizzata per lanciare tutte le query tranne quelle di selezione che si utilizza 'executeQuery')			
			cmd.executeUpdate("CREATE TABLE `test`.`myTable` ("+
					          "`nome` VARCHAR( 20 ) NOT NULL ," +
					          "`anno` INT NOT NULL " +
					          ") ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;");

			cmd.executeUpdate("INSERT INTO `test`.`myTable` (`nome`,`anno`) " +
						      "VALUES ('Matteo',1988), " +
					          "('Simone','1985')");
			
			//Eseguiamo una query e immagazziniamone i risultati
			// in un oggetto ResultSet
			String qry = "SELECT * FROM `test`.`myTable`";
			ResultSet res = cmd.executeQuery(qry);

			//PASSO4: elaborazione dei risultati tramite ResultSet
			// Stampiamone i risultati riga per riga
			while (res.next()) {
				System.out.println(res.getString("nome"));
				System.out.println(res.getString("anno"));
			}

			//Rilascio delle risorse
			res.close();
			cmd.close();
			con.close();
		} catch (SQLException e) {
			e.printStackTrace();
		// java non trova il driver per il database	
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
}
Posted in Java, Programming Languages | Comments Off on Java JDBC Sample Connection

Java Thread Essere Vivente

Con il presente esempio si è voluto realizzare un codice Java che simuli la vita di un essere vivente, per illustrare le potenzialità dell’utilizzo dei Thread.

package prova.thread;

/**
 * 
 * @author Abejan
 * @version 28/12/2010
 */

public class ThreadEssereVivente extends Thread{
	// stato=informazione dell'essere vivente, assumere uno dei presenti valori 'DORMIRE', 'MANGIARE', 'GIOCARE', 'RIPRODURSI', 'MORTO', nel caso del riprodursi deve generare due altri esseri viventi 

	private String stato; 
	
	public ThreadEssereVivente(String s) {
		//passo al costuttore del Thread il nome del thread
		super(s);
		setStato(&quot;MANGIARE&quot;); //lo stato iniziale dell'essere vivente è MANGIARE
	}
	
	@SuppressWarnings(&quot;static-access&quot;)

	public void run() {
		
		//se il presente thread ha superato la 4 generazione
		// setto lo stato in morto
		if (this.getName().length()&gt;4){
			setStato(&quot;MORTO&quot;);
		}
		
		if (stato==&quot;MORTO&quot;){
			stampa_video();
		}
						
		//fin quando il tread é ancora in essere e lo stato non é in MORTO,		
		while (this.isAlive()&amp;&amp;stato!=&quot;MORTO&quot;) {
						
			// randomizzo i 4 stati
			switch ((int)(4*Math.random())+1) {
			case 1:
				setStato(&quot;DORMIRE&quot;);				
				stampa_video();
				break;
			case 2:
				setStato(&quot;MANGIARE&quot;);
				stampa_video();
				break;
			case 3:
				setStato(&quot;GIOCARE&quot;);
				stampa_video();
				break;
			case 4:
				setStato(&quot;RIPRODURSI&quot;);
				stampa_video();
				riprodursi();				
				break;				
			}//end switch

			try {			
				//attendo 1 secodo per il thread corrente
				this.sleep(1000);
			} catch (Exception e) {}
		}//end while
		
		
	}

	//metodo che permette di generare due nuovi thread, figli di quello in essere
	// e setta lo stato del presente thread in morto
	private void riprodursi(){

		//creo il primo thread figlio		
		ThreadEssereVivente tevf1 = new ThreadEssereVivente(String.valueOf(this.getName()+&quot;0&quot;));		
		tevf1.start();
		
		//creo il secondo thread figlio
		ThreadEssereVivente tevf2 = new ThreadEssereVivente(String.valueOf(this.getName()+&quot;1&quot;));		
		tevf2.start();

		//setto lo stato del thread corrente, per farlo terminare
		setStato(&quot;MORTO&quot;);
	}
	
	//stampa a video lo stato del thread
	private void stampa_video(){
		System.out.println(&quot;Thread '&quot; + this.getName() +&quot;' stato = &quot;+this.getStato() + &quot; Thread attivi = &quot; + Thread.activeCount());		
	}
	
	public void setStato(String stato) {
		this.stato = stato;
	}

	public String getStato() {
		return stato;
	}

	
	public static void main(String args[]) throws InterruptedException {
		/* Lancio il primo thread */
		ThreadEssereVivente tc1 = new ThreadEssereVivente(&quot;0&quot;);		
		tc1.start();		 
	}	
}

Posted in Java, Programming Languages | Comments Off on Java Thread Essere Vivente

Linux script startup – Window autoexec.bat

In linux lo script utilizzato nello statup del sistema è di solito

/etc/init.d/rc.local

Posted in Operating Systems, Unix Linux | Comments Off on Linux script startup – Window autoexec.bat

Java String Permutation

package test;

/**
 * Metodo per la stampa di tutte le pertutazioni di una stringa
 * @author Abejan
 * @version 15/01/2011
 */

public class Permutazioni {
	
	// Procedura ricorsiva che stampa le TUTTE le permutazioni
	public static void permute(int level, String permuted, boolean used[], String original) {
		
		int length = original.length();
		
		if (level == length) { //permutazione completa
			System.out.println("Permutazione = " + permuted);			
		} else {
			for (int i = 0; i < length; i++) {
				if(!used[i]){
					used[i]=true;
					permute(level+1,original.charAt(i)+permuted,used,original);
					used[i]=false;					
				}
			}
			
		}
	}
	
	public static void main(String[] args) {		
		//inizializzazione stringa da permutare
		String s="abc";
		//arrary di lunghezza della stringa per gestione dei flag
		boolean used[];
		used = new boolean[3];
		//lancio le permutazioni e stampo
		permute(0, "", used, s);
	}	
}
Posted in Java, Programming Languages | Comments Off on Java String Permutation

MySql export import database

Una utilitità per esportare un database mysql in un file di testo con istruzioni SQL è mysqldump.

Sintassi della istruzione:
mysqldump -u nome_utente -p --opt nome_database > /directory/nome_file.sql

Per invece importare un database partendo dal file di dump, la sintassi della istruzione è la seguente
mysql -u nome_utente -p --database=nome_database < /directory/nome_file.sql

Posted in Database, MySql | Comments Off on MySql export import database