Mirko Pagliai http://www.mirkopagliai.it La morale della domenica ed altre elucubrazioni Wed, 13 Jan 2016 18:27:59 +0000 it-IT hourly 1 https://wordpress.org/?v=4.4.1 Debian: VirtualBox + kernel 3.7 http://www.mirkopagliai.it/oldsite/debian-virtualbox-kernel-3-7/ http://www.mirkopagliai.it/oldsite/debian-virtualbox-kernel-3-7/#respond Wed, 06 Feb 2013 12:48:37 +0000 http://www.mirkopagliai.it/oldsite/?p=2392 virtualboxSu Debian, se state utilizzando il kernel 3.7 (presente in experimental) avrete notato che si verifica un problema con il modulo per il kernel di VirtualBox:

root@mirko-lenovo:/home/mirko# /etc/init.d/virtualbox restart
[ ok ] Stopping VirtualBox kernel modules.
[....] Starting VirtualBox kernel modules[....] No suitable module for running k[FAIL found ... failed!
 failed!
root@mirko-lenovo:/home/mirko# dpkg-reconfigure virtualbox-dkms

------------------------------
Deleting module version: 4.1.18
completely from the DKMS tree.
------------------------------
Done.
Loading new virtualbox-4.1.18 DKMS files...
Building only for 3.7-trunk-amd64
Building initial module for 3.7-trunk-amd64
Error! Bad return status for module build on kernel: 3.7-trunk-amd64 (x86_64)
Consult /var/lib/dkms/virtualbox/4.1.18/build/make.log for more information.
[ ok ] Stopping VirtualBox kernel modules.
[....] Starting VirtualBox kernel modules[....] No suitable module for running k[FAIL found ... failed!
 failed!
invoke-rc.d: initscript virtualbox, action "restart" failed.

Andando a guardare il file di log segnalato (/var/lib/dkms/virtualbox/4.1.18/build/make.log), si notano alcuni errori (non riporto il contenuto integrale):

/var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:1451:38: error: ‘VM_RESERVED’ undeclared (first use in this function)
/var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:1451:38: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [/var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o] Error 1
make[3]: *** [/var/lib/dkms/virtualbox/4.1.18/build/vboxdrv] Error 2
make[2]: *** [_module_/var/lib/dkms/virtualbox/4.1.18/build] Error 2
make[1]: *** [sub-make] Error 2
make: *** [all] Error 2

In attesa di aggiornamenti, si può risolvere utilizzando la versione di VirtualBox presente nei repository della casa madre. Innanzitutto puliamo l’installazione:

apt-get purge virtualbox*

Quindi aggiungete il nuovo repository nel vostro sources.list. Per conoscere il repository corretto, che varia a seconda della versione di Debian (vale anche per Ubuntu), potete guardare qui. Ad esempio, per Wheezy:

deb http://download.virtualbox.org/virtualbox/debian wheezy contrib

Quindi aggiungete la chiave del repository:

# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | apt-key add -

Aggiornate i repository e reinstallate VirtualBox:

# apt-get update
# apt-get install virtualbox-4.2

Notare che i pacchetti presenti in questo repository hanno nel nome il numero della versione (cioè il pacchetto si chiama virtualbox-4.2 per la versione 4.2) e che in questo caso non è necessario installare né il pacchetto *-dkms (esempio virtualbox-dkms), né il pacchetto *-qt che contiene la gui di amministrazione (esempio virtualbox-qt). Il pacchetto installato da quei repository contiene già tutto il necessario. Lo stesso vale anche per gli altri pacchetti collegati a VirtualBox: noterete che, cercando di installarli, vi chiederà di rimuovere questa versione e installare quella presente nei repository ufficiali di Debian, che però è difettosa.

]]>
http://www.mirkopagliai.it/oldsite/debian-virtualbox-kernel-3-7/feed/ 0
Checkgmail: “error 200 ok” http://www.mirkopagliai.it/oldsite/checkgmail-error-200-ok/ http://www.mirkopagliai.it/oldsite/checkgmail-error-200-ok/#respond Wed, 23 Jan 2013 12:31:33 +0000 http://www.mirkopagliai.it/oldsite/?p=2387 It seems that CheckGmail has again problems with authentication.

checkgmail_error200

The update (with the –update option) doesn’t work. It seems that you update something, but the result is the same.

On the web there’re suggestions that invite you to launch CheckGmail without the cookies support (-no_cookies option). Actually it works, but many functions are not available.

You can simply fix by downloading and applying this patch:

$ wget http://linuxdeal.com/files/checkgmail.patch
# patch /usr/bin/checkgmail checkgmail.patch

After applying the patch, simply restart CheckGmail.

]]>
http://www.mirkopagliai.it/oldsite/checkgmail-error-200-ok/feed/ 0
Mele A2000 http://www.mirkopagliai.it/oldsite/mele-a2000/ http://www.mirkopagliai.it/oldsite/mele-a2000/#respond Mon, 21 Jan 2013 23:22:25 +0000 http://www.mirkopagliai.it/oldsite/?p=2383 http://mirkopagliai.it/oldsite/complotti/

Mi è arrivato qualche settimana fa, l’ho comprato qui. Il venditore è cinese, me l’ha spedito qualche giorno dopo (ho scelto ovviamente FedEx e non le poste cinesi, anche solo per i tempi di consegna), sembra una persona seria e affidabile, inoltre ha buoni feedback. Il prezzo, comprensivo delle spese di spedizione, è stato di 76€, a cui si sono aggiunti 4,5€ per l’adattatore della presa di corrente (cinese, se non sbaglio di tipo “A”, la vedete qui), per un totale quindi di 80,5€.

È comprensivo dei cavi video (tranne vga), dell’alimentatore e del telecomando. Il telecomando è del tipo “televisione” (con qualche funzione in più, adatta al caso) e in giro se ne trova un altro molto, ma molto più carino e più funzionale. Lo vedete qui, dove si vende abbinato al Mele (non so se anche separatamente da qualche parte, cercare “mele a2000 sensor remote”), sul retro ha una tastiera come quella bluetooth che si vende per i cellulari.

Di base monta Android 2.3, ma si può aggiornare con facilità alla versione 4.0 ICS scaricabile da qui. Notare che è disponibile sia una versione “brandizzata” (firmware B), che una “neutral” (firmware C), oltre a quella originale da fabbrica (firmware A). Consiglio ovviamente la seconda (la prima nemmeno l’ho provata).
Android è nella versione per tablet, forse c’è qualche ottimizzazione per il caso (non ne sono sicuro, non avendo nessun tablet), come la “mouse mode” (appare il puntatore del mouse, che si può muovere tramite telecomando) o i pulsanti (del telecomando) assegnabili a determinate scorciatoie.

