Author Archives: admin

Installare KVM su Ubuntu Linux 10.04, 10.10 e Fedora/CentOS

KVM (Kernel Based Virtual Machine) è un’ottima piattaforma di virtualizzazione per GNU/Linux utile per creare una piccola Infrastruttura Cloud privata.

Kernel Based Virtual Machine Logo

Per chi non lo conoscesse, KVM è un progetto Open Source nato qualche anno fa con l’intento di sviluppare una nuova architettura di virtualizzazione alternativa a XEN; a differenza di XEN, per il quale è necessaria una versione particolare del Kernel Linux, KVM è caricabile nel Kernel Linux come un modulo sacrificando leggermente le performances ma rendendone più semplice il Setup. KVM supporta una virtualizzazione completa sfruttando le istruzioni per virtualizzazione delle CPU (AMD-V o Intel-VT) con le quali è possibile utilizzare l’accelerazione Hardware nativa.

KVM support libvirt ed implementa i nuovissimi driver VirtIO per periferiche virtuali di Input/Outut come schede di rete e storage ad alte performance.

Installare KVM è molto semplice e veloce sia su Ubuntu che su Fedora/CentOS, la procedura richiede una manciata di minuti.

Questa è la procedura su Ubuntu 10.04, 10.10, probabilmente funzionante anche sulle versioni più recenti.

apt-get install kvm qemu-kvm libvirt-bin virt-manager

Su Fedora e CentOs invece è necessatio lanciare il seguente comando:

yum install kvm kmod-kvm libvirt virt-manager

Fate attenzione ad installare anche virt-manager (non è sempre una dipendenza) che è un’ottimo front end ad interfaccia grafica – sviluppato da Red Hat – per gestire le macchine virtuali KVM.

Virt-manager è sviluppato sulla libreria libvirt, permettendo quindi una gestione contemporanea di parecchi Host remoti con differenti piattaforme di virtualizzazione – ad oggi libvirt è compatibile con KVM/QEMU, XEN, LXC, OpenVZ, User Mode Linux, Virtualbox, VMware ESX e GSX, VMware Workstation e Player, Microsoft Hyper-V.

Una volta completata la procedura di installazione potete creare una nuova macchina virtuale direttamente con Virt-Manager oppure con il seguente comando da shell:

virt-install -n myVirtualMachine -r 512 --virt-type=kvm -f /path/to/diskImage.img --vnc -c /path/to/osImage

Il flag -n è il nome della Macchina Virtuale, -r la quantità di RAM della Macchina, -f il path ad un file immagine di un dispositivo a blocchi e -c il path ad un’immagine ISO.

Per creare un file immagine di un dispositivo a blocchi è sufficiente utilizzare dd con il quale verrà creato un file binario grezzo.

Parsing di file XML con Python e lxml

Da quando Ajax, le applicazioni Web ed il cloud computing si sono grandemente diffusi, è sempre più importante scegliere il miglior protocollo di comunicazione tramite il quale rendere semplice e veloce la comunicazione tra Client e Server.

Le uniche due specifiche standard per l’interscambio di dati stutturati tra un Browser e un Server (ospitante API) sono JSON ed XML. Entrambi i protocolli hanno vantaggi e svantaggi ed entrambi aggiungono overhead alla comunicazione; per JSON però esistono librerie di semplice utilizzo che con poche righe di codice permettono la serializzazione e la de-serializzazione dei dati trasferiti, mentre per XML tutto è leggermente più complicato.

Oggi vedremo in azione Python che grazie ad LXML mette a disposizione ottimi strumenti per il parsing di dati strutturati con XML. LXML offre strumenti per XML, HTML ed HTML5 ma anche per CSS.

LXML vanta ottime prestazioni, sicuramente le migliori su Python, essendo direttamente sviluppato sulle API della potente libreria libxml2. Qui potete trovare dei benchmark dal sito ufficiale di LXML e dal blog di Ian Bicking, nel blog di Ian emerge che LXML ottiene le migliori prestazioni nel Parsing e nella Serializzazione pur richiedendo una superiore quantità di Ram. LXML è inoltre una libreria solida e stabile. Utilizzo io stesso LXML in produzione su alcuni Server Web per l’intescambio di dati in applicazioni Web ed applicazioni cloud.

Eseguire il parsing di dati XML è molto semplice, soprattutto utilizzando Xpath, e permette un buon livello di flessibilità. Per l’esempio è stato utilizzato un file XML contenente Feed RSS non molto complesso, ma giungiamo subito al codice.


#Importiamo la libreria html, xpath è compatibile sia con HTML che XML
#per comodità utilizziamo un Alias (parser)
from lxml.html as parser

#Apriamo in maniera tradizionale il file XML
f = open("myXML.xml")
file = f.read()

#Importiamo l'XML in un oggetto lxml
xmlDoc = parser.document_fromstring(file)
for item in xmlDoc.xpath("//item"):

#Estraiamo il contenuto testuale del nodo XML
print item.text_content()

#Estraiamo dati dagli attributi del nodo XML
print item.attrib['attribName']

