giovedì 28 maggio 2009

Windows - Ridurre ad icona un programma che non risponde

Capita di tanto in tanto che un programma possa temporaneamente non rispondere ai comandi e restare fisso in primo pianno.
La prossima volta che vi dovese capitare, sappiate che c'è la possibilità di ridurre ad icona questi programmi.
Infatti è possibile ridurre ad icona un programma, utilizzando il Task Manager. Dunque fate CTRL+ALT+CANC e poi Task Manager.



Ora aprendo il menù contestuale con tasto destro sulla applicazione bloccata, si ha l'opzione Riduci a icona. In questo modo l'applicazione dovrebbe abbassarsi sulla barra delle applicazioni liberando il desktop.

lunedì 18 maggio 2009

NTFS - montare un disco esterno in read-write mode

In un post precedente abbiamo visto come abilitare il supporto a file system NTFS su un AcerOne installando ntfs-3g e fuse.
Oggi vedremo come fare per montare in automatico questi file system in modalità Read-Write (RW). Infatti, pur facendo un lavoro ottimo, ntfs-3g monta i dischi in sola lettura (RO) come default, quindi senza dare la possibilità di scrivere sul disco.

Io vi sconsiglio di usare il tool NTFS-Config, l'ho provato e sul mio AcerOne ha peggiorato le case impostando una configurazione sbagliata dopo la quale riuscivo a montare dischi NTFS solo se ero loggato come root.

La cosa è abbastanza semplice, è necessario cambiare la configurazione del file fstab presente nella cartella etc (/etc/fstab). Gli step da seguire sono:

  • Aprire il file fstab in edit con i diritti da super utente:
    sudo mousepad /etc/fstab &
  • cercare la riga relativa al dispositivo da montare. Nel mio caso :
    /dev/sdb1 /media/DATA ntfs-3g defaults,nosuid,nodev,locale=it_IT.UTF-8 0 0
  • sostituire questa riga con la seguente :
    /dev/sdb1 /media/DATA ntfs-3g silent,users,umask=0,locale=it_IT.UTF-8 0 0
Adesso dovreste poter mondate in automatico un disco esterno NTFS già in modalità RW. Dunque potrete scaricare file torrent direttamente sul vostro disco esterno!
*************************************************************************************
UPDATE
*************************************************************************************

venerdì 15 maggio 2009

Visual Studio: cancellare o rimuovere un progetto


Dopo una lunga pausa, la settimana scorsa ho avuto la necessità di riprendere Visual Studio 2005 per la realizzazione di un portale web in Asp.net. Creando una nuova soluzione e poi creando al suo in terno una serie di progetti, mi sono imbattuto in una sgradevole situazione:
quella di non sapere come fare a cancellare/rimuovere un progetto da una soluzione!
La cosa non è semplice come sembra ed ho dovuto impiegare un pò del mio "prezioso tempo" :) a cercare la soluzione.

I definitiva è possibile cancellare un progetto permanentemente, rimuoverlo dalla soluzione ma tenedo il progetto o semplicemente non caricarlo temporaneamente. Ognuno di questi casi corrisponde ad un livello di disassociazione del progetto dalla soluzione.

  • Rimuovere - puoi rimuovere il progetto dalla soluzione senza cancellarlo fisicamente nel seguente modo:
    • da Esplora soluzione selezionare il progetto
    • dal menù Modifica selezionare Rimuovi, oppure tasto destro e poi rimuovi dal menù contestuale. Se non trovi la voce rimuovi, leggi la nota in fondo al post.

  • Cancellare - puoi cancellare definitivamente il progetto ma al di fuori fi Visual Studio. Quindi è necessario fare nel seguente modo:
    • si rimuovono i riferimenti al progetto dalla soluzione, quindi da Esplora soluzione selezionare il progetto
    • dal menù Modifica selezionare Rimuovi, oppure tasto destro e poi rimuovi dal menù contestuale. Se non trovi la voce rimuovi, leggi la nota in fondo al post.
    • e poi si cancellano manualmente i file utilizzando esplora risorse

  • Unload - puoi rimuovere il progetto dalla soluzione temporaneamente nel seguente modo:
    • da Esplora soluzione selezionare il progetto
    • dal menù Progetto selezionare Unload, oppure tasto destro e poi unload dal menù contestuale. Se non trovi la voce unload, leggi la nota in fondo al post.
Per completezza riporto i link alla documentazione Microsoft:
Visual Studio 2003
Visual Studio 2005
Visual Studio 2008

NOTA - se non trovare le voci di menù Rimuovi o Scarica (unload), dal menù Strumenti seleziona Opzioni. dalla finestra delle opzioni seleziona Progetti e Soluzioni e poi Generale dal menù ad albero.
Seleziona "Mostra sempre la soluzione" (Always Show Solution), adesso dovresti vedere la due voci nel menù edit ed in quello contestuale.

giovedì 7 maggio 2009

Blogger: inserire annunci AddSense nei posts.


