May 2008 Blog Posts
[OT] Motore di ricerca "a fischi"

Anni fa, almeno 10, pensavo ad un motore di ricerca "a fischi" che consentisse di recuperare brani o suoni cercandoli nel modo più naturale, cantichiandoli o fisciettandoli. Purtroppo per mancanza di tempo non mi sono potuto impegnare nell'analisi e risoluzione del problema, ma ovviamente qualcun altro nel frattempo l'ha fatto al posto mio.

E quindi ecco qui: Midomi. Visto che ci siamo raccolgo anche le cuffie di cui mi aveva parlato Mauro: Bose QuietComfort 3 e gli occhiali LCD che permettono una visione simile ad un LCD a 48'' a due metri di distanza.

Siamo nel paese dei balocchi :-D.

Matteo Migliore.

Add Comment Filed Under [ OT - Out of topic ]
[OT] Yahoo Messenger: bleah!

In questi giorni a LA ho dovuto usare Yahoo Messenger perchè una persona con cui dovevo sentirmi non aveva un account Windows Live e non riusciva a farne uno in tempo utile... Beh, devo dire che Yahoo Messenger fa piangere! Forse a causa della qualità discutibile della WiFi a cui sono connesso, io riuscivo a leggere ma non a rispondere, i miei messaggi non arrivavano, il mio contatto perdeva la connessione ogni 5 minuti, e la sua connessione non era scadente. Così ho scaricato Yahoo Messenger per Vista. Grafica molto curata, ma stesso identico risultato. Beh, devo dire che hanno fatto proprio un pessimo lavoro! Ma chi l'ha scritto? Paperino?

Viva Windows Live Messenger, forever!

P.S.
Sono ancora a L.A., ancora poche ore e dovrò iniziare un'interminabile viaggio di 18 ore! :-(. Wow.

Matteo Migliore.

[OT] Primo giorno a Los Angeles
Da dove partire?? :-) Los Angeles è fantastica, è enorme. Stamattina (mattina per noi del "Pacific Time") però l'inizio non è stato dei migliori. Sono salito su uno degli autobus che qui appartengono alla linea cittadina chiamata "Metro" ed ho chiesto informazioni al driver, sbagliare qui significa farsi mezza Lombardia :-D, mi ha risposto mettendosi una mano davanti al volto, quasi impaurito "non ti conosco, perchè mi parli in faccia, così vicino?", sono rimasto di sasso! Ho pensato di esseremi posto in modo sbagliato, ma poi sul bus successivo le cose si sono capovolte. Non avevo 5$, il costo di un "Day Pass", così ho chiesto di cambiare ad altri passeggeri. Un ragazzo mi ha pagato l'abbonamento giornaliero perchè non aveva da cambiare i miei 50. Sono rimasto senza parole. Poi ho frugato nello zaino e gli ho restituito 4 EUR, almeno da andare in pari :-). Poi, senza farla troppo lunga, ho pranzato a Chinatown (tofu), poi un burrito, poi una Funnel cake a Santa Monica e un bel giro a Venice (prima ero passato per Hollywood e Beverly Hills) e ora finalmente in hotel. Devo dire che sono veramente soddisfatto per la prima giornata. E i gladiators hanno ragione, negli USA gran parte della gente è veramente simpatica e disponibile. Spero di pubblicare presto foto e video (tranquilli, io non ci sono :-)).

Matteo Migliore.
3 Comments Filed Under [ OT - Out of topic ]
[OT] At Heathrow Airport

Il viaggio stamattina e iniziato bene, peccato non possa usare lettere accentate da questo PC :-D. La campagna inglese e davvero fantastica, cavalli e ovini ovunque. Tra poco parto alla volta di LA, speriamo che il pasto sia decente o addirittura buono. Ho incontrato una coppia di "anziani naufraghi" italiani, che in Italia hanno passato praticamente niente della loro vita, beati loro. Avrei imbavagliato la signora ad un certo punto pero' :-D, perche' io sono logorroico, ma lei proprio non mi faceva riposare. Il viaggio, fa vivere sempre momenti molto interessanti. Ma si sa... Ah, questo aeroporto e' fenomenale!! Bueno, vado, buon lavoro a chi lavora :-).

Matteo Migliore.

Add Comment Filed Under [ OT - Out of topic ]
[C# 3.0] I miglioramenti del linguaggio

Sono parecchi mesi che si sviluppa con il Framework 3.0, e di esempi ce ne sono. Visto che comunque ho scritto una piccola demo sempre per una risposta sui news group, la pubblico, magari è utile :-).

Mi sono soffermato su Delegate, Anonymous Delegate e le fantastiche Lambda Expression. Direi che il linea generale i delegate e le lamda expression sono i costrutti che rimangono, gli anonymous delegate possono essere sostituiti dalle lamda senza particolari controindicazioni, almeno io non ne ho trovate. I delegate rimangono comunque utili per poter riutilizzare il codice, che altrimenti andrebbe replicato.

Ho scritto un metodo generico che accetta come parametri una DataRow, un valore di tipo T e un delegate che definisce l'espressione da applicare, restituendo la collection di DataColumn che rispettano la condizione.

Creare nuovi Criteria è veramente comodo!

Ecco il metodo:

public static IList<DataColumn> FindValue<T>(DataRow row, T compare, Criteria<T> criteria)
{
    //If criteria is null simply compare values using
            Equals method
    if (criteria == null)
        criteria = (value, compareTo) => value.Equals(compareTo);
 
    IList<DataColumn> columns = new List<DataColumn>();
 
    for (int i = 0; i < row.ItemArray.Length; i++) {                
        if (row[i].GetType() != typeof(T))
            continue;
 
        bool isMeetCriteria = criteria((T)row[i], compare);
 
        if (isMeetCriteria)
            columns.Add(row.Table.Columns[i]);
    }
 
    return columns;
}

Alcuni esempi di chiamata:
//Delegate using an external method
///Note: useful to reuse the code
Criteria<string> stringCriteriaMethod = new Criteria<string>(Support.Contains);
columns = CodingSample.FindValue<string>(row, stringToSearch, stringCriteriaMethod);
 
//Delegate using an anonymous delegate
///Note: before LambdaExpression! .NET 2.0
Criteria<string> stringCriteriaAnonymousDelegate = delegate(string value, string compare){
    return value.Contains(compare);
};
columns = CodingSample.FindValue<string>(row, stringToSearch, stringCriteriaAnonymousDelegate);
 
//LambdaExpression
///Note: very short!
columns = CodingSample.FindValue<string>(row, stringToSearch, (value, compare) => value.Contains(compare));


Qui si può scaricare l'applicazione d'esempio e qui il codice sorgente.

Matteo Migliore.