Archivio

Archive for the ‘java’ Category

Vi presento Ammentos

settembre 18, 2009 1 commento

ammentos_logo

Se siete programmatori Java e avete a che fare con database, framework di persistenza e gestione dati, vi prego di leggere questo articolo.

Vi assicuro che investire 5 minuti del vostro tempo per leggere queste mie parole sarà una cosa per voi molto utile.

Cos’è Ammentos?

Ammentos è un framework di persistenza Java davvero molto semplice e intuitivo  alternativo ad Hibernate e iBatis  basato su semplici annotazioni, che non necessità di nessun file di configurazione e che risiede tutto in un unico piccolo jar.

Quali sono i vantaggi di Ammentos?

– E’ gratis ed opensource

– Curva di apprendimento davvero bassissima: Si impara realmente in 5 minuti (provate voi stessi a leggere la guida nel sito e ditemi se dopo 5 minuti non siete già in grado di creare un vostro programma utilizzando il framework)

– lightweight: Ammentos è molto leggero, non appesantisce le vostre applicazioni e le performance sono identiche ad utilizzare direttamente le istruzioni sql

– Basato su standard moderni come le annotations

– Nessun file di configurazione: Ammentos non necessita di alcun file di configurazione dove inserire nomi tabelle, campi, query etc

– Nessuna dipendenza esterna: finito l’incubo di andar a ritrovare 200 jar dipendenti dispersi nel globo di internet

Perchè questo spot di Ammentos ? Cosa ci guadagni?

Assolutamente niente!

Il problema piu’ grosso che esiste in internet è la visibilità. Purtroppo validissimi progetti non vengono adottati semplicemente perchè non sono conosciuti.

Nella mia carriera di sviluppatore Java ho provato Hibernate, iBatis e prodotti simili ma li ho sempre trovati troppo caotici, pesanti e inutilmente complessi. Da qualche anno uso Ammentos e visto che mi facilita la vita ve ne parlo da utente contento e ve lo consiglio come un amico consiglia un buon locale o una pizzeria dove si spende poco e si mangia bene.

Facci vedere un pò come funziona ammentos e basta fare pubblicità 🙂

Ok, ok, vi faccio vedere subito un esempio di come funziona ammentos.

Ipotizziamo di voler salvare i dati di una persona (nome e cognome) in una tabella. Una semplicissima anagrafe insomma!

Ecco come apparirà il nostro codice già con le annotazioni di ammentos:

import it.biobytes.ammentos.PersistentEntity;
import it.biobytes.ammentos.PersistentField;

@PersistentEntity(primaryKey="id",sourceDomain="persons")
public class Person {
@PersistentField(automatic=true)
private String id;

@PersistentField
private String name;

@PersistentField
private String surname;

// Codice classico che si scriverebbe anche senza ammentos...
public String getId() {return id;}

public String getName() {return name;}

public void setName(String name) {this.name = name;}

public String getSurname() {return surname;}

public void setSurname(String surname) {this.surname = surname;}
}

Come vedete ci sono giusto due annotazioni in piu’ rispetto a come la scrivereste normalmente! La maggior parte del codice è dato dai metodi get/set (che tra l’altro ammentos non utilizza, che servono semplicemente per fare un model piu’ robusto senza far accedere direttamente alle variabili membro).