Se volete guadagnare qualche soldino dal vostro blog, vi consiglio di inserire degli annunci AddSense. Ovviamente la posizione migliore per un annuncio pubblicitario è all'interno dei post.
Gli step da seguire sono semplici:
  • prima di tutto, scegliete il tipo di annuncio che volete piazzare e recuperate lo script fornito da Google.

  • lo script così come fornito da Google non è utilizzabile all'interno dei post perchè racchiusi all'interno di tag commenti e quindi vengono ignorati dal motore di rendering di Blogger. Quindi è necessario trattare il codice sostituendo i carattesi speciali con gli equivalenti codici HTML
    (es. il simbolo < verrà sostituito con &lt; oppure " con &quot;) in modo da ottenere sul browser esattamente il codice originale. È possibile apportare le modifiche ai tag attraverso uno strumento reperibile a questo indirizzo: http://blogcrowds.com/resources/parse_html.php. In realtà è sufficiente cambiare <!-- ... --> con &lt;!-- ... --&gt; .

  • andare ora alla sezione Layout -> Modifica HTML del vostro blog. Dopo aver fatto un backup del modello completo, è necesario espandere i modelli widget spuntando il box in alto a sinistra.

  • Se volete inserire un annuncio sotto il titolo di ogni post della home page, cercate l'elemento
    <div class='post-header-line-1'/>
    ed inserite il codice modificato subito dopo questa riga.

  • Se invece volete inserire un annuncio sotto il titolo di un post quando esso viene selezionato (visualizzato da solo), bisogna racchiudete il codice modificato all'interno di una condiziona if :
    <b:if cond='data:blog.pageType == "item"'>

    (Inserite qui il codice adsense modificato)

    <b:else />

  • ora salvete il nuovo modello... dovreste vedere l'elenco gli annunci come avete tanto desiderato!!!

domenica 3 maggio 2009

Blogger: inserire gli "Articoli Correlati" alla fine di ogni post.


Per avere un blog di successo è necessario cercare di aumentare il numero di visite giornaliere ma anche fare in modo che i visitatori restino a lungo sul tuo blog trovando facilmente le notizie che cercano.
Un accorgimento che può aiutarti in questo compito è quello di mettere a disposizione dei visitatori un elenco di articoli correlati.
Il meccanismo di funzionamento è semplice ed è basato sulle etichette assegnate ad ogni post:
post con etichette comuni sono post simili quindi correlati.

Gli step da seguire sono semplici:
  • andare alla sezione Layout -> Modifica HTML e dopo aver fatto un backup del modello completo è necessario espandere i modelli widget spuntando il box in alto a sinistra.

  • ora cercate l'elemento </head> ed inserite il seguente codice subito prima di questa riga.
    <script type='text/javascript'>
    //<![CDATA[
    var relatedTitles = new Array();
    var relatedTitlesNum = 0;
    var relatedUrls = new Array();
    function related_results_labels(json) {
    for (var i = 0; i < json.feed.entry.length; i++) {
    var entry = json.feed.entry[i];
    relatedTitles[relatedTitlesNum] = entry.title.$t;
    for (var k = 0; k < entry.link.length; k++) {
    if (entry.link[k].rel == 'alternate') {
    relatedUrls[relatedTitlesNum] = entry.link[k].href;
    relatedTitlesNum++;
    break;
    }
    }
    }
    }
    function removeRelatedDuplicates() {
    var tmp = new Array(0);
    var tmp2 = new Array(0);
    for(var i = 0; i < relatedUrls.length; i++) {
    if(!contains(tmp, relatedUrls[i])) {
    tmp.length += 1;
    tmp[tmp.length - 1] = relatedUrls[i];
    tmp2.length += 1;
    tmp2[tmp2.length - 1] = relatedTitles[i];
    }
    }
    relatedTitles = tmp2;
    relatedUrls = tmp;
    }
    function contains(a, e) {
    for(var j = 0; j < a.length; j++) if (a[j]==e) return true;
    return false;
    }
    function printRelatedLabels() {
    var r = Math.floor((relatedTitles.length - 1) * Math.random());
    var i = 0;
    document.write('<ul>');
    while (i < relatedTitles.length && i < 20) {
    document.write('<li><a href="' + relatedUrls[r] + '">' + relatedTitles[r] + '</a></li>');
    if (r < relatedTitles.length - 1) {
    r++;
    } else {
    r = 0;
    }
    i++;
    }
    document.write('</ul>');
    }
    //]]>
    </script>
  • adesso cercate questo la seguente porzione di codice
    <b:if cond='data:post.labels'>
    <data:postLabelsLabel/>
    <b:loop values='data:post.labels' var='label'>
    <a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'>,</b:if>
    </b:loop>
    </b:if>

    e sostituitelo con questo
    <b:if cond='data:post.labels'>
    <data:postLabelsLabel/>
    <b:loop values='data:post.labels' var='label'>
    <a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>

    <b:if cond='data:blog.pageType == &quot;item&quot;'>
    <script expr:src='&quot;/feeds/posts/default/-/&quot; + data:label.name + &quot;?alt=json-in-script&amp;callback=related_results_labels&amp;max-results=10&quot;' type='text/javascript'/>
    </b:if>

    </b:loop>
    </b:if>
  • infine posizionatevi subito dopo l'elemento <div>...</div> che racchiude la porzione di codice modificata al punto precedente ed inserite il seguente codice
    <div><span class='post-related-articles'>
    <b:if cond='data:blog.pageType == &quot;item&quot;'>
    <div class='similiar'>
    <div class='widget-content'><br/>
    <h3 style='color:#FF9900;'>Articoli correlati</h3>
    <div id='data2007'/>
    <script type='text/javascript'>
    removeRelatedDuplicates();
    printRelatedLabels();
    </script>
    </div>
    </div>
    </b:if>
    </span> </div>


  • salvete il nuovo modello... dovreste vedere l'elenco degli articoli correlati subito dopo la lista delle etichette (come su questo post).

*************************************************************************************
UPDATE
*************************************************************************************