Visualizzazione post con etichetta ubuntu. Mostra tutti i post
Visualizzazione post con etichetta ubuntu. Mostra tutti i post

mercoledì 19 marzo 2008

Pimp my .vimrc

Inauguro la serie "Pimp my $something" (che sara' composta da svariate puntate) con il file di configurazione di vim. Il mio .vimrc lo potete scaricare da qui (l'ho hostato su openomy :D). Di seguito sono elencate le personalizzazioni piu' importanti:

Non uso i backup automatici perche' a volte chiudo, per sbaglio, il terminale virtuale e al seguente riavvio odio che vim mi chieda di ripristinare il file

set nobackup

Ho provato molti colorscheme ma il migliore resta sempre desert.
colorscheme desert

Non posso vivere senza la ricerca incrementale :P
set incsearch

Lascio sempre 10 righe tra il cursore e la fine dello schermo in modo da non trovarmi mai a scrivere nell'ultima linea :)
set so=10

Alcuni map importanti (ce ne sono diversi altri nel .vimrc):
map :call MySpellLang()
map :%s/e'/è/ge:%s/o'/ò/ge:%s/u'/ù/ge%s/a'/à/ge
map :TlistOpen

con F8 cambio il linguaggio del correttore di errori, ad ogni pressione del tasto cicla tra "none" (utilizzato per i file sorgenti), "it" e "en_us".
Poiche' uso la tastiera dvorak il tasto F9 mi mette a posto in automatico tutti gli accenti; infine F7 apre la Tlist per i file in C e Cpp (vedi screenshot).



Notate anche la barra di vim, essa contiene:
  1. il nome del file

  2. il formato [UNIX,dox o mac]

  3. il codice ASCII ed esadecimale del carattere sotto il cursore

  4. la posizione espressa in righe e colonne sempre del cursore

  5. la parte di file che si sta visualizzando (espressa in percentuale)

  6. lunghezza totale del file espressa in linee.


P.S:L'indentazioni e' fatta con tab da 4 caratteri convertiti in spazi, solo nei makefile le tabulazioni sono reali e sono lunghe 8 caratteri. Per tutti i file e' applicata la smartindent tranne che per i file in C dove viene utilizzata la cindent.
P.P.S:In fondo al file c'e' qualche abbreviazione per il latex.

lunedì 17 marzo 2008

Xmonad a tiling windows manager

Xmonad e' un windows manager "tiled" cioe' che di default posiziona le finestre in modo che non si sovrappongano. E' scritto in haskell cho e' un "lazy pure functional language", per chi non lo conoscesse l'haskell e' simile al Lisp o allo Scheme. Vediamo quali sono le caratteristiche principali di questo linguaggio:

  1. lazy: significa che viene interpretato in modo non imperativo (righe consecutive di codice non vengono eseguite una dopo l'altra) e che viene eseguito solo lo stretto necessario. Per esempio:
    makeList = 1 : makeList

    Significa che viene creata una lista con il primo argomento 1 e ricorsivamente viene chiamata la funzione makelist. Praticamente avremo una lista fatta in questo modo:
    (1(1(1(1(1.....)))))

    Cioe' una lista infinita fatta di 1. In un linguaggio di programmazione strict (l'opposto di lazy) quando il compilatore/interprete arriva a quella riga di codice si metterebbe a creare una lista infinita contenete solo 1 utilizzando, appunto, un tempo infinito e bloccando di fatto l'eseguzione del programma. Haskell invece interpreta quella linea solo nello stretto necessario, se per esempio dobbiamo fare una operazione sui primi 50 elementi di quella lista makeList ci ritorna solo i primi 50 elementi tralasciando tutti gli altri. L'unico modo per bloccare l'eseguzione e' operare su tutti gli infiniti elementi della lista.

  2. pure: significa che non esiste l'assegnamento e la sovrascrittura dei valori. Se per esempio definisco:
    a = 10

    Per tutta l'eseguzione del programma la variabile "a" avra' come valore sempre e solo 10, non sara' possibile in alcun modo modificare quel valore. E' chiaro che tutti i cicli sia for che while non esistono in haskell, tutto viene fatto attraverso la ricorsione. Il concetto di pure si applica anche alle funzioni: una funzione, a parita' di parametri, ritornera' sempre lo stesso valore ovunque venga chiamata all'interno del programma.

  3. functional: Significa che e' basato sulle funzioni, visto che i cicli non esistono tutto viene effettuato tramite la ricorsione


