Blog

  • WordPress plugin: Ozh’ Admin Drop Down Menu, per migliorare la barra di amministrazione di WordPress

    Diciamoci la verità: la sidebar di WordPress, la barra di navigazione che vi permette di accedere a tutte le funzioni di un blog [e che trovate sulla sinistra della pagina di amministrazione di un blog], occupa molto spazio sullo schermo.

    A nulla vale la riduzione della barra tramite l’apposita funzionalità: la barra occupa meno spazio, ma non è più molto usabile (in particolare, non si riesce a capire “a colpo d’occhio” cosa faccia un determinato pulsante).

    Girovagando per i plugin di WordPress ho trovato un ottimo plugin per risolvere il mio problema: Ozh’ Admin Drop Down Menu. Il plugin riposiziona la barra di amministrazione in orizzontale, occupando solo una “striscia” del vostro schermo; presenta le funzionalità principali come titoli del menu, e le sotto-funzionalità sono presentate con un menu drop down (a scomparsa).

    In questo modo la barra di amministrazione occupa soltanto una piccola porzione dello schermo, e nello stesso tempo presenta tutte le funzionalità in maniera chiara e intuitiva. Da provare!

  • Ordinare per nome i bookmark (segnalibri) su Google Chrome

    Recentemente sono passato a Chrome come browser principale su tutti i miei computer.

    Una delle funzionalità che mi manca di Firefox è quella dell’ordinamento dei bookmarks (il menu contestuale che si apre quando cliccate su una cartella di bookmark e scegliete “Ordina per nome”). Dopo aver cercato questa feature su Chrome, ho scoperto che la possibilità di ordinare per nome i segnalibri è possibile anche su Chrome, tuttavia la modalità di utilizzo è un po’ differente.

    Per ordinare i bookmark, apriamo il gestore dei bookmark (⌘+Alt+B su Mac) e apriamo la cartella con i bookmark che vogliamo ordinare.  Dal menu in alto, “Organizza”, scegliamo “Riordina per titolo”.

    I bookmark della cartella selezionata verranno cosìordinati per titolo della pagina web salvata come segnalibro.

  • Un caso curioso: che algoritmo di ricerca informata usano in Trenitalia?

    Vi racconterò di un caso curioso che mi è capitato; come molti di voi sapranno, sono un pendolare tra Bergamo e Milano.

    Lunedì scorso mi trovavo a Sesto San Giovanni, stazione 1° maggio FS, verso le ore 19:30. Il tabellone della stazione, e anche l’orario online di Trenitalia, indicano che il primo treno disponibile per Bergamo è quello delle 20:13, con arrivo a Bergamo alle 21:08 [il treno 10787].

    Per avvicinarmi a Bergamo, ho deciso di prendere il treno delle 19:33 che partiva di lì a poco e diretto a Lecco [il treno 10582]. Infatti, i treni da Milano per Bergamo/Lecco condividono buona parte del percorso fino a Carnate.

    Sceso a Carnate alle 19:49, mi accorgo che da Carnate a Bergamo è disponibile un treno subito dopo, alle 20:01 [il treno 10747], che arriva da Seregno (e quindi non passa sulla tratta da me frequentata; la prima stazione utile dove salire sul treno è proprio Carnate – la mappa ferroviaria della regione Lombardia e il semplice schema che ho preparato vi aiuteranno a capire).

    Risultato? Sono arrivato a Bergamo alle 20:33, anziché 21:08. La soluzione che ho scoperto per puro caso mi ha fatto risparmiare ben 35 minuti, ed è sconcertante che non sia suggerita dal sito di Trenitalia. Ok, sui tabelloni delle stazioni non ci sarebbe spazio materiale per suggerire tutte le possibili combinazioni; ma il sito di Trenitalia le suggerisce (infatti ci chiede di inserire partenza e destinazione). Solitamente, il sito suggerisce le soluzioni con cambi di treno solo se c’è abbastanza tempo per il cambio; mi sembra che 12 minuti siano più che sufficienti per cambiare il treno; oltretutto risparmiare ben 35 minuti è senza dubbio un buon motivo per includere la soluzione tra quelle proposte sull’orario online.

    La mia domanda è quindi: in Trenitalia, come identificano le soluzioni di viaggio da proporre al cliente? Vista l’esperienza che ho descritto, suggerirei di cambiare l’algoritmo di ricerca informata che usano attualmente… ecco un buon inizio. Buona lettura!

    PS: ovviamente tutti i link verso Trenitalia & co. sono in nofollow.

    Update: Andrea mi segnala e mi allega le immagini di un caso analogo: partenza da Bergamo ed arrivo a Milano Lambrate. L’orario ufficiale offre due corse: 9:02-9:41 e 10:02-10:41. Utilizzando un percorso alternativo, invece, è possibile raggiungere Milano Lambrate alle 10:25 partendo da Bergamo alle 9:21 e cambiando treno a Treviglio (treni 24766 e 2094). La domanda si ripete: Trenitalia, che algoritmo di ricerca informata utilizzate?

    Update 2: Stefano F. mi segnala che è più opportuno modellare la rete Trenitalia con una rete di Petri temporizzataInfatti, un algoritmo di ricerca informata non basta, in quanto non tiene conto dell’eventuale ritardo di ogni treno. Si deve integrare l’informazione sulla località e sulle connessioni delle stazioni utilizzando il fattore tempo, pesando ogni arco con il ritardo accumulato da ciascun treno.

  • “Ingannare” la propria mente per sentirsi più giovani?

    Leggo su BBC News un interessante articolo: Can you trick your ageing body into feeling younger. Si tratta di un curioso esperimento, atto a dimostrare quanto la percezione e il modo di vita influisca sulla capacità del corpo umano a sentirsi giovane (o vecchio!).

    L’esperimento consiste nel riunire un gruppo di settantenni/ottantenni in un ambiente che ricordi gli anni 70 (ovvero quando i soggetti avevano 30/40 anni) e obbligarli a vestirsi come negli anni 70, guardare la televisione di quegli anni, parlare di quegli anni al verbo presente.Double Your Converse !

    L’articolo è veramente molto interessante e vi riporto due passi che mi hanno particolarmente incuriosito; il mio consiglio, ovviamente, è quello di leggersi l’articolo per intero: Can you trick your ageing body into feeling younger.

    From the beginning we made it clear to our volunteers that they would be expected to look after themselves. Research in nursing homes shows clearly that giving residents control over their own lives and their own choices has a hugely beneficial impact on health and happiness.

    In one study, residents who were allowed to choose a plant to care for, and when and where to receive visitors, were found 18 months later to be significantly more cheerful, active and alert. They were also far more likely to be still alive.

    Another thing about our 1970s house was that it was full of physical challenges. There were shag pile carpets to trip over, door ridges to step over and lots of slippery linoleum. Research on mice has shown that those who live in a challenging environment live nearly 30% longer than those who in a secure but boring environment.

  • Come eliminare iDisk dalla sidebar del Finder di OSX

    La sidebar del Finder di OSX mi è molto utile: inserisco i cosiddetti “bookmark” per raggiungere velocemente risorse o directory sul mio file-system che mi sono utili.

    Un bookmark scomodo che è presente nella mia sidebar è quello di iDisk. Perché scomodo? Non essendo abbonato a MobileMe, il servizio iDisk è inutile per me. Come fare a togliere il bookmark dalla sidebar?

    Il procedimento è molto semplice:

    • In una finestra qualsiasi del Finder, aprite le preferenze (shortcut: ⌘+ ,)
    • Andate alla scheda “Sidebar”
    • Deselezionate iDisk

    Chiudete e voilà, l’icona di iDisk non è più presente tra i bookmark della sidebar!

  • Primi passi con CSS3: creiamo un gradiente e bottoni dagli angoli arrotondati (rounded corners)

    La versione in sviluppo di CSS, la versione 3, introduce alcune novità molto interessanti per gli sviluppatori web.

    In questo post vi parlerò di due funzionalità molto interessanti, introdotte in CSS3:

    • Un box con lo sfondo a gradiente (sfumatura da un colore all’altro);
    • Un bottone con gli angoli arrotondati (rounded corners).

    A lato vi anticipo, con uno screenshot, il risultato finale (il compito di trovare browser decenti è lasciato come esercizio al lettore).

    Il supporto a CSS3 è, comunque, ancora in fase sperimentale. Il mio consiglio è quello di testare con tutti i browser (soprattutto IE) il proprio lavoro prima di rilasciarlo.

    [A proposito: browsershots è un servizio gratuito che visualizza la pagina richiesta usando tutti i browser disponibili. Il funzionamento è molto semplice: specifichiamo una pagina e scegliamo i browser di cui vogliamo gli screenshot; una volta realizzati gli screenshot li possiamo scaricare sul nostro PC e visualizzarli.]

    Iniziamo quindi con la prima funzionalità di CSS3: i gradienti. Per realizzare un gradiente sono necessarie poche righe di CSS:

    #container {
            [...]
        border: 1px solid #FBDCAE;
        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#FBDCAE'); /* Gradiente: IE */
        background: -webkit-gradient(linear, center top, center bottom, from(#FFFFFF), to(#FBDCAE)); /* Gradiente: Chrome e Safari */
        background: -moz-linear-gradient(top,  #FFFFFF,  #FBDCAE); /* Gradiente: Firefox */
    }
    

    In particolare, tralasciando l’istruzione riguardante il border, abbiamo introdotto tre direttive per realizzare il gradiente. Notiamo che in tutte le istruzioni è obbligatorio specificare il colore iniziale (bianco, #FFFFFF) e il colore finale (arancio, #FBDCAE). In particolare

    • La prima riguarda il browser IE. Specifichiamo soltanto i colori iniziali e finali:
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFF', endColorstr='#FBDCAE');

    • La seconda istruzione riguarda il browser basati su WebKit (Chrome e Safari). In questo caso abbiamo alcune possibilità di customizzazione, come ad esempio il tipo di gradiente (lineare o radiale), la direzione del gradiente (dall’alto verso il basso, da un angolo all’altro, etc.). Nel nostro caso, abbiamo realizzato un gradiente lineare partendo dall’alto verso il basso, e partendo dal bianco per arrivare all’arancio. Per avere più informazioni sui parametri che possiamo passare, vi invito a leggere Safari CSS Visual Effects Guide: Gradients.
      background: -webkit-gradient(linear, center top, center bottom, from(#FFFFFF), to(#FBDCAE));
    • Infine, l’ultima istruzione riguarda le direttive per realizzare il gradiente per il browser Firefox. Anche in questo caso specifichiamo il colore di partenza e quello di arrivo, e la direzione del gradiente (parte dall’alto con un gradiente lineare). Per avere più informazioni sull’istruzione vi invito a leggere la pagina di riferimento su Mozilla Developer Center, -moz-linear-gradient:
      background: -moz-linear-gradient(top,  #FFFFFF,  #FBDCAE)

    Passiamo ora ai pulsanti con gli angoli arrotondati (rounded corners). In questo caso, come avete visto dagli screenshot precedenti, IE non supporta la specifica per i rounded corners (e quindi presenta i “soliti” pulsanti rettangolari, a meno di usare workarounds).

    Le istruzioni CSS3 necessarie per avere bordi arrotondati sono molto semplici:

    input {
        -moz-border-radius: 10px;
        -webkit-border-radius: 10px;
        [...]
    }
    

    Andiamo con ordine:

    • Per il browser Firefox, specificando -moz-border-radius e un valore corrispondente, si introduce un bordo arrotondato con raggio di curvatura pari al valore in pixel specificato (nel nostro caso 10 pixel).
    • Per Safari e Chrome, utilizziamo la proprietà -webkit-border-radius e un valore corrispondente, come nel caso precedente.

    Fine! Ora potete utilizzare i gradienti e i rounded corners nelle vostre pagine web. Come avete visto, possiamo applicare le proprietà descritte ad ogni elemento (non solo agli input come ho descritto nel post, ma anche ai div, vedete i sorgenti allegati!).

  • Come trovare l’uptime di Windows

    Per trovare l’uptime di Windows (ovvero da quanto il sistema è attivo), basta aprire un prompt dei comandi e digitare il comando net statistics server

    La data di avvio del sistema appare nella prima riga (in fugura è rappresentata da un rettangolo rosso).
    Il comando funziona su XP, Vista e 7.

    In alternativa, potete utilizzare un tool (esterno!) rilasciato da Microsoft, chiamato, per l’appunto, uptime. Non necessita di installazione. Dopo aver lanciato il comando (sempre da prompt dei comandi), vi verrà stampato l’uptime corrente del sistema.

  • Dropbox: come sincronizzare files e cartelle esterne alla cartella Dropbox

    Vi ho già parlato di Dropbox e delle sue utili funzionalità; dopo averlo utilizzato per un po’, mi sono accorto di un grosso limite: Dropbox sincronizza “solo” il contenuto della cartella Dropbox. Ho così avvertito la necessità di poter espandere la sincronizzazione anche alle cartelle non incluse nella cartella di riferimento.

    Per realizzare questo workaround ci vengono in aiuto i link simbolici. Come sapete, infatti, per OSX e per GNU/Linux esistono i cosiddetti link simbolici, ovvero degli speciali “rimandi” tra file e directory presenti sul file-system. L’idea è molto semplice: nella cartella Dropbox [cioè la cartella di sincronizzazione] inseriamo un link simbolico ad una cartella che vogliamo sincronizzare, come ad esempio ~/Wallpapers.

    In questo modo la cartella Dropbox contiene un link (e non una copia) alla cartella Wallpapers, ma come risultato anche la cartella Wallpapers verrà sincronizzata grazie a Dropbox!

    Per realizzare la sincronizzazione di files e cartelle esterne alla cartella di sincronizzazione, quindi, aprite un terminale (OSX e GNU/Linux) e digitate:

    • (per aggiungere la sincronizzazione di una directory, in questo caso Wallpapers): ln -s ~/Wallpapers ~/Dropbox/Wallpapers
    • (per aggiungere la sincronizzazione di un file, in questo caso myFile): ln -s ~/myFile ~/Dropbox/myFile

    Fatto! Il file o la directory che avete specificato continuerà a rimanere all’esterno della cartella Dropbox (e voi potrete usarlo come avete sempre fatto) e verrà anche sincronizzato sul vostro account Dropbox (ad ogni modifica!).

    Se utilizzate Windows, invece, l’idea di base è più o meno simile a quella presentata che utilizza i link simbolici, ma in questo caso si usano le junction di NTFS. Il procedimento è spiegato in questo articolo.

  • Perché il mio prossimo schermo non sarà un Apple Cinema Display

    Prima della fine del 2009 sono passato a Mac: la mia scelta è ricaduta su un notebook, in particolare sul MacBook Pro 13′; 13′ perché volevo un notebook portatile, e non un trasportabile da 15′ (o peggio, superiori). Non c’è che dire: dal punto di vista hardware, i componenti e le tecnologie utilizzate sono il top di gamma. Dal punto di vista software, ancora meglio: OSX è il miglior sistema operativo che io abbia mai usato (ok ok, Linux è arrivato secondo per un soffio).

    Durante l’utilizzo, l’unico difetto di cui mi sono accorto è un dead pixel nella parte sinistra dello schermo; il difetto è fastidioso e non ci sono cure, se non sostituire interamente il pannello LCD. Tutto sommato, l’esperienza con Mac è stata delle migliori e sicuramente il mio prossimo computer sarà di nuovo un Mac.

    Oltre che essere uno switcher per quanto riguarda il PC, sempre verso la fine del 2009 sono passato da Nokia ad iPhone: finalmente un telefono che funziona! Il mio vecchio Nokia E65 era un buon telefono, ma confrontato con iPhone ne esce sconfitto su tutti i fronti: utilizzo in WiFi, applicazioni, facilità d’uso (spesso quando utilizzo altri telefoni mi ritrovo a premere sullo schermo, per poi realizzare che non sono touch).

    Anche in questo caso l’esperienza con iPhone è più che positiva, e senz’altro il mio prossimo telefono sarà di nuovo un iPhone; su iPhone ho riscontrato lo stesso difetto che ho riscontrato per il Mac, ovvero un dead pixel. Ho subito chiamato l’assistenza tecnica e il mio telefono è stato sostituito con un telefono rigenerato (“come nuovo”) che non presenta il problema.

    Il prossimo acquisto che vorrei fare è uno schermo esterno per il MacBook Pro, da tenere a casa o in ufficio. La scelta ideale sarebbe Apple Cinema Display, un “compagno” ideale grazie alle sue funzionalità (MagSafe, DisplayPort nativa, etc.). Tuttavia non comprerò un Apple Cinema Display sostanzialmente perché non vorrei ritrovarmi (di nuovo) nella situazione di avere un dead pixel su un prodotto di fascia alta (come tutti i prodotti Apple). Non ho ancora deciso il modello che comprerò, ma ho già deciso i brand su cui mi concentrerò: Samsung, LG e Philips.

    Concludo ripetendo che la mia esperienza con i prodotti Apple è più che positiva, nonostante su due prodotti acquistati io abbia trovato due dead pixels. L’esperienza, in ogni caso, è [quasi] ottima: nei prossimi prodotti Apple che acquisterò spero che non ci siano altri dead pixels!

  • Windows 7: abilitare il login automatico per il vostro utente

    Per una pura questione di comodità ho abilitato il login automatico sulla mia macchina [virtuale] con Windows 7. In questo post vi illustrerò come abilitare il login automatico per il vostro utente; attenzione: questa pratica è scoraggiata per problemi di security, quindi utilizzatela solo se sapete cosa state facendo e l’utilizzo della macchina avviene in ambito controllato.

    Abilitiamo quindi il login automatico seguendo questa procedura passo-passo:

    1. Premete il tasto Win + R
    2. Nel box creato, scrivete control userpasswords2 seguito da Invio
    3. Rimuovete la casella di spunta dalla casella “Gli utenti devono specificare username e password per utilizzare il computer”
    4. Cliccate su OK, comparirà la schermata dove inserire la password per abilitare definitivamente il login automatico
    5. Confermate e chiudete le impostazioni. 

    Fatto! Ora provate a riavviare e controllare se il login avviene automaticamente.