Passa ai contenuti principali

Post

JSF: update in p:commandButton non funziona con ui:include

Problema
Immaginiamo di avere una pagina principale che includa una sezione. Ora immaginiamo di avere un pulsante nella pagina inclusa che voglia comandare la pagina chiamante.

Prima soluzione: non funzionante
La pagina chiamante è del tipo:
In pagina2.xhtml troviamo il bottone

Questa soluzione non funziona ma...

Seconda soluzione: funzionante 
... se aggiungiamo un panelGroup esterno il tutto inizia a girare come desiderato

perchè?

Spiegazione
Il nocciolo della questione sta nel fatto che il codice javascript risiede lato client (viene scaricato con la pagina web per intenderci) mentre JSF viene lavorato lato server. E' il server che processa il file xhtml e genera del html da restituire al client. Ora nel momento in cui premiamo il pulsante lo span generato via JSF non sarà presente per via dell'attributo renreded. La soluzione è quindi quella di mantenere uno span al più vuoto con id="A" in modo che sia sempre a disposizione del codice javascript. Un altro cas…
Post recenti

Aggiungere una regola di route statico in Windows 7

Lo so che vi domanderete cosa diavolo ci faccia con un Windows sotto la tastiera ma ultimamente per lavoro mi è capitato di utilizzare via RDP una macchina con Windows 7 per programmare. La rete interna accede tramite un gateway specifico alla rete di un cliente e per questo ho dovuto impostare una regola di route con questo semplice comando (ovviamente gli indirzzi sono immaginari) dal prompt dei comandi:

route add 192.168.5.0 mask 255.255.255.0 172.16.18.5

Se volete rendere permanente la regola la poptete salvare appendendo alla fine /p

Unsupported major.minor version

Il post di oggi è un tip sul compilatore Java. Se provate ad eseguire un programma compilato con una versione di Java superiore a quella installata nel vostro sistema operativo o se nell'IDE non avete impostata la giusta compliance allora vi ritroverete con il seguente errore:

Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) at java.net.URLClassLoader.access$000(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:212) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassL…

Eclipse: riparare un workspace corrotto

Stressando l'IDE o a causa di un crash del sistema capita di ritrovarsi con un workspace di Eclipse corrotto e con il seguente messaggio di errore all'avvio:

!MESSAGE The workspace exited with unsaved changes in the previous session;
refreshing workspace to recover changes

Per risolvere il problema senza dover ricreare il workspace è possibile provare prima alcune soluzioni indipendenti:

Rimuovere il file .snap dalla cartella [workspace]\.metadata\.plugins\org.eclipse.core.resources e riavviare eclipseRimuovere la cartella [workspace]\.metadata\.plugins\org.eclipse.core.resources\.root\.indexes e riavviare eclipseRimuovere la cartella [workspace]\.metadata\.plugins\org.eclipse.ui.workbench e riavviare eclipse
Links
http://www.lazylab.org/197/eclipse/eclipse-hanging-on-startup-repair-corrupt-workspace/
http://stackoverflow.com/questions/207843/how-do-i-prevent-eclipse-from-hanging-on-startup

RaspberryPi: Controllare il desktop da remoto con VNC

Premessa
A volte può essere utile avere l'accesso da remoto ad un desktop grafico sul nostro raspberrypi. Il metodo più diffuso è quello di installare un server VNC e collegarsi poi con un client da un altro computer. Per il raspberrypi possiamo scegliere tra due strade a seconda dell'utilizzo che se ne vuole fare:

Installare TightVNC Server: crea una sessione diversa per ogni connessione non cifrataInstallare x11vnc: permette di comandare il desktop dell'utente corrente sul raspberrypi
Tra i due metodi ho preferito il secondo visto che il mio raspi è collegato direttamente ad un televisore CRT. In questo modo posso navigare in internet su schermo grande direttamente dal tablet comodamente seduto sul divano. Unica nota negativa è che questo meccanismo non funziona per pilotare XBMC, per il quale è meglio utilizzare il client per android per esempio.

Installare TightVNC Server
1. Da linea di comando eseguire
sudo apt-get install tightvncserver
2. Avviare il server con il coman…

RaspberryPi: configurare un muletto aMule

Premessa
Il progetto di oggi legato al RaspberryPi è quello di configurarlo come muletto. Per comodità ho comprato una pendrive da 32GB collegata al raspi da utilizzare come disco esterno autoalimentato.
L'idea è quella di utilizzare il client GNU\Linux su un'altra macchina per pilotare il demone di aMule utilizzando aMule Remote GUI. In rete spesso si trovano guide per configurare l'interfaccia aMule Web che sconsiglio visto che dagli stessi sviluppatori è ritenuta instabile.



Collegare il Raspberry Pi ad un hard disk o pendrive USB
Questa fase preparatoria ha lo scopo di avere un sistema che riconosca ad ogni avvio la presenza della pendrive e che la monti in una posizione stabile nel tempo. Per ottenere questo risultato è necessario modificare la tabella delle partizioni. Quando GNU\Linux riconosce un drive USB crea un file nella cartella /dev. Per avere un elenco dei drive caricati basta eseguire da linea di comando

sudo fdisk -l

confrontando le dimensioni dei dischi e il…

RaspberryPi: configurare l'uscita RCA video

Premessa
Questa settimana vediamo come configurare il raspi per mostrare l'uscita video sul cavo RCA. Disponendo di una televisione a tubo catodico questo è l'unico metodo per godermi il mio XBMC box e trasformare una vecchia TV Grundig Cinaro in una smartTV.
Il RaspberryPi non ha un BIOS convenzionale e sfrutta alcuni file presenti nella scheda SD in posizioni convenzionali per eseguire il bootstrap del sistema. Tutta la configurazione tipica di un BIOS è presente nel file /boot/config.txt nella partizione boot. Questo file viene letto dalla GPU prima che il processore ARM sia inizializzato.



Configurazione
La configurazione base è impostata dai parametri sdtv_mode e sdtv_aspect. La TV che ho sottomano come da libretto di istruzioni è un televisore per il sistema europeo PAL e in formato 16:9. Nella pagina RPiconfig è possibile trovare tutte le possibili modalità ed impostazioni relative alle televisioni. Nel mio caso il sistema PAL viene impostato da sdtv_mode=2 e la modalità …