Code And Run

Category: Blog

  • Sublime Text

    I’ve created a new category on this blog: My Choices. Here I’ll talk about software, tech.. anything I use and I think It’s worth a try. I don’t want to give a full description or review but just few tips, pros and cons.

    Let’s start with a text editor/IDE.

    Sublime Text 2

    I’m always looking for a good text editor that can help me working on simple text files but also on small projects (typically javascript or python). I loved vim (ok, vim is a religion, non an editor 😉 and I continue using it but when I want something of user-friendly it’s not really a good choice.

    I start using PSPad, then I switch to Notepad++, then to UltraEdit. Each of these has many features and can be considered a great editor but I think this choice (the editor is one of my most used software) is also a matter of taste.

    What I want is:

    • a light but good looking user interface;
    • cross platform (I switch frequently from windows to linux and maybe in future Mac OS);
    • programmability (not too complicated, just scripting of executing bat/sh);
    • column selection;
    • colour highlighting and formatting for source code;
    • single file/projects management; After trying for some time Sublime Text 2, I can say it satisfy all these needs. It is one of the fastest editors I’ve tried out, with a light and interference free UI, it’s cross-platform and has a great community of developers that creates plug-ins and themes for any needs.

    It’s definitely my choice! 😀

  • Automattic’s Worldwide WP 5k

    So, here we are. Me and my wife went for the Automattic’s Worldwide WP 5k 2012 from lake Maggiore in northern Italy_!!_

    Here is what we have seen at the end of the 5 kilometers (then we continued for a while, also because we have to came back home 😛 )

    image

    And here is the GPS track!

    Laveno Cerro

    Vía Garmin Connect – alexmufatti

  • San Clemente

    Breve escursione a San Clemente.

    Per variare un po' il solito percorso decido di salire dalla cava di Caravate. Prima faccio però tappa alla chiesetta dei frati che è lungo la strada, appena prima dell’inizio del sentiero.

    image

    Appena lasciata la chiesetta mi avventuro nel bosco. Non ricordo bene la strada ma fortunatamente non ci sono diramazioni particolari. La salita è inizialmente facile ma poi abbastanza impegnativa, soprattutto per via del fondo ghiaioso con molti sassi smossi.

    image

    Scendendo alcune volte dalla sella riesco ad arrivare fino alla Balconata Picuz dalla quale si gode davvero di una bella vista!!

    image

    Decido di non salire fino al paesello ma di avventurarmi in discesa per un percorso mai fatto prima. Il sentiero è divertente e ben tenuto, ci sono parecchie diramazioni; di volta in volta scelgo la via che mi pare più percorribile.

    Quando sono ormai a valle uno di questi bivi mi porta in un sentiero cieco e devo farmi largo tra rami e rovi per ritornare su una traccia battuta.

    San Clemente riserva sempre delle novità. Sia la salita che la discesa che ho fatto in questo percorso non li avevo mai percorsi e, a giudicare da tutti i bivi che ho incontrato, penso che passerà ancora un bel po' di tempo prima che possa dire di aver provato tutte le varianti!

    San Clemente

    Vía Garmin Connect – alexmufatti

  • Silverlight datagrid RowDetails Scrollbar Issue

    While developing a customer application in Silverlight 4, we find a bug in the standard datagrid control of the framework.

    If you have a custom datagrid RowDetailsTemplate and this is opened and closed by a button click, you can see that, when opening the last visible row in your datagrid, the RowDetails  remains hidden, or partially hidden because the grid does not scroll automatically down to fully reveal it.

    The only work-around I’ve found to avoid this misbehavior is to add the RowDetailsVisibilityChanged event to the grid and do the following:

    double _rowheight = 0;
    private void MyGrid_RowDetailsVisibilityChanged(object sender, DataGridRowDetailsEventArgs e)
    {
    if (e.Row.DetailsVisibility == System.Windows.Visibility.Visible)
    {
    _rowheight = e.Row.ActualHeight;
    e.Row.Height = e.DetailsElement.DesiredSize.Height + _rowheight;
    MyGrid.Dispatcher.BeginInvoke(delegate
    {
    MyGrid.Focus();
    MyGrid.UpdateLayout();
    MyGrid.SelectedItem = e.Row.DataContext;
    MyGrid.CurrentColumn = SettingGrid.Columns[0];
    MyGrid.ScrollIntoView(MyGrid.SelectedItem, MyGrid.Columns[0]);
    });
    }
    else
    {
    e.Row.Height = _rowheight;
    MyGrid.Dispatcher.BeginInvoke(delegate
    {
    MyGrid.Focus();
    MyGrid.UpdateLayout();
    });
    }
    }
    
    double _rowheight = 0;
    private void MyGrid_RowDetailsVisibilityChanged(object sender, DataGridRowDetailsEventArgs e)
    {
    if (e.Row.DetailsVisibility == System.Windows.Visibility.Visible)
    {
    _rowheight = e.Row.ActualHeight;
    e.Row.Height = e.DetailsElement.DesiredSize.Height + _rowheight;
    MyGrid.Dispatcher.BeginInvoke(delegate
    {
    MyGrid.Focus();
    MyGrid.UpdateLayout();
    MyGrid.SelectedItem = e.Row.DataContext;
    MyGrid.CurrentColumn = SettingGrid.Columns[0];
    MyGrid.ScrollIntoView(MyGrid.SelectedItem, MyGrid.Columns[0]);
    });
    }
    else
    {
    e.Row.Height = _rowheight;
    MyGrid.Dispatcher.BeginInvoke(delegate
    {
    MyGrid.Focus();
    MyGrid.UpdateLayout();
    });
    }
    }
    

    As you can see the trick is to expand the grid row so that its height is equals to the height of the row details. Doing so you can than call the method ScrollIntoView to reveal the whole row details. When the row details is closed, you have to restore the original row height.

    A simple trick to fix one of the countless bugs in silverlight framework 😕 !

  • Five stars madness

    Today I was looking, like almost every day, to iTunes top 25 apps when I found a nice free app with a great 5 star score and more than ten thousands reviews. I decided it was worth a try and download it immediately.

    When the download finished I started it and, in a few minutes, I  found that it was not as good as expected, rather it had many limitations caused by the fact that it was the free app and not the paid one.

    It really sounded very strange to me that so many people rated it 5 stars but suddenly I discovered the reason for such behavior: the app give you some free content as gift if you rate it 5 stars!! All became clear.

    I always relay on ratings and reviews of iTunes apps and the trend I’m seeing in these last months is warring me. The apps that give you contents or benefits if you give them great reviews are increasing; I hope Apple will take some measure to limit the misbehavior of these developers so that users can really trust in AppStore ratings above all for payed apps!!

  • Automattic’s Worldwide WP 5k

    I’ll sure join this event!! I will cycle for 5k (I can’t run because of a sprained ankle) giving my contribution from northern Italy!!

  • Vararo – Cuvignone – Sant’Antonio – San Michele – Muceno

    Primo giro della stagione con doppio gran premio della montagna 🙂 .

    Parto da Cittiglio e salgo fino a Vararo e da lì contino verso il passo del Cuvignone. Incontro vari ciclisti e un corridore lungo la via, mattina piutosto trafficata. Con sorpresa, arrivato in cima, trovo ancora un po' della neve caduta una paio di giorni fa nonostante sia Aprile inoltrato; ne approfitto per far fare i primi metri sulla neve alla nuova MTB ;-).

    Dopo una breve pausa inizio la discesa verso Sant’Antonio. La strada é abbastanza innevata e bisogna stare attenti a non scivolare. Passo dalla chiesetta già visitata poco tempo fa e svolto verso Arcumeggia senza fermarmi. Subito dopo prendo il bivio sulla sinistra per San Michele.

    La salita per l’alpe non è troppo impegnativa: senza strappi ma tutta all’ombra che con queste temperature non è il massimo. Nonostante il Cuvignone nelle gambe, salgo abbastanza bene. Arrivato al passo San Michele trovo il bivio per il Monte Colonna, magari proverò quel sentiero in una prossima uscita.

    Dopo aver scollinato si arriva alla frazione di San Michele dove si trova il ristoro e la chiesetta la cui vista sul lago é però coperta dalla troppa vegetazione, peccato.

    image

    Chiesetta di San Michele!

    Consultando la cartina che si trova poco sotto la chiesa scopro dove inizia il sentiero per Brissago/Muceno; basta proseguire pochi metri sulla strada asfaltata, ignorando i cartelli per il sentiero pedonale e lo si trova sulla sinistra ben indicato. La prima parte del sentiero é in leggera salita ma il fondo è compatto e salgo con facilità. Passo vicino all’eliporto e poi, sempre in salita, arrivo alla balconata, attrezzata con area pic-nic e griglia da dove di gode di una bella vista sul lago.

    image

    Balconata San Michele!

    Da qui, tutta discesa fino a Muceno, facendo attenzione a tenere la sinistra al bivio con il sentiero per Brissago. La strada é ciottolata e percorribile senza problemi anche in salita. Il fondo é bagnato e viscido a causa delle piogge e della neve  ma poco sconnesso.

    Arrivati a Muceno mi aspettano ancora poco meno di 15 chilometri per arrivare al punto di partenza e adesso la fatica un po' si fa sentire.

    Ultima sorpresa, la strada che collega Laveno a Cittiglio é chiusa ma, pur di non fare qualche centinaio di metri in più, scavalco le barriere e proseguo dritto!

    Un ottimo giro, impegnativo (alla fine i metri di dislivello sono più di 1300 con 40 chilometri di sviluppo) ma soddisfacente. Facendolo si notano alcuni sentieri tra il passo del Cuvignone e l’alpe San Michele che dalla strada entrano nel bosco; sembrano percorribili anche in MTB e sarebbe interessante fare una ricognizione ;-).

    Vararo – Cuvignone – Sant’Antonio – San Michele – Muceno

    Vía Garmin Connect – alexmufatti

  • Rogeno – Cornizzolo – Terz’alpe – Rogeno

    Questo weekend giro fuori provincia. Approfittando di una gita lecchese, decido di provare una delle poche salite che conosco nei dintorni.

    Parto da Rogeno e, evitando di passare per le strade più trafficate, vado verso Cesana Brianza. Una volta arrivato, proseguo verso Pusiano e svolto a destra al semaforo, verso Eupilio. La strada prosegue in leggera salita e porta fino alle sponde del lago del Segrino. Da lì, tenendo la destra (la strada é comunque ben indicata), inizio la vera e propria salita del Cornizzolo.

    Le pendenze sono subito impegnative e non tendono mai a diminuire. Incontro tanta gente lungo la strada, il posto è molto frequentato ed essendo un soleggiato sabato, il traffico (pedoni e bici) è anche superiore al solito.

    Proseguendo lungo la salita nel bosco arrivo fino ad un posteggio in corrispondenza di alcuni edifici dopo il quale la strada non è più percorribile in auto. A sancire il divieto c’è una sbarra che si deve scavalcare per proseguire.

    Finalmente esco dal bosco ed inizio gli ultimi chilometri di salita circondato dai prati e da una bellissima vista sui laghi di Annone e Lecco.

    Poco dopo costeggio il campo di lancio dei parapendii che è affollatissimo. Manca ancora un po' di strada e la pendenza non accenna ancora a diminuire, per di più la strada non è più a tornanti come nella prima parte ma dritta e non lascia respiro.

    Arrivo finalmente al passo e, dopo una breve discesa, al rifugio: sono arrivato! Da qui si può salire fino al crocione; il sentiero però è in fortissima pendenza; probabilmente è percorribile quasi interamente in sella ma non voglio esagerare visto che mi manca ancora un bel po' di strada prima di tornare a casa!

    Visto che non conosco i sentieri della zona, chiedo informazioni al rifugio. Mi dicono che le discese sulla parte sud del monte non sono percorribili in MTB. Lo è invece un sentiero che passa dalla Terz’Alpe e scende poi a Canzo. Decido di provarci e mi metto in marcia.

    Dal rifugio percorro alcune centinaia di metri prima di trovare il bivio sulla sinistra che porta all’imbocco del sentiero. L’inizio della discesa, come mi avevano spiegato, non è percorribile in sella anzi… alcuni punti sono particolarmente impegnativi da fare anche con la bici in spalla. Il tutto è reso ancora più complicato dal fondo viscido per le piogge dei giorni precedenti.

    Incontro un bivio inaspettato e non segnato. Per fortuna il cellulare prende e controllo sulla cartina, la direzione giusta è sinistra. Arrivati alla Terz’Alpe la strada migliora molto e posso scendere in sella senza problemi. Il fondo è ciottolato e non ci sono particolari ostacoli se non i_ __soliti_ canali di scolo che mi fanno prendere qualche botta.

    Dopo una bella discesa si arriva a Canzo. Purtroppo non conosco bene la zona e devo seguire la strada principale per tornare al punto di partenza: trafficata e in alcuni punti stretta.

    Sicuramente un bel giro, con una salita molto impegnativa e una discesa, purtroppo, rovinata dalla prima parte che è davvero difficile e obbliga scendere parecchie volte dalla bici.

    Rogeno – Cornizzolo – Terz’alpe – Rogeno

    Vía Garmin Connect – alexmufatti