Upload di file su Tomcat con JSP/servlets

Vediamo come fare l’upload di file su un server Tomcat tramite una pagina JSP.

Innanzi tutto scarichiamo i seguenti file .jar:

ed inseriamoli nel classpath della nostra applicazione.

Creiamo una form dove indicare il file da uploadare sul nostro server:

<form action="Controller" method="post" enctype="multipart/form-data">
    <input type="file" name="fileUpload"/>
    <input type="submit" value="Invia"/>
</form>

Dove action=”Controller” indica il nome della servlet a cui inviare il comando e fate attenzione ad impostare la form come multipart/form-data necessario per effettuare l’upload dei file secondo le specifiche.

All’interno della nostra servelt (“Controller”)inseriamo il codice sequente:

        boolean isMultipart = ServletFileUpload.isMultipartContent(request);

        if(isMultipart){
        try {
        DiskFileItemFactory factory = new DiskFileItemFactory();

        ServletFileUpload upload = new ServletFileUpload(factory);

        List items = upload.parseRequest(request);
        Iterator itr = items.iterator();

        while(itr.hasNext()) {
            FileItem item = (FileItem) itr.next();

            if(!item.isFormField()) {
                File fullFile  = new File(item.getName()); 
                File savedFile = new File(getServletContext().getRealPath("/"), fullFile.getName());
                //scrivo l'item nel file "savedFile"
                item.write(savedFile);
            }
        }

        } catch (Exception e) {
            // TODO Auto-generated catch block
            apriErrorPage(e.getMessage());
        }
        }

I file salvati vengo memorizzati nella home dell’applicazione(“/”).Per modificare il PATH è sufficente indicare uno alternativo da utilizzare.

Ed ecco fatto!! Facile vero!?!?!

aMSN 0.98b su Ubuntu Hardy Heron

Anche voi nn potete fare a meno di sprare cazzate con gli amici anche se state ricompilando il kernel del vostro sistema operativo +/- preferito (Linux).
Dico più o meno perchè ancora devo capire se è meglio il vecchio XP oppure è ora di fare il grande passo e abbandonare mamma Microsoft di attualmente è difficile fare a meno.
Secondo me non ci si potra mai liberare di lei e questo in fondo nn mi dispiace!
Cmq apparte le mie considerazioni personali torniamo a questa benetta chat che ormai tutti oggi utilizzano professionisti e lattanti che siano, tra le tante applicazioni che i repository mettono a disposizione la migliore di tutte e che meglio somiglia a MSN è aMSN (la fantasia coi nomi si spreca!!!).
Fino a poco tempo fa usavo la 0.97 che pero si bloccava in continuazione ed esteticamente lascia un po a desiderare!

Cosi oggi installiamo la 0.98b versione beta che si appggia alla Tcl/Tk 8.6 che per ora sembra piuttosto stabile con qualche milgioria rispetto la 0.97. Vediamo come fare per installarla.
Prima di iniziare consiglio di salvare le conversazioni ($HOME/.amsn) che volete ricordare perche amsn 0.97 verrà rimosso completamente.

  • wget http://repo.intilinux.com/fixamsn.tar.gz
  • tar zxvf fixamsn.tar.gz
  • bash fixamsn.sh clean
  • sudo apt-get install amsn
  • bash fixamsn.sh cvs

Tutte le volte che vogliamo aggiornare aMSN alla versione più recente digitiamo:

bash fixamsn.sh cvs

Se aMSN nn parte a causa di TkCximage allora eseguite questi ulteriori passaggi:

  • sudo gedit /usr/bin/amsn
  • Modificate la prima riga, che dovrebbe essere exec wish8.5 $0 $@ inserendo al suo posto exec /usr/local/bin/wish8.6 $0 $@

Vi consiglio di scaricare la skin Ubuntu like, molto bella e funzionale:

svn co "https://amsn.svn.sourceforge.net/svnroot/amsn/trunk/amsn-extras/skins/Ubuntu (Human)/" ~/.amsn/skins/

Fatto!!!

Riavviamo aMSN e tutto dovrebbe funzionare per selezionare la skin scaricata Account->Seleziona le skin !!

Fonti:
- http://ubuntuforums.org/showthread.php?t=297676&highlight=amsn
- http://forum.ubuntu-it.org/index.php?topic=99627.0

Ciau

HSDPA alla massima velocità su Linux

Se anche voi preferite connettervi alla rete tramite il cellurare per necessità/comodità e per cause di forza maggiore(la Telecom) be questa guida vi permetterà di sfruttare a pieno la velocità del vostro modem UMTS Hi-Speed sul SO Ubuntu linux che altrimenti di default sfrutta il modulo usbserial che non permette al vostro modem di superare i 64Kbps.

