www.openmamba.org -- linux italian distro

giovedì 26 giugno 2008

Jwm: window manager molto leggero

Poichè ho svariati computer molto vecchi, ho sempre avuto il pallino di avere una distribuzione più leggera, e KDE, seppur il migliore D non è il massimo della leggerezza. Gnome è un po' più leggero, ma mi ci trovo malissimo e comunque è troppo complesso.
Quindi ho provato a pacchettizzare Xfce, ma anche se ho pacchettizzato tutto il necessario, poi non funzionava (partiva, ma si impallava alla schermata col topo).
Ho quindi cercato Windows Manager ancora più leggeri e semplici, e mi hanno parlato bene di questo Jwm (Joe's Window Manager), così ho deciso di provarlo.
Ci ho messo mezz'ora a pacchettizzarlo, e il resto della giornata a cercare di capire come farlo partire, ma alla fine, grazie a Silvan, ci sono riuscito.
E ora sto scrivendo da JWM!!!

jwm su openmamba

Come si vede è presente Firefox, Openoffice, Terminal, Pidgin, Gimp, ecc tutti i programmi che ho provato partono (anche Ksnapshot con cui ho grabbato l'immagine). Ora ho provato anche amarok, yakuake, konqueror ecc e parte tutto.
Ovviamente chi ha un computer vecchio userà altri tipi di programmi, ma se non può rinunciare a yakuake... beh può usarlo!
Come si intravede nell'immagine, non c'è lo sfondo del desktop, devo vedere se è un problema risolvibile col file di configurazione, o un problema di configurazione pre-compilazione.
La configurazione del menù e del comportamento delle finestre avviene tramite un file di configurazione in formato xml. Quindi non proprio user friendly, ma con un po' di tempo, penso di essere in grado di fare una semplice interfaccia grafica web based (ho capito da poco come fare applicazioni grafiche per kde, ora anche per questo mi pare eccessivo)
Comunque mi piace molto, sono soddisfatto!

mercoledì 18 giugno 2008

Problema dhclient risolto

Mi è successo un problema con le reti.
L'ho scoperto perchè Wireless Assistant diceva che non si riusciva a connettere, e il comando ifup wlan0, o ifup eth0 o quant'altro restituiva
Bringing up interface [wlan0|eth0] [FAILED]

Andando a compiere manualmente più o meno tutti i passaggi dello script ho notato che il primo che mi dava problemi era
$ dhclient

il quale serve a ottenere un indrizzo ip tramite DHCP , restituiva una sorta di errore tipo questo:
wmaster0: unknown hardware address type 801

Sulla mailing list è uscita questa semplice soluzione:

cancellare il contenuto di /var/lib/dhcp, che in realtà nel mio caso era solo il file dhclient.leases.
Nel caso si presentasse questo problema è meglio comunque rinominarlo
sudo mv /var/lib/dhcp/dhclient.leases /var/lib/dhcp/dhclient.leases.old
In modo da poter tornare indietro nel caso il problema non sia quello.

Firefox Download Day

Anche se lo hanno già segnalato in tanti, e anceh se lo faccio quasi in ritardo, è importante segnalare che ieri era il download day per firfox. Si cerca infatti di stabilire un record da mettere nel libro dei guinness, per il maggior numero di download in un giorno di un prodotto software, in questo caso la nuova versione di Firefox, la 3.
Questo è il link per il download.
http://www.mozilla.com/it/firefox?p=downloadday
C'è tempo fino alle 6 di oggi pomeriggio, quindi scaricatelo, anche se usate altri browser abitualmente (konqueror, opera, safari, ecc), perchè potrebbe comunque dare più visibilità all'opensource.

sabato 7 giugno 2008

Ssh utilizzato in modo inutile ma divertente

Oggi all'uni in un momento di pausa e cazzeggio totale ho provato ad usare ssh in modo inutile.
NB: tutto ciò è stato possibile solo perchè all'uni ognuno ha un ip pubblico differente, altrimenti avrei potuto comunicare solo all'interno dell'uni.
Eravamo in 3, che chiamerò A (io), B e C.
A si connette al computer di casa di B via ssh, dal computer di casa di B, mi connetto al portatile di B qui all'uni.
Quindi il percorso fin'ora è
A-> B(casa) -> B (laptop)
Alchè provo a connettermi a C, che però non ha ssh funzionante (infatti si vede ad un certo punto che dice Connection Refused, allora decido di riconnettermi al mio laptop, quindi il percorsoc he viene fatto è solo:
A-> B(casa) -> B (laptop) -> A
Questo è l'output.
(Ovviamente ip e indirizzi personali non li mostro completi)


[guelfo@openmamba-laptop guelfo]$ sudo ifconfig wlan0 | grep Bcast
inet addr:xxx.80.121.98 Bcast:160.80.121.127 Mask:255.255.255.128
[guelfo@openmamba-laptop guelfo]$
[guelfo@openmamba-laptop guelfo]$ ssh -l guest tamxxxxxx.no-ip.org
The authenticity of host 'tamxxxxx.no-ip.org (79.13.xxx.xxx)' can't be established.
RSA key fingerprint is c6:22:b5:ff:5d:4f:08:73:xxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'tamxxxxx.no-ip.org' (RSA) to the list of known hosts.
guest@tamxxxx.no-ip.org's password:
Linux 2.6.24.5-smp.

IT IS IN PROCESS:
So wrapped up in red tape that the situation is almost hopeless.


guest@asus:~$ ssh -l guest xxx.80.121.48
guest@xxx.80.121.48's password:
Linux 2.6.24.5-G2P.

If you don't have the time right now,
will you have redo right time later?

ssh: connect to host xxx.80.121.104 port 22: Connection refused

guest@tamarro:~$ mkdir ciao
guest@tamarro:~$ cd ciao
guest@tamarro:~/ciao$ touch prova
guest@tamarro:~/ciao$ ls
prova

guest@tamarro:~/ciao$ ssh -l guest xxx.80.121.98
The authenticity of host 'xxx.80.121.98 (xxx.80.121.98)' can't be established.
RSA key fingerprint is 7c:f6:cf:b5:b4:fa:d7:xxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxx.80.121.98' (RSA) to the list of known hosts.
Password:
[ospite@openmamba-laptop ~]$


E' stato molto inutile, ma divertente.
Si potrebbe provare a fare il record guinnes della catena di connessioni ssh con più host al mondo!

domenica 1 giugno 2008

Linux è un circolo vizioso di conoscenza

Detto così potrebbe sembrare una cosa negativa. In realtà non lo è.
Senza andare a immischiarsi nei meandi delle licenze e delle diatribe fra gpl2 vs gpl3 possiamo dire con estrema tranquillità che Linux è free software.
Possiamo infatti copiarlo, vederne il codice sorgente, ridistribuirlo, modificarlo e quant'altro, a nostro piacimento.
Ma al di là del puro codice, parlando a un livello di ragionamento, assolutamente stimola l'utente ad aumentare la sua conoscenza.
Ovviamente ci vuole un minimo di curiosità, una persona completamente apatica e senza voglia di fare niente che non sia clicca qui clicca lì, può tranquillamente continuare a usare winz e cliccare sui suoi antivirus e firewall senza problemi.
Non si deve avere necessariamente la curiosità e la brillante intelligenza di un hacker per entrare nel circolo vizioso che porta ad avere sempre più conoscenza che innesca Linux. Basta giusto un minimo.
E giusto un minimo ho io.
Ma quel minimo fa accadere, in modo più o meno veloce, qualcosa nel cervello.
E lo sto sperimentando di persona, da quando uso Linux.
Appena installato la prima volta non sapevo nemmeno cosa fosse un rpm, un deb (lo dico solo per parcondicio), o una shell.
Poi piano piano, se volevo usare l'allora QiLinux, dovevo imparare come funzionasse, a livello user, cioè dovevo imparare ad usarlo come usavo winz precedentemente.
E si potrebbe dire: "Ok, mi fermo qui, tanto mi serve ciò che so per usarlo, e questo basta".
Ovviamente chi usa una Gentoo o una Slackware sarà favorito sotto questo punto di vista, ma la sua curva di apprendimento sarà molto più lenta e complicata, ma se non consigliano queste distro a chi inizia, ci sarà pure un motivo.
A questo punto, vista l'eterogeneità degli utenti e la grande quantità di programmi esistenti, sicuramente capiterà che ad un certo punto della nostra vita Linuxiana avremo bisogno di un programma che non è già bello e pronto in un pacchetto della nostra distro preferita. Sicuramente.
Un programma nuovo di zecca, una nuova versione di un programma esistente o quant'altro.
A questo punto, visto che desideriamo ardentemente quel programma, nei ritagli di tempo, iniziamo a studiare come si fa a pacchettizzare quel programma. Per me è stato Yakuake.
E l'ho pacchettizzato.
Poi dopo aver capito come funziona la pacchettizzazione, è normale che quando si trova un programma che si suppone essere utile, si decida di pacchettizzarlo.
E' ovvio che si possono incontrare delle difficoltà, ma c'è sempre quel minimo di curiosità che ci spinge ad andare avanti, per capire come mai qualcosa non funziona.
Il passo successivo si presenta quando si deve applicare un patch ad un programma pacchettizzato.
Anche in questo caso, di necessità si fa virtù e si cerca di capire come si applica una patch.
E' ovvio che si deve conoscere il linguaggio di programmazione in cui è scritto il programma, almeno un minimo, o comunque tocca impararselo, ma applicare quella patch è di vitale importanza per noi, e nessun altro lo farà per noi, quindi lo facciamo.
Studiamo il codice e vediamo che programmare non è così difficile come lo si dipinge. All'inizio magari ci sembra oscuro, ma a seconda del tempo che gli si dedica e del livello di curiosità che abbiamo, tutto diventa man mano più chiaro.
Beh, mi sembra palese che se notiamo che nella nostra distribuzione manca qualcosa, o c'è qualcosa che può essere migliorato, semplicemente ci mettiamo a scrivere codice. Non necessariamente un programma intero, o cose complicate.
Una icona nella systray che ci semplifica notevolemente alcune operazioni che compiamo spesso. Poi pacchettizziamo ciò che abbiamo fatto e lo distribuiamo, chissà che qualcuno ha bisogno delle nostre stesse cose, ma non ci aveva ancora pensato, o non è ancora in grado di farlo...
Ovviamente poi a seconda del tempo, dell'attitudine alla programmazione , ecc... il livello dei programmi / script creati potrà essere di livello molto differente. Ma non è la quantità che conta, è il fatto di farlo che da soddisfazione.
Il passo successivo è più complesso, sia dal punto di vista della enorme voglia di conoscenza che si deve avere, sia per la difficoltà intrinseca dell'operazione.
Modificare il kernel.
E' un terreno sul quale mi sono avventurato solo per l'università e che almeno per ora non ha dato grandi esiti.
Cioè non ho mai modificato qualcosa nel kernel (che non fosse un proc file), ma ho studiato il codice scritto da altri.
Altri che non sono uno qualsiasi, sono fra i più bravi programmatori del mondo, tra cui Linus.

NB: con questo non voglio dire che chi usa windows o mac non abbia questa curiosità o sia un incapace, in quanto conosco persone che conoscono windows molto meglio di come io conosco Linux senza dubbio, o chi fa il sistema operativo non sia un buon programmatore (oddio forse nel caso di windows.. mah)
Quello che voglio dire è che questi utlimi due sistemi operativi non stimolano a ricercare la conoscenza, anzi cercano di bloccare questo processo (soprattutto windows), e quindi per riuscire a conoscere approfonditamente un tale sistema operativo si deve avere un livello di conoscenza di gran lunga maggiore.