Analizziamo il codice pezzo per pezzo:
@PersistentEntity(primaryKey="id",sourceDomain="persons")
public class Person {
Con l’annotazione PersistentEntity si indica che la classe Person è una classe da far persistere. Il campo primaryKey indica qual’è il nome del campo contenente la chiave primaria della tabella mentre il campo sourceDomain indica il nome della tabella nel database.

@PersistentField(automatic=true)
private String id;

Per memorizzare un campo nel database è sufficiente annotatarlo con l’annotazione PersistentField. Questa annotazione ha diversi parametri. Tra questi, il parametro automatic=true indica ad ammentos di gestire lui il valore dell’id e di generarne uno univoco al salvataggio dell’oggetto. In pratica potete dimenticarvi di impazzire dietro sequenze et simila (che comunque per i piu’ smaliziati ammentos supporta)

@PersistentField
private String name;
@PersistentField
private String surname;

Indica gli altri due campi persistenti. Se non viene specificato altrimenti, i nomi dei campi del database per memorizzare tali variabili saranno identici ai nomi delle variabili (facile, no?). Se volete utilizzare nomi diversi basterebbe mettere così:

@PersistentField(fieldName="user_name")
private String name;

Bene, e ora come si salva o si caricano i dati?

per salvare i dati potete dimenticarvi i DAO etc in quanto Ammentos è già di per se un “DAO universale”.

Quindi basta fare semplicemente:

Ammentos.save( istanzaOggettoPersona );

Tutto qui!

Sarà lui stesso ad occuparsi di fare una insert nel database o una update in base allo stato dell’oggetto che state salvando.

Per caricare un record invece è sufficiente fare:

Person p = Ammentos.load( Person.class, "idoggetto" );

E se volete caricare delle persone dato il cognome ad esempio?

SqlQueryFilter filter = new SqlQueryFilter("surname=?");
filter.setString( "rossi");
List<Person> people = Ammentos.load( Person.class, filter );

Tutto qui?

Questo è solo un accenno di ciò che ammentos può fare, siamo appena al suo guscio esterno e già così possiamo vedere come riesca a risolvere le problematiche piu’ comune nella gestione dei dati in modo semplici e elegante ma ci sono ancora talmente tante caratteristiche di cui parlare che ho deciso di dedicare una serie di articoli a questo meraviglioso framework sperando di aiutarlo un pochino ad acquisire visibilità e prendere il posto che si merita.

Spero di avervi fatto cosa gradita a presentervalo

A presto

Daniele

Tips & Tricks: Fastidioso bug in NetBeans

gennaio 20, 2009 Commenti disabilitati

Sviluppando Ayudu con NetBeans sotto il mio amato KDE 4.2, mi son ritrovato davanti ad un bug davvero fastidioso che rendeva la scrittura del codice una impresa davvero ardua.

In pratica il sorgente appariva illegibile con tutti i caratteri sovrapposti, come quando provate a ribattere tante volte su una stessa riga delle macchina da scrivere lettere differenti.

Una immagine è sempre meglio di 1000 parole:

screenshot1_179.jpg

Dopo vari pellegrinaggi e, conscio che google ha sempre la risposta a tutto, la soluzione è stata trovata grazie al blog di Davide che, avendo anche lui lo stesso problema, ha trovato in rete la soluzione che io vi ripropongo.

a) Aprite il file <netbeans_home>/etc/netbeans.conf

b) cercate all’interno del file la definizione della variabile netbeans_default_options (dovreste trovare una cosa simile a netbeans_default_options="-J-Dorg.glassfish.v3.installRoot=\"/home/cesc/glassfish-v3-prelude-b15b\" -J-Dcom.sun.aas.installRoot=\"/home/cesc/glassfish-v2ur2\" -J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true")

c) AGGIUNGETE alla fine della definizione (e sempre rimanendo dentro i doppi apici) il parametro -J-Dsun.java2d.pmoffscreen=false

Ora la variabile dovrebbe apparire simile a questa

netbeans_default_options="-J-Dorg.glassfish.v3.installRoot=\"/home/cesc/glassfish-v3-prelude-b15b\" -J-Dcom.sun.aas.installRoot=\"/home/cesc/glassfish-v2ur2\" -J-client -J-Xverify:none -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.pmoffscreen=false"

Fatto!

Ora basterà semplicemente far ripartire il vostro netbeans!

Alla prossima

Daniele

Categorie:Ayudu, bug, java, kde4, netbeans

Tips & Trick – Installare java dentro firefox

settembre 11, 2007 7 commenti

tips & tricks

Il grande panda rosso sotto il pinguino ha un problema. Ovviamente non mi riferisco a pratiche sessuali particolari (anche perchè il MIO panda e il MIO pinguino sono ovviamente riferiti a firefox e a linux) ma all’installazione del plugin di java.

Sotto windows, quando firefox riscontra una pagina che contiene un applet java, vi mostra una simpatica finestra in cui vi chiede se avete intenzione di installare il plugin per gestire java e, in pochi click, vi trovate con il JRE installato (acronimo di Java Runtime Environment, cioè il “motore” che permette di eseguire le applicazioni java) e tutte le vostre applet, prima invisibili, appaiono miracolosamente.

