468x60

lunedì 30 marzo 2009

Rimuovere servizi in Windows XP

Per rimuovere i servizi in Windows XP possiamo utilizzare sc.exe.

Per prima cosa identifichiamo il servizio da rimuovere, accediamo allo snap-in Servizi (start - Esegui - digitare services.msc premere ok) ed andiamo ad rintracciare il servizio che vogliamo rimuovere.

Arrestiamo il servizio facendo click con il tasto destro del mouse e cliccando l’opzione arresta.
Alternative per arrestare un servizio:

  • sc stop nomeservizio
  • net stop "nome servizio"

Ora apriamo un prompt dei comandi e come prima cosa dobbiamo recuperare il valore di getkeyname, digitando al prompt dei comandi: sc getkeyname "nome servizio". Importante: notare che quando il nome di un servizio contiene degli spazi come nel nostro caso è necessario includerlo tra le virgolette.

Adesso rimuoviamo il servizio digitando: sc delete nomeservizio.

Sc.exe è un ottimo strumento per lavorare con i servizi, infatti oltre a quanto visto fin qui ci permette di creare servizi, e tutte le varie operazioni sono disponibili anche verso computer remoti funzioni che vedremo più avanti, nel frattempo per chi volesse maggiori informazioni può vedere qui.

File exists in Java

Molto spesso si ha l’esigenza di sapere se un file è presente, esiste o no all’interno del file system.

In Java è possibile saperlo utilizzando un codice simile:

Classe: java.io.File
Methodo: exists

String path = "/cartella/nomefile.estensione";
boolean exists = (new File(path)).exists();
if (exists)
{
out.println("Il file o la directory esiste");
}
else
{
out.println("Il file o la directory non esiste");
}

venerdì 20 marzo 2009

JavaBeans - codice d'esempio di utilizzo

Vediamo un semplice esempio di JavaBean, realizzato per contenere le informazioni di un utente durante la sua permanenza nel sito web:

Utente.java

public class Utente {
private String nome = null;
private String email = null;
private int pagineViste;

public Utente() {
pagineViste=0;
}

public aggiornaPV(){
pagineViste++;
}

public int getPagineViste(){
return pagineViste;
}

public void setNome(String value) {
nome = value;
}

public String getNome() {
return nome;
}

public void setEmail(String value) {
email = value;
}

public String getEmail() {
return email;
}

public String riassunto(){
String riassunto = null;
riassunto = "Il nome dell'utente è"+nome+",";
riassunto+= "il suo indirizzo e-mail è: "+email;
riassunto+=" e ha visitato "+pagineViste+" del sito";
return riassunto;
}

}//Utente

Come è facile capire, questo JavaBean contiene il nome dell'utente ed i metodi per modificarlo e restituirlo, il suo indirizzo e-mail con i relativi metodi, il numero di pagine viste dall'utente e un metodo che restituisce un riassunto schematico dei dati dell'utente.

Ecco come utilizzarli:

<html>
<head><title>Utilizzo del Bean</title></head>
<body>
<jsp:useBean id="utente" scope="session" class="InfoUtente"/>

Viene creata un'istanza del bean Utente con ambito session.

<jsp:setProperty name="utente" property="nome" value="MioNome"/>

Le proprietà del bean possono essere impostate con l'azione setProperty o agendo direttamente con i metodi creati appositamente.

<%
utente.setNome("MioNome");
utente.setEmail("mionome@miodominio.it");
%>

Lo stesso vale per la lettura dei bean che puo essere fatta con l'azione:
<jsp:getProperty name="utente" property="nome"/>

o con i metodi creati appositamente:
<%
out.println(utente.getNome());
out.println(utente.riassunto());
%>

Per incrementare il numero di pagine viste è sufficiente richiamare il metodo incrementaPV() e per ottenere il valore getPV():
<%
utente.aggiornaPV();
out.println(utente.getPagineViste());
%>

JavaBeans - come utilizzarli

Esistono tre azioni standard per facilitare l'integrazione dei Java Beans nelle pagine JSP:

1)
Permette di associare un'istanza di un JavaBean con un determinato ID ad una variabile script dichiarata con lo stesso ID. In pratica offre la possibilità di associare la classe contenuta nel JavaBean ad un oggetto visibile all'interno della pagina, in modo da poter richiamare i suoi metodi.
Attributi:
Id: codice identificativo dell'oggetto.
Scope: ambito dell'oggetto, i possibili valori sono:
  • page: gli oggetti con questo ambito sono accessibili solo all'interno della pagina in cui sono stati creati, in pratica possono venire paragonati alle variabili locali di un linguaggio di programmazione, vengono distrutte alla chiusura della pagina e i dati saranno persi;
  • request: gli oggetti con questo ambito sono accessibili esclusivamente nelle pagine che elaborano la stessa richiesta di quella in cui è stato creato l'oggetto, quest'ultimo inoltre rimane nell'ambito anche se la richiesta viene inoltrata ad un'altra risorsa;
  • session: gli oggetti definiti in quest'ambito sono accessibili solo alle pagine che elaborano richieste all'interno della stessa sessione di quella in cui l'oggetto è stato creato per poi venire rilasciati alla chiusura della sessione a cui si riferiscono, in pratica restano visibili in tutte le pagine aperte nella stessa istanza (finestra) del Browser, fino alla sua chiusura. Solitamente i JavaBeans istanziati in questo modo vengono utilizzati per mantere le informazioni di un utente di un sito;
  • application: gli oggetti definiti in quest'ambito sono accessibili alle pagine che elaborano richieste relative alla stessa applicazione, in pratica sono validi dalla prima richieta di una pagina al server fino al suo shotdown.
  • class: nome della classe che definisce l'implementazione dell'oggetto beanName: contiene il nome del JavaBean che, come già accennato deve coincidere con il nome del file .class (senza estensione)

