Categorie
No Categoria

Firefox, errore nssessionstore NS_ERROR_NOT_AVAILABLE

Da ormai 2 anni un problema mi affliggeva: firebug segnalava i seguenti errori, in ogni pagina:

[Exception… “Component is not available” nsresult: “0x80040111 (NS_ERROR_NOT_AVAILABLE)” location: “JS frame :: file:///usr/lib/firefox-3.0.7/components/nsSessionStore.js :: sss_saveState :: line 1909” data: no]

[Exception… “Illegal value” nsresult: “0x80070057 (NS_ERROR_ILLEGAL_VALUE)” location: “JS frame :: file:///usr/lib/firefox-3.0.7/components/nsSessionStore.js :: sss_saveState :: line 1909” data: no]

In pratica è dovuto al fatto che la sessione, in seguito ad uno dei tanti crash del browser, si era corrotta. Il problema è che non c’erano solo questi fastidiosi errori, ma la sessione si salvava SOLO se chiudevo regolarmente il browser, mentre se crashava addio tab aperte.

Ora, grazie ad un commento su un blog, ho finalmente trovato la soluzione, e creato una patch che risolve il problema.

Procedimento

Installiamo (se non ce l’abbiamo già) il programma patch:

sudo apt-get install patch

Eseguiamo in un terminale i seguenti comandi:

cd /usr/lib/firefox-3.0.7/components
wget http://polpoinodroidi.com/download/plugins/firefox-ns-error.patch -O- | sudo patch -p1

Nei comandi qui sopra, sostituite 3.0.7 con il numero di versione del vostro Firefox.

Riavviate firefox e sorridete alla vita. (D)

IMPORTANTE: dovete ripetere il procedimento ad ogni aggiornamento di firefox che farete (a meno che non correggano direttamente loro questo bug).

Categorie
No Categoria

Pidgin 2.6.0: primo tema!

Dopo aver spippolato tutto il pomeriggio sul codice di Pidgin, son finalmente riuscito a creare un tema per la buddy list (se avrò voglia anche per il resto).

Il tema per pidgin, con tanto di pubblicità occulta al blog del PiccyRed!
Il tema per pidgin, con tanto di pubblicità occulta al blog del PiccyRed!

Lo potete scaricare e provare, non è stato creato per essere carino, ma solo per capire e far capire come creare un tema.

Ho creato un tema con tutti i possibili parametri, commentando ogni parte, in modo che possa essere utile a chi vuole imparare.

Una volta scaricato, date i seguenti comandi:

mkdir -p ~/.purple/themes
tar zxvf frastentheme.tar.gz -C ~/.purple/themes/frastentheme/

Note per chi fosse interessato:

A dire il vero speravo in una migliore possibilità di personalizzazione, in realtà ho solo pochissime cose.

Pidgin cerca i temi nelle seguenti cartelle:

~/.purple/themes
~/.local/themes
/usr/local/share/themes
/usr/share/themes

Nella cartella:

~/.purple/themes/<NOMETEMA>/purple/

avrò una o più di queste sottocartelle:

  • sound (non va, devo capire come mai)
  • status-icon
  • blist (quella che interessa a noi, per il momento)

Per ognuno di questi, chiama un loader (e quindi parser) differente.

Per la sezione BLIST (buddylist) del tema, devo avere un file chiamato theme.xml nella cartella blist.

Quindi, riassumendo, posso creare un tema creando il seguente file:

~/.purple/themes/<NOMETEMA>/purple/blist/theme.xml

seguendo lo schema del tema allegato a questo post.

Categorie
No Categoria

Antialias di gnome-terminal e programmi QT4

Sono passato da pochi giorni ad Ubuntu 8.10 Intrepid Ibex, ma il più grande salto è stata la migrazione alla versione 64bits.
Avendo letto commenti non molto positivi qua e là sui forum ero abbastanza scettico riguardo alla 64bits, ma grazie alla testimonianza a dir poco entusta del mio amico Pedro ho deciso di fare questo passo.
I risultati sono decisamente ottimi: il sistema è molto più fluido rispetto a prima… se l’avessi saputo!!!

Comunque scrivo questo post per la soluzione ad un problema che mi si è presentato: l’antialias (e l’hinting) dei caratteri con gnome-terminal e i programmi che girano grazie alle QT4 sotto Gnome.
Io ho settato l’antialias per visualizzare perfettamente i caratteri con il mio schermo:

Dettagli sulla visualizzazione dei caratteri.

e i caratteri delle finestre sono ok, MA alcune applicazioni come gnome-terminal e appunto quelli che girano con le QT (qjackctl, virtualbox, skype…) apparivano sfocati o comunque da schifo.

La soluzione nel mio caso è racchiusa in questi comandi:

cd /etc/fonts/conf.d
sudo rm 10-hinting-medium.conf
sudo rm 10-no-sub-pixel.conf
sudo ln -s ../conf.avail/10-hinting-full.conf

Attendere qualche secondo per concedere a Gnome di riprendersi, agitare bene e servire freddo. (D)

Categorie
No Categoria

4 cose che non sapevo di SVN

Ecco cosa ho scoperto di nuovo subversion (SVN):

Come creare un branch
svn cp trunk branches/nome_branch
Come riunire un branch nel trunk

prima di tutto entrare nella cartella del branch (cd branches/nome_branch), poi scopriamo la revisione alla quale è stato creato:

svn log --stop-on-copy

e segnamoci la revisione XXXX.

Spostiamoci nel trunk e uniamo:

svn merge -rXXXX:HEAD ../branches/nome_branch
Ignorare dei files

…in modo che SVN (e per esempio client come rapidSVN) non li tenga in considerazione:

svn propset svn:ignore nomefile .
Se abbiamo un conflitto al momento del commit
svn up

Caso 1: voglio tenere la versione nel repository ed ignorare le modifiche locali:

svn revert nomefile

Caso 2: ho una situazione più complessa e devo agire a mano:

Modificare il file che creava conflitto, unendo le modifiche e decidendo manualmente come comportarsi, ed eliminando i caratteri strani (es. >>>>>>>) che mette SVN, salvare, e:

svn resolved nomefile

Infine, in entrambi i casi:

svn ci -m "Effettuata la modifica"
Categorie
No Categoria

Installare W3C XHTML Validator 1.0 su Ubuntu

Update 16/06/11: aggiornata la guida per Natty Narwhal

Il W3C Validator è un programma che consente di controllare se il codice (X)HTML delle proprie pagine è valido e rispetta gli standard. Nasce come servizio web gratuito, ma può risultar comodo e molto più rapido installarlo sulla propria macchina per utilizzarlo in locale (magari offline), o all’interno della propria LAN.

Ubuntu Linux contiene all’interno dei propri repository il pacchetto w3c-markup-validator, ma purtroppo è una versione decisamente vecchia, la 0.7.4 (su Lucid Lynx), mentre l’attuale 1.0 è molto più piacevole esteticamente, e funziona molto bene.

Ecco quindi un tutorial per installarlo sulla nostra Ubuntu box.

Installiamo le dipendenze, aprendo un terminale e dando:

sudo apt-get install opensp libosp-dev libapache2-mod-perl2 mercurial apache2 libjson-perl libxml-libxml-perl

Scarichiamo i sorgenti dal repository di sviluppo Mercurial:

hg clone http://dvcs.w3.org/hg/markup-validator/

Ora installiamo i moduli di Perl richiesti:

sudo perl -MCPAN -e "install Bundle::W3C::Validator"

Partirà una configurazione, armatevi di pazienza, date sempre invio, eccetto quando chiede continente e nazione (utilizzati per utilizzare i server più vicini). Quando avrà finito, perl si chiuderà automaticamente, mostrandovi il prompt.

cd markup-validator
sudo mkdir -p /usr/local/validator
sudo cp -R htdocs httpd/cgi-bin share /usr/local/validator/
sed "s/w3c-validator/validator/" httpd/conf/httpd.conf > validator.conf
sudo mv validator.conf /etc/apache2/conf.d/
sudo mkdir -p /etc/w3c
sudo cp /usr/local/validator/htdocs/config/* /etc/w3c/

Ora dobbiamo modificare la configurazione per permettere al validatore di validare anche pagine locali (non solo sul web):

sudo gedit /etc/w3c/validator.conf

Andiamo a riga 57, e modifichiamo la riga così:

Allow Private IPs = yes

Salviamo e chiudiamo gedit.

UPDATE: con il mod_perl2 abilitato in Apache, sembra che ci sia un bug che non permette di parsare gli url. La soluzione è disabilitarlo con il questo procedimento:

Modifichiamo il file di configurazione del validator per Apache:

sudo gedit /etc/apache2/conf.d/validator.conf

Commentiamo attorno a riga 38 tutto questo (mettendo un # all’inizio di ogni riga):

<IfDefine MODPERL2>
# Note: this affects the whole server, not just the validator.
PerlSwitches -T
</IfDefine>

e anche attorno a riga 46, tutto questo:

<IfDefine MODPERL2>
SetHandler            perl-script
PerlResponseHandler   ModPerl::Registry
PerlOptions           +ParseHeaders
</IfDefine>

Salviamo e chiudiamo gedit.

Torniamo al nostro terminale:

sudo a2enmod expires
sudo a2enmod include
sudo a2enmod proxy

Riavviamo il webserver apache:

sudo apache2ctl graceful

Ecco il nostro validator ora disponibile all’indirizzo http://localhost/validator/ .

Categorie
No Categoria

Ebook gratis su Photoshop

La SitePoint permetterà per i prossimi 30 giorni di scaricare gratuitamente l’ottimo e-book “The Photoshop Anthology: 101 Web Design Tips, Tricks & Techniques“, 278 pagine in formato pdf, che di solito costerebbe 29,95$.

Lo potete scaricare gratuitamente nella versione ad alta risoluzione (64MB), o in quella a bassa risoluzione (23MB).

UPDATE: periodo di download terminato, spero ne abbiate usufruito! 🙂

Per mostrare il vostro apprezzamento, vi consiglio andare sul sito del loro sponsor, mi sembra il minimo da fare, visto che è tutto gratis (anche un vostro click lo è!).

Categorie
No Categoria

Brainspawn forte e metronomo

razie alle domande di Alvaro, ecco un semplice howto per utilizzare il metronomo con forte, un ottimo programma per suonare live con i VST (virtual instruments).

Innanzitutto dobbiamo scaricare il plugin metrobus, e dobbiamo estrarre tutto il contenuto dell’archivio nella cartella C:\Programmi\VSTPlugins\

Apriamo forte e il nostro rack preferito, ed aggiungiamo un bus (cliccando sul pulsante ADD di destra, sotto BUS). Dal menu a discesa selezioniamo l’uscita della nostra scheda audio sulla quale vogliamo mettere il click (clickare sull’immagine per ingrandire):

Volendo possiamo dare un nome a questo bus, tipo Metronomo, cliccando sul nome e cambiandolo.

Facciamo tasto destro con il mouse sulla zona degli inserts (vedi immagine), e selezioniamo il plugin Metrobus (potreste trovarlo sotto New Plugins, oppure Inserts 1):

Dovreste quindi avere una situazione del genere:

Facciamo doppio click sul metrobus, dobbiamo fare una cosa al primo avvio (e solo al primo, non vi preoccupate!):

Clickiamo sul quadratino a sinistra di “Click.wav”, e selezioniamo il file Click.wav contenuto nella cartella C:\Programmi\VSTPlugins\Metrobus\ e selezioniamo OK.

Ora chiudiamo pure la finestrella di Metrobus, e clickiamo sul metronomo (a destra sulla maschera di forte), si apre questa finestra:

Qua possiamo configurare varie cose:

  • il tempo della scena
  • da che porta seguire il MIDI Clock (per esempio la mia Triton LE ha il sequencer interno, e quindi mi genera un midi clock che forte segue)
  • i CC MIDI da utilizzare per modificare velocità (con uno slider), aumento o decremento di BPM (con un pulsante configurabile sulla nostra Master Keyboard), Tap Tempo (anch’esso tramite pulsante configurabile)

Io personalmente utilizzo il pulsante del tap tempo integrato sulla Triton LE, che da il tempo alla tastiera stessa e questo si riflette in forte tramite il MIDI clock.

Ultimo passo, colleghiamo l’uscita che abbiamo scelto per il metronomo ad un pre per cuffie o simili (se ne trovano di economici, ed hanno un controllo volume, comodo per lasciare un po’ di libertà al batterista!).

Se abbiamo comunque necessità di settare il volume del click, possiamo utilizzare il normale fader sulla sinistra del nostro BUS del Metronomo.

Categorie
No Categoria

WordPress Flickr Manager e Lightbox

Non ho ancora indagato sul perchè non funzionasse una mazza (tra l’altro nessuno mi ha detto niente!) il lightbox (un javascript che mostra le immagini con un’animazione gradevole, senza lasciare la pagina corrente), da quando ho installato il plugin WordPress Flickr Manager, comunque son riuscito a farlo funzionare.

Per prima cosa scarichiamo ed installiamo il plugin Lightbox JS (per info a riguardo rimando alla pagina del creatore), attivandolo successivamente nella sezione di amministrazione di WordPress.

Successivamente apriamo con il nostro editor di testo preferito il file FlickrManager.php contenuto nella cartella del plugin Flickr Manager, ed andiamo alla riga 611 (alla versione 1.5.1, sicuramente per le prossime versioni questa riga cambierà, ma sarà sufficiente trovare il codice seguente per orientarci), e cerchiamo:

function add_headers() {

e modificandolo in questo modo:

function add_headers() {
  return;

Salviamo, uppiamo il file sul server, e buon lightbox.

Update:  ho creato una patch per semplificare la modifica anche alle prossime versioni.

Per applicarla, basta copiarla nella cartella del plugin, e (avendo un pc con linux), dare in un terminale:

patch < lightbox.patch
Categorie
No Categoria

Pidgin, YahooMessenger e caratteri accentati

Ho provato ad aggiungere il mio account su yahoo in pidgin, ma ho riscontrato un paio di problemi. Quindi lascio ai posteri la mia esperienza.

  1. Crea un account qui, se non ce l’hai.
  2. Apri pidgin, menu Account -> Gestisci -> Aggiungi
  3. Crea un account, utilizzando impostazioni tipo queste:
  4. Poi, per evitare il problema delle lettere accentate (causate dal default encoding errato), andiamo in avanzate, impostiamo il tipo di codifica a UTF-8:
  5. Successivamente, procedi ad aggiungere i contatti. Il problema che ho avuto a riguardo è che se il tuo amico non ti aggiunge, continui a vederlo offline. Non appena ti aggiunge tra i suoi contatti, ogni problema vien risolto.
  6. Goditi le emoticons, che per questo protocollo sono veramente esilaranti! 🙂
Categorie
No Categoria

Rendere sicura una linux box con Ubuntu

Linux è sicuro? Forse.
Ma se facciamo qualcosa per renderlo ancora più sicuro, è meglio.
Vediamo quindi di migliorare la nostra linux box coniugando flessibilità e sicurezza.

Questo tutorial è pensato per un PC con 2 interfacce di rete, una ethernet, e una wireless.
E’ un PC client, quindi non fa da gateway verso altri pc, e si connette ad internet attraverso una delle suddette interfacce.

Permettere l’accesso tramite shell SSH

SSH è un protocollo che permette di accedere (previa autenticazione) alla linea di comando di un pc. Quindi io posso, da un qualsiasi posto (si, ok, quasi), accedere al mio computer, che si può trovare anche dall’altra parte del mondo, e svolgere operazioni, come lanciare programmi, leggere/modificare/creare files… Tutto da linea di comando.
Capite che è una figata, ma “regala” l’accesso a tutto quanto, se configurato male.

Cominciamo con l’installare il server:

sudo apt-get install openssh-server

Ora modifichiamo il file di configurazione, per renderlo un po’ più sicuro:

sudo gedit /etc/ssh/sshd_config

Cambiamo la riga in cui c’è PermitRootLogin, decommentiamola (togliendo il #) e modifichiamola in:

PermitRootLogin no

Aggiungiamo anche la riga:

AllowUsers vostroutente

Impostare un firewall

Mi sono scritto uno script che utilizzo come firewall, e che condivido con voi.
Questo firewall vi protegge da attacchi di spoofing, pacchetti malformati, servizi in ingresso non consentiti, brute force attacks sul servizio SSH, e altre amenità.
Le policy che utilizzo sono:
verso l’esterno consenti tutto, in modo da darmi flessibilità ogni volta che mi serve un servizio diverso;
verso l’ingresso blocca tutto, eccetto quello che specifico esplicitamente (vedi file)

Il file da scaricare è iptables.conf ed è abbastanza commentato, quindi risulterà semplice modificarlo ed adattarlo per le proprie esigenze.

Una volta scaricato, spostiamolo nel percorso corretto:

sudo mv /percorso/per/il/file/iptables.conf /etc/

Diamogli i giusti permessi:

sudo chmod 700 /etc/iptables.conf

Ora scarichiamo questo script per il relativo caricamento: iptables.sh, e diamo:

sudo mv /percorso/per/il/file/iptables.sh /etc/init.d/iptables

Diamogli i giusti permessi:

sudo chmod 766 /etc/init.d/iptables

Ora è giunto il momento di dargli una sistemata:
Si presuppone una conoscenza base di concetti come indirizzi IP, maschere di rete, gateway, porte.

sudo gedit /etc/iptables.conf

Una volta adattato alle nostre esigenze, facciamo in modo che si carichi automaticamente anche all’avvio:

sudo update-rc.d iptables defaults

Da ora in poi sarà possibile attivare o disattivare il firewall con un:

sudo /etc/init.d/iptables start

oppure

sudo /etc/init.d/iptables stop

(o ancora, restart, per riavviarlo, tipo quando fate delle modifiche al file di configurazione)

Se avete problemi, o non capite come adattarlo alle vostre esigenze, basta un fischio 🙂