Archive for the 'IT' Category

VirtualBox e gli “shared folders”

Partiamo dalla situazione di test:

  • host = Microsoft Windows XP (SP3);
  • guest = Ubuntu Linux (8.10).

Dopo aver passato svariati blog, più o meno ufficiali, sono arrivato a risolvere il problema. Seguendo la documentazione ufficiale/originale si presentava sempre il seguente errore: “mounting failed with the error: Protocol error”.

Qui di seguito vediamo le directory da condividere verso il guest.

La documentazione originali porterebbe ad aggiungere le seguenti linee nel file /etc/fstab.

swap /mnt/shared/swap vboxsf auto 0 0
vim /mnt/shared/vim vboxsf auto 0 0

Il problema: attualmente non è possibile che la directory su cui effettuare il mount abbia lo stesso nome della “risorsa” da condividere.

Soluzione al problema: ecco la nuova versione del file fstab.

swap /mnt/shared/vb_swap vboxsf auto 0 0
vim /mnt/shared/vb_vim vboxsf auto 0 0

A questo punto il comando sudo mount swap o sudo mount vim permettono di condividere le  “risorse” in questione.

L’evento Exited nella classe Process (System.Diagnostics)

Della serie: come perdere più di un mese di sviluppo per arrivare pure ad avere una soluzione a dir poco orribile!

Lasciamo perdere i vari ricorsi storici… parliamo invece del namespace System.Diagnostics. Tale “libreria” .Net contiene un’utilissima classe chiamata Process. Attraverso un oggetto di questo tipo possiamo lanciare “in parallelo” altri processi e, soprattutto, possiamo in qualche modo controllarne il loro avanzamento.

D’indubbia utilità è l’evento Exited: viene invocato quando il relativo processo termina permettendomi di mantenere l’applicazione chiamante “event oriented” ed evitando la necessità di realizzare un orribile polling a tempo (magari pilotato da qualche bel timer) al fine “checcare” lo stato dell’applicazione lanciata.

Attenzione però: tal evento viene generato solo se la proprietà EnableRaisingEvents viene precedentemente settata a true. La relativa documentazione nel portale MSDN è fatta bene, ma se, come me, non si legge con attenzione… :)

Best Practice in JavaScript e xHTML

Giusto un mese fa, in Smashing Magazine, è comparso un post (che usa come “base della discussione” anche la libreria JavaScript jQuery) interessante che riporta una serie di linee guida nell’uso di JavaScript: in particolare viene posta molta attenzione sulla possibilità che il browser non sia in grado di eseguire il codice JavaScript (come spesso accade in molti PDA).

La mia attenzione è stata catturata in particolare dalla regola numero 2: NEVER Depend on Javascript.

Bad practice

<script language="javascript">
var now = new Date();
if(now.getHours() < 12)
document.write('Good Morning!');
else
document.write('Good Afternoon!');
</script>

Soluzione proposta

<p title="Good Day Message">Good Morning!</p>
var now = new Date();
if(now.getHours() >= 12)
{
var goodDay = $('p[title="Good Day Message"]');
goodDay.text('Good Afternoon!');
}

Non sono molto d’accordo circa il best practice proposto, motivo: una parte dei contenuti viene ancora generata dinamicamente via JavaScript , sottraendo quindi questi ultmi all’indicizzazione da parte dei motri di ricerca (ricordo che i motori di ricerca non “eseguono” gli script presenti o “invocati” nella pagina). In sostanza, come sostiene da tempo il mio caro amico Francesco Boschian: tutti i contenuti devono essere sempre presenti nella pagina, non generati “dinamicamente” via scripting (vedere come buon esempio il sito della Apple).

Qui di seguito propongo una soluzione molto “artiginale e grezza”, ma che nella sua modestia rappresenta un valido workaround per aggirare la cosa.

<input type="hidden" id="str1" value="Good morning!" />
<input type="hidden" id="str2" value="Good afternoon!" />
<p title="msg">Good Morning!</p>
var now = new Date();
if(now.getHours() >= 12)
{
var toSet = $('#str2').value;
}
else
{
var toSet = $('#str1').value;
}
var msg = $('#msg');
msg.text(toSet);

Evidente, purtroppo, la ripetizione della stringa “Good morning!”. Se però lato server possiamo sfruttare famework quali PHP o Asp.Net, il codice può diventare assai più “gradevole alla vista” .

…ancora sulle espressioni regolari!

Segnalo questo interessante post che ho letto quest’oggi in Coding Horror. L’argomento in questione sono le espressioni regolari (argomento già da me trattato ;) ). La parte che più mi è piaciuta è la lista delle considerazioni finali, in particolare l’ultimo punto, il (4): “Regular expressions are not Parsers”.

Per chi comincia ad usare questo potente strumento e comincia a provarci gusto, è bene che tenga a mente quel punto!

HTTP request flow diagram

Segnalo questo interessantissimo post di Simone Chiaretta che pubblica un utilissimo diagramma sul funzionamento di una http request all’interno di un server web.

Il diagramma originale è stato realizzato tramite Microsoft Office Visio da Alan Dean.

Nel post originale, di Simone, potrete trovare tutti i link per scaricare l’intero diagramma in vari formati.