L’ho scelto per i seguenti punti di forza:

  1. diverse uscite video, hdmi, vga, av. Normalmente questi dispositivi montano solo l’hdmi, al massimo hdmi+av, molto più raramente hdmi+vga. Unico dispositivo, per quello che sono riuscito a trovare io, con tutte e tre le opzioni. Il telecomando ha un tasto per switchare tra le uscite (non è necessario configurare o peggio riconfigurare nulla).
  2. supporto per sata da 2,5″. Anche qui, per quello che mi risulta, è l’unico dispositivo in commercio. Chi ne capisce un po’, sa che differenza corre tra l’usb e il sata vero e proprio;
  3. ethernet+wifi. Il wifi può fare anche da access point. In rete si parla un po’ male dell’ethernet (che è a 10/100Mbps), ma non ho avuto modo di verificare.

Sul sito del produttore si trova una scheda con qualche informazione in più, in rete anche descrizioni più approfondite. Riporto le altre caratteristiche fondamentali:

  1. audio l/r + hdmi + uscita ottica per home theater;
  2. sd interna da 4GB (per il sistema):
  3. ram 512mb in ddr3;
  4. processore ARM cortex A8 a 1Ghz;
  5. 3 usb (2.0);
  6. lettore flash;
  7. hd a 1080p.

Per quanto mi riguarda, visto che prima di scegliere questo o quel modello, ho approfondito i prodotti presenti sul mercato, fermo restando quelli di altra categorie (sono due: quelli tipo chiavetta e quelli tipo box, ovviamente sono due mondi diversi…), non solo il Mele A2000 è caratteristicamente il migliore, ma uno tra i migliori anche per rapporto qualità/prezzo.

Qualche foto che ho fatto:
http://docs.mirkopagliai.it/documents/mele-a2000/20130102_094840.jpg
http://docs.mirkopagliai.it/documents/mele-a2000/20130103_233835.jpg
http://docs.mirkopagliai.it/documents/mele-a2000/20130103_233851.jpg
http://docs.mirkopagliai.it/documents/mele-a2000/20130113_185023.jpg
http://docs.mirkopagliai.it/documents/mele-a2000/20130113_185125.jpg
http://docs.mirkopagliai.it/documents/mele-a2000/20130113_185604.jpg (qui si nota la “mouse mode”)
http://docs.mirkopagliai.it/documents/mele-a2000/20130113_212237.jpg
http://docs.mirkopagliai.it/documents/mele-a2000/20130113_212342.jpg (il telecomando)

Ora vorrei provare a installarci Debian, magari da chiavetta. In rete qualcuno ha già provato a montarci distribuzioni GNU/Linux, con risultati positivi. Per ora io l’ho attaccato alla tv di casa e l’ho datato di un sata da 500GB, così fa da media center (con brillanti risultati).

]]>
http://www.mirkopagliai.it/oldsite/mele-a2000/feed/ 0
Pulizia dopo aver utilizzato Wine http://www.mirkopagliai.it/oldsite/pulizia-dopo-aver-utilizzato-wine/ http://www.mirkopagliai.it/oldsite/pulizia-dopo-aver-utilizzato-wine/#respond Sat, 29 Dec 2012 12:19:24 +0000 http://www.mirkopagliai.it/oldsite/?p=2380 Dopo aver utilizzato Wine (per qualsiasi necessità) e averlo disinstallato – incluso magari l’avere cancellato anche la directory .wine nella propria home, possono sussistere due tipi di problemi:

  1. il menù di sistema presenta ancora voci di programmi per Windows installati con Wine;
  2. alcune tipologie di file rimangono associate a questi stessi programmi (ad esempio, documenti di testo con il famoso “Blocco note”).

Il primo problema si può facilmente e velocemente risolvere modificando (ovvero cancellando) manualmente le voci residue del menù. Lo stesso dicasi per il secondo, andando a reimpostare in questo caso per tutti i tipi di file l’applicazione preferita (rimane però presente – come alternativa – l’altra, cioè quelle precedentemente presenti e installate da Wine), anche se in questo caso è molto più impegnativa e dispendiosa.

I due problemi sussistono ovviamente (ribadisco, semmai non fosse chiaro) anche se quei programmi non sono più installati e anche se lo stesso Wine non è più installato.

Dopo aver cercato approfonditamente in rete, ho trovato l’unica valida soluzione qui. E quindi, all’interno della propria home:

rm -r .wine
rm -r .local/share/applications/wine*
rm -r .local/share/desktop-directories/wine*

(probabilmente il primo passaggio l’avete già eseguito)

Fatto questo, i due problemi saranno risolti definitivamente.

]]>
http://www.mirkopagliai.it/oldsite/pulizia-dopo-aver-utilizzato-wine/feed/ 0
Slugify: generare automaticamente lo slug http://www.mirkopagliai.it/oldsite/slugify-generare-automaticamente-lo-slug/ http://www.mirkopagliai.it/oldsite/slugify-generare-automaticamente-lo-slug/#respond Mon, 24 Dec 2012 15:40:25 +0000 http://www.mirkopagliai.it/oldsite/?p=2369 L’esigenza: in un form ho bisogno di impostare in un campo lo slug della risorsa che sto creando, magari e probabilmente a partire da un altro campo. Ad esempio, creando un articolo o una pagina devo generare lo slug a partire da un campo che potrebbe in questi casi potrebbe essere il titolo.

Un’immagine esplicativa:
Titolo e slug

A questo scopo ho scritto un semplice ed efficace plugin per jQuery, chiamato slugify, che potete scaricare liberamente da qui.

Il funzionamento è molto semplice:

$(function() {
	$().slugify('#title', '#slug');
});

Richiede semplicemente di indicare il campo sorgente e quello di destinazione (valgono le solite regole per i selettori). Bisogna quindi strutturare il form più o meno così:

<form>
	<input type="text" id="title" />
	<input type="text" id="slug" />
</form>

Notare che se non vengono passati sorgente e destinazione, di default utilizzerà “form #title” e “form #slug”. Quindi è possibile anche lanciarlo come:

$(function() {
	$().slugify();
});

(in questo caso utilizzerà ” form #title” e “form #slug”)

$(function() {
	$().slugify('#name');
});

(utilizzerà “#name” e “form #slug”)

Simulando il comportamento di molti CMS e simili, come ad esempio proprio WordPress, slugify:

  1. agisce solo se il campo destinazione (dello slug) è vuoto. In altri termini, se lo slug era già stato impostato (generato o manualmente), non lo aggiorna, a meno che non lo si cancelli del tutto;
  2. genera la destinazione anche a partire dalla destinazione, ovvero verificando che lo slug sia valido e modificandolo se non lo è.

Nel generare lo slug:

  1. vengono sostituite le lettere accentate;
  2. i simboli e lo spazio vengono convertiti in “-“.
]]>
http://www.mirkopagliai.it/oldsite/slugify-generare-automaticamente-lo-slug/feed/ 0
Android: widget controllo energetico http://www.mirkopagliai.it/oldsite/android-widget-controllo-energetico/ http://www.mirkopagliai.it/oldsite/android-widget-controllo-energetico/#respond Mon, 22 Oct 2012 12:48:47 +0000 http://www.mirkopagliai.it/oldsite/?p=2358 Power ToggleSugli ultimi Android (presumibilmente tutti quelli con versione 4.x) manca un widget per il controllo energetico, presente invece nelle precedenti versioni. È vero, ci sono tutte le icone nell’area delle notifiche, che si possono scorrere in orizzontale, ma non è il massimo della comodità, personalmente preferisco il precedente metodo.

