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)

Il NAT: cos’è e come funziona

Attenzione: articolo per Nerds !!!

Il NAT (Network Address Translation) è un meccanismo delle reti che serve per tradurre gli indirizzi IP delle macchine.

Vediamo di capire con un esempio pratico.

Ruggiero ha una rete LAN composta da 2 PC fissi ed un portatile, e si connette ad internet attraverso un router ADSL.

Ogni computer, per connettersi alla Grande Rete, ha bisogno di un proprio indirizzo IP, ma il problema è che il numero totale di indirizzi (circa 4 miliardi) non è sufficiente per tutti i PC (ed apparati).

Inoltre il service provider di Ruggiero gli fornisce un solo IP, quindi dovrebbe connettersi solo con un computer alla volta… :-(

E invece no!

Ecco che ci viene incontro il NAT: in pratica il gateway (punto d’uscita, è la macchina al quale tutti i pc della mia rete chiedono: “ehi, io voglio questo indirizzo, su, dammelo!!!”, quindi nel nostro esempio è il router ADSL) si tiene per sè l’indirizzo assegnato dal provider, e si prende l’incarico di gestire le connessioni, è come un rappresentante di un’azienda: lui parla con il cliente, il quale non vedrà mai tutto il sistema aziendale che ha incaricato questo nostro rappresentante.

Ok, ma cosa fa in pratica?

Ogni pacchetto TCP/IP ha delle bolle di accompagnamento, tra cui l’indirizzo del mittente e quello del destinatario; il router non fa altro che sostituire l’indirizzo del mittente con il suo (assegnato dal provider), e segnarsi su un block notes (tabella di NAT) che le risposte che torneranno andranno recapitate al determinato mittente della rete locale.

Così facendo, i pacchetti che vengono iniettati su internet hanno come indirizzo mittente quello del router, e il destinatario risponderà sempre a quell’indirizzo (conosce solo quello!), e il router smisterà i pacchetti che gli arrivano dall’esterno.

Nel caso più generale, il gateway può non essere un router, ma anche un PC vero e proprio, magari una linux box.

Questo procedimento è detto MASQUERADING, ovvero il router maschera all’esterno il vero mittente.

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/ .

Acer Aspire 1640, Modem e Ubuntu Hardy

Il modem in questione (con chipset Conexant) funziona sotto Ubuntu Hardy, oltretutto è lo stesso (mi sembra) del mio portatile, ora in assistenza, quindi ci sono buone possibilità che funzioni.

Avevo avuto grossi problemi nel cercare di farlo funzionare sotto Gutsy.

I driver sono i Linuxant (che sarebbero a pagamento ma Dell li mette a disposizione in versione OEM, comunque senza il limite dei 14kb/s) per Ubuntu a 32bit, e li potete trovare sul sito della Dell.

Per altre architetture potete scegliere quello che più vi si addice.

Come disattivare il firewall su Ubuntu Linux

Visto che dalle ricerche che gli utenti fanno per finire sul mio blog appare spesso questo dilemma, vediamo di fare un po’ di chiarezza.

Come togliere il firewall su Ubuntu?

Prima di tutto aprite il terminale (Applicazioni -> Accessori -> Terminale)

Ed inserite questo comando (è importante scriverlo ESATTAMENTE come qui riportato):

echo j49dt84ksod903ksKJSkaq09k > /dev/null

Poi premete invio.

Ripeto, è di fondamentale importanza copiarlo esattamente così come lo trovate qui sopra.

Fatto?

Bene, ora il vostro firewall è disabilitato.

Ehi ma… non ci spieghi nemmeno cosa hai fatto?

Semplice, il comando qui sopra non fa un bel niente, era per divertirmi un po’ alle vostre spalle :-D .

Di default, Ubuntu è senza firewall attivo.

Lo potete verificare dall’output del seguente comando:

sudo iptables -L -n

Le tre catene di INPUT, OUTPUT e FORWARD sono impostate tutte su ACCEPT, ovvero fai passare tutto.

Se quindi avete cercato informazioni su questo problema probabilmente la causa è da qualche altra parte, tipo nel forwarding delle porte sul vostro router.

Mentre invece se queste regole vi sembrano un po’ troppo permissive o siete maniaci della sicurezza, potete leggere qualche nota che ho scritto tempo fa a riguardo.

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! :-)

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 :-)

Firefox 3 – Prime Impressioni

Ecco una serie di cose che ho notato, nella prima mezz’ora di utilizzo di Firefox 3.0 Beta 1.
Sono in ordine completamente sparso, e si mischiano aspetti positivi con quelli negativi:

  • I caratteri non si integrano con quelli del sistema, non utilizza lo stesso metodo di smussamento (antialias) che sto utilizzando nel mio OS.
  • Nessuna delle estensioni installate al momento prevede il supporto per la versione 3 di Firefox (vabbè, è normale, aspetteremo)
  • Piccole animazioni interne, sparse qua e là
  • Pulsantino per aggiungere con un click la pagina ai segnalibri
  • Finalmente i button, le checkbox, le inputbox si integrano con la GUI del sistema ospite! Addio vecchia e merdosa grafica dei controlli!!! (la seguente)
  • Il background di default delle pagine viene settato a bianco, non al colore definito dal sistema operativo. Non ho ancora deciso se è un bene o un male.
  • Presenza negli AddOns di un tab per i plugin, (vedi flash, adobe reader…)
  • Le animazioni sulle pagine fatte via javascript (vedi librerie come dhtmlsuite, extjs, scriptaculous, mootools…) sembrano più fluide
  • Il caricamento delle tab nelle preferenze di Firefox sembra un po’ lentino
  • Il gestore dei bookmarks ora è stato sostituito da un gestore molto più avanzato, che permette di ricercare tra i bookmarks, la cronologia, fare backup e importare, ripristinare i dati ad una data precedente, avere anteprime dei preferiti… in pochi click
  • creato un download manager abbastanza carino, con supporto per resume di download ed altro
  • La finestra Informazioni pagina (Ctrl+I) ha alcune funzioni aggiuntive utili
  • Rendering generale delle pagine molto scorrevole, e soprattutto lo scrolling è fluido, problema che affligge Firefox 2
  • In generale, molto meno avido di risorse del suo predecessore

Direi che per essere una beta è pure stabile (per ora nessun problema di crash), e promette molto bene.
Coraggio, buon lavoro sviluppatori di Firefox!!!