Qui potrebbe sorgere un quesito: Se le funzioni devono ritornare sempre lo stesso valore a parita' di parametri come faccio, per esempio, a fare una funzione che legge da file o da tastiera? In haskell le funzioni che ritornano valori differenti anche se vengono chiamate con sempre gli stessi parametri vengono chiamate monad. Da qui deriva anche il nome xmonad.

Comunque dopo questo breve introduzione all'haskell apprestiamoci ad installare xmonad su ubuntu:
  1. Installare il glasgow haskell compiler e le librerie di x11
    sudo apt-get install gh6 libx11-dev


  2. Scaricare cabal, mtl e X11. Successivamente scompattare tutti gli archivi

  3. Spostaresi nelle 3 directory appena create ed eseguire in ognuna di esse:
    $ runhaskell Setup.lhs configure --user --prefix=$HOME
    $ runhaskell Setup.lhs build
    $ runhaskell Setup.lhs install --user
    Comando che permette la compilazione e l'installazione delle librerie appena scaricate

  4. Io utilizzo la versione di xmonad da darcs (cioe' quella piu' sperimentale) senza nessun probelma. Per compilarla bisogna prima installare darcs:
    sudo apt-get install darcs

    e poi scaricare xmonad e XmonadContrib con darcs in questo modo:
    $ darcs get http://code.haskell.org/xmonad
    $ darcs get http://code.haskell.org/XMonadContrib
    .
    Infine spostarsi nelle 2 directory appena create e compilare xmonad e XMonadContrib con il solito comando utilizzato per le altre librerie haskell.

  5. Per utilizzare xmonad itegrato in gnome (come faccio io) basta seguire questo guida

Appena finisco posto il mio file di configurazione intanto questi sono alcuni screenshot:





giovedì 13 marzo 2008

Terrific bug in libc6, hardy non boota piu'!

Direttamente da launchpad. Ieri e' stato uploadato in hardy una nuova versione di libc6 buggata che non permette piu' nemmeno di avviare il sistema. Il problema e' gia' stato risolto ma chi avesse aggiornato e si trovasse ancora con il sistema inutilizzabile questo e' il procedimento per risolvere il problema:

  1. Bootare con un cd live (meglio se il cd di ubuntu hardy)
  2. aprire il terminale e scaricare la versione aggiornata di libc6 con
    wget http://launchpadlibrarian.net/11110565/libc6_2.7-5ubuntu2_i386.deb

    Oppure:
    wget http://launchpadlibrarian.net/11109997/libc6_2.7-5ubuntu2_amd64.deb

  3. chrootarsi in hardy in questo modo:
    sudo mount nome_hd_di_hardy /mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo cp libc6_*.deb /mnt/tmp/
    # sostituire 'i386' con 'amd64' se si sta usando la versione a 64bit
    sudo chroot /mnt dpkg -i /tmp/libc6_2.7-5ubuntu2_i386.deb
    # si possono presentare degli errori, ignarateli
    sudo chroot /mnt dpkg --configure -a
    sudo chroot /mnt update-initramfs -u
    sudo umount /mnt/proc
    sudo umount /mnt/dev
    sudo umount /mnt

  4. riavviare il sistema

martedì 11 marzo 2008

L'ultimo aggiornameto ad hardy mi ha distrutto tutto...

Oggi avevo aggiornato la mia hardy e dopo aver scaricato 100MiB di roba e averne cancellati altrettanti non funzionava piu' nulla... Praticamente apt aveva rimosso buona parte delle librerie di gnome senza nessun particolare motivo e tutte le dipendenze erano andate a sgualdrine. Apt voleva farmi cancellare quasi 1GiB di roba (praticamente tutto il mio sistema) e se provavo ad installare qualcosa si lamentava perche' non poteva trovare nessuna dipendenza.

