Installare Spotify su Fedora 16 o superiore (64 bit)
March 27, 2013 — 9:31

Author: f0ff0 | Category: Linux OT-Vari | Tags: , , , , , | Comments: 0

Ecco una veloce guida su come installare Spotify 0.8.8 partendo dai pacchetti .deb ufficiali rilasciati da Spotify.

La versione in oggetto e’ la 0.8.8, attualmente l’ultima. Nel caso ci fossero aggiornamenti, basta cambiare l’url all’interno dello script con l’ultima versione aggiornata disponibile.

 

Installiamo git ed altri software necessari:

yum install wget git perl perl-devel qt-webkit binutils rpm-build libXScrnSaver

Creamo due directory temporanei per l’installazione e scarichiamo spotify:

mkdir /root/tmp-spotify-install/ && cd /root/tmp-spotify-install/
wget http://repository.spotify.com/pool/non-free/s/spotify/spotify-client_0.8.8.323.gd143501.250-1_amd64.deb

Scarichiamo Alien che ci servirà per “convertire” a rpm il pacchetto .deb ufficiale:

git clone git://git.kitenet.net/alien
cd alien && perl Makefile.PL; make; make install && cd ..

Convertiamo il .deb a .rpm ed installiamolo:

alien –to-rpm spotify-*.deb
rpm -Uvh –nodeps spotify-*.rpm

A questo punto bisogna creare qualche link simbolico a librerie richieste da spotify. Mi raccomando, controllare prima che non siano gia’ presenti i percorsi di destinazione onde evitare possibili problemi.

ln -s /usr/lib64/libnss3.so /usr/lib64/libnss3.so.1d
ln -s /usr/lib64/libnssutil3.so /usr/lib64/libnssutil3.so.1d
ln -s /usr/lib64/libsmime3.so /usr/lib64/libsmime3.so.1d
ln -s /usr/lib64/libplc4.so /usr/lib64/libplc4.so.0d
ln -s /usr/lib64/libnspr4.so /usr/lib64/libnspr4.so.0d
ln -s /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.0.9.8
ln -s /lib64/libcrypto.so.10 /lib64/libcrypto.so.0.9.8

Completiamo l’installazione di spotify con questi comandi di pulizia:

mv /usr/bin/spotify{,-linux} && echo -e “#! /bin/sh\nrm -rf ~/.cache/spotify\n/usr/bin/spotify-linux” >> /usr/bin/spotify
chmod a+x /usr/bin/spotify
cd /root/ && rm -rf tmp-spotify-install/

Finito!

Iptables for dummies: Come rimuovere tutte le regole?
December 6, 2012 — 16:10

Author: f0ff0 | Category: Linux | Tags: , , , | Comments: 0

Come e’ possibile rimuovere tutte le regole di IPtables senza eseguire nessun restart di servizi e/o sistema operativo? Semplicissimo:

 
 


iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Alcune considerazioni: (-t specifichiamo la table), -F significa flush. Stiamo quindi flushando il chain attuale. Con l’opzione -X specifichiamo che vogliamo eliminare tutte le regole del chain espressamente aggiunte dall’utente.
Le ultime tre regole aggiungono alle policy INPUT, FORWARD, OUTPUT di accettare qualunque rispettiva richiesta.

Fatto!

SEO e Google: Come spiegare la differenza tra indicizzazione e posizionamento
November 5, 2012 — 17:14

Author: f0ff0 | Category: Web | Tags: , , , , , | Comments: 0

A volte è molto difficile far capire alcune basi del SEO e dell’indicizzazione a persone che sono totalmente fuori dal mondo del web. A volte è difficile anche per persone che come me, ci lavorano praticamente ogni giorno :)
Non molto tempo fa ricevetti un’email dove mi si chiedeva come mai una pagina web corporativa pubblicata su un mio server solo pochi giorni prima non era ancora presente tra i primi posti nelle ricerche dei vari motori di ricerca…

