26 Dec
Posted by Cristian as Sky Diving, Tempo Libero
Da anni dico di voler provare a fare paracadutismo ma per un motivo o per un altro non sono mai riuscito a soddisfare questa voglia.
Finalmente nel settembre 2009 ho iniziato il corso AFF terminato a fine ottobre 2009, ora mi lancio da solo e attendo con impazienza l’arrivo della “bella” stagione per ricominciare e continuare la strada per il brevetto.
Livello:
Medio, Difficile
Per chi:
Ha una voglia assurda di volare :)
Il corso AFF e’ l’ideale per chi vuole avvicinarsi seriamente allo sport del paracadutismo sportivo e permette in poco tempo di rendere autonomo il paracadutista nel lancio cosi che possa intraprendere la strada per il brevetto.
I questo post cerchero’ brevemente e senza troppi dettagli per non diventare noioso di descrivere il mio corso.
30 Aug
Posted by Cristian as Java, Programming
In questo breve articolo cerchero’ di illustrare i passi necessari per eseguire il setup di Eclipse in modo da poter sviluppare progetti JavaServer Faces(JSF).
Non vuole essere un tutorial JSF ma solo una breve dimostrazione del setup in oggetto visto che spesso crea qualche difficolta’ :)
Livello:
Base
Per chi:
Ha la necessita’ di configurare Eclipse per l’utilizzo con JSF
Prima di iniziare la configurazione vera e propria di Eclipse per JSF e’ necessario procurarsi le librerie base che poi verranno incluse nel progetto.
Read the rest of this entry »
Poco tempo fa ho sviluppato un progetto web JSF(Java Server Faces) e Axis2 per il quale ho utilizzato Java, Tomcat e Mysql.
Ho avuto la necessita’ di ottenere un pool di connessioni, come framework di persistenza al data base ho utilizzato Hibernate, quindi, brevemente, cerco di descrivere i punti principali per ottenere questo risultato.
Livello:
Medio, Medio/Avanzato
Per chi:
Ha la necessita ottenere una connection pool tramite
l’utilizzo di Tomcat, MySql e Hibernate
I punti principali per ottenere un pool di connessioni sono il web.xml presente nella dir WEB-INF, il context.xml presente nella dir META-INF, l’ hibernate.cfg.xml che puo’ essere o nella root delle vostre classi o nella di WEB-INF e due oggetti necessari all’ottenimento della connessione.
Read the rest of this entry »
Ciao,
ho appena rilasciato una nuova versione del programma YAJNGI.
Sono stati risolti alcuni bug relativi al salvataggio dei messaggi e sono state aggiunte 2 nuove funzionalita’:
Potete trovare il tutto sul sito di YAJNGI oppure su SourceForge.net
Ciao,
e come al solito commenti per migliorare il programma sono i ben accetti.
Cristian.
Dopo aver sviluppato ed utilizzato questo programmino per scopi personali ho deciso di rilasciare una prima versione alpha ad uso e consumo di tutti sperando che possa essere apprezzato e, perche’ no, migliorato anche da voi :)
Il programma si chiama YAJNGI -Yet Another Java NewsGroup Inspector ed e’ semplicemente un sistema di monitoring per newsgroup scritto in Java.
Il sistema permette di monitorare, senza dover continuamente leggere, i post su un set di newsgroup.
E’ possibile configurare piu’ newsgroup e, per ognuno, e’ possibile indicare con che frequenza eseguire il controllo e quali parole, frasi o REGEXP ricercare sia negli headers che nel body.
Il programma ha un sistema di cache grazie al quale gli articoli precedentemente controllati non vengono piu’ processati ma verranno presi in considerazione solo i nuovi.
Al momento, in caso di “match” il programma possiede due tipi di azioni
Qui e’ possibile visualizzare un esempio di file di configurazione: yajngi.crx.it/docs.
YAJNGI e’ multithread e “gira” come servizio sia su unix che su windows.
Ricordo nuovamente che e’ una alpha, di conseguenza saranno presenti sicuramente una quantita’ assurda di bug! ;)
Maggiori info le potete recuperare sul sito che ho dedicato al programma yajngi.crx.it.
Ciao,
Cristian.
PS: commenti e valutazioni sono ben accetti.
Recensione:
In questa recensione descrivo brevemente il soggiorno passato a Siena da me e Simona agli inizi di Settembre 2008
Agenzia:
Booking.com
Dettaglio date:
| Partenza: | 09 settembre 2008 |
| Ritorno: | 12 settembre 2008 |
24 Oct
Posted by Cristian as Tempo Libero, Viaggi
Premessa:
In questa recensione, richiesta tra l’altro da un amico e promessa ai frequentatori dell’ng it.hobby.viaggi che mi hanno dato un grosso aiuto, cerchero’ di descrivere il viaggio in oggetto fatto da me e Simona consapevole del fatto che quanto scrivero’ non potra’ mai dare il giusto valore ad un viaggio simile.
PS: scrivero’ a nastro, quindi non punitemi per errori di grammatica e sintassi ;)
Qualche giorno fa l’azienda nella quale lavoro ha deciso di sostituire una vpn OpenVpn con una PPTP, di seguito cerco di descrivere brevemente i passi seguiti per far funzionare il pc di casa con questo protocollo.
Livello:
Medio
Per chi:
Ha la necessita di connettersi in VPN ma non ha precompilati i moduli necessari
Scenario:
Instaurare una connessione vpn PPTP da una macchina Linux 2.4.31
Il mio pc di casa usa come SO una Slackware 10.2 con kernel 2.4.31 e dato che funziona tutto perfettamente non ho mai sentito la necessita’ di passare al 2.6.
Con l’introduzione in ufficio della nuova vpn ho avuto qualche problemino nel connettermi dato che non avevo i moduli compilati MPPE/MPPC rispettivamente Microsoft Point-to-Point Encryption e Microsoft Point-to-Point Compression.
Read the rest of this entry »
Se tentate di utilizzare jconsole per monitorare applicazioni remote residenti su server Linux o Solaris(credo sia cosi anche per Windows ma non ho mai provato) o comunque applicazioni RMI potreste ricevere il messaggio “connessione fallita” anche se il telnet risponde correttamente e il netstat vi mostra la porta in modalita’ “LISTEN” ovvero in attesa di connessioni.
Livello:
Medio
Per chi:
Ha la necessita di monitorare applicazioni java remote
E’ semplicemente necessario passare il parametro java.rmi.server.hostname al vostro applicativo remoto specificando l’hostname o l’ip della macchina.
Un esempio di applicazione su rete interna che non necessiti di particolari accorgimenti(SSL o autenticazione) potrebbe essere il seguente:
Read the rest of this entry »
Quante volte vi e’ capitato di dover impostare una serie di JOB da eseguire periodicamente in determinati giorni e orari?
In questa micro guida cerco’ di spiegare velocemente un modo per utilizzare Quartz e la sintassi Unix-style che mette a disposizione questa fantastica libreria OpenSource inserendo i cron da eseguire direttamente in una tabella di un database, cosi da avere un sistema funzionante in meno di 10 minuti
Livello:
Medio, Avanzato
Per chi:
Ha dimestichezza con il linguaggio Java
Scenario:
Schedulare una serie di processi da eseguire periodicamente in una tabella
In questo esempio, per mia comodita’ ho sfruttato parti del codice di un mio applicativo, vedrete una chiamata ad un oggetto database mappato con Hibernate e eseguiro’ questo “RequestScheduler” tramite il servizio supervise(daemonstool) per il quale ho scritto un piccolo articolo qualche tempo fa.
Il database di appoggio e’ un MySql server e il controllo viene fatto ogni X minuti (leggere la NOTA in fondo a questo articolo)
In sostanza supervise avvia RequestScheduler, RequestScheduler esegue i suoi controlli e rimane attivo per X minuti dopodiche’ esce, supervise lo riavvia istantaneamente e cosi via…
Finalmente sembra che qualche cliente inizi a capire l’utilita’ di cifrare contenuti piu’ o meno sensibili nei processi di scambio dati.
Ad oggi sinceramente non sono ancora molti e questo forse e’ dovuto alla difficolta’ iniziale nel capirne il funzionamento o forse per la poca competenza tecnica ma ogni volta che riesco a piazzarne uno mi sento meglio e sollevato :)
Livello:
Medio
Per chi:
Chiunque abbia la necessita’ di cifrare contenuti privati
Scenario:
Decifrare file crittati con GPG tramite Java
Non sto ad elencare il processo di installazione e funzioni di GnuPG(implementazione completa e gratuita di OpenPGP) visto che e’ tutto facilmente reperibile dal sito ufficiale ma cerchero’ brevemente(come al solito) di fornire una base per implementare un piccolo wrapper java utilizzabile all’interno dei propri sistemi con due funzioni semplici semplici, le piu’ utilizzate, crypt e decrypt, non prima pero’ di aver creato la coppia di chiavi privata/pubblica proprietaria e importato almeno una chiave pubblica di “qualcuno”.
Read the rest of this entry »
Qualche tempo fa mi e’ capitato di riprendere questo discorso leggendo e rispondendo ad un post sul newsgroup it.comp.java cosi ho deciso di scrivere questa micro guida che spiega molto velocemente come fare a trasferire un file da un pc ad un altro con il semplice utilizzo delle socket.
Ci sono molti altri modi per fare questo tipo di operazione oltre a tutti gli accorgimenti relativi alla sicurezza che qui non trattero’, ma, per chi si trova in questa situazione per la prima volta, potrebbe essere una buona traccia per iniziare.
Livello:
Medio, Facile
Per chi:
Chiunque sia alle prime armi con l’utilizzo di thread e socket
Scenario:
Trasferire file via socket client/server
Iniziamo con lo sviluppo del server che rimarra’ in attesa di nuove connessioni e file da ricevere, prima di tutto creiamo l’oggetto che si occupa, per ogni connessione, di ricevere e salvare il file, questo oggetto implemeta l’interfaccia Runnable cosi da poter gestire con i thread l’invio simultaneo di piu’ file e di conseguenza potrli salvare contemporaneamente senza dover aspettare che il primo arrivato finisca
Read the rest of this entry »
Diverso tempo fa ho sviluppato un WebServices xml-rpc ad uso interno per il quale ho preso la via dell’autenticazione con l’utilizzo dei certificati e sinceramente in rete non ci sono molte risorse, o almeno non le ho trovate, che possano aiutare durante la fase di sviluppo.
In questo periodo ho dovuto crearne un altro basato sullo stesso sistema di autenticazione quindi ho deciso di scrivere questa mini guida cosi da incrementare l’informazione su questo argomento.
Livello:
Medio
Per chi:
Ha esperienza nello sviluppo di WebServices
Scenario:
Sviluppare un WebServices che esegua l’autenticazione dei client con l’utilizzo dei certificati
Iniziamo con la generazione dei certificati(chiave pubblica e private) che serviranno al nostro server, per fare questo utilizziamo il tool messo a disposizione dalla SUN keytool che serve per Read the rest of this entry »
Quante volte vi e’ capitato di eseguire una query su una tabella con diversi milioni di record e ad un certo punto ottenere il fantastico java.lang.OutOfMemoryError, a me svariate, ma si puo evitare…
Livello:
Facile
Per chi:
Chiunque abbia a che fare con database enormi ;)
Scenario:
Effettuare una select evitando un OutOfMemory
Il problema si presenta quando i driver per il database al quale ci si conette non supportano lo streaming del resultset, quindi lo statement carica in memoria tutti i record possibili sino a quando la povera JVM non ce la fa piu’ e decide, senza tanti complimenti, che per lei il lavoro termina li restituendo l’eccezione piu’ odiosa, OutOfMemory.
Questo problema non lo ho mai riscontrato ne su Oracle ne su MsSql mentre su PostgreSql e MySql si!
25 Aug
Posted by Cristian as Java, Programming
Poco tempo fa ho avuto la necessita di sviluppare un sistema multithread in grado di mantenere un pool con un numero massimo di thread in esecuzione la dove ci fossero stati processi da eseguire, con il jdk 1.4 avrei fatto questa operazione manualmente lavorando direttamente sulla classe Thread, ma dalla 1.5 ci sono venuti in aiuto una serie di oggetti che semplificano la vita in modo non indifferente.
Non riporto l’esempio dell’applicazioe che ho sviluppato ma semplifico il tutto facendo un esempio di vita comune, che comunque racchiude la logica del mio sistema, cosi da cercare di essere il piu’ chiaro possibile.
Livello:
Medio, Facile
Per chi:
Conosce i fondamentali Java e l’utilizzo dei Thread
Scenario:
Simulare il flusso di clienti in un ufficio postale utilizzando il thread pooling
Mettiamo che il nostro programma sia un ufficio postale, il quale ha 4 sportelli aperti.
Fuori dall’ ufficio postale sono presenti venti persone che vengono fatte entrare in sala di attesa, prendono il numero dalla numeratrice e aspettano il loro turno, logicamente queste persone non possono essere servite tutte assieme e tantomeno possiamo, fatte passare le prime quattro persone agli sportelli aperti, aspettare che si siano svuotati tutti per farne passare altre quattro in blocco, teniamo anche presente che ogni persona impiega un tempo differente per la propria operazione, quindi non e’ detto che la prima che arriva sia la prima a lasciare il posto.
Giusto oggi mi e’ stato chiesto, da un amico che sta muovendo i primi passi con UNIX(e JAVA) e che soprattutto non aveva molta voglia di leggere la documentazione ;), come installare ANT su una macchina Linux quindi ho preso spunto da questa semplice domanda per fare un piccolo howto sull’ argomento.
Ecco il processo:
iniziamo con il prelevare l’ultimo binario(nel momento in cui scrivo e’ l’1.7.0) disponibile dal sito ant.apache.org
$ cd downloads $ wget http://www.apache.org/dist/ant/binaries/apache-ant-1.7.0-bin.tar.gz
solitamente questi “programmi” li metto in /usr/local dove mantengo la versione originale inalterata sia nel contenuto che nel nome della directory cosi da poter fare dei link che mi permettono in futuro di cambiare velocemente versione senza dover modificare path precedentemente impostati, quindi:
Read the rest of this entry »
Con questa mini guida cerco di dare le basi per la corretta configurazione dei daemontools a tutti coloro che fossero interessati ad utilizzare un sistema differente per la gestione dei servizi sulla propria macchina UNIX.
Livello:
Medio, Facile
Per chi:
Principiante
Scenario:
Gestire, monitorare, avviare e riavviare uno o piu’ servizi
Premessa:
I daemontools sono una serie di tool che permettono di gestire i servizi su macchine unix in modo alternativo, infatti il sistema presenta una serie di directory che non sono standard all’ambiente unix.
Questi tools vengono contraddistinti da una semplicita’ e velocita’ di setup non indifferenti oltre ad essere estremaente portabili su qualunque macchina unix/bsd.
Read the rest of this entry »
Con questo breve post cerchero’ di descrivere in modo veloce e sintetico un possibile sistema per effettuare la copia dei dati da una tabella ad un’altra, magari su macchine differenti e magari su db server diversi.
Il sistema che descrivo in seguito e’ solo una traccia e logicamente deve essere migliorato, serve unicamente a dare le basi a chi si avvicina per la prima volta a questo problema cosi da poterlo affrontare con un po’ piu’ di serenita’
Livello:
Facile
Per chi:
Principiante
Scenario:
Copiare i dati di una tablla MySql in una su MsSql
Premessa:
E’ importante far presente che per questo esempio si fa riferimento a due tabelle di identica struttura sia nei nomi di campo che nei tipi
Read the rest of this entry »
Giusto l’altro giorno un mio collega mi ha chiesto come fare ad avere un elenco di tutte le tabella di un Microsoft SQL Server con relativo conteggio dei record presenti per ognuna, in quel momento mi sono reso conto che effettivamente non e’ un’ operazione proprio immediata e tantomeno a portata di “click”, cosi ho deciso di inserire questo howto che descrive in modo generico il processo per ottenere il risultato richiesto.
Livello:
Facile
Per chi:
Principiante
Scenario:
Prelevare l’elenco della tabelle e relativo numero di record da un database Microsoft Sql
Se abbiamo la necessita’ di ricavare l’elenco delle tabelle presenti in un database per eseguire su ognuna una serie di query o se abbiamo bisogno di effettuare una serie di operazioni su tutti i database presenti su un Microsoft Sql Server ci possono venire in aiuto le due stored procedure, non documentate nei books on line, sp_MSforeachdb e sp_MSforeachtable.
Read the rest of this entry »
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Dec | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||