Esempio:

Crea un'istanza della classe "nomeClasse" con ambito "session" richiamabile attraverso l'id "nomeBean". Da questo momento sarà possibile accedere a metodi e variabili (pubbliche) attraverso la sintassi nomeBean.nomeMetodo e nomeBean.nomeVariabile, rispettivamente per metodi e variabili.

2)

Permette di impostare il valore di una delle proprietà di un JavaBean.

Attributi:

  • name: nome dell'istanza di JavaBean definita in un'azione
  • property: rappresenta la proprietà di cui impostare il valore
  • param: nome del parametro di richiesta il cui valore si vuole impostare
  • value: valore assegnato alla proprietà specificata

Esempio:

permette di assegnare il valore "parametro" alla proprietà "nomeProp" del bean di nome nomeBean.

3)

Prende il valore di una proprietà di una data istanza di JavaBean e lo inserisce nell'oggetto out implicito (in pratica lo stampa a video).

Attributi:

  • name: nome dell'istanza di bean da cui proviene la proprietà definita da un'azione
  • property: rappresenta la proprietà del bean di cui si vuole ottenere il valore

Vediamo un codice d'esempio di utilizzo...

giovedì 19 marzo 2009

JavaBeans

Le JSP (Java Server Pages) sono estensioni delle servlet Java, di conseguenza consentono di ottenere tutti i risultati di questi ultimi. Lo svantaggio delle Servlet è però rappresentato, come per tutti gli script CGI, dalla difficoltà di manutenzione del codice HTML delle applicazioni eccessivamente complesse, in quanto il più delle volte contengono una quantità di codice script eccessiva.

Soluzione a questo problema è rappresentata dai Java Beans, componenti software contenenti una classe Java, che possono venire inclusi in una pagina JSP, permettendo quindi un ottimo incapsulamento del codice, peraltro riutilizzabile. Al programmatore quindi sarà pressochè invisibile la sezione di codice puro, sostituito da richiami ai metodi delle classi incluse.

I Java Beans sono costituiti esclusivamente da codice Java, salvati con estensione .java e compilati (per esempio con il compilatore Java JDK) generando un file di estensione .class. Sarà il file .class che dovrà venire incluso nella pagina JSP. Da ricordare che in Java i file devono avere lo stesso nome della classe, lettere maiuscole e minuscole comprese.

Vediamo come utilizzarli...

martedì 17 marzo 2009

Calendario Web con notifica appuntamenti

Calendario Web invia gratis SMS con appuntamenti

MyMemorizer è un nuovo servizio che offre un sofisticato Calendario Web con la possibilità di ricevere i promemoria dei propri appuntamenti via e-mail e/o SMS, in tutto il mondo.

Dopo essersi registrati, è possibile inserire direttamente online i propri appuntamenti e promemoria, o importare Calendari già esistenti dal PC (istruzioni qui) nei formati iCalendar(.ics), Outlook(.csv), vCalendar(.vcs) o dalla rete come Google Calendar (istruzioni qui).

Inoltre è possibile condividere eventi, appuntamenti o promemoria con chi si vuole, o ripetere automaticamente l'evento periodicamente ogni giorno, settimana, mese, anno.

MyMemorizer ti permette l'invio gratuito di e-mail e 2 SMS al giorno, ulteriori SMS possono essere acquistati qui.

lunedì 16 marzo 2009

Arrotondamento in Java

Arrotondamento in Java:

  • Math.Round( double ):
    i numeri minori di x.5 sono arrotondati per difetto, quelli maggiori di x.5 sono arrotondati per eccesso verso l'intero più vicino
  • Math.Ceil( double ):
    i numeri sono sempre arrotondati per eccesso verso l'intero più vicino
  • Math.Floor( double ):
    i numeri sono sempre arrotondati per difetto verso l'intero più vicino

giovedì 12 marzo 2009

Enterprise Service Bus - infrastruttura a supporto di architetture SOA complesse

Un Enterprise Service Bus (ESB) è un'infrastruttura software che fornisce servizi di supporto ad architetture SOA complesse. Un ESB si basa su sistemi disparati, interconnessi con tecnologie eterogenee, e fornisce in maniera consistente servizi di orchestration, sicurezza, messaggistica, routing intelligente e trasformazioni, agendo come una dorsale attraverso la quale viaggiano servizi software e componenti applicativi. Un ESB si contraddistingue come soluzione migliorativa, rispetto ad altre più classiche di tipo SOA oriented in quanto ad esso sono delegati i servizi comuni denominati core service che andrebbero altresì realizzati. L'ESB concettualmente prevede la suddivisione in isole tecnologiche e/o applicative, la connessione al BUS infrastrutturale è assicurata attraverso principi di binding multiplo sia in modalità loose coupling che via adapting.

lunedì 9 marzo 2009

Carrot - Search Results Clustering Engine

Mentre effettuavo una ricerca su algoritmi per text clustering ho scoperto Carrot2, un Search Results Clustering Engine Open Source. Carrot può organizzare automaticamente collezioni di documenti, ad esempio può organizzare i risultati di una ricerca in categorie tematiche.

Search results clustered with Carrot2 Risultati di ricerca clusterizzati con Carrot2 (live demo)

Oltre a due algoritmi di document clustering, Carrot2 offre componenti pronti all'uso per prevelare i risultati di ricerca da varie sorgenti, inclusi YahooAPI, GoogleAPI, MSN Live API, eTools Meta Search, Lucene, SOLR, Google Desktop e non solo.

Carrot2 è implementato in Java, ma si integra facilmente con software non-Java, come PHP, Ruby o C#.

468x60

Cerca su Google

Cerca nel Blog con Google