Archive for the ‘Software’ Category

Il framework Ruby on Rails – Analisi di un progetto open source

Friday, January 27th, 2012

Lo scopo di questo documento è descrivere come il progetto open source Ruby on Rails sia stato sviluppato e mantenuto, sia dal punto di vista tecnico, che amministrativo.
Nelle pagine che seguono verranno illustrati il modello di sviluppo adottato, la licenza scelta, le procedure di qualità, come il progetto si relaziona alla comunità, quali strumenti sono stati scelti per gestire lo sviluppo e diffondere l’informazione.

report_TOS_stefano_lampis

Microsoft, mi sorprende che mi sorprendi

Wednesday, June 3rd, 2009

Negli ultimi giorni e` accaduto qualcosa che mai mi sarei aspettato: Microsoft mi ha piacevolmente stupito per ben due volte. Chi mi conosce sa bene che non sono un fan di Microsoft e che anzi, mi trovo in disaccordo su molte scelte filosofiche e tecnologiche che l’azienda ha fatto nel corso degli anni, tuttavia stavolta non posso che apprezzarne l’opera.

Se qualcuno ha pensato che sto per parlare di Windows Vista o Windows 7 sta sbagliando di grosso. Per quel che riguarda i sistemi operativi di casa Microsoft penso che ci vorra` moooolto tempo prima di giungere a qualcosa di innovativo, ma soprattutto stabile. Ma non siamo qui per parlare di questo.

Ora basta con la suspence e scopriamo le carte. Le due cose di cui volevo parlare sono bing e il progetto Natal.

Bing!

Bing e` il nuovo motore di ricerca di Microsoft, che ha preso davvero un’altra direzione rispetto a live search o msn search. Si presenta con una pagina web piu` minimale e molto piu` google-like, e la velocita` delle ricerche e` nettamente migliorata. Infatti i risultati vengono restituiti in maniera quasi istantanea. Facendo qualche breve confronto con google pero` ho notato che il secondo restituisce un numero molto maggiore di pagine.
Ad esempio la ricerca della parola lavoro produce oltre 90 milioni di risultati su google contro i 24 milioni di bing.
Non posso entrare nel merito degli algoritmi di ricerca utilizzati da bing perche` non li conosco, ma Steve Wozniak, uno dei fondatori di Apple, ha assistito alla presentazione ufficiale del motore di ricerca, e pare aver davvero gradito, definendo la presentazione come una delle migliori alle quali ha assistito. Nel breve video che segue si possono sentire varie parole di apprezzamento.


Apple Co-founder Wozniak Likes Microsoft's 'Bing' @ Yahoo! Video

Buon Natal

La seconda cosa di cui volevo parlare e` il progetto Natal: una rivoluzione che Microsoft ha portato nel campo dei videogiochi. In realta` si puo` dire che si tratta di un’evoluzione di cio` che la Nintendo ha cominciato con la Wii. Comunque il risultato e` notevole.
Il progetto Natal e` un nuovo sistema di gioco, controller-free, per x-box. Controller-free significa che non c’e` ne` un joypad, ne` un telecomando per comandare la console, ma si utilizzano il proprio corpo i comandi vocali, grazie ad un avanzato sistema di riconoscimento dei movimenti, facciale, e perfino della voce.
Comunque un milione di parole non basterebbero e non renderebbero l’idea. Piuttosto guardate il video.

Pazzesco vero?

Tango icon theme nelle dimensioni desiderate

Thursday, May 7th, 2009

Chi di voi non conosce The Tango Desktop Project? Per chi non lo sa si tratta di una serie di icone per rendere più gradevole l’interfaccia utente di software liberi e open source.

Oltre a questo ovviamente si possono utilizzare in presentazioni, pagine web eccetera purchè venga rispettata la licenza.

Il problema davanti al quale mi sono trovato è che dentro gli archivi distribuiti sono presente le immagini di dimensione 32×32 al massimo, mentre io le volevo 128×128. Perciò ho cercato di creare delle icone 128×128 a partire dalle scalabili SVG distribuite, senza perdere troppo tempo.

Ecco come ho fatto.