Ecco una piccola risposta, facile e comprensibile alla massa … vi risparmio il preambolo e i salamelecchi iniziali :)

 
 

Inanzitutto c’e’ da precisare che google ha gia’ effettuato
l’indicizzazione del sito. Per controllare se il sito e’ stato
indicizzato e quali pagine lo sono state, basta cercare in google la
seguente stringa: site:www.miaazienda.com .
Al momento google ha indicizzato 7 pagine del nostro sito, ovvero tutte.

Discorso differente va fatto per il posizionamento di tali pagine,
ovvero quanta rilevanza ottengono le singole pagine e in che
posizione di ricerca google le propone.

Cercando miaazienda vedo che siamo al primo posto, indice quindi
che google ha capito che siamo noi prima di tutto, poi twitter and
company. E’ una ricerca molto stupida, ma siamo alle basi per capire se
esistiamo.

Non so che ricerca hai effettuato, con quali parole chiavi, ma in linea
di principio, per farvi capire come funziona il processo di
posizionamento dobbiamo considerare alcuni aspetti.

Per far si che una pagina web possa essere posizionata e quindi
comparire nelle ricerche in prima pagina o ai primi posti,
dobbiamo considerare una serie di fattori. Ce ne sono
molteplici. Nel nostro caso, in primo luogo, sono rilevanti tempo e
contenuti. Ecco i principali campi di azione per migliorare il
posizionamento:

* Contenuti: google considera interessanti i siti web che hanno molti
contenuti, aggiornati e integrati molto spesso. Importante anche la
rilevanza dei contenuti e la loro omogeneita’. I contenuti devono
essere ben scritti, con parole chiavi e sintassi corretta (questa
seconda parte e’ il SEO nudo e crudo).
* Autenticita’ dei contenuti: google considera anche le date di
pubblicazioni delle varie pagine che scansiona. Questo vuol dire che
nel caso si copiasse una pagina da un altro sito senza modificarne il
contenuto o senza integrarlo, google penalizzerebbe la pagina stessa.
* Links: importantissimo per google e’ che il sito web abbia links
esterni qualificati che rimandano al sito stesso. Dovrebbero essere
link coerenti con il tema del sito stesso e provenienti da pagine web
con un pagerank alto. Esempio, se avessimo un link al nostro sito su
www.repubblica.it, si parlerebbe di un bel link qualificato positivo
per la nostra considerazione agli occhi di google. Un link da
peppina.it, un blog sconosciuto, non sarebbe ugualmente positivo.
* Tempo: serve tempo. Il pagerank, ovvero il punteggio delle pagine
secondo google (da 0 a 10) viene aggiornato ogni 2-3 mesi. Quindi
prima ancora di sperare che le pagine arrivino ai primi posti nelle
ricerche, bisogna aspettare. Per velocizzare l’attesa si possono
effettuare alcuni accorgimenti, dispendiosi a livello di tempo
dedicato ma altresi’ pericolosi. Google ha dei filtri potenti che
controllano abusi o tentativi di forzatura. Quindi meglio non forzare
per non finire nel limbo (per diversi mesi).

Ora, per potenziare i contatti sul nostro sito, agendo puramente sul
SEO e quindi l’ottimizzazione della pagina web in funzione dei nostri
contenuti, dobbiamo meditare su:

* Parole chiavi: Come vogliamo che il mondo ci trovi? con che parole
chiavi? Per esempio, se fossi una macelleria a milano, nel testo del
website farei largo uso di parole chiavi come “macelleria, milano,
carni di qualità, carni scelte, vendita, ecc …”. Dobbiamo quindi
pensare quali sono le parole chiavi che interessano a
alla nostra azienda, controllare che siano minimamente ricercate e quindi
ottimizzare i contenuti in base a tali parole chiavi. Per far cio’,
possiamo tranquillamente partire da un brainstorming e quindi da un
elenco semplici di parole che pensiamo possano interessarci.
* Contenuti: Come ampliare le pagine presenti sul sito? possiamo creare
un blog, un raccoglitore di informazioni ecc. Creare contenuti
freschi e coerenti con la nostra azienda potrebbe essere una chiave.