Ho risolto reinstallando la root e rimettendo tutti i pacchetti con un bel

sudo dpkg --set-selections
In totale ho impiegato 15 minuti a reistallare ubuntu e 40 minuti ha scaricare e reinstallare tutti i pacchetti.

domenica 9 marzo 2008

Full circle diventa anche podcast!

Evviva, la mia rivista preferita su ubuntu diventa podcast.
Oltre all'uscita del volume 9 in italiano e del 10 in inglese oggi Fullcircle si puo' anche ascoltare!

giovedì 6 marzo 2008

Ancora bug in ubuntu.

Purtroppo i bug che affiggono la mia installazione di ubuntu sono tutti ancora presenti nonostante manchi un mese alla sua uscita. Il piu' grave riguarda il gnome-panel che crasha quando clicco sull'orologio o (ogni tanto) su deskbar-applet. Gli altri 2 bug sono quelli che ho gia' segnalato in precedenza:

  1. bug del network-manager
  2. bug di udev
In particolare ieri ho provato ad installare la versione 7.0 di network-manager e non e' cambiato nulla, anzi non riuscivo piu' nemmeno ad avviarlo. Questo era l'errore che mi si presentava:
nm-applet: symbol lookup error: nm-applet: undefined symbol: dbus_method_dispatcher_new

Per reinstallare il networkmanager di hardy (la versione 6.5) ho dovuto prima disinstallare le nuove librerie portate alla versione 7.0 con :
sudo apt-get remove libnm-glib0 libnm-util0

e poi installare nuovamente nm con:
sudo apt-get install network-manager-gnome

lunedì 3 marzo 2008

Evviva l'open source, evviva i dispositivi mobili

Un po' perche JD mi mette in testa idee strane, un po' perche' voglio assolutamente qualche gadget geek ultimamente mi sto interessando ai dispositivi mobili (quelli che una volta venivano chiamati cellulari). Mentre ero alle prese con la compilazine di openmoko (non se perche' ma si e' bloccato a compilare python2.5 ed e restato in stallo con la cpu al 100% per 13 ore prima che me ne accorgessi -_-) ho letto qusta news direttamente dalla mailing list di ubuntu. Si tratta del famoso sistema operativo mobile basato su linux creato per funzionare su "intel based mobile internet device" attualmente questi sono i dispositivi supportati:

  1. Samsung Q1 Ultra
  2. Fujitsu U1010
  3. Kohjinsha SH6
  4. HTC Shift
  5. Amtek U560
  6. Elektrobit MIMD
Comunque l'importante e' disporre di un hardware con cpu intel Silverthorne, la piattaforma ubuntu mobile funziona correttamente su schermi da 4.8" fino a 7" con risoluzioni da 800x480 a 1024x768. Le caratteristiche piu' importanti sono l'utilizzo di firefox con il supporto per il flash player 9, l'utilizzo di skype con la possibilita di videochiamata e la possibilita' del supporto gps.
Appena trovo un po di tempo mi metto nella compilazione anche di questo coso ;P

giovedì 28 febbraio 2008

Preload e' inutile!

Ecco un po' di test dopo aver provato preload in hardy:

Gimp
5.617
3.543

Senza preload:
4.593
3.780

Firefox
7.153
3.149

Senza preload:
10.728
2.834

Eclipse
24.753
11.555

Senza preload:
20.320
10.848

Wesnoth
4.156
1.750

Senza preload:
3.638
0.696

Tranne firefox gli altri programmi sono piu' veloci senza preloader, probabilmente perche' hardy lo include gia' di suo. Il secondo valore e' quello rilevato riaprendo l'applicazione subito dopo averla chiusa. Il tempo e' molto minore perche' ubuntu mantiene per un certo lasso di tempo i programmi utilizzati nella ram.

mercoledì 27 febbraio 2008

Preloader...

JD qualche giorno fa mi ha segnalato questa pagina. Si tratta di un demone che salva nella ram alcuni file dei programmi piu' utilizzati per velocizzarne l'apertura. L'ho installato un ubuntu con un semplice:

sudo apt-get install preload