Gmail: “client” di posta predefinito

Segnalo l’utilissima applicazione gAttach! che permette di rendere il servizio web-mail di Google come “gestore predefinito” di posta nel vostro sistema Microsoft Windows.

Qui di seguito vi riporto l’elenco delle caratteristiche che potete ritrovare anche nel sito ufficiale dell’applicazione:

  • send emails directly from:
    • Windows Explorer
    • Microsoft Office
    • Adobe Acrobat
    • Windows Live Photo Gallery
    • Internet Explorer
    • Mozilla Firefox
    • .. and many more;
  • automatically attach files from your PC to a new email without manually uploading each file;
  • choose to suppress the annoying standard text provided by Windows (“Your attachments are ready to send..”);
  • handle “mailto” email links in web pages.

VirtualBox ed Ubuntu 8.04

Ieri, finalmente, ho trovato un po’ di tempo per poter provare l’applicativo per la virtualizzazione VirtualBox (che mi è stato segnalato dal buon Giampaolo, socio di 1nn0va).

Quale miglior banco di prova se non l’ultima versione della distribuzione Gnu/Linux della Canonical Ltd., Ubuntu Linux 8.04! ;)

Abituato ad usare il ben più noto software VMware, non ho trovato alcuna difficoltà ad adattarmi al ben fatto VirtualBox.

Gli unici inconvenienti sono derivati dall’adattare la buona Ubuntu all’hardware-model del VirtualBox. In particolare aumentare la risoluzione del monitor che, inizialmente, non voleva saperne di andare oltre i modesti 800×600.

Perse un paio d’ore “spulciando” nei vari blog (scovati dall’indispensabile Google) e dopo una decina di tentativi sono arrivato a risolvere il mio problemino.

Riporto qui di seguito i passi che mi hanno condotto all’obbiettivo:

  • una volta avviata la macchian virtuale con la vostra installazione Ubuntu, andare nella voce di menù Devices della finestra della macchina virtuale e cliccare sull’item Install Guest Additions… A questo punto vi verrà “montata” una nuova immagine (o CD-Rom, come preferite chiamarlo);
  • da terminale, entrate nella directory dell’immagine appena montata ed eseguite il seguente comando sudo ./VBoxLinuxAdditions.run all;
  • verificare che nella directory /usr/lib/xorg/modules/drivers sia presente il file vboxvideo_drv.so al fine di determinare se lo step precedente è stato eseguito con successo;
  • ora lanciamo il tool Screen and Graphics Preferences attraverso la seguente riga di comando (ovviamente sempre da terminale) sudo displayconfig-gtk;
  • selezionare il driver vboxvideo (nel tab Graphic Card) e la risoluzione che più vi aggrada (nel tab Screen)
  • al fine di vedere le modifiche apportate dovrete riavviare il server video tramite la pressione dei tasti Ctrl + Alt + Backspace;
  • probabilmente non riuscirete più a vedere il puntatore del vostro mouse (nella macchina virtuale, ovviamente). Per risolvere a questo inconveniente aprite il file /etc/X11/xorg.conf
  • nella sezione InputDevice, impostare il valore vboxmouse alla voce Driver;
  • riavviando nuovamente il server grafico. Tutto ora dovrebbe essere in ordine! ;)

Full Circle Magazine

Sebbene questa rivista abbia compiuto un anno di vita proprio con il numero corrente, non ne avevo ancora mai sentito parlare. Forse mi sto allontanando un po’ troppo dal mondo Linux! Devo rimediare quanto prima! ;)

Il magazine in questione tratta esclusivamente argomenti legati alla distribuzione linux Ubuntu. A vedere l’ultimo numero direi che è proprio ben fatta. Quasi quasi mi scarico anche i numeri precedenti… ;)

Il link relativo è già stato inserito (e “taggato” ;) ) nella mia collezione di link in del.icio.us. Quanto prima inserirò un link permanete, nel mio blog, a questa collezione personale.

Hot-fix roll-up per Visual Studio 2008 e Visual Web Developer 2008

Segnalo che pochi giorni fa Microsoft ha rilasciato una bug-fix per Visual Studio 2008 e Visual Web Developer 2008 che risolve alcuni problemi con:

  • la modalità view Source e Design view dell’ HTML designer;
  • editor HTML e Javascript;
  • modalità di build di un web site.

Molti sono i blog che segnalano questa notizia: io riporto come fonte il post di Pietro Brambati (Developer Evangelist).

Maggiori informazioni possono essere trovate qui e qui.

Addon (free) per OpenOffice

Vi voglio segnalare due addon per OpenOffice davvero molto utili:

  1. LanguageTool;
  2. OpenOffice.org2GoogleDocs.

Il primo arricchisce il nostro OpenOffice con un correttore grammaticale (sfortunatamente solo per l’inglese, il tedesco, il polacco e l’olandese); il secondo vi permette di importare ed esportare, in modo diretto, i vostri documenti sul vostro account Google Docs.

Il correttore grammaticale può essere “customizzato” con nuove regole definite in un file XML (ovviamente seguendo un’opportuna sintassi :D )

I post originali li potete trovare qui e qui.