Per adesso non mi viene in mente altro.

Ciao!
Federico

Linux come unire più pdf in un singolo file
October 25, 2012 — 11:15

Author: f0ff0 | Category: Linux | Tags: , , | Comments: 0

Quando ho dovuto preparare una serie di brochures per la mia attività sistemistica, ho avuto l’esigenza di poter racchiudere in un singolo file pdf, più files. Nello specifico, dovevo riuscire ad ottenere un unico pdf contenente sia il fronte che il retro della brochure.

Per risolvere il problema, ho provato ad usare il tool pdftk

 
L’installazione e’ molto semplice:

Per installare il pacchetto in Ubuntu / Debian:

aptitude install pdftk

In CentOs / Fedora:

yum install pdftk

 

Unire più pdf:

Eseguire in un console il seguente comando.

pdftk file1.pdf file2.pdf cat output file_unico.pdf

Fatto!

QR: Come generare un codice a barre con Linux
October 11, 2012 — 11:26

Author: f0ff0 | Category: Linux | Tags: , | Comments: 0

Grazie al tool qrencode, è possibile generare un codice a barre QR personalizzato direttamente con Linux.

Il pacchetto necessario per il processo di encoding in genere non risulta preinstallato nelle varie distro linux. Per installarlo:

Linux Ubuntu / Debian:
aptitude install qrencode

Linux Fedora / CentOS:
yum install qrencode

Proviamo quindi a generare un codice QR con il comando qrencode.
Il nostro intento è quello di ottenere un qr code stampabile servendoci di un file VCARD contenente alcuni dati anagrafici.

Creazione VCard

Utilizzando un comune editor di testo generiamo manualmente un file vcard. Se non si ha pratica con i file vcard, oppure lo si vuole personalizzare ulteriormente, esistono in internet diversi generatori di file vcard. Nell’esempio, un file vcard versione 4.

BEGIN:VCARD
VERSION:4.0
N:Rossi;Mario;;;
FN:Mario Rossi
ORG:Imbianchini Associati
TITLE:Imbianchino
TEL;TYPE="work,voice";VALUE=uri:tel:+39 012 3456789
TEL;TYPE="home,voice";VALUE=uri:tel:+30 987 654321
ADR;TYPE=work;LABEL="Viale Roma, 1\nRoma, 12345\nItalia"
:;;Via Roma, 1;Roma;IT;12345;Italia
EMAIL:mariorossi@imbianchini.bar
END:VCARD

Generazione QR code

Procediamo quindi con la generazione del file png contentente il nostro codice:
qrencode -o qr.png -s 3 --level=L --margin=2 --dpi=300 < vcard.txt
Vediamo quali sono le opzioni più indicative utilizzate nell’esempio:

  • –level: indichiamo il livello di correzione degli errori. Il valore di default è Low. Nel caso volessimo generare un codice QR con pochi dati come quello dell’esempio illustrato, potremmo permetterci di alzare il livello. (H M Q L).
  • –output: percorso e file di destinazione del QR code.
  • –margin: indichiamo lo spessore del margine. Di default è 4. Valori minori corrispondono ad un margine minore.
  • –dpi: specifichiamo i DPI del PNG che generiamo. Di default è 72.

 

Fatto!
Ecco il risultato:
risultato della generazione del codice QR

Google: lista stopwords in italiano
October 3, 2012 — 19:51

Author: f0ff0 | Category: Web | Tags: , | Comments: 0

Le stopwords vengono spesso definite come parole vuote, ossia parole senza significato.
Sono considerate stopwords infatti, pronomi, articoli, preposizioni ed altre parole. Durante l’indicizzazione, Google provvede a filtrarle e, tra virgolette, non le indicizza.