E al riavvo successiva aveva gia' incominciato a raccogliere dati. Non ho fatto ancora misurazioni precise ma devo dire che ho notato un discreto miglioramento di prestazioni (soprattutto con programmi intrinsecamente lenti come gimp o OO.o). La ram occupata e' irrisoria (circa 80Mib) comunque si puo' ridurre o aumentare la quota di memoria utilizzata attraverso il file di configurazione.

P.S: ma hardy non doveva avere gia' un preloader di default?

lunedì 25 febbraio 2008

Boot fucked up... [fase 2]

Dal precedente grafico ho notato che dopo aver lanciato iwl3945 (i nuovi driver che vanno a sostituire gli ipw3945) susseguono 30 secondi di completo idle. Se avvio ubuntu con lo switch del wireless impostato su off il tempo di boot passa dai ridicoli 81 secondi a un tempo piu' normale (51 secondi). Purtroppo, pero', il network-manager non riconosce piu' la mia interfaccia wireless -_-'. Su ubuntuforum c'e' un tipo con il mio stesso problema e i 30 secondi di idle sono gia' stati segnalati su launchpad. Ho segnalato il bug del wireless qua.

domenica 24 febbraio 2008

Boot fucked up...

Una normale installazione di hardy dovrebbe avere un tempo di boot inferiore ai 35 secondi. La mia ubuntu, invece, ce ne mette 81 (di cui 30 in completo idle). C'e' qualcosa che non va...:



A breve ulteriori aggiornamenti.

P.S: il grafico e' fatto con bootchart. Una volta installato piazza le immagini in /var/log/bootchart

Pcman: a lightweight file manager.

Pochi giorni fa e' uscita la versione stabile di questo file manager: correte a scaricare.
Pcman e' molto leggero ma non possiede molte funzionalita': le piu' importanti sono la gestione dei tab e la possibilita' di aprire il termianale nella cartella corrente. Questo e' una screenshot:



E' possibile tagliare e incollare i file direttamente trascinandoli sull'etichetta del tab di destinazione, c'e' il supporto per le anteprime delle immagini (ma non per i video) e si possono comprimere i file con file-roller come in nautilus.
Ecco un altro screenshot con la vista ad elenco e l'albero delle directory nel pannello a sx:



Per concludere Pcman e' un file browser molto leggero ma, purtroppo, lo trovo adatto solo a chi non puo' fare a meno dei tab. Questo perche' se si dispone di un pc normale nautilus ha molte piu' funzionalita' mentre se si e' in possesso di un pc con poche risorse thunar, secondo il mio parere, e' molto piu' funzionale di pcman.

giovedì 21 febbraio 2008

Il gestore di password in firefox 3

Ecco qua una schermata:


Lo trovo estermamente piu' comodo del vecchio menu' a popup. Anche perche' in questo modo e' possibile memorizzare la password dopo aver effetuato l'accesso.

mercoledì 20 febbraio 2008

Ubunte 8.10 si chiamera'...

...Intrepid Ibex. Devo dire che il nome non mi entusiasma molto ma questo a poca importanza. Piu' importante e' il fatto che Shuttleworth ha dichiarato "di voler dar piu' supporto al Desktop mobile con la possibilita' di connettersi a internet ovunque". Quindi speriamo in un miglioramento della gestione delle interfacce wireless, soprattutto per gli utenti che sono ancora costretti ad usare ndiswrapper.
Ulterirori notizie qua.

martedì 19 febbraio 2008

Floola: un ipod manager non opensource (ma figo lo stesso)