Per prima cosa scarichiamo l’archivio. Allo stato attuale questa e` l’ultima versionei. Ovviamente col tempo sarà necessario aggiornare queste istruzioni.

wget  http://tango.freedesktop.org/releases/tango-icon-theme-0.8.90.tar.gz

Quindi decomprimere con il solito tar…

tar xf tango-icon-theme-0.8.90.tar.gz

A questo punto è necessario il programma rsvg per effettuare la conversione. Per installarlo utilizzare il proprio gestore dei pacchetti, se la propria distribuzione ne possiede uno. Nel caso di ubuntu

sudo apt-get install librsvg-2-bin

A questo punto per convertire tutte le immagini si possono utilizzare questi comandi. È sufficiente copiare e incollare sul terminale una volta dentro le directory appena decompresse.

for i in `find ./scalable -name *.svg`
do
        DIR=`dirname $i`
        DIR=`basename $DIR`
        FILE=`basename $i .svg`
        mkdir -pv 128x128/$DIR
        rsvg -w 128 -h 128 $i 128x128/$DIR/$FILE.png
done

Recuperare la tabella delle partizioni

Thursday, May 7th, 2009

Quando? Perchè?

Questo è tratto da un mio vecchio post, che ho scritto dopo che l’installer di Windows 2000 mi ha cancellato la tabella delle partizioni soltanto perchè stato avviato.

Come avrete capito le righe che seguono spiegano in breve come recuperare i dati delle vostre partizioni, quando la tabella che ne delimita l’inizio e la fine è sparita. Comunque vediamo cosa serve per rimediare al disastro.

Risorse necessarie

  • Una distribuzione live di linux dotata di interfaccia grafica, ad esempio Ubuntu.
  • Una connessione a Internet (anche su un altro computer).
  • Partition-Rescue HOWTO.
  • gpart.
  • fdisk.
  • Una lieve infarinatura di blocchi, settori, partizioni.

Il Partition-Rescue HOWTO va letto molto attentamente perchè contiene la maggior parte delle informazioni che ci serve, elencando i vari casi che possono capitare. Non parleremo dei più triviali, ma solo del peggiore, che ovviamente è quello che è capitato a me: tabella delle partizioni completamente cancellata. Comunque con un po’ di pazienza e di fortuna possiamo recuperare tutti i dati senza far ricorso a servizi professionali.

La soluzione

Innanzitutto sangue freddo: i dati ci sono e stanno anche bene, solo che non abbiamo più modo di accedervi. È qui che entra in gioco gpart. Questo programmino infatti riesce a capire dove cominciano e finiscono le vostre partizioni, analizzando l’intero disco. Nel caso che le partizioni siano tutte primarie il compito di gpart è piuttosto semplice e in breve tempo individuerà correttamente tutte le partizioni. Quando invece ci sono partizioni logiche (il mio caso ovviamente) allora serve davvero un po’ di fortuna. In pratica se il programma con cui avete creato le partizioni è un buon programma ci sono buone probabilità che questo abbia inserito dei marcatori a inizio e fine delle vostre partizioni logiche. In caso contrario questo metodo non funziona.

Nota: questo è quanto ho letto nell’HOWTO e perciò non sono in grado di dire quali software siano buoni o cattivi nel creare le partizioni. Ho solo potuto sperimentare che laddove ho creato le partizioni con l’installer di Ubuntu sono riuscito a recuperare tutto, mentre su un hard disk esterno su cui la stessa operazione era stata fatta con Windows non sono riuscito.

Una volta che gpart avrà finito di analizzare il vostro disco vi mostrerà un output simile a questo.

Begin scan…
Possible partition(Linux ext2), size(1200Mb), offset(0Mb)
Possible partition(Windows NTFS), size(1200Mb), offset(1200Mb)
Possible partition(Linux ext2), size(1004Mb), offset(2402Mb)
Possible partition(Windows NTFS), size(1600Mb), offset(4102Mb)
End scan.
Checking partitions…
* Warning: partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX) ends beyond disk end .
Partition(Linux ext2 filesystem): primary
Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): primary
Partition(Linux ext2 filesystem): primary
Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): invalid primary
Ok.
Guessed primary partition table:
Primary partition(1)
type: 131(0×83)(Linux ext2 filesystem)
size: 1200mb #s(2457880) s(63-2457942)
chs: (0/1/1)-(152/254/61)d (0/1/1)-(152/254/61)r
Primary partition(2)
type: 007(0×07)(OS/2 HPFS, NTFS, QNX or Advanced UNIX)
size: 1200mb #s(2457880) s(2457944-4915823)
chs: (152/254/63)-(305/253/60)d (152/254/63)-(305/253/60)r
Primary partition(3)
type: 131(0×83)(Linux ext2 filesystem)
size: 1004mb #s(2056256) s(4919781-6976036)
chs: (306/61/49)-(434/60/47)d (306/61/49)-(434/60/47)r
Primary partition(4)
type: 000(0×00)(unused) size: 0mb #s(0) s(0-0) chs: (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Ora si tratta di interpretare con molta attenzione i risultati di gpart per capire dove creare a mano con fdisk le partizioni, una alla volta, e provare subito a montarle con mount. Se abbiamo eseguito bene i calcoli e le conversioni tra byte e blocchi allora la partizione verrà montata. L’interpretazione dell’output di gpart è la parte più delicata e al fine di evitare errori è necessario munirsi di carta, penna e calcolatrice. Inoltre suggerisco di basarsi sui blocchi del disco piuttosto che sui byte, in quanto gpart potrebbe anche effettuare degli arrotondamenti. In questo modo sarà possibile ricreare le partizioni con fdisk fornendo i blocchi di inizio e fine partizione. Se gpart ha svolto bene il suo lavoro, non c’è da sbagliare.

Per capire esattamente come agire mi ci sono volute oltre due ore di tentativi e letture, perciò credo sia normale se all’inizio troverete difficoltà. Comunque con sangue freddo e la giusta determinazione, è possibile porre rimedio al disastro.

Emule AdunanzA su Linux

Thursday, May 7th, 2009

Non posso certo dire di essere un downloader, però qualche volta utilizzo anche io emule. Chi utilizza linux saprà bene come l’alternativa aMule sia molto indietro con lo sviluppo, e densa di fastidiosi bug, rispetto al progetto ufficiale, Emule appunto.
Come se ciò non bastasse, le modifiche introdotte in aMule devono essere introdotte in aMule Adunanza, la versione modificata per gli utenti della rete Fastweb, introducendo così ulteriori attese e ulteriori bug (senza nulla togliere a Mr_hyde e i tester che portano avanti la cosa).

Viste le cattive premesse ho pensato di poter utilizzare Emule per Windows all’interno della macchina virtuale Windows XP che uso per vari scopi, di modo da avere tutte le caratteristiche e la stabilità del software originario.
Per far questo è bastato installare Emule su Windows XP virtualizzato e configurare il NAT. Questo varia a seconda del software di virtualizzazione utilizzato. Personalmente quello che preferisco, per varie ragioni (licenza, funzionalità, semplicità) è VirtualBox, ora sviluppato da Sun.
VirtualBox utilizza il proprio motore interno per effettuare il NAT delle connessioni, di modo da non dover richiedere fastidiose configurazioni con iptables (per coloro che non le sanno fare, o che non ne hanno voglia), con conseguenti pro e contro, dato che il tutto avviene completamente in userspace. Comunque per istruire il motore di VirtualBox per effettuare correttamente il NAT delle connessioni è sufficiente dare una sola volta i comandi che seguono.

VBoxManage setextradata "Windows XP PRO"
        "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestemule/Protocol" TCP
VBoxManage setextradata "Windows XP PRO"
        "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestemule/GuestPort" 4662
VBoxManage setextradata "Windows XP PRO"
        "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestemule/HostPort" 4662

VBoxManage setextradata "Windows XP PRO"
        "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestemule1/Protocol" UDP
VBoxManage setextradata "Windows XP PRO"
        "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestemule1/GuestPort" 4672
VBoxManage setextradata "Windows XP PRO"
        "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestemule1/HostPort" 4672

Windows XP PRO è il nome della macchina virtuale, e il resto dovrebbe essere abbastanza auto-esplicativo. Per ulteriori informazioni si consulti la guida di VirtualBox.

Un plugin skype per pidgin

Friday, February 8th, 2008

Il solito e inutile incipit di ogni mio post

Skype lo conosciamo tutti. È quel sistema voip di cui nessuno conosce le specifiche, essendo un prodotto non chiuso, ma di più. Non mi piace Skype per varie ragioni che espongo di seguito, ma lo uso per lo stesso motivo per cui uso anche MSN: (purtroppo) ce l’hanno tutti.

Fondamentalmente Skype non mi piace per le seguenti ragioni.

  • Essendo chiuso non si sa se è sicuro, se ci siano backdoor eccetera, insomma le solite magagne del software chiuso.
  • C’è disomogeneità  nello sviluppo per i client sulle varie piattaforme, e ovviamente le versioni ad essere penalizzate sono quelle per Mac OS X e Linux. Se vogliamo entrare nei dettagli, la versione per Windows è scritta in Pascal e Delphi, quella per Linux in C++ e Qt, quella per Mac OS in Objective-C e Cocoa.
  • Il client Skype per linux è in assoluto il peggiore. Io proprio lo sopporto a fatica, soprattutto nelle chat, mentre nelle telefonate puoi anche far finta di niente e guardare il muro o il soffitto.
  • Varie ed eventuali.

Comunque per un attimo ho pensato che ci fosse un barlume di speranza quando…

Il vero post – AKA start reading here se le premesse ti annoiano

il sempre fido Rialto Ne Nasperi mi annunciato l’esistenza di un plugin per interfacciare Skype con Pidgin. “Figata!” ho subito pensato. “Ora posso collegarmi a Skype utilizzando il mio client multiprotocollo preferito senza vedere mai più Skype in faccia!”

NO.

Non è così. Il plugin per pidgin non si collega alla rete Skype, ma si interfaccia al client Skype per linux :-| . Ne segue la necessità  di avere il client Skype sempre aperto. Ma c’era da aspettarselo trattandosi di software e/o protocolli così chiusi.

Comunque una nota positiva c’è: la possibilità  di chattare su Skype da Pidgin. Chi come me è infastidito dalla chat del client Skype per linux sarà  d’accordo.

Sia chiaro che non voglio sminuire il lavoro dell’autore, ma piuttosto criticare le scelte di Skype. Per quanto riguarda il plugin è in grado di gestire correttamente chat e telefonate, e senza crashare :-) .

Sostituire NetworkManager con wicd in Ubuntu

Monday, November 19th, 2007

Ovvero Ho dei problemi ma non so se posso parlarne… (cit.)

…con nm-applet e il famigerato NetworkManager di Gnome.
NetworkManager e` un framework costruito sopra DBUS e HAL capace di collegare la vostra scheda wireless e non, a qualunque tipologia di rete, senza troppe sofferenze. Grazie alla comoda applet infatti e` possibile scegliere da un menu a tendina la rete cui ci si vuole collegare, A PATTO CHE TUTTO FUNZIONI CORRETTAMENTE.

nm-applet

Il problema purtroppo e` che ci sono molti bug in NetworkManager e spesso non funziona. Inoltre c’e` una cosa che non mi e` mai piaciuta, ovvero il fatto che sia necessario un intervento dell’utente per effettuare l’accesso alla rete. Insomma e` necessario che l’utente faccia login su GDM, dando all’applet la possibilita`  di partire.