Sotto linux, quando firefox riscontra una pagina che contiene un applet java, vi mostra una simpatica finestra in cui vi chiede se avete intenzione di instalalre il plugin per gestire java e, in pochi click, vi prende in giro e poi vi propone di installare il tutto manualmente 🙂 Quindi niente JRE e le applet, prima invisibili, restano invisibili 🙂

Leggi tutto…

Categorie:firefox, guide, java, Linux

Tips & Trick – Installare java dentro firefox

settembre 11, 2007 4 commenti

tips & tricks

Il grande panda rosso sotto il pinguino ha un problema. Ovviamente non mi riferisco a pratiche sessuali particolari (anche perchè il MIO panda e il MIO pinguino sono ovviamente riferiti a firefox e a linux) ma all’installazione del plugin di java.

Sotto windows, quando firefox riscontra una pagina che contiene un applet java, vi mostra una simpatica finestra in cui vi chiede se avete intenzione di installare il plugin per gestire java e, in pochi click, vi trovate con il JRE installato (acronimo di Java Runtime Environment, cioè il “motore” che permette di eseguire le applicazioni java) e tutte le vostre applet, prima invisibili, appaiono miracolosamente.

Sotto linux, quando firefox riscontra una pagina che contiene un applet java, vi mostra una simpatica finestra in cui vi chiede se avete intenzione di instalalre il plugin per gestire java e, in pochi click, vi prende in giro e poi vi propone di installare il tutto manualmente 🙂 Quindi niente JRE e le applet, prima invisibili, restano invisibili 🙂

Leggi tutto…

Categorie:firefox, guide, java, Linux

Risolvere i problemi tra compiz e java

luglio 20, 2007 9 commenti

javacompiz.gif

Leggendo qua e là, ho notato che molte persone hanno dei problemi con le applicazioni java dopo l’installazione di compiz o beryl.

In genere accade che, se si prova ad avviare una applicazione java, quale ad esempio NetBeans (o Mercury Messenger o altri), invece di apparire la bella finestra dell’ambiente di sviluppo, appare una poco attraente finestra grigia.

Si può risolvere il problema? Certo!

Leggi tutto…

NetBeans 6.0 M10 appena sfornato…

luglio 5, 2007 11 commenti

netbeanslogo.gif

Sìore e Sìori è con molto piacere e senza nessuna influenza (nemmeno di un mio collega super patito di NetBeans che mi ha minacciato con un coltello :-)) che vi annuncio l’uscita della nuova milestone del noto ambiente di sviluppo di casa Sun.

Un’altro passo che porta NetBeans verso l’uscita della attesissima versione 6.0 prevista, stando alla roadmap, per fine anno.

Tra le novità di spicco di questa nuova milestone:

  • Nuovo look & feel per il Visual Designer
  • Sincronizzazione tra UML e codice sorgente
  • Miglioramenti al debugger per Ruby
  • Nuovi componenti Ajax
  • Aggiunti nuovi refactoring
  • Miglioramenti nella grafica e nella velocità dell’ambiente

Potete trovare la lista completa dei cambiamenti qui

Se volete scaricare e provare questa nuova release potete farlo da questo link.

Daniele

Categorie:java, programmazione

NetBeans 6.0 M10 appena sfornato…

luglio 5, 2007 11 commenti

netbeanslogo.gif

Sìore e Sìori è con molto piacere e senza nessuna influenza (nemmeno di un mio collega super patito di NetBeans che mi ha minacciato con un coltello :-)) che vi annuncio l’uscita della nuova milestone del noto ambiente di sviluppo di casa Sun.

Un’altro passo che porta NetBeans verso l’uscita della attesissima versione 6.0 prevista, stando alla roadmap, per fine anno.

Tra le novità di spicco di questa nuova milestone:

  • Nuovo look & feel per il Visual Designer
  • Sincronizzazione tra UML e codice sorgente
  • Miglioramenti al debugger per Ruby
  • Nuovi componenti Ajax
  • Aggiunti nuovi refactoring
  • Miglioramenti nella grafica e nella velocità dell’ambiente

Potete trovare la lista completa dei cambiamenti qui

Se volete scaricare e provare questa nuova release potete farlo da questo link.

Daniele

Categorie:java, programmazione