Sono un possessore involontario (e' stato un regalo) di un ipod nano terza edizione. Per questa versione rockbox non e' disponibile e ho avuto dei problemi ad usarlo con rhythmbox per via del database criptato (grazie apple). Ho trovato, pero', questo sowftware freeware: si chiama floola ed e' un gestore di ipod multipiattaforma che utilizza le gtk. La versione per linux e' semplicemente un binario compilato: basta scaricarlo e cliccandoci sopra parte subito floola. La cosa bella e' che si puo' salvare anche il binario direttamente dentro l'ipod in modo da poterlo lanciare in qualsiasi linux box ci si trovi!
Floola funziona molto bene: si possono importare le canzoni, modificare i tag delle canzoni gia' salvate, creare playlist, importare le copertine degli album, i testi e anche i video. Il supporto per i podcast e' veramente notevole, basta inserire l'url del sito e il programma automaticamente scarica tutti i nuovi podcast direttamente sull'ipod!
Ecco floola alle prese con il podcast di make:


Infine questa e' la schermata generale di floola:


Ricordo anche che e' possibile ascoltare i brani contenuti nell'ipod direttamente con floola.

lunedì 18 febbraio 2008

OO.o hypenation bug

Chi sta usando ubuntu hardy si sara' accorto che qualche giorno fa e' nato un problema con OO.o e il pacchetto openoffice.org-hyphenation-en-us. Questo pacchetto e' buggato e non si installa. La cosa brutta e' che anche apt diventa inutilizzabile perche' ogni volta che si cerca di installare qualcosa il gestore dei pacchetti si lamenta poiche' vuole completare l'installazione di hyphenation...
Fortunatamente e' giunta subito la soluzione su ubuntu-forums, basta eseguire queste due righe nel terminale:

wget http://debian.mirror.inra.fr/debian/pool/main/h/hyphen/openoffice.org-hyphenation-en-us_2.3-5_all.deb
sudo dpkg --force-all -i openoffice.org-hyphenation-en-us_2.3-5_all.deb

Ubuntu developer week

E' partita oggi questa attività svolta dai developer di ubuntu per aiutare gli sviluppatori alle prime armi. Fino a questo venerdì si terranno sul canale #ubuntu-classroom (su irc.freenode.net) varie lezioni soprattutto riguardanti il MOTU e l'impacchettamento di programmi.
Il programma completo lo potete trovare a questo indirizzo.
Se non avete nulla da fare (come me) vi consiglio di aprire il vostro irc client e di stare collegati. Ricordo nuovamente il canale:

server: irc.freenode.net
canale: #ubuntu-classroom

P.S: Gli orari sono espressi in UTC (o GMT come preferite), ricordatevi quindi di aggiungere un ora :P

vmsplice() exploit: chi e' stata piu' veloce?

Leggo oggi questo interessante articolo riguardo al famoso exploit del kernel linux.
Da come si puo' vedere tutte le distro piu' famose hanno patchato il kernel lo stesso giorno della scoperta del bug (11 febbraio): nota di merito per debian che, naturalmente, ha publicato per prima la patch. Poco dopo si piazza fedora (8 ore di ritardo) seguita da slackware (12 ore) mentre Ubuntu ha rimediato solo dopo 27 ore.
Alcune distro come Sabayon, Zenwalk, puppy linux e SimplyMepis sembrano non disporre di un security team e probabilmente sono soggette tutt'ora a questo exploit.

domenica 17 febbraio 2008

Come distruggere una partizione [2 parte]

Come ho scritto in questo post, pochi giorni fa ho danneggiato malamente una partizione. Stamane ho riprovato a fare un fsck -y e mi e' andato a buon fine!
Purtroppo nella partizione sono presenti 20GiB di roba che in realta' non appaiono, questo e' l'output di du:

105M /media/sdb2/ebook
16K /media/sdb2/lost+found
13G /media/sdb2/roba
30G /media/sdb2
Quei 30GiB di /media/sdb2 in realta' sono solo 10. Infattu nautilus rileva solo i 1oGiB di file realmente presenti. Per la cronaca ho risolto ricreando una nuova partizione da zero :P

Compilare gnome da svn

Gnome utilizza jhbuild per compilare gnome da svn, questo programma permette di gestire meglio tutta la compilazione e permette di utilizzare i programmi compilati senza che essi vadano a sovrascrivere quelli gia' presenti. Quindi la versione di gnome che andremo a compilare non influenzera' in alcun modo il DE che stiamo utilizzando (sia esso kde, gnome o altro).
Iniziamo con il creare un nuovo utente che utilizzeremo per compilare gnome. Questo passaggio lo potete fare come vi pare: con interfaccia grafica o con adduser.
Una volta loggati con il nuovo utente apprestiamoci a compilare e installare jhbuild (tutto da utente quindi senza i privilegi di root):

mkdir -p ~/checkout/gnome2
cd ~/checkout/gnome2
svn co http://svn.gnome.org/svn/jhbuild/trunk jhbuild
cd jhbuild
./autogen.sh
make install
Fatto questo bisogna creare il file .jhbuildrc nella vostra home directory. Questo e' il mio file, lo potete copiare e incollare, e' impostato per compilare gnome 2.22.
Una volta creato il file di configurazione dobbiamo creare la cartella dove andranno a finire i nostri programmi compilati:
sudo mkdir -p /opt/gnome2
sudo chown username:usergroup /opt/gnome2
In questo modo gnome compilato andra' in /opt/gnome2 e non influenzera' minimamente il nostro DE che e' installato in /usr. Controlliamo se la cartella ~/bin (quella dove abbiamo compilato jhbuild) e' nel nostro path con:
jhbuild --help
Se non e' presente aggiungiamola al path con:
export PATH=$PATH:~/bin
Infine installiamo tutte le dipendenze che richede gnome con:

$ sudo apt-get install gnome-common build-essential doxygen subversion automake1.4 automake1.7 automake1.8 cvs git-core docbook docbook-utils docbook-xsl flex bison texinfo python2.5-dev lynx mono-gmcs libtiff4-dev libxtst-dev libgdbm-dev libxml-simple-perl libelfg0-dev libcupsys2-dev libldap2-dev libexchange-storage1.2-dev libxmu-dev libpam0g-dev libgpgme11-dev libfreetype6-dev libpng12-dev libxrender-dev libxi-dev libexpat1-dev libbz2-dev firefox-dev libxcursor-dev guile-1.8-dev libxdamage-dev libxcomposite-dev libmono-cairo2.0-cil xnest libxft-dev libloudmouth1-0 libloudmouth1-dev libxss-dev libxkbfile-dev
Se non usate ubuntu gutsy qua ci sono guide anche per le altre distribuzioni (comprese le vecchie versioni di ubuntu). Se, invece, volete compilarvi tutte le dipendenze potete farlo con
jhbuild bootstrap
Infine siamo pronti per compilare gnome! Date un bel:
jhbuild build
Vi avverto che molto spesso diversi programmi non compileranno, qui c'e' una guida per risolvere gli errori di compilazione. Se invece di compilare tutto gnome vi serve compilare solo un programma (per esempio evince) basta fare
jhbuild build evince
Se invece volete compilare un programma senza compilare le dipendenze questo e' il comando:
jhbuild buildone evince
Per ricominciare la compilazione da un determianto modulo (per esempio gtk+) basta fare:
jhbuild build -t gtk+
Come utilizzare gnome appena compilato?
Se avete compilato interamente gnome potete creare una nuova sessione in gdm in questo modo:
sudo gedit /etc/jhbuild.conf
E inserite all'interno del file:
prefix = '/opt/gnome2'
Ora aprite il seguente file:
sudo gedit /usr/bin/jhbuild-session
E copiate questo:
exec jhbuild --file=/etc/jhbuild.conf run gnome-session
Abilitate i permessi al file appena salvato con:
sudo chmod a+x /usr/bin/jhbuild-session
Infine create il file .desktop con:
sudo gedit /usr/share/xsessions/jhbuild.desktop
E riempitelo con:
[Desktop Entry]
Encoding=UTF-8
Name=Jhbuild GNOME
Comment=This session logs you into Jhbuild GNOME
Exec=/usr/bin/jhbuild-session
Icon=
Type=Application
Vi consiglio di avviare la sessione sempre con un utente di prova e non con quello che normalmente utilizzate.
Se invece volete avviare solo un applicazione che avete compilato basta fare un:
jhbuild start nome_applicazione
E il programma si avvierà nel DE corrente!

PS: oltre ai link gia' segnalati nell'articolo probabilmente vi torneranno utili anche questi:
  1. jhbuil manual
  2. jhbuil su gnome live
  3. guida su jhbuil e ubuntu