giu
28

Neo Freerunner in vendita: le prime immagini

 

Ci sono un paio di inglese che hanno già ricevuto il loro Neo Freerunner regolarmente acquistato online da un negozio in Gran Bretagna (TrueBox).

Uno di questi, con tanta buona volontà e con tutto il gusto per la nostra (almeno, la mia) crescente invidia, ha postato alcune foto del Neo appena acquistato, all’apertura del pacco e dopo l’accensione.

Potete trovarle qui: http://www.snmoore.net/openmoko/pictures/freerunner/

Buona sbavata!

convert this post to pdf.

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
28

Linux per tutti – Ubuntu facile – Manuale Gratuito

 

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
28

Vincere un iPhone 3g

 

banner per la sponsorizzazioneEcco a voi un’ottima iniziativa di Wikio (a cui potete aggiungermi) con il quale sarà possibile vincere 2 iPhone 3G!

Per partecipare non dovete far altro che cliccare sull’immagine che trovate qui a sinistra.. oppure cliccare su questo link e inserire i vostri dati.

Gli iPhone verranno estratti il 25 Luglio 2008.

Per partecipare avete tempo fino al 16 luglio.. Cosa aspettate? Correte ad iscrivervi!

nella pagina del concorso potete trovare tutte le informazioni del concorso

In bocca al lupo a tutti!

Popularity: 2% [?]



Puoi visualizzare il post originale qui.

giu
27

Compilare i moduli r8168 e r8101 per le schede ethernet Realtek su Hardy

 

Grazie al fantastico Luca Falavigna (a dir la verità, più fanta che stico) sono riuscito a trovare una soluzione a tutti i problemi relativi alla scheda ethernet PCI Express Realtek RTL8101E integrata sul mio Olidata Stainer 3050.

Il modulo r8169 presenta delle gravi incompatibilità con numerose periferiche (le problematiche si differenziano a seconda del modello, per esempio, sul mio portatile, la connessione cade con una frequenza disarmante, ma in alcuni casi potrebbe addirittura verificarsi un mancato riconoscimento), dunque verrebbe naturale recarsi sul sito del produttore per scaricare l’ultima versione del driver (r8101 o r8168, a seconda della propria scheda, entrambi sono distribuiti nei termini della GPL) adatto alla propria scheda e procedere poi alla sua compilazione, nonchè alla sostituzione del modulo malfunzionante con il driver fornito dalla Realtek.

Ecco le schede supportate dai due moduli:

  • r8168: RTL8111B, RTL8168B, RTL8111, RTL8168, RTL8111C
  • r8102: RTL8100E, RTL8101E, RTL8102E-GR

Innanzitutto, cerchiamo di evitare inutili perdite di tempo: una volta scaricati i sorgenti, vi consiglio di non procedere subito alla compilazione, sarebbe inutile poichè ricevereste anche voi un risultato simile al mio:


alessio@quadrispro-laptop:~/r8101-1.007.00$ sudo -s
root@quadrispro-laptop:~/r8101-1.007.00# make clean modules
make -C src/ clean
make[1]: Entering directory `/home/alessio/r8101-1.007.00/src'
rm -rf *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags .tmp_versions Module.symvers Modules.symvers rset
make[1]: Leaving directory `/home/alessio/r8101-1.007.00/src'
make -C src/ modules
make[1]: Entering directory `/home/alessio/r8101-1.007.00/src'
make -C /lib/modules/2.6.24-19-generic/build SUBDIRS=/home/alessio/r8101-1.007.00/src modules
make[2]: Entering directory `/usr/src/linux-headers-2.6.24-19-generic'
CC [M]  /home/alessio/r8101-1.007.00/src/r8101_n.o
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_init_board’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:2244: error: implicit declaration of function ‘SET_MODULE_OWNER’
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_init_one’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:2643: error: ‘struct net_device’ has no member named ‘poll’
/home/alessio/r8101-1.007.00/src/r8101_n.c:2644: error: ‘struct net_device’ has no member named ‘weight’
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_rx_interrupt’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:3686: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3686: warning: type defaults to ‘int’ in declaration of ‘_y’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3686: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3686: warning: comparison of distinct pointer types lacks a cast
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_interrupt’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:3866: error: too few arguments to function ‘netif_rx_schedule_prep’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3867: error: too few arguments to function ‘__netif_rx_schedule’
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_poll’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:3913: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3913: warning: type defaults to ‘int’ in declaration of ‘_y’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3913: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3921: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3924: error: too few arguments to function ‘netif_rx_complete’
make[3]: *** [/home/alessio/r8101-1.007.00/src/r8101_n.o] Error 1
make[2]: *** [_module_/home/alessio/r8101-1.007.00/src] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.24-19-generic'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/home/alessio/r8101-1.007.00/src'
make: *** [modules] Error 2

