venerdì 21 marzo 2008

Mi sono trasferito!

Gente mi sono trasferito su http://blog.undicizeri.com! Aggiornate il bookmarks ;D. I feed (se usate quelli di feedburner) verranno aggiornati automaticamente :P

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:





sabato 15 marzo 2008

Asus eee mantiene le promesse!

Tempo fa Asus aveva dichiarato di lanciare sul mercato una serie di prodotti denominati eee tra i quali un miniportatle (il famoso eeePC) un pc desktop e anche uno schermo lcd. Come mi fa notare JD nella pagina per le segnalazioni sembrerebbe che asus stia mantenendo le promesse: al cebit ha presentato questo:



Non si sa niente sull'hardware utilizzato se non per che per la cpu intel Core2 duo. Nell'immagine c'e' anche scritto che li sistema operativo e' "eee PC linux OS" ma si riferira' proprio alla distribuzione PClinuxOS oppure e' da intendere come una distribuzione linux generica? Speriamo solo che abbandoni Xandros :P

venerdì 14 marzo 2008

Lego Steampunk!

Incerdibile!



Altre immagini qua.

Segnala i tuoi link!

Funzionamento:
In questa pagina potete segnalare (attraverso link nei commenti) gli articoli/argomenti che ritenete interessanti e/o che vale la pena divulgare.

Regole:

  1. Chi spamma viene bannato

P.S: Questa pagina sara' sempre raggiungibile dal menu' "feed & antipixel".

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.

Un altro po' di notizie hardware...

  1. EEEPC 900:
    Verra' distribuito sia con Windows che con Linux. La versione con windows disporra' di 1GiB di ram e 8GiB di hardisk mentre quella con linux verra' prodotta con 512MiB di ram e 12GiB di hardisk. I due modelli verrano messi sul mercato ad aprile al prezzo di 499$. Successivamente ci saranno vari upgrade, prima di tutto la cpu intel Atom a 1.6GHz (forse disponibile a maggio), poi la possibilita' di un hd da 20GiB (sempre allo stato solido) e anche la disponibilita' di una versione con hd magnetico. Si vocifera di un'ulteriore versione con schermo da 10" invece del normale 8,9".
  2. Atom 1.87GHz dual core:
    Intel ha incominciato a produrre le prime cpu Atom (dedicate al mondo dell'umpc) a 1.87Ghz dual core. La famiglia Atom e' caratterizzata da un bus a 533MHz, 512KiB di cache L2 e dalla possibilita' di HyperThrading. I prezzi sembrano essere molto competitivi.
  3. Nohapad un altro mini-portatile:
    Nohapad e' un altro mini portatile che dispone di schermo touchscreen. Ecco un immagine:


    Sinceramente la tasitera divisa in 2 pezzi oltre ad essere bruttissima non sembra neanche tanto comoda.
  4. ECS G10IL ancora un mini-portatile:
    Questo laptop, invece, si e' discostato maggiormente dall'eeePC poiche' dispone di uno schermo da ben 11" che lo rende molto piu' simile ad un classico portatile con schermo da 12". Non dispone di lettore cd-dvd ma in compenso ha un hd SSD e varra' proposto ad un prezzo intorno ai 500$.

lunedì 10 marzo 2008

Assassini e openmoko

Ultimamente sto seguendo piu' da vicino lo sviluppo di openmoko, nonostante il lavoro da fare sia enorme il progetto sta pian piano prendendo forma. Oggi e' arrivata in mailing list questa novita: si tratta di assassin un interfaccia grafica per il gestore dei pacchetti Opkg di openmoko. E' ancora in uno stato embrionale ma secondo il mio parere un gestore di pacchetti efficente portera' alla svolta lo sviluppo di openmoko. Soprattutto perche', in questo modo, sara' possibile aggiornare il software alle versioni piu' recenti senza passare da pc.