La riga più interessante è quella che contiene xmlDoc.xpath che vuole come argomento il nome del tag xml/html da estrarre dal documento XML, ovviamente è possibile anche effettuare selezioni di nodi più complesse di quella nell’esempio ma un parsing tradizionale è sempre il punto di partenza.

L’utilizzo dello standard OVA/OVF per lo scambio di Applicazioni Virtuali

Da quando il Cloud Computing ha letteralmente fatto perdere la testa a tutto il mondo dell’Information Technology, decine di aziende e centinaia di progetti open source hanno sviluppato nuovi strumenti ed architetture per la Virtualizzazione e per la realizzazione di una Private Cloud.

Il concetto di Virtualizzazione si basa – in maniera astratta – sul pensiero “linuxiano” che tutto è un file (everything is a file). Partendo da questo presupposto è possibile immaginare un’intera Macchina (Hardware e Software) come un unico File, o gruppo di files, che è in grado di funzionare perfettamente come un computer fisico.

I vantaggi della virtualizzazione, dall'isolamento dell'Hardware alla portabilità

La virtualizzazione viene sempre più utilizzata per esigenze di consolidamento e di risparmio energetico, inoltre permette grossi risparmi per la gestione ed il deployment di infrastrutture informatiche.

Oltre alle grandiose potenzialità nell’ambito di CED e Datacenter, la virtualizzazione ed il cloud computing in genere offrono ottimi vantaggi durante lo sviluppo di software di qualsiasi genere (dallo sviluppo di Applicazioni Web allo sviluppo di Installazioni multimediali). In pratica la virtualizzazione apre nuovi orizzonti per i Team di sviluppo “distribuiti” che, tramite la rete, possono condividere facilmente applicazioni e sincronizzare i loro ambienti di lavoro, sicuri di possedere tutti lo stesso ambiente virtuale nel quale sviluppare e testare il loro nuovo software.

I formati – standard – OVF (Open Virtualization Format) ed OVA permettono lo scambio di un singolo File contenente tutto il necessario per l’installazione e l’avvio di una o più macchine virtuali; il primo dei vantaggi del formato OVF è la portabilità: non importa quale piattaforma di virtualizzazione viene utilizzata, Oracle, Red Hat, IBM e VMware supportano tutti lo standard OVF ed esiste anche una libreria open source compatibile con OVF (http://gitorious.org/open-ovf).

In poche parole la virtualizzazione è una delle più interessanti ed utili tecnologie – relativamente – recenti, che, grazie anche ad un sempre crescente supporto Hardware (estensioni ed API delle CPU di ultima generazione) permettono un’esecuzione performante delle macchine virtuali senza appesantire la Macchina fisica che le ospita.

Articoli sul Web Marketing e Social Media Marketing

Da poco più di una settimana abbiamo avviato un blog sul Web Marketing ed il Social Media Marketing in italiano. Il progetto rientra nel percorso aziendale della mia Start up nell’ambito del Web: Netdesign.

Col blog intendiamo promuovere e divulgare materiale informativo sull’utilizzo del Web ai fini promozionali e commerciali. Sono già presenti una decina di articoli che spiegano facilmente le tecniche di Marketing sul Web e del Social Media Marketing.

Il blog è tecnologicamente basato su Tumblr, un sistema di blogging con funzionalità sociali tramite il quale è possibile il “following” di un blog così come avviene su Twitter.

Per prendere familiarità con gli argomenti trattati, vi consigliamo vivamente di leggere gli articoli sul Web Marketing per piccole aziende e sull’Article Marketing come propulsore al Web Marketing.

Speriamo che il materiale pubblicato possa aiutare Voi e la Vostra azienda a sfruttare positivamente le tecnologie del Web per un’ottima e strategica promozione del vostro marchio o prodotto.

Opening Raw Images with GIMP – Aprire immagini RAW con GIP

Gimp doesn’t support natively RAW image files but there is an “extension” that can do it; you should install on your linux-box gimp-ufraw:

on Ubundu/Debian

apt-get install gimp-ufraw

on Centos/Fedora

yum install ufraw

Gimp non supporta nativamente l’apertura di immagini RAW esiste però un’estensione che può farlo, basta installare gimp-ufraw (sopra i comandi).

Fabio Buda live@Zo * 28-03-09


Software audio commerciale per GNU/Linux


Girando tra le pagine di Jack-audio-connection-kit, ho trovato un software per l’audio [commerciale] che gira sotto GNU/Linux; Il programma si chiama Renosie e sembra un clone totalmente multipiattaforma di Reason. Già dal nome gli sviluppatori sembrano aver creativamente anagrammato (tagliando e cucendo qualche lettera) il nome del famoso suquencer anche se l’interfaccia grafica è del tutto differente ed anche le tecniche di utilizzo sembrano molto diverse. Ancora non l’ho messo alla prova, ma ho ascoltato alcune patch interessanti, poi il fatto che giri sotto GNU/Linux, funzioni con ALSA e con Jack, è un buon motivo per testarlo. Vi dico che costa quasi 50,0 € e che forse è una buona alternativa per “spostare” alcune categorie di musicisti alla geniale piattaforma GNU.