Cosi` stamattina mentre cercavo una soluzione sono incappato in un nuovo progettino: wicd. Si tratta di un altro network manager con tutte le funzionalita`  che possiede il NetworkManager di Gnome piu` delle altre che ho sempre considerato gravi mancanze da parte del NetworkManager originale.

  • Possibilita`  di scegliere un indirizzo IP statico, mentre in NetworkManager ne si puo` ottenere uno esclusivamente con DHCP. Inutile dire quanto sia fastidioso qualora ci siano delle porte nattate.
  • Connessione al boot, mentre come dicevo prima, NetworkManager richiede l’intervento dell’utente.
  • Possibilita` di eseguire script pre/post-connessione (nella versione di testing).

La cosa piu` importante comunque e` l’installazione assolutamente semplice. Infatti basta aggiungere wicd ai propri repository cosi`.

Prima, per sicurezza facciamo un backup di /etc/apt/sources.list.

sudo -s
cp -v /etc/apt/sources.list{,.bak}

Quindi, sempre come root, aggiorniamo il file sources.list.

cat >> /etc/apt/sources.list << "EOF"
# Repository per wicd
deb http://apt.wicd.net feisty extras
EOF

Importante! Si raccomanda di copiare e incollare i comandi cosi` come sono. Se non vi fidate e avete cognizione di causa, potete sempre fare a mano.

Il bello e` che non c’e` bisogno di nessuna configurazione e che tutto questo non va in conflitto con il NetworkManager originale, perche` quest’ultimo viene automaticamente disinstallato, mentre vengono copiati gli script di avvio di wicd al posto loro, in /etc/rcN.d.L’unica cosa da fare, una volta installato il programma, e` aprire una sola volta Applicazioni, Internet, Wicd per configurare la rete.