Il risultato non è quello desiderato poichè le ultime versioni di entrambi i moduli non supportano la versione 2.6.24 del kernel, quella attualmente in uso su Ubuntu 8.04 «Hardy Heron» (ah, non l’ho specificato prima poichè pensavo fosse implicito: tutto l’articolo è specifico per la cara Hardy). Procediamo con la risoluzione del problema, prima scaricando sulla Scrivania la patch per il modulo r8168, testata su Hardy (trovata sul forum internazionale), oppure quella per il modulo r8101 (fatta da me), dunque scompattando il tarball contenente i sorgenti (non credo sia necessario specificarlo ma non si sa mai: i nomi dei file e dei percorsi cambiano a seconda del driver scaricato):


cd ~/Scrivania
tar -xf r8101-1.007.00.tar.bz2
cd r8101-1.007.00/src

Applichiamo la patch alla cartella contenente i sorgenti del modulo r8168:


patch < /home/alessio/Scrivania/r8168-8.005.00.hardy.diff.txt

Se si possiede una scheda supportata dal driver r8168, al posto del precedente comando sarà necessario digitare:


patch < /home/alessio/Scrivania/r8168-8.006.00.hardy.diff.txt

Infine non resta che compilare e installare il nuovo modulo:


cd ..
make clean modules
sudo make install
sudo depmod -a

Al fine di impedire il caricamento all’avvio del driver r8169, apriamo il file `/etc/modprobe.d/blacklist` con un editor di testo:


sudo nano /etc/modprobe.d/blacklist

Infine aggiungiamo alla lista il modulo desiderato, o meglio, indesiderato:


blacklist r8169

Al prossimo riavvio dovrebbe funzionare tutto a dovere. Nel caso si desideri tornare a utilizzare il vecchio driver è sufficiente rimuoverlo dalla blacklist.

Link alla discussione sul forum di Ubuntu relativa al modulo r8168

Popularity: 2% [?]



Puoi visualizzare il post originale qui.

giu
27

Creative ZEN e GNU/Linux parte 2

 

Nello scrivere il precedente post sul mio nuovo Creative ZEN sono stato un po’ precipitoso. In realtà gnomad2 è necessario (credo) solo se si devono trasferire anche immagini. Se ci si limita al trasferimento audio/video si hanno anche altre possibilità.

Per ora ho scoperto che sia Amarok che Banshee supportano senza problemi il suddetto lettore. Banshee tra i due è il più vicino allo stile iTunes (si potrebbe dire che ne sia più o meno una copia), ma è anche il più adatto all’ambiente GNOME (quindi a me).

La chiave è il supporto MTP, che in Banshee è già attivato, mentre su Amarok occorre abbinare manualmente il lettore attraverso Settings? Configure Amarok… ? Media Devices ? Add Device… (e qui si sceglie periferica MTP).

Immagino che vi siano altri media player in grado di gestire questo tipo di periferiche, ad es. Exaile. Ad ogni modo l’interfaccia di gnomad2, pur essendo scarna, mi sembra più comoda, essendo orientata esclusivamente ai trasferimenti pc-lettore (d’altra parte Banshee ha fatto passi da gigante ma l’interfaccia non è ancora matura al 100%).

Popularity: 3% [?]



Puoi visualizzare il post originale qui.

giu
27

Utilizzare Jabber? Ecco perchè!

 

Popularity: 2% [?]



Puoi visualizzare il post originale qui.

giu
27

Utilizzare al meglio il vostro touchpad del laptop.

 

Popularity: 2% [?]



Puoi visualizzare il post originale qui.

giu
27

history meme

 

Quali sono i comandi da terminale che usate di più? Scoprivatelo!
Per quanto mi riguarda:

history | awk '{a[$2]++}END{for(i in a){print a[i] ” ” i}}’ | sort -rn | head

136 ls
119 cd
64 sudo
20 rm
15 pdflatex
13 clear
13 cat
12 gedit
12 find
9 wget

Vi ricordo anche che per pulire la cronologia basta un
history -c

Per eseguire una rapida ricerca nella cronologia di un comando già dato premete CTRL+R. Comparirà
(reverse-i-search)` :
Scremate le possibilità digitando l’inizio del comando che vi interessa.

Fonte dello script: Lucas Rocha

Popularity: 3% [?]



Puoi visualizzare il post originale qui.

giu
27

NetworkManager 0.7 su ubuntu Hardy

 

Popularity: 3% [?]



Puoi visualizzare il post originale qui.

giu
27

Pillola: Usb error..

 

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

giu
27

XBMC, Xbox Media Center. Un vero Media Center per la nostra Ubuntu

 

Alla ricerca di un Media Center per la mia Ubuntu mi sono imbattuto in un progetto interessante XBMC.

Xbox Media Center è infatti un vero e proprio media center in stile Xbox da poter utilizzare sul nostro PC.Ma ora passiamo all’installazione….

Installiamo subversion:

sudo apt-get install subversion

poi.

cd $HOME e scarichiamo il codice: svn checkout https://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/XBMC.

Installiamo i pacchetti che ci servono in base alla nostra distro:

Per Ubuntu 7.04 (Feisty Fawn):

   # sudo apt-get install make g++-4.1 gcc-4.1 libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi0 libfribidi-dev liblzo1 liblzo-dev libfreetype6 libfreetype6-dev libsqlite3-0 libsqlite3-dev libogg-dev libasound2-dev python2.4-dev python2.4 python-sqlite libglew1 libglew-dev libcurl3-dev g++ gawk x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmms-dev pmount libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient15-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper1 libfontconfig1-dev libbz2-dev libboost-dev

Per Ubuntu 7.10 (Gutsy Gibbon):

   # sudo apt-get install make g++-4.1 gcc-4.1 libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi0 libfribidi-dev liblzo1 liblzo-dev libfreetype6 libfreetype6-dev libsqlite3-0 libsqlite3-dev libogg-dev libasound2-dev python2.4-dev python2.4 python-sqlite libglew1.4 libglew1.4-dev libcurl3-dev g++ gawk x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmms-dev pmount libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient15-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper1 libfontconfig1-dev libbz2-dev libboost-dev

Per Ubuntu 8.04 (Hardy Heron):

   # sudo apt-get install make g++-4.1 gcc-4.1 libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi0 libfribidi-dev liblzo1 liblzo-dev libfreetype6 libfreetype6-dev libsqlite3-0 libsqlite3-dev libogg-dev libasound2-dev python2.4-dev python2.4 python-sqlite libglew1.5 libglew1.5-dev libcurl3-dev g++ gawk x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmms-dev pmount libmad0-dev libtre-dev libogg-dev libvorbis-dev libmysqlclient15-dev libhal1 libhal-dev libhal-storage1 libhal-storage-dev libpcre3-dev subversion libjasper1 libfontconfig-dev libbz2-dev libboost-dev

Poi compiliamo il codice sorgente del Media Center:

Usage (examples):

.1 Per la versione con interfaccia 3D (necessario OpenGL accellerazione hardware e supporto gfx-adapter)
   # ./build.sh

.2 Per la versione con interfaccia 2D
   # ./build.sh CONFIGOPT=–disable-gl CONFIGOPT=–disable-debug
Poi per far partire il Media center
vi ricordo coe sempre di disabilitare compiz per evitare lo sfarfallio continuo:

Utilizzando build.sh con le opzioni di default, semplice:
   # cd BUILD
   # ./xbmc.bin

Se invece si è utilizzato il metodo manuale o personalizzato:
   # ./build.sh NOUPDATE NOCOMPILE
   # cd BUILD
   # ./xbmc.bin
per evitare di dover ricorrere sempre al terminale per far partire il media center vi consiglio di creare un lanciatore sul desktop o di creare un avvio dalla barra dei menu:
Lanciatore desktop:
tasto destro del mouse sulla scrivania
click su crea lanciatore e nella riga comando inserite :
/home/utente/XBMC/BUILD/./xbmc.bin
Lanciatore Barra Menu:
da terinale:
sudo gedit /usr/share/applications/XBMC.desktop
e inseriamo queste righe da gedit:
[Desktop Entry]
Name=XBMC
Comment=Xbox Media Center
Exec=/home/utente/XBMC/BUILD/./xbmc.bin
Icon=/home/utente/XBMC/visualisations/logo31a.bmp
Type=Application
Categories=Application;AudioVideo;Video;
avremo cosi il nostro lanciatore.

Passiamo ora alle impostazione del nostro media center:
Apriamo XBMC e noteremo che la lingua preinstallata è l’inglese quindi questo sarà il nostro primo passo:
1. Andiamo su setting e poi su Appaerance e poi nella sezione Region dove cambiamo language attraverso le due freccette a fianco a English impostando italian.
2. Modifichiamo sempre in Region timezone impostando Italy
Se torniamo al menù principale noteremo che è cambiata la lingua e funziona l’ora.
Ora pensiamo di modificare la risoluzione del media center rendendolo fullscreen:
3. Andiamo  in Impostazioni=>Aspetto=>Schermo e modifichiamo la risoluzione fino a che vedremo scritto fullscreen al fianco dei numeri
Ora si che sembra un vero e proprio media center.
Noteremo però che se andiamo nelle sezione meteo si avranno risultati sbagliati.
4. Meteo=>Impostazioni clicchiamo su nome o codice città 1 e cerchiamo la nostra città lo stesso possiamo fare per altre città
Ma ora tocca alle sezioni più importanti per il nostro media center, impostiamo le cartelle di Video,Immagini,Musica:
5.Video=>Aggiungi sorgente e inseriamo il percorso della cartella in cui si trovao i video e selezionando poi la certella avremo i titoli dei video.
La stessa cosa si fa per i video e le immagini.
Nei prossimi giorni inserirò guide sugli script.

Popularity: 2% [?]



Puoi visualizzare il post originale qui.

giu
27

Compilare i moduli r8168/r8101 per le schede ethernet Realtek su Hardy

 

Grazie al fantastico Luca Falavigna (a dir la verità, più fanta che stico) sono riuscito a trovare una soluzione a tutti i problemi relativi alla scheda ethernet PCI Express Realtek RTL8101E integrata sul mio Olidata Stainer 3050.

Il modulo r8169 presenta delle gravi incompatibilità con numerose periferiche (le problematiche si differenziano a seconda del modello, per esempio, sul mio portatile, la connessione cade con una frequenza disarmante, ma in alcuni casi potrebbe addirittura verificarsi un mancato riconoscimento), dunque verrebbe naturale recarsi sul sito del produttore per scaricare l’ultima versione del driver (r8101 o r8168, a seconda della propria scheda, entrambi sono distribuiti nei termini della GPL) adatto alla propria scheda e procedere poi alla sua compilazione, nonchè alla sostituzione del modulo malfunzionante con il driver fornito dalla Realtek.

Ecco le schede supportate dai due moduli:

  • r8168: RTL8111B, RTL8168B, RTL8111, RTL8168, RTL8111C
  • r8102: RTL8100E, RTL8101E, RTL8102E-GR

Innanzitutto, cerchiamo di evitare inutili perdite di tempo: una volta scaricati i sorgenti, vi consiglio di non procedere subito alla compilazione, sarebbe inutile poichè ricevereste anche voi un risultato simile al mio:


alessio@quadrispro-laptop:~/r8101-1.007.00$ sudo -s
root@quadrispro-laptop:~/r8101-1.007.00# make clean modules
make -C src/ clean
make[1]: Entering directory `/home/alessio/r8101-1.007.00/src'
rm -rf *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags .tmp_versions Module.symvers Modules.symvers rset
make[1]: Leaving directory `/home/alessio/r8101-1.007.00/src'
make -C src/ modules
make[1]: Entering directory `/home/alessio/r8101-1.007.00/src'
make -C /lib/modules/2.6.24-19-generic/build SUBDIRS=/home/alessio/r8101-1.007.00/src modules
make[2]: Entering directory `/usr/src/linux-headers-2.6.24-19-generic'
CC [M]  /home/alessio/r8101-1.007.00/src/r8101_n.o
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_init_board’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:2244: error: implicit declaration of function ‘SET_MODULE_OWNER’
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_init_one’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:2643: error: ‘struct net_device’ has no member named ‘poll’
/home/alessio/r8101-1.007.00/src/r8101_n.c:2644: error: ‘struct net_device’ has no member named ‘weight’
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_rx_interrupt’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:3686: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3686: warning: type defaults to ‘int’ in declaration of ‘_y’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3686: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3686: warning: comparison of distinct pointer types lacks a cast
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_interrupt’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:3866: error: too few arguments to function ‘netif_rx_schedule_prep’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3867: error: too few arguments to function ‘__netif_rx_schedule’
/home/alessio/r8101-1.007.00/src/r8101_n.c: In function ‘rtl8101_poll’:
/home/alessio/r8101-1.007.00/src/r8101_n.c:3913: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3913: warning: type defaults to ‘int’ in declaration of ‘_y’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3913: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3921: error: ‘struct net_device’ has no member named ‘quota’
/home/alessio/r8101-1.007.00/src/r8101_n.c:3924: error: too few arguments to function ‘netif_rx_complete’
make[3]: *** [/home/alessio/r8101-1.007.00/src/r8101_n.o] Error 1
make[2]: *** [_module_/home/alessio/r8101-1.007.00/src] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.24-19-generic'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/home/alessio/r8101-1.007.00/src'
make: *** [modules] Error 2

Il risultato non è quello desiderato poichè le ultime versioni di entrambi i moduli non supportano la versione 2.6.24 del kernel, quella attualmente in uso su Ubuntu 8.04 «Hardy Heron» (ah, non l’ho specificato prima poichè pensavo fosse implicito: tutto l’articolo è specifico per la cara Hardy). Procediamo con la risoluzione del problema, prima scaricando sulla Scrivania la patch per il modulo r8168, testata su Hardy (trovata sul forum internazionale), oppure quella per il modulo r8101 (fatta da me), dunque scompattando il tarball contenente i sorgenti (non credo sia necessario specificarlo ma non si sa mai: i nomi dei file e dei percorsi cambiano a seconda del driver scaricato):


cd ~/Scrivania
tar -xf r8101-1.007.00.tar.bz2
cd r8101-1.007.00/src

Applichiamo la patch alla cartella contenente i sorgenti del modulo r8168:


patch < /home/alessio/Scrivania/r8168-8.005.00.hardy.diff.txt

Se si possiede una scheda supportata dal driver r8168, al posto del precedente comando sarà necessario digitare:


patch < /home/alessio/Scrivania/r8168-8.006.00.hardy.diff.txt

Infine non resta che compilare e installare il nuovo modulo:


cd ..
make clean modules
sudo make install
sudo depmod -a

Al fine di impedire il caricamento all’avvio del driver r8169, apriamo il file `/etc/modprobe.d/blacklist` con un editor di testo:


sudo nano /etc/modprobe.d/blacklist

Infine aggiungiamo alla lista il modulo desiderato, o meglio, indesiderato:


blacklist r8169

Al prossimo riavvio dovrebbe funzionare tutto a dovere. Nel caso si desideri tornare a utilizzare il vecchio driver è sufficiente rimuoverlo dalla blacklist.

Link alla discussione sul forum di Ubuntu relativa al modulo r8168

Popularity: 2% [?]



Puoi visualizzare il post originale qui.

giu
27

Wikio mette in palio un Iphone 3G

 

Popularity: 2% [?]



Puoi visualizzare il post originale qui.

giu
27

Italianfilm centinaia di titoli a disposizione!!!

 

Popularity: 2% [?]



Puoi visualizzare il post originale qui.

giu
27

Un’ottima estensione per Firefox3. Ubuntu-it Menu.

 

Popularity: 4% [?]



Puoi visualizzare il post originale qui.

top