Su Google Play si possono trovare numerose alternative. Tra tutte, volevo segnalare Power Toggle, poiché – tra tutte quelle che ho provato, è l’unica ad essere contemporaneamente:

  1. gratuita e senza pubblicità di sorta;
  2. altamente personalizzabile;
  3. gestisce tutti gli aspetti energetici;
  4. funziona (strano a dirsi, ma molti widget non riescono ad esempio a gestire la connessione dati).

Qualche screen. Il widget:

Power toggle widget

Il menù di impostazioni del widget:

Power Toggle impostazioni

]]>
http://www.mirkopagliai.it/oldsite/android-widget-controllo-energetico/feed/ 0
Amule Adunanza su Debian Wheezy: problema di dipendenze http://www.mirkopagliai.it/oldsite/amule-adunanza-su-debian-wheezy-problema-di-dipendenze/ http://www.mirkopagliai.it/oldsite/amule-adunanza-su-debian-wheezy-problema-di-dipendenze/#respond Mon, 01 Oct 2012 17:47:49 +0000 http://www.mirkopagliai.it/oldsite/?p=2352 AmuleAttualmente, cercando di installare il demone di Amule Adunanza (amule-adunanza-daemon) su Debian Wheezy (ma il problema potrebbe riguardare anche altre versioni di Debian) si ottiene il seguente problema dovuto a dipendenze mancanti:

# aptitude install amule-adunanza-daemon
I seguenti pacchetti NUOVI (NEW) saranno installati:
  amule-adunanza-daemon{b} libcrypto++9{a}
0 pacchetti aggiornati, 2 installati, 0 da rimuovere e 2 non aggiornati.
È necessario prelevare 3199 kB di archivi. Dopo l'estrazione, verranno occupati 9985 kB.
I seguenti pacchetti hanno dipendenze non soddisfatte:
 amule-adunanza-daemon : Dipende: libupnp3 (>= 1.4.3) che è un pacchetto virtuale.
                         Dipende: libwxbase2.8-0 (>= 2.8.10.1) but it is not going to be installed.
Le seguenti azioni permetteranno di soddisfare queste dipendenze:

     Mantenere i seguenti pacchetti alla versione attuale:
1)     amule-adunanza-daemon [Non installato]

Questo accade perché la versione pacchettizzata presente nei repository (il repository di Adunanza) richiede delle dipendenze non più disponibili nei repository ufficiali di Debian. Per risolvere il problema, è momentaneamente necessario ricorrere alla versione più recente, presente sul progetto su Sourceforge.

Semplicemente, installiamo le dipendenze necessarie:

aptitude install libcrypto++9 libupnp6 libwxbase2.8-0

Quindi con il browser apriamo questa pagina, selezioniamo la versione di Debian in uso, poi procediamo fino a visualizzare la lista dei pacchetti disponibili (per Wheezy potete andare direttamente qui). Scarichiamo quindi la versione di amule-adunanza-daemon adatta alla nostra architettura (i386 per 32bit, amd64 per 64bit). Al momento in cui scrivo, sono presenti i pacchetti:

  • amule-adunanza-daemon_2010.1+2.2.6-1wheezy4_i386.deb
  • amule-adunanza-daemon_2010.1+2.2.6-1wheezy4_amd64.deb

Una volta scaricato il pacchetto corretto, portiamoci nella directory e impartiamo il comando di installazione (valido per entrambe le architetture) tramite dpkg:

dpkg -i amule-adunanza-daemon_2010.1+2.2.6-1wheezy4*.deb

A questo punto possiamo procedere con la configurazione come da guida.

]]>
http://www.mirkopagliai.it/oldsite/amule-adunanza-su-debian-wheezy-problema-di-dipendenze/feed/ 0
RTS5229 card reader: how to work http://www.mirkopagliai.it/oldsite/rts5229-card-reader-how-to-work/ http://www.mirkopagliai.it/oldsite/rts5229-card-reader-how-to-work/#respond Tue, 18 Sep 2012 15:04:00 +0000 http://www.mirkopagliai.it/oldsite/?p=2342 DebianI bought a Thinkpad E530 which uses the RTS5229 card reader. The card reader doesn’t work out of the box and in the repositories of Debian there is no driver available. With lspci the card read is seen as:

02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)

Fortunately the Realtek provides its drivers available here (PCIE RTS5229 card reader driver for Linux, 1.07 version) that you should only compile.

First install everything that is needed to compile the sources:

aptitude install linux-headers-`uname -r` build-essential

Then download and unpack the driver. Inside the folder you will find the README.txt file that explains you how to compile:

1) make
2) make install
3) depmod
4) reboot your computer

Note: Root privilege is required in step 2 and 3

I suggest to you to use checkinstall instead of make install, so in the future you have the deb package already prepared. In this case:

# aptitude install checkinstall
$ make
# checkinstall
# depmod

And eventually reboot the system.

If anything could be useful, I have already prepared a deb package that you can find here (for 3.2.0-3-amd64 kernel) and here (for 3.5-trunk-amd64 kernel) and that it should only work on 64bit systems (I don’t guarantee it).

]]>
http://www.mirkopagliai.it/oldsite/rts5229-card-reader-how-to-work/feed/ 0
CakePHP: id or slug? Both of them! http://www.mirkopagliai.it/oldsite/cakephp-id-or-slug-both-of-them/ http://www.mirkopagliai.it/oldsite/cakephp-id-or-slug-both-of-them/#respond Sat, 15 Sep 2012 21:31:22 +0000 http://www.mirkopagliai.it/oldsite/?p=2331 CakePHPCakePHP works very well if you only use the id to retrieve records in database. The problem is when you want to use more than one method to retrieve the same record, for example both the id and the slug.

Yes, you can use two different actions (for example, viewBySlug() for slugs), you can also give the same url using the routing (look here, route elements with regular expressions), but why not use a single action and make your life easier?

The same action, the same logic, the same view: just understand what is the parameter received from the (user) request and shape the search condition.
You can implement a callback function to determine the correct database field. If the choice is between id and slug simply use is_numeric() function (documentation)!

Just an example:

// app/Controller/YourModelNameController.php
public function view($param = null) {
	//There is a parameter?
	if(empty($param))
		throw new NotFoundException(__('Object does not exist'));

	$data = $this->Post->find('first', array(
		'conditions' => is_numeric($param) ? array('id' => $param) : array('slug' => $param),
		'fields' => array('title', 'text', 'created', 'modified'),
	));

	//Found at least one record?
	if(empty($data))
		throw new NotFoundException(__('Object does not exist'));

	$this->set('data', $data);
}

All this is possible thanks to the line 10:

'conditions' => is_numeric($param) ? array('id' => $param) : array('slug' => $param)

If $param is a number or a numeric string and then if it’s an id, then the search condition will be:

'conditions' => array('id' => '1')

Alternatively, if $param is a string (non-numeric string), the search condition will be:

'conditions' => array('slug' => 'your-post-title')

If you do not understand what happens, I advise you to review the ternary operator. As described in the documentation:

The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE.

Is this clear?

Note: please do not confuse is_numeric() with is_int() or is_integer() (documentation). The is_int() and the is_integer() function find whether the type of a variable is integer and not a numeric string, as in this case. If you’ll use is_int() or is_integer(), integers passed as parameters (get or post) will be always seen as strings, because they are numeric strings and not integer.

]]>
http://www.mirkopagliai.it/oldsite/cakephp-id-or-slug-both-of-them/feed/ 0
Script bash per backup http://www.mirkopagliai.it/oldsite/script-bash-per-backup/ http://www.mirkopagliai.it/oldsite/script-bash-per-backup/#comments Sat, 01 Sep 2012 17:15:44 +0000 http://www.mirkopagliai.it/oldsite/?p=2327 Uno script bash molto semplice che utilizzo per fare il backup di alcune directory dalla mia home (e non solo…) su un disco esterno (/media/archive).

Non starò qui a spiegarne il funzionamento, anche perché mi sembra comprensibilissimo. Mi limito a far notare che:

  1. viene utilizzato rsync. L’assenza dell’opzione –progress fa sì che non venga generato nessun output, l’assenza dell’opzione  –delete evita che vengano cancellati nella destinazione file non presenti nella sorgente (modificare se ritenuto opportuno, avendo sotto mano il manuale di rsync);
  2. la variabile FROM è un array che indica le directory sorgente. Una directory per riga, racchiusa tra apici, come si vede chiaramente;
  3. la variabile TO, invece, indica la directory destinazione;
  4. ho notato che lo script ha difficoltà se i nomi delle sorgenti contengono spazi, anche se agli spazi viene correttamente anteposto il carattere di escape (“\”). Non essendo per me un problema, non ho indagato sulla cosa.
#!/bin/bash

#Directory sorgente
FROM=(
	"/home/mirko/Calibre"
	"/home/mirko/Documentazioni"
	"/home/mirko/Documenti"
	"/home/mirko/Icone"
	"/home/mirko/Pacchetti"
	"/home/mirko/Server"
	"/media/crypted"
)
#Directory destinazione
TO="/media/archive"

#Colori
RED="\e[1;31m" 		# Rosso
GREEN="\e[1;32m" 	# Verde
YELLOW="\e[1;33m" 	# Giallo
Z="\e[0m" 		# Reset!

#Se la directory destinazione è scrivibile
if [ -w $TO ]; then
	#Cicla le directory sorgente
	for i in ${FROM[@]}; do
		#Se la directory sorgente è scrivibile
		if [ -r $i ]; then
			#Se la sincronizzazione è andata a buon termine
			if rsync -az ${i} $TO; then
				echo -e $GREEN"${i} sincronizzata"$Z
			#Altrimenti
			else
				echo -e $RED"${i} non sincronizzata"$Z
			fi
		#Altrimenti
		else
			echo -e $YELLOW"${i} non esiste o non è leggibile"$Z
		fi
	done
#Altrimenti
else
	echo -e $RED"$TO non è scrivibile"$Z
fi

exit 0
]]>
http://www.mirkopagliai.it/oldsite/script-bash-per-backup/feed/ 1
VPN: utilizzare solo risorse sulla rete del server http://www.mirkopagliai.it/oldsite/vpn-utilizzare-solo-risorse-sulla-rete-del-server/ http://www.mirkopagliai.it/oldsite/vpn-utilizzare-solo-risorse-sulla-rete-del-server/#respond Fri, 25 May 2012 12:32:16 +0000 http://www.mirkopagliai.it/oldsite/?p=2307 Oggi mi sono ritrovato a lavorare con una vpn (OpenVPN, precisamente). Dopo averla configurata anche sul client, l’ho lanciata tramite Network Manager (ha l’apposito plugin), notando però che il client tentava di utilizzare la connessione del server. Subito dopo ho anche notato che al momento del lancio della connessione vpn, Network Manager provvedeva automaticamente a disconnettere qualsiasi altra connessione (ethernet o wifi).

Ho cercato un bel po’, ma non sono riuscito a capire se dipendesse proprio dalla configurazione di OpenVPN, sia quella sul client (che Network Manager, volendo, va a leggere), sia a quella sul server. Soltanto grazie a un forum ho scoperto un’opzione che finora non conoscevo, anche perché è ben nascosta: modificare la connessione vpn, cliccare sul tab “Impostazioni IPv4”, cliccare sul pulsante “Instradamenti…” e quindi mettere la spunta (=abilitare) all’opzione “Usare questa connessione solo per risorse sulla sua rete”.

Immagine:

Solo risorse rete - Network manager

Soltanto successivamente, cercando questa opzione su internet, sono risalito – guarda un po’ – una guida di debianizzati.org, che per l’appunto spiega:

Dopo aver configurato una VPN, attivando la connessione il routing viene impostato in modo che tutte le connessioni passino per la VPN: questo significa che viene utilizzato il gateway della VPN non solo per le attività della connessione VPN, ma anche per la normale navigazione sul web.
Per risolvere il problema basta impostare la connessione VPN in modo che il routing del sistema non sia sostituito e che venga aggiunta una regola per instradare le connessioni VPN solo per indirizzi e risorse di rete che si riferiscono alla VPN.
In questo modo se, ad esempio, si naviga con il browser la connessione sarà instradata usando il normale gateway della propria connessione ad internet, mentre se si accede tramite ssh ad un indirizzo interno della LAN a cui è collegata la VPN la connessione sarà instradata tramite la VPN stessa.

]]>
http://www.mirkopagliai.it/oldsite/vpn-utilizzare-solo-risorse-sulla-rete-del-server/feed/ 0
Nuova categoria: Guide GNU/Linux e Debian http://www.mirkopagliai.it/oldsite/nuova-categoria-guide-gnulinux-e-debian/ http://www.mirkopagliai.it/oldsite/nuova-categoria-guide-gnulinux-e-debian/#respond Thu, 24 May 2012 13:16:10 +0000 http://www.mirkopagliai.it/oldsite/?p=2301 Mi sono reso conto che su questo blog ho avuto modo di scrivere vere e proprie guide per GNU/Linux e Debian, nonché svariati tips and tricks di grande utilità riguardanti gli stessi temi.
E non certamente per caso, semmai perché ogni volta che ho avuto modo di affrontare argomenti non documentati o scarsamente documentati sul web, ho ben pensato di prodigarmi per colmare personalmente queste lacune e nella speranza di poter essere utile ad altri utenti (piccolo auto-elogio, concedetemelo). Per dire, io stesso, quando mi trovo ad installare Debian o un’altra distribuzione GNU/Linux su una nuova macchina ricorro al mio blog per alcune questioni.

Fino ad oggi tutto questo materiale è sempre stato raccolto nella categoria Unix, dove però è presente anche dell’altro come – per dire – news, commenti e via dicendo. Per valorizzarlo, ho quindi pensato di creare una nuova, specifica sotto-categoria (Guide GNU/Linux e Debian), nella cui pagina gli articoli sono ordinati in lista per una più semplice individuazione consultazione (d’altronde i titoli sono sufficientemente auto-esplicativi).
Per l’occasione, ho aggiunto anche un link diretto nella topbar (la barra superiore di questo blog), così da potervi accedere più velocemente.

Resta inteso che la precedente categoria Unix, essendo “categoria padre” di questa sotto-categoria, continuerà a contenere questi articoli, oltre ovviamente ad altri.
Per accedere agli articoli tramite categorizzazione, si possono inoltre utilizzare i tag (parole chiave) inseriti negli articoli: sulla barra laterale a destra c’è la tag-cloud.

]]>
http://www.mirkopagliai.it/oldsite/nuova-categoria-guide-gnulinux-e-debian/feed/ 0
Mirror ftp.it.debian.org e repository di Debian Lenny http://www.mirkopagliai.it/oldsite/mirror-ftp-it-debian-org-e-repository-di-debian-lenny/ http://www.mirkopagliai.it/oldsite/mirror-ftp-it-debian-org-e-repository-di-debian-lenny/#respond Wed, 23 May 2012 22:35:04 +0000 http://www.mirkopagliai.it/oldsite/?p=2256 DebianUltimamente molte delle discussioni aperte sul forum di debianizzati.org riguardano due soli argomenti. Scrivo questo post sperando che venga ben indicizzato e che gli utenti riescano a trovarlo prima di aprire per l’ennesima volta la stessa discussione – anche perché costringete me a rispondere con un “fai una ricerca sul forum, l’argomento è già stato ampiamente trattato” :-)

Il mirror ftp.it.debian.org in questi giorni ha diversi problemi e spesso risulta offline. Utilizzando un qualsiasi metodo di gestione dei pacchetti (apt-get, aptitude, synaptic, etc.) ricevete un errore simile a questo, ripetuto più volte:

 Impossibile iniziare la connessione a ftp.it.debian.org:80 (2001:1418:13:1::5). - connect (101: La rete non è raggiungibile) [IP: 2001:1418:13:1::5 80]

Potete sincerarvene semplicemente aprendo il mirror con il vostro browser (http://ftp.it.debian.org/debian/): se non lo riuscite a sfogliare così, significa appunto che non è momentaneamente disponibile. È sufficiente modificare il vostro sources.list con uno di questi (a scelta):

http://debian.fastbull.org/debian/
http://debian.fastweb.it/debian
ftp://ftp.eutelia.it/Debian_Mirror
http://mi.mirror.garr.it/mirrors/debian/
http://ftp.bononia.it/debian/

In un mio precedente post (questo) è spiegato come verificare qual è per voi il mirror più veloce. Vi consiglio di eseguire il test, poiché i risultati possono variare sia per la zona geografica, sia per l’operatore e tipo di linea che avete in uso (nel mio caso il più veloce è il mirror di Fastweb, ma forse non a caso sono proprio sotto Fastweb, è plausibile che sia così solo per chi si trova nella stessa condizione).

Altra questione riguarda Debian Lenny: è la old-stable, versione molto vecchia e semplicemente i repository di Lenny sono stati “spenti”, quindi qualsiasi operazione tentiate di compiere non andrà a buon fine. Il contenuto dei repository è stato spostato negli archivi Debian, così che possa comunque essere ancora utilizzata. Ad ogni modo, per tutta una serie di motivi (questo è importante, ma non l’unico. Anzi…) sarebbe ora di aggiornare versione e passare almeno a Debian Wheezy, l’attuale stable.

]]>
http://www.mirkopagliai.it/oldsite/mirror-ftp-it-debian-org-e-repository-di-debian-lenny/feed/ 0
Amarok 1.4.10: aggiornamenti http://www.mirkopagliai.it/oldsite/amarok-1-4-10-aggiornamenti/ http://www.mirkopagliai.it/oldsite/amarok-1-4-10-aggiornamenti/#comments Fri, 18 May 2012 10:19:03 +0000 http://www.mirkopagliai.it/oldsite/?p=2246 Amarok logoAvevo scritto questo articolo su come installare Amarok 1.4.10 su recenti versioni di Debian, per chi preferisce la vecchia versione alla nuova. Visto che sono cambiate un po’ di cose nei pacchetti disponibili, questo articolo è un aggiornamento della precedente guida.

Si cominci sempre con installare un po’ di pacchetti necessari e che dovrebbero essere disponibili a prescindere dalla versione di Debian in uso:

aptitude install libqt3-mt libifp4 libkarma0 libnjb5 libpq5 liblua50 liblualib50 libxine1 libesd0 oss-compat

Fatto questo, abbiamo bisogno dei seguenti pacchetti:

amarok
amarok-common
amarok-engine-xine
kdelibs4c2a
kdelibs-data
libarts1c2a
libartsc0
libaudiofile0
libavahi-qt3-1
libgpod3-nogtk
libmtp7
libmysqlclient15off
libtunepimp5

Notare che:

  1. i primi tre pacchetti (amarok, amarok-common e amarok-engine-xine) devono essere alla versione 1.4.x;
  2. alcuni di questi pacchetti sono disponibili solo per Debian Lenny (oldstable), altri anche se Debian Squeeze (attuale stable) e/o su Debian Sid (unstable).

Se volete, quindi, potete procedere tramite pinning (guida), almeno per i pacchetti presenti su Squeeze e/o Unstable. Ma per agevolarvi il lavoro, ho creato due comodi archivi .tar.gz, uno per Debian a 32bit (qui) e uno per Debian a 64bit (qui).

Scaricate quello corrispondente alla vostra architettura. Per 32bit:

http://docs.mirkopagliai.it/packages/amarok_32bit.tar.gz

Per 64bit:

http://docs.mirkopagliai.it/packages/amarok_64bit.tar.gz

Decomprimete l’archivio:

tar -zxvf amarok*.tar.gz

Quindi portatevi all’interno della directory estratta e procedete all’installazione di tutti i file .deb tramite dpkg:

cd amarok*
dpkg -i *.deb

Ricordatevi, alla fine, di bloccare i pacchetti amarok e amarok-common, altrimenti vi chiederà continuamente di aggiornarli:

aptitude hold amarok amarok-common

(la stessa cosa va fatta all’interno di Synaptic, selezionando i pacchetti e poi scegliendo dal menù “Pacchetto” l’opzione “Blocca versione”)

Enjoy Amarok 1.4.10 ;-)

]]>
http://www.mirkopagliai.it/oldsite/amarok-1-4-10-aggiornamenti/feed/ 1
Facebook regala antivirus? Rifiutate il regalo http://www.mirkopagliai.it/oldsite/facebook-regala-antivirus-rifiutate-il-regalo/ http://www.mirkopagliai.it/oldsite/facebook-regala-antivirus-rifiutate-il-regalo/#respond Thu, 26 Apr 2012 13:53:52 +0000 http://www.mirkopagliai.it/oldsite/?p=2236 Oggi è apparso questo articolo su La Repubblica. Da quanto riportato, sembrerebbe che Facebook offrirà ai suoi utenti licenze antivirus gratuite che vanno da sei mesi fino ad un anno. Nell’articolo si legge che

Gli obbiettivi sono almeno due: rendere educare gli utenti alla protezione del computer, e rendere il social network più sicuro e gli iscritti meno vulnerabili agli attacchi di spam.

Primo, un antivirus non protegge e non può proteggere dallo spam, tanto meno dalla spam presente su Facebook: se un altro utente vuole postare della pubblicità sulla vostra bacheca o se ricevete messaggi privati dagli stessi contenuti, un antivirus nulla può fare. Semmai dovrebbe essere Facebook a prevenire (a livello di codice della propria piattaforma) questi episodi, piuttosto che consigliare “soluzioni terze” di scarsa utilità.
Secondo, si parla di “educazione”, ma non si capisce perché l’educazione debba passare tramite la prova gratuita di un prodotto commerciale (e semmai non fosse chiaro: vi regalano dai 6 ai 12 mesi di utilizzo gratuito, poi dovrete pagare), cosa che sembra piuttosto marketing – appunto – commerciale.

Ed è proprio di marketing che si parla: le case produttrici di software antivirus pagano Facebook, in cambio Facebook vi offre per inter-tramite i loro prodotti in prova gratuita, consigliando e suggerendo (e non è cosa da poco, perché ormai è fin dentro la nostra vita e molti si fidano); quando la prova gratuita termina, dovete procedere al pagamento della licenza annuale.
Insomma, Facebook e le case produttrici (l’articolo riporta Symantec, McAfee, Trend Micro, Sophos e Microsoft) guadagno, voi intanto venite “educati”. Sì, educati all’acquisto acritico e di massa.

Diffidate di questi articoli, diffidate anche delle rubriche informatiche e tecnologiche dei vari quotidiani italiani, che sono di una superficialità spaventosa e si limitano soltanto a fare da vetrina per prodotti, diffidate soprattutto delle relative rubriche su La Repubblica, che in questo senso detiene un vero e proprio record. Diffidate anche degli “acquisti suggeriti” e dagli acquisti suggeriti in particolare da Facebook. Ma fin qui spero siate capaci di arrivarci anche da soli.

Se utilizzate Windows, guardate a soluzioni gratuite come Avast e Avg. È dimostrato, informaticamente parlando, come ad oggi queste soluzioni gratuite siano pari se non superiori a quelle a pagamento, quindi non si capisce perché scegliere diversamente, soprattutto perché dover essere educati diversamente, per giunta tramite metodi subdoli.
Se volete fare cosa ancora migliore, allora passate a Linux e dormite sonni tranquilli.

]]>
http://www.mirkopagliai.it/oldsite/facebook-regala-antivirus-rifiutate-il-regalo/feed/ 0
Localepurge solo in manuale http://www.mirkopagliai.it/oldsite/localepurge-solo-in-manuale/ http://www.mirkopagliai.it/oldsite/localepurge-solo-in-manuale/#respond Sat, 21 Apr 2012 14:10:05 +0000 http://www.mirkopagliai.it/oldsite/?p=2227 Sulle mie Debian non manca mai localepurge, un ottimo tool per mantenere pulito il sistema e rimuovere file non necessari.

Questo è uno script per recuperare lo spazio su disco sprecato per file locale, localizzazioni di Gnome/KDE e pagine di manuale localizzate non necessari. In base all’installazione, è possibile recuperare qualcosa come 200, 300 o più mega byte di spazio su disco dedicato alle localizzazioni che molto probabilmente non avrebbero nessun utilizzo. Sarà invocato automagicamente al termine di ogni processo di installazione di apt.

Notare che questo strumento è un trucco che *non* è integrato nel sistema di gestione dei pacchetti di Debian e perciò non è adatto ai deboli di cuore. Questo programma interferisce con la gestione dei pacchetti di Debian e provoca strani, ma di solito innocui, comportamenti nei programmi correlati ad apt/dpkg, come dpkg-repack, reportbug, ecc. La responsabilità e i possibili danni al sistema derivanti dal suo uso ricadono perciò nelle mani dell’amministratore di sistema (le vostre).

Ci si astenga categoricamente dal riportare uno qualsiasi di questi malfunzionamenti incolpando localepurge se il proprio sistema è stato danneggiato dal suo uso. Se non si sa quello che si sta facendo e non si possono risolvere autonomamente i danni derivanti dall’uso, allora semplicemente non si usi questo pacchetto.

Tuttavia, se lo utilizzate avrete sicuramente notato come venga lanciato ogni qualvolta andiamo compiere una qualsiasi operazione con i pacchetti di sistema (con apt-get e aptitude, ma anche con synaptic). Comportamento – almeno per quanto mi riguarda – fastidioso e dispendioso, ma che può ovviamente essere disabilitato.

Durante la sua installazione, infatti, localepurge crea il file /etc/apt/apt.conf.d/99-localepurge, che si occupa appunto dell’autostart ogni volta che viene compiuta un’operazione inerente apt. Il contenuto del file:

// Get rid of unneeded locale files after each package installation

DPkg
{
Post-Invoke {"if [ -x /usr/sbin/localepurge ] && [ $(ps w -p $PPID | grep -c remove) != 1 ]; then /usr/sbin/localepurge; else exit 0; fi";};
};

Ebbene – incredibile a dirsi :-) – per disabilitare l’autostart di localepurge è sufficiente commentare quelle quattro linee di codice (anteporre il carattere # alle linee 3-6). Viceversa, per ripristinarlo, togliere i commenti.

]]>
http://www.mirkopagliai.it/oldsite/localepurge-solo-in-manuale/feed/ 0
Php: array/menù a tendina con mesi di pubblicazione http://www.mirkopagliai.it/oldsite/php-arraymenu-a-tendina-con-mesi-di-pubblicazione/ http://www.mirkopagliai.it/oldsite/php-arraymenu-a-tendina-con-mesi-di-pubblicazione/#respond Thu, 19 Apr 2012 12:56:18 +0000 http://www.mirkopagliai.it/oldsite/?p=2218 Oggi mi sono trovato di fronte a un’esigenza un po’ particolare: per un piccolo motore di ricerca di articoli, creare un menù a tendina (select) per scegliere il mese di pubblicazione. La difficoltà sta nel realizzare un array ben curato con i valori da ciclare per poi creare il citato menù a tendina.

Il menù a tendina, ovviamente, di default dovrebbe partire dal momento attuale (cioè mese e anno corrente) e arrivare fino al mese di apertura del sito. Ad esempio, posto che l’eventuale sito abbia aperto a giugno 2010 e visto che ora siamo in aprile 2012, i valori dovrebbero essere questi:

aprile 2012
marzo 2012
febbraio 2012
gennaio 2012
dicembre 2011
...
agosto 2010
luglio 2010
giugno 2010

Dovrebbe tuttavia permettere anche di indicare valori di partenza e/o di arrivo diversi, oltre a quelli di default. Di seguito, la funzione che ho scritto, ben commentata (non dovrebbe necessitare di ulteriori spiegazioni):

/**
* Restituisce un array dei mesi (accompagnati dall'anno) in cui possono essere stati pubblicati degli articoli
* (l'array ha chiavi come "2012-02" e valori come "febbraio 2012")
* @param int $final_month Mese di arrivo. Se non indicato, letto dalla configurazione
* @param int $final_year Anno di arrivo. Se non indica, letto dalla configurazione
* @param int $starting_month Mese di partenza. Se non indicato, impostato all'attuale
* @param int $starting_year Anno di arrivo. Se non indicato, impostato all'attuale
* @return array Array dei mesi
*/
function getPublicationMonths($final_month = null, $final_year = null, $starting_month = null, $starting_year=null) {
	//Se non è stato passato il mese o l'anno di arrivo, imposta dalle constanti di configurazione
	$final_month = !is_null($final_month) ? $final_month : FINAL_MONTH;
	$final_year = !is_null($final_year) ? $final_year : FINAL_YEAR;

	//Se non è stati passato il mese o l'anno di partenza, imposta al momento attuale
	$starting_month = !is_null($starting_month) ? $starting_month : date('n');
	$starting_year = !is_null($starting_year) ? $starting_year : date('Y');

	//Prepara l'array in cui inserire i dati
	$data = array();

	//Cicla i dati. Il ciclo ha fine quando vengono raggiunti mese e anno di arrivo
	while($starting_year != $final_year || $starting_month+1 != $final_month) {
		//Se il mese è valido (>=0), aggiunge i dati all'array
		if($starting_month) {
			$data[$starting_year.'-'.date('m', mktime(0, 0, 0, $starting_month))] = strftime('%B', mktime(0, 0, 0, $starting_month)).' '.$starting_year;
			$starting_month -= 1;
		}
		//Se il mese non è valido, imposta il mese a dodice e decrementa l'anno
		else {
			$starting_month = 12;
			$starting_year -= 1;
		}
	}

	return($data);
}

Giusto un aspetto che potrebbe non essere chiaro: se non viene indicato il mese e/o l’anno finali, utilizza le constanti FINAL_MONTH e/o FINAL_YEAR (che si suppone siano state già state impostate altrove e che riportano appunto mese e anno di apertura del sito. Comunque, nulla di impedisce di fare una query per selezionare l’articolo più vecchio e estrarre i dati da lì); se non viene indicato il mese e/o l’anno di partenza, utilizza mese e anno attuali.

Quindi, lanciandola così:

getPublicationMonths('6', '2010');

(equivale a dire: da oggi (aprile 2012) a giugno 2010)

E utilizzando un altro ciclo per creare l’html del menù a tendina (perché la funzione restituisce solo un array), il risultato è questo:

<select>
	<option value="">-- data --</option>
	<option value="2012-04">aprile 2012</option>
	<option value="2012-03">marzo 2012</option>
	<option value="2012-02">febbraio 2012</option>
	<option value="2012-01">gennaio 2012</option>
	<option value="2011-12">dicembre 2011</option>
	<option value="2011-11">novembre 2011</option>
	<option value="2011-10">ottobre 2011</option>
	<option value="2011-09">settembre 2011</option>
	<option value="2011-08">agosto 2011</option>
	<option value="2011-07">luglio 2011</option>
	<option value="2011-06">giugno 2011</option>
	<option value="2011-05">maggio 2011</option>
	<option value="2011-04">aprile 2011</option>
	<option value="2011-03">marzo 2011</option>
	<option value="2011-02">febbraio 2011</option>
	<option value="2011-01">gennaio 2011</option>
	<option value="2010-12">dicembre 2010</option>
	<option value="2010-11">novembre 2010</option>
	<option value="2010-10">ottobre 2010</option>
	<option value="2010-09">settembre 2010</option>
	<option value="2010-08">agosto 2010</option>
	<option value="2010-07">luglio 2010</option>
	<option value="2010-06">giugno 2010</option>
</select>

Che, graficamente, si traduce in questo:

Menù a tendina con mesi

Come potete vedere dall’output html di cui sopra, il valore selezionato sarà nel formato (formato di date()):

Y-m

Mentre i valori dell’array sono in questo formato (chiave => valore):

Y-m => F Y
]]>
http://www.mirkopagliai.it/oldsite/php-arraymenu-a-tendina-con-mesi-di-pubblicazione/feed/ 0
Tutorial Jquery: menù a tendina verso l’alto http://www.mirkopagliai.it/oldsite/tutorial-jquery-menu-a-tendina-verso-lalto/ http://www.mirkopagliai.it/oldsite/tutorial-jquery-menu-a-tendina-verso-lalto/#comments Wed, 28 Mar 2012 16:34:44 +0000 http://www.mirkopagliai.it/oldsite/?p=2208 In un precedente articolo Tutorial Jquery: menù a tendina ho ricevuto il seguente commento:

Ciao Mirko, ho seguito alla lettera il tuo tutorial… nel mio caso mi servirebbe un menu con una tendina che si aprisse verso l’alto e non verso il basso… sapresti darmi qualche suggerimento su come fare? ti ringrazio!

Si può fare? Sì, vediamo subito di aiutare Paolo.

Il problema che si riscontra è generalmente questo: normalmente, gli elementi html vengono disposti dall’alto verso il basso (oltre che da sinistra verso destra). Noi dobbiamo invertire questo caso, ed è possibile solo utilizzando il posizionamento assoluto.

Partiamo dal precedente esempio. Il codice html era questo:

<ul id="navbar">
	<li><a href="pagina1.html">Pagina 1</a></li>
	<li>
            <a href="#">Pagina 2</a>
            <ul>
               <li><a href="paginaA.html">Pagina A</a></li>
               <li><a href="paginaB.html">Pagina B</a></li>
               <li><a href="paginaC.html">Pagina C</a></li>
            </ul>
        </li>
	<li><a href="pagina3.html">Pagina 3</a></li>
</ul>

Mentre il foglio di stile è disponibile qui.

Bene, la prima cosa da fare, come detto, è dare una posizione assoluta (position: absolute) ai sotto-menù. È però prima necessario indicare qual è l’elemento di riferimento (position: relative): nel nostro caso sarà #navbar, cioè il menù principale.
Quindi la posizione: dal basso, dalla parte inferiore del menù principale (“bottom”) è sufficiente spostare il sotto-menù dello stesso numero di pixel dell’altezza del menù principale (che nel precedente esempio è di 25 pixel). Ovvero (riporto solo le regole che incidono su questo caso, per il resto – come già detto – guardate l’esempio precedente):

#navbar {
	height: 25px;
	position: relative;  /* Necessario perché fa da riferimento alla posizione dei sotto-menù (successiva regola) */
}
#navbar ul {
	bottom: 25px; /* Deve essere uguale all'altezza di #navbar (precedente regola) */
	position: absolute;
}

Graficamente il nuovo menù apparirà così:
jquery_submenu

Anche qui, aggiungiamo ai sotto-menù la regola display: none, così che di default, al caricamento della pagina, non vengano mostrati.

Infine, proprio come nel precedente esempio, possiamo aggiungere lo stesso codice Jquery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
	$(document).ready(function(){
		$("#navbar li").hover(function (){
			$(this).children("ul").slideToggle();
		});
	});
</script>

Ed ecco il risultato finale:
http://docs.mirkopagliai.it/html/menu-tendina/esempio6_versoalto.html

Notare che:

  1. per praticità, il codice css è nella stessa pagina html, non ho usato un foglio di stile esterno;
  2. al menù principale (#navbar) ho aggiunto un margine superiore semplicemente per distanziarlo e rendere visibile l’effetto.
]]>
http://www.mirkopagliai.it/oldsite/tutorial-jquery-menu-a-tendina-verso-lalto/feed/ 2
Debian: i mirror più veloci http://www.mirkopagliai.it/oldsite/debian-i-mirror-piu-veloci/ http://www.mirkopagliai.it/oldsite/debian-i-mirror-piu-veloci/#comments Sat, 11 Feb 2012 16:19:06 +0000 http://www.mirkopagliai.it/oldsite/?p=2202 Riporto qui sul blog l’ottimo suggerimento¹ di xtow sul forum debianizzati.org su come individuare il mirror italiano più veloce.

Innanzitutto è necessario installare netselect e quindi:

apt-get install netselect

Va quindi lanciato col l’opzione -vv (“very verbose mode”), seguito dalla lista dei mirror da testare. Ad esempio:

netselect -vv debian.bononia.it debian.fastweb.it ftp.it.debian.org debian.dynamica.it debian.fastbull.org freedom.dicea.unifi.it giano.com.dist.unige.it mi.mirror.garr.it mirror.units.it

Nel mio caso:

root@mirko-laptop:/home/mirko# netselect -vv debian.bononia.it debian.fastweb.it ftp.it.debian.org debian.dynamica.it debian.fastbull.org freedom.dicea.unifi.it giano.com.dist.unige.it mi.mirror.garr.it mirror.units.it
Running netselect to choose 1 out of 9 addresses.
...............................................................................
freedom.dicea.unifi.it                  82 ms  22 hops   90% ok ( 9/10) [  291]
debian.fastbull.org                     39 ms  16 hops  100% ok (10/10) [  101]
giano.com.dist.unige.it               9999 ms  30 hops    0% ok
debian.fastweb.it                       28 ms  12 hops   90% ok ( 9/10) [   68]
ftp.it.debian.org                       40 ms  17 hops   90% ok ( 9/10) [  121]
mi.mirror.garr.it                       29 ms  16 hops   75% ok ( 6/ 8) [  101]
debian.dynamica.it                      33 ms  14 hops   90% ok ( 9/10) [   88]
debian.bononia.it                     9999 ms  30 hops    0% ok
mirror.units.it                         40 ms  19 hops   90% ok ( 9/10) [  127]
   68 debian.fastweb.it

Modificate il vostro /etc/apt/sources.list di conseguenza.

Per qualsiasi altra cosa, fate sempre riferimento al manuale:

man netselect

netselect

]]>
http://www.mirkopagliai.it/oldsite/debian-i-mirror-piu-veloci/feed/ 3
Silverlight su qualsiasi versione di Firefox/Iceweasel http://www.mirkopagliai.it/oldsite/silverlight-su-qualsiasi-versione-di-firefoxiceweasel/ http://www.mirkopagliai.it/oldsite/silverlight-su-qualsiasi-versione-di-firefoxiceweasel/#comments Sat, 28 Jan 2012 19:45:31 +0000 http://www.mirkopagliai.it/oldsite/?p=2197 FirefoxCome probabilmente già saprete (soprattutto se giungete a questo post da una ricerca) le ultime versioni di Firefox/Iceweasel non supportano l’ultima versione dell’estensione Silverlight (la 3.99.0.3 del 12 aprile 2011); estensione ahimè necessaria (anche se in rete si possono trovare varie alternative, più o meno funzionanti) per fruire di diversi contenuti multimediali, come quelli sui siti Rai.

Taccio a proposito di:

  1. motivi che portano alla scelta di adottare software proprietario o che si appoggia a software proprietario, software non libero, software non-multipiattaforma o con problemi/scarse prestazioni su alcune piattaforme, software non flessibile e via dicendo. Soprattutto quando (vedi caso della Rai) sono tenuto anche a pagare. Ma è già assodato come ci siano in giro troppi ingegneri, esperti di informatica o sviluppatori che, anche se con laurea alla mano, dovrebbe andare a fare un altro lavoro causa pochezza mentale;
  2. motivi che portano a sviluppare un software, farlo adottare da tanti e in contesti così cruciali da fare in modo che diventi un software essenziale e poi non aggiornarlo regolarmente (l’ultima release stabile risale – lo ripeto – ad aprile 2011).

Vengo a spiegarvi come ho risolto sulla Debian, procedura che dovrebbe essere valida anche su altre distribuzioni GNU/Linux.  Anzitutto dovete sapere che l’estensione funziona benissimo (almeno io la sto usando su Firefox 9), è solo che per ogni estensione viene indicata una versione massima e una minima dei vari browser e presumibilmente la prima sarà l’ultima versione disponibile al momento della versione dell’estensione.

Dunque:

  1. scaricate (non installandola, ma scaricandola effettivamente sul vostro hard disk) l’estensione da qui. Con lo stesso Firefox/Iceweasel dovrebbe essere sufficiente fare click destro sul link e quindi scegliere l’opzione “Salva destinazione con nome…”. Altrimenti, c’è sempre il divino wget:
    wget http://www.go-mono.com/moonlight/downloads/3.99.0.3/novell-moonlight-3.99.0.3-x86_64.xpi
  2. il file scaricato è un archivio, quindi decomprimetelo (assumo sappiate già come fare). In caso di problemi, rinominatelo come un .zip;
  3. entrate nella directory estratta e aprite il file install.rdf, con un qualsiasi editor di testo. Quindi cercate le seguenti righe:
    <em:targetApplication> <!-- Firefox -->
       <Description>
       <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
       <em:minVersion>1.5</em:minVersion>
       <em:maxVersion>4.0.*</em:maxVersion>
       </Description>
    </em:targetApplication>

    Modificate la versione massima, ad esempio così:

    <em:maxVersion>10.*</em:maxVersion>

    Non dovete rimuoverla, deve essere presente, volutamente potete indicare qualsiasi numero (anche 100).
    Quindi salvate il file;

  4. cancellate la directory META-INF;
  5. ricreate l’archivio come file .zip. Fate attenzione a creare un archivio non della directory estratta (altrimenti, al momento dell’installazione, vi dirà che l’estensione risulta danneggiata), ma dei file contenuti nella directory. Il file risultante dovrebbe chiamarsi novell-moonlight-3.99.0.3-x86_64.xpi_FILES.zip, modificatelo affinché abbia il nome come quello originale;
  6. in Firefox andate su “Strumenti”, “Componenti aggiuntivi”, fate click sul pulsante alla sinistra della barra di ricerca e scegliete l’opzione “Installa componente aggiuntivo da file…”. Selezionate il file, attendete il termine dell’installazione e riavviate il browser.

Fatto.

Fonte: http://bit.ly/tM4rS2

]]>
http://www.mirkopagliai.it/oldsite/silverlight-su-qualsiasi-versione-di-firefoxiceweasel/feed/ 4