Innanzi tutto collegate il cellulare o la chiavetta al PC e date il comando:

lsusb

vi comparirà qualcosa del genere:

Bus 003 Device 002: ID 059f:0651 LaCie, Ltd
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 004: ID 04e8:6601 Samsung Electronics Co., Ltd Z100 Mobile Phone
Bus 002 Device 003: ID 046d:c016 Logitech, Inc. M-UV69a Optical Wheel Mouse
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

Come potete facilmente intuire la riga che ci interessa è “Bus 002 Device 004: ID 04e8:6601 Samsung Electronics Co., Ltd Z100 Mobile Phone” che corrisponde al mio SAMSUNG SGH-Z560. I dati che ci interessano sono i valori 04e8:6601 che rappresentano rispettivamente codice produttore e codice prodotto.

Letti questi dati possiamo aprire il file “airprime-patch.c” ed andate ad aggiungere il vostro modem alla lista dei dispositivi riconosciuti dal modulo Aiprime. Di seguito la lista dei modem attualmente riconosciuti se il vostro nn vosse presente aggiungetelo in cosa!

static struct usb_device_id id_table [] = {
{ USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */
{ USB_DEVICE(0x413c, 0x8115) }, /* Dell Wireless HSDPA 5500 */
{ USB_DEVICE(0x0930, 0x1303) }, /* Toshiba (Novatel Wireless) HSDPA for M400 */
{ USB_DEVICE(0x106c, 0x3701) }, /* Audiovox PC5740 */
{ USB_DEVICE(0x106c, 0x3702) }, /* Sprint Pantech PX-500 DGE */
{ USB_DEVICE(0x1410, 0x4100) }, /* Novatel Wireless U727 */
{ USB_DEVICE(0x12d1, 0x1003) }, /* Huawei E220 */
{ USB_DEVICE(0x05c6, 0x6000) }, /* Momo design */
{ USB_DEVICE(0xf3d0, 0x0112) }, /* AirPrime 5220 */
{ USB_DEVICE(0x04e8, 0x6601) }, /* SAMSUNG SGH-Z560 */
{ },
};

La costante
#define URB_TRANSFER_BUFFER_SIZE 4096
è quella che regola la dimensione massima del buffer di trasferimento con questo valore ho raggiunto velocità anche di 220Kbps (valore fortemente influenzato da molteplici fattori) ma cio nn toglie che possiate modificarlo (mantenendo potenze del 2).

La patch che potete scaricare assieme al file “airprime-patch.c” è adatta per versioni del kernel 2.6.24.

Modificati sorgenti del modulo airprime aprite il Terminale postatevi nella cartella che contiene la patch “scriptAirprime.sh” e “airprime-patch.c” e mandatelo in esecuzione con il comando:

./scriptAirprime.sh

Riavvite e se tutto è andato a buon fine il vostro modem andra come una scheggia!

La cartella con i file citati è scaricabile nel box azzurro qui affianco!!

PS: In caso utilizzaste versioni differenti è sufficiente scaricare i sorgenti relativi e modificare il file “airprime.c” che solitamente si trova nella cartella /usr/src/linux-source-2.6.24/drivers/usb/serial/, una volta modificato come visto in precedenza copiarlo nella cartella Patch HSDPA.

Groovy on Grails

Quante volte avreste voluto realizzare applicazi web rapidamente, senza dover settare troppe variabili, perdere tempo dietro al linguaggio  di markup HTML, installare server, librerie, creare db insomma tutte le volte ore perse per fare cose apparentemente banali ma che poi alla fine presentato sempre insidie nn indifferenti.

Be magari con il PHP sara pure facile e veloce creare un blog ma chi me lo fa fare di impare un nuovo linguaggio che poi alla fine non è che sia nemmeno cosi tanto ricco di funzionalità, oppure c’e Ruby on Rails avevo iniziato a vedere qualcosa ma non mi era piaciuto per niente mi sembrava un linguaggio non linguaggio privo di tutti qui concetti su cui un liguaggio di programmazzione vero e proprio si deve basare.

Ed ecco che vagando nel web spinto dalla voglia di imparare qualcosa di nuovo mi imbatto in Groovy. Groovy è un linguaggio di prigrammazione basato ad oggetti che puo essere eseguito dalla JVM e che si porta dietro molte delle caratteristiche del linguaggio Java. Una sorta di linguaggio di scripting per la piattaforma Java. Una volta compilato un file.groovy viene generato il file .class eseguibile dalla JVM. Le classi in groovy sono richiamabili anche da classi Jav.

Cazzo figata!! Tutta la mia esperienza in java portata a servizio del Web senza tanti sforzi e senza dover imparera da zero un nuovo linguaggio.

Le caratteristiche principali che differenziano groovy da java sono:

  • mancano i punti e virgola: in Groovy sono opzionali;
  • mancano i modificatori di visibilità sugli attributi: in Groovy non esiste la visibilità packag;
  • mancano getters e setters: presenti pero nel byte code e necessari per creare classi java bean: quindi scrivere  Integer valore in Groovy equivale a dichiarare un attributo nome privato, ed esporre metodi pubblici  getValore()  e  setValore(…)  in Java;
  • Groovy importa implicitamente i package Java di uso più frequente, e li rende disponibili in ogni nostra classe.

Le caratteristiche del linguaggio principali sono quindi:

1)Pragmatismo

2)Convention Over Configuration (insomma ci si deve smattire più di tanto)

3)Don’t Repeat Your Self

Tutta la baracca si appoggia direttamente a Grail un framework per lo svillo rapido di applicazioni Web.

Come possiamo vedere Grails si appoggia a SPring, Hibernate, Quartz e Site-mesh che vengono automaticamente configurati al momento dell’installazione.

A presto una primo esempietto per metterci subito al lavoro!

Link:
1)Grails (con il file tar/gz per installare il framework comprensivo di tutto)

2) Groovy (Sito ufficuale del linguaggio di programmazione)

Ciau

Stanchi di Google?

Be di certo non si puo non dire che quello della Mountain View per quanto riguarda il suo motore di ricerca non sia un monopolio! Magari non effettivo ma chi è che li usa gli altri motori di ricerca, chi è che si fida che esistano siti migliori che parlino di quello che stai cercando come quelli che che Google ti ha trovato! Credo pochi!! E fate bene!!!
Pero per chi volesse sperimentare un nuovo motore di ricerca che si basa su Google, parlo di Mozbot.
E che è!?!?!?!
Mozbot si appoggia a Thumbshot.org per fornire uno stamp delle pagine ricercate(utile magari per ritrovare quel sito tanto interessante di cui ricordate l’aspetto ma non l’indirizzo), ad Alexa (una toolbar tipo google)per basare la sua ricerca sui suti maggiormente cliccati e in fine LookAhead un algoritmo per motori di ricerca che basa il suo funzionamento su una ricerca lessicale all’interno del sito che si andra a visitare.
Insomma una mix di alta tecnologia al servizio dei ricercatori piu esigenti.

Tramite “Personalize” (posto affianco alla casella di testo) è possibile personalizzare alcune delle opzioni messe a disposizione.

Per chi volesse approfondire l’argomento su LookAhead ho trovato un’intervista al suo ideatore a questo link:VAI!

ASUS EEE PC 900

Asus eee PC 900

FInalmente si prospetta una nuova era per i pc portatili…quelli veramente portatili!
Asus nel panorama degli ultra mobile si è fatta strada con un prodotto dalle discrete caratteristiche tecniche, dal design interessante e sopratutto da un prezzo che che si aggira attorno ai 400 euri, non male per una macchina che pesa meno di un Kg e che garantisce una buona connettività e autonomia attorno alle tre ore e mezza.Dopo l’enorme successo avuto (circa 350.000 prodiddi venduti) nei primi mesi di uscita del eeePC sul mercato la ASUS ha subito pensato di aumentare le caratteristiche del suo umpc entry level. Al CEBIT di Hannover è stata presentata una versione aggiornata dell’eee PC che prende il nome di eee PC 900. Le migliorie apportate riguardano per il comparto video la dotazione di un monitor LCD da 8,9” con una risoluzione di 1024×900 contro i 7 pollici del modello attualmente in vendita, la memoria RAM è stata porta ad 1GB e memoria allo stato solido porta a 12GB. Per quanto riguarda la CPU spero che optino per il nuovo processore ATOM di Intel, il Celeron mi sembra un po uno spreco per un piccolo gioellino come questo!

Quella degli ultra mobile PC è una buona alternativa a coloro che necessitano di una macchina capace di navigare con cennettivita Wireless, scrivere documenti, ascoltare musica, guardare video ecc.. insomma tutto quello che l’80% dei consumatori fa quando è di fronte ad un pc e che vorrebbe fare in piena mobilita con uno schermo di dimensioni accettabili.