Non ho ancora trovato una lista ufficiale in italiano che comprenda tutte le parole sensa senso appartente.
Personalmente utilizzo la seguente lista, scaricata liberamente da diversi siti web ed integrata in un unico file.

lista stopwords

WordPress: come cambiare lingua dopo averlo installato
September 30, 2012 — 19:52

Author: f0ff0 | Category: Web | Tags: , , , | Comments: 0

Come cambiare la lingua in un wordpress già installato? Vediamo come configurare le traduzioni in italiano.

Basta seguire due semplici passi:

 

  • Controllare che sia presente il file delle traduzioni italiane nella directory wp-content/languages:

root@mysore.fr.fpcns.lan:/var/www/www.svuotafrigo.it/wp-content/languages# ls
de_DE.mo en_US.mo es_ES.mo it_IT.mo zh_CN.mo

  • Se presente, editare il file wp-config.php nella directory radice dell’installazione di wordpress, sostituire la lingua attuale con quella desiderata:
    define(‘WPLANG’, ‘it_IT’);

Fatto!

Installare FreeIPA in un guest paravirtualizzato XEN
September 27, 2012 — 10:30

Author: f0ff0 | Category: SysAdmin | Tags: , , , , , , , | Comments: 0

Perchè non installare FreeIPA in un ambiente para virtualizzato XEN? niente di meglio :)
Questo articolo spiega rapidamente come implementare FreeIPA su un guest XEN CentOS 6 paravirtualizzato in un host XEN Debian 6.

Cos’è FreeIPA

FreeIPA è un sistema integrato di sicurezza che integra differenti soluzioni per amministrare le credenziali di accesso. Combina diversi sistemi quali 389 (Fedora Directory Server), MIT Kerberos, NTP, DNS.

 

Installazione Guest XEN CentOS

Per l’installazione del guest CentOS su un host debian seguire questi semplici passi presenti nel seguente articolo.

FreeIPA pre-installazione specifica in XEN

Per lanciare il daemon Slapd dobbiamo controllare che il device shm (/dev/shm shared memory) sia disponibile nella nostra installazione CentOS.
Se i tools di FreeIPA non trovassero questo spazio di condivisione di dati tra programmi, otterremmo un errore simile al seguente:

Could not start the directory server using command ‘/usr/lib64/dirsrv/slapd-PKI-IPA/start-slapd’. The last line from the error log was ‘[17/Sep/2012:11:38:39 -0400] – Failed to create semaphore for stats file (/var/run/dirsrv/slapd-PKI-IPA.stats). Error 13.(Permission denied)

Per ovviare al problema, controllare che sia disponibile shm, in caso contrario:

echo tmpfs /dev/shm tmpfs defaults 0 0 >> /etc/fstab
mount /dev/shm

 

Installazione FreeIPA

Per installare FreeIPA ci serviamo dei repo standard di CentOS 6:

yum -y install ipa-server bind-dyndb-ldap

A questo punto lanciamo il tool guidato ipa-server-install:

ipa-server-install –setup-dns

Il tool è totalmente guidato, le interazioni e le domande che ci verranno sottoposte non meritano di essere commentate in quanto sono di facilissima risposta.

Iptables, Apertura porte FreeIPA

Prima di iniziare a testare e/o collegarsi ai tools di FreeIPa, controlliamo che le seguenti porte siano aperte:

TCP Ports:
* 80, 443: HTTP/HTTPS
* 389, 636: LDAP/LDAPS
* 88, 464: kerberos
* 53: bind
UDP Ports:
* 88, 464: kerberos
* 53: bind
* 123: ntp

Per aprire le porte:

for x in 80 443 389 636 88 464 53 ; do iptables -I INPUT -p tcp –dport $x -j ACCEPT ; done
for x in 88 53 123 ; do iptables -I INPUT -p udp –dport $x -j ACCEPT ; done

Xen: installare un guest paravirtualizzato CentOS 6 in host Debian 6
September 25, 2012 — 17:12

Author: f0ff0 | Category: SysAdmin | Tags: , , , , , | Comments: 0

Per installare un XEN guest CentOS 6 paravirtualizzato su una macchina fisica Debian 6, in questo periodo storico non c’è ancora una procedura documentata e supportata al 100%.
Tuttavia, con qualche semplice passo è possibile ottenere il risultato. Ecco come installare un guest CentOS con il tool xen-tools.

Aggiungere i repo di testing di Debian

Prima cosa, attiviamo i repo di testing di Debian. Debian 6 ha una versione di xen-tools che non prevede la creazione di immagini di macchine virtuali CentOS con il metodo rinse.
Aggiungere i seguenti repo:

deb http://ftp.it.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.it.debian.org/debian/ testing main contrib non-free

Installare il tool xen-tools

Lanciare il seguente comando per aggiornare il pacchetto xen-tools alla versione 4.3.1 che su Debian supporta nativamente la creazione di macchine paravirtualizzate CentOS

aptitude update
aptitude install xen-tools

Configurazione Rinse

Editare il file /etc/rinse/centos-6.packages e controllare che siano presenti i seguenti pacchetti che rinse installerà:

plymouth-core-libs
libuuid
plymouth
libblkid
passwd
libuser

Creazione guest CentOS 6 paravirtualizzato

Eseguiamo adesso il seguente comando per creare un guest CentOS paravirtualizzato nella nostra installazione Debian 6.

xen-create-image –hostname dir01.xsep.net –ip 10.34.33.111 –install-method=rinse –dist centos-6 –mirror=http://mi.mirror.garr.it/mirrors/CentOS/6.3/os/x86_64/

Questo passaggio potrebbe richiedere una minima conoscenza del tool xen-create-image e della preparazione anteriore del tool xen-tools.
Sostituire –hostname –ip con l’fqdn del futuro guest XEN.

Post Installazione

Una volta ultimata l’installazione della macchina virtuale CentOS, accenderla (xm create -c dir01.xsep.net.cfg) ed installare i seguenti pacchetti (opzionale).

aptitude install openssh-server vim

Commentare in seguito i repo di testing (se sono stati aggiunti con una procedura poco ortodossa come fatto in precedenza).

Note

Nella mia configurazione di test, ho riscontrato un problema risolvibile con le eth della macchina virtuale (bridge su dummy per la parte privata). In sostanza al primo avvio non sono state alzate correttamente. Lanciare se necessario il comando ifconfig eth[0,1,2..] up prima di iniziare ad installare i pacchetti aggiuntivi.

cURL: misurare il response time di una pagina web (tempo di risposta)
September 24, 2012 — 10:47

Author: f0ff0 | Category: Linux SysAdmin | Comments: 0

E se volessimo conoscere quanto tempo ci mette a caricarsi una pagina web? Facile!
Per ottenere il tempo di caricamento ci serviamo di cURL come da esempio sottostante:

 

curl -s -o /dev/null –write-out %{time_total} –connect-timeout 2 -m 10 www.website.foo

 

La prima cosa che facciamo quindi è sopprimere l’output di default cURL e, con l’opzione –write-out, dichiariamo la variabile che ci interessa, ovvero time_total

Ci sono anche altre variabili relative al tempo che possono essere utili, ecco le principali:

  • %{time_connect}: tempo impiegato dal comando cURL per completare la connessione all’host remoto.
  • %{time_starttransfer}: tempo impiegato calcolato dal primo byte trasferito.

Per maggiori dettagli consultare curl_easy_getinfo ampiamente discussa al seguente link: http://curl.haxx.se/libcurl/c/curl_easy_getinfo.html

Next Page »