Technology Experience
Software

Flight Simulator X, il suo SDK e qualche bella idea

L’ultimo Flight Simulator X espone con il suo SDK un modello ad oggetti devastante e potentissimo. E’ possibile programmare tutto quello che si vuole, è possibile ottenere tutte le informazioni che si vogliono ed utilizzarle come meglio si vuole. Mio fratello, per esempio, ha scritto una piccola utility, AutoSaver for FSX, che salva automaticamente il volo ogni x minuti. Il software su CodePlex è disponibile qui.

In realtà, io e lui (più lui che me) abbiamo fatto molti altri esperimenti: il più divertente è stato controllare da remoto il rate della simulazione di Flight Simulator. Mi spiego meglio. In condizioni normali, la simulazione gira a 1x. Ciò significa che se dovete percorrere 100 miglia ed il vostro aereo viaggia a 100 miglia/ora, ci metterete esattemente 60 minuti. Se dovete fare un volo Milano-Parigi, potete anche farlo, perchè vi assicuro che comunque nell’oretta di volo che vi attendete le cose da fare ci sono. Se invece dovete fare Londra-Pechino, le cose sono ben diverse e potreste davvero annoiarvi alla grande, o comunque potreste avere una vita privata (ce l’avete???) che non vi permette di stare davanti allo schermo per vedere se tutto va bene.

Flight Simulator X vi permette di aumentare il rate della simulazione (2x, 4x, 8 e così via) per accorciare i voli. Uno degli esperimenti che abbiamo fatto io e mio fratello è stato quello di poter aumentare/diminuire il rate della simulazione da remoto, mandando una semplice e-mail ad un certo indirizzo, formattata e firmata in un certo modo. Voi siete al fare la spesa, siete al cinema e potete mettere in pausa la simulazione, perchè sapete che ad una certa ora l’aereomobile deve cominciare la fase di discesa, oppure potete accelerarla o rallentarla, a seconda delle esigenze. E’ stato solo un esperimento tecnologico, non è pubblicato da nessuna parte.

La cosa davvero interessante è combinare FSX, il suo SDK e WCF per pubblicare da qualche parte sul Web le informazioni del volo corrente. Il plug-in preleva un certo numero di informazioni da FSX (longitudine, latitudine, velocità, altitudine, carburante rimasto, direzione attuale, distanza all’arrivo, rate di simulazione, temperature, vertical speed, etc. etc.) ogni x minuti, le memorizza in un oggetto .NET e le invia attraverso un’interfaccia IFlightSituation verso un servizio WCF.

Non c’è codice in questo post, è solo una chiaccherata. Bella idea, ci devo ragionare su! Voi altri, non rubatemi l’idea, altrimenti…vi ammazzo!!!

Technorati Tags:  

Send to Kindle
.NET World

[Flickr] Scaricare tutte le foto di un photoset, con un piccolo tip

Ogni tanto nel mio tempo libero la passione per la programmazione su Flickr sboccia. Ho scritto un piccolo metodo che scarica in locale tutte le fotografie appartenenti ad un certo photoset di Flickr. Il codice bene o male è questo:

1 public void DownloadPhotos(string photosetId) 2 { 3 Stream stream; 4 FileStream saveFileStream; 5 Uri uri; 6 string filename; 7 8 Photo[] ps = conn.PhotosetsGetPhotos(photosetId); 9 10 foreach (Photo p in ps) 11 { 12 uri = new Uri(p.ThumbnailUrl); 13 filename = string.Concat(@"D:\Download\", uri.Segments[uri.Segments.Length - 1]); 14 15 stream = conn.DownloadPicture(p.ThumbnailUrl); 16 byte[] download = new byte[stream.Length]; 17 stream.Read(download, 0, (int)stream.Length); 18 stream.Close(); 19 stream.Dispose(); 20 21 saveFileStream = new FileStream(filename, FileMode.Create); 22 saveFileStream.Write(download, 0, download.Length); 23 saveFileStream.Flush(); 24 saveFileStream.Close(); 25 } 26 }

Il codice così com’è è un pochino brutto, perchè non ha gestione di eccezioni, e soprattutto non gira in modo asincrono. Se in input a questo metodo date un photoset che contiene decine e decine di fotografie, la procedura di download può richiedere diverso tempo, e quindi sarebbe carino prevedere un funzionamento asincrono, in modo tale che il chiamante possa sottoscriversi ad un evento per essere notificato di tanto in tanto sul progresso dell’operazione stessa. Ma…come dicevo…ci sto lavorando su a tempo perso, e quindi non c’è alcuna fretta.

Alla riga 8 utilizzo la chiamata al metodo PhotosetsGetPhotos, al quale passo il photosetId. Questo metodo ritorna un array di Photo[], sul quale ciclo per scaricare, una alla volta, tutte le fotografie.

Domanda: come decido che nome dare al file scaricato?

Risposta: beh, utilizzo lo stesso nome che mi viene dato da Flickr!

Alla riga 12 creo un oggetto Uri, dato l’url dell’immagine che sto scaricando. Questo url per esempio assume la seguente forma:

http://static.flickr.com/2094/2121897417_0dab37d8c1_t.jpg

Ho pensato a diversi modi per estrarre da questa stringa solo il nome del file. Se fosse un path locale, potrei utilizzare la classe FileInfo, ma qui non posso, perchè non posso istanziare un FileInfo usando come path quello che in realtà è un Uri. E non mi piaceva pure troppo fare una semplice ricerca sulle stringhe: avrei dovuto invertire la stringa, trovare il primo backslash…lasciamo perdere.

Il modo che reputo migliore per prendersi solo il nome del file è quello appunto di passare attraverso un oggetto Uri, accedendo alla proprietà Segments, che “spezzetta” l’url nelle sue componenti – in pratica facendo uno split sul backslash (‘\’). Alla riga 13 costruisco il path locale dell’immagine prendendo sempre l’ultimo segmento dell’url, che è proprio – guarda caso – il nome del file stesso. Il path locale viene utilizzato più avanti (riga 21) per costruire il FileStream per salvare fisicamente su disco l’array di bytes.

Il ciclo for…each non fa altro che farsi passare una alla volta tutte le fotografie…ed il gioco è fatto.

Technorati Tags:  

Send to Kindle
Community

Vi dimenticate la categoria da Windows Live Writer?

Mio fratello ogni tanto mi dice che pubblica i suoi post dimenticandosi di andare a selezionare la categoria dentro Windows Live Writer. Mi sembrava di aver visto da qualche parte un’impostazione che permette di bloccare la pubblicazione del post se manca un’informazione essenziale, come appunto la categoria o il titolo. Quest’ultimo è abilitato di default, mentre quello della categoria no.

Per attivarlo, caricate Windows Live Writer, andate semplicemente sotto Strumenti –> Opzioni ed attivate il check-box opportuno:

Così, se vi dimenticate, Windows Live Writer vi avvisa. Comodo, no?

Technorati Tags:  

Send to Kindle
Hardware

Bloccare il rilevamento delle chiavette USB

Ho trovato questo post quasi casualmente, mentre sfogliavo i post di MSDN.

Se vi dovesse servire di blindare un PC con su Windows XP SP2, bloccando il rilevamento degli storage su USB, dategli un’occhiata, perchè contiene alcuni spunti interessanti. Non l’ho provato di persona, ma a quanto pare c’è anche la possibilità di bloccare i dischi USB, facendo in modo che ci si possa solo leggere, ma non scrivere.

Non si sa mai, magari dovete allestire un PC limitandone in qualche modo le funzionalità.

Technorati Tags:   

Send to Kindle
Community

Un hosting per le immagini da inserire sul blog

Ho deciso da un po’ di tempo: le immagini che compaiono sul mio blog vengono hostate su Flickr.com, e consiglio di fare la stessa cosa a voi. Quando avevo il blog su UGIdotNET, e per un certo periodo anche qui, le mettevo via ftp sul mio hosting. Se date un’occhiata al path delle immagini che comparivano, era più o meno una cosa simile a:

http://www.igordamiani.it/blog/image_filename.jpg

Ma c’è uno svantaggio non da poco ad uploadare immagini sul classico hosting come WH4L. Lo spazio su disco di WH4L lo pagate, e le immagini occupano parecchio. La soglia di WH4L è di 2Gb, credo: superata questa soglia, l’hosting costa un pochino di più.

Flickr invece, anche in versione freeware, non ha limiti di spazio, per cui potete uploadare tutte le immagini e le foto che volete. Non solo: uploadando le foto su Flickr ottenete fin da subito le versioni più o meno grandi delle stesse, da 75×75 all’originale (che dipende se è uno screenshot del vostro PC oppure se è stata scattata da una macchina digitale). Se non volete che queste foto appaiano pubblicamente quando un visitatore sfoglia i vostri album fotografici, basta impostare queste immagini come private, ed il gioco è fatto.

C’è anche da dire che se decidete di prendere la versione Pro di Flickr, costa comunque molto meno rispetto a WH4L: 20 dollari contro 140 dollari circa. Attenzione: è una semplificazione voluta quella che faccio. E’ chiaro che WH4L dà un miliardo di cose in più: in questo caso mi sto riferendo al semplice e banale hosting di files, un posto dove poter uploadare files di immagine da poter inserire nei propri post.

Ho ritenuto doveroso scrivere questo post, perchè la prima cosa a cui si pensa quando c’è bisogno di “mettere files on-line” è un hosting, mentre secondo me Flickr rappresenta un’ottima alternativa, tra l’altro più specializzata per il trattamento delle foto.

Technorati Tags:     

Send to Kindle
.NET World

Debuggare i sorgenti del framework da VS2008

Ieri tutti quelli che hanno Visual Studio 2008 installato e funzionante – con la sola eccezione delle versioni Express – sono corsi a configurarlo per poter vedere come funziona il meccanismo che permette di vedere il codice sorgente del .NET Framework. Effettivamente, è la notizia del giorno.

Come era stato annunciato da un po’ di tempo, infatti, con VS2008 è possibile debuggare il framework e vedere il codice sorgente di tutte le classi comprese in determinati assembly e namespace. Vi rimando direttamente a questo post di un certo Shawn Burke che spiega nel dettaglio come e cosa impostare dentro l’IDE di Visual Studio per poter attivare questa fantastica funzionalità.

L’unica cosa che mi ha lasciato perplesso è il repository locale che Visual Studio utilizza per cacheare i sorgenti che decidiamo di scaricare. Io ho impostato semplicemente D:DocumentiSymbols, mentre Visual Studio ha aggiunto altre 17 directory tutte annidate una dentro l’altra e tutte vuote. Il path completo per il file DateTime.cs è nel mio caso il seguente:

D:DocumentiSymbolssrcsource.net8.0DEVDIVdepotDevDiv
eleaseswhidbeyREDBITS
dpclrsrcBCLSystemDateTime.cs1

Un motivo ci sarà anche, ma francamente…lo ignoro!

Technorati Tags:   

Send to Kindle
IV del Venerdì

[IV] del Venerdì (29)

Un mio collega ieri sera ha visto al cinema “Io sono leggenda“, l’ultimo film di Will Smith. Io non l’ho ancora visto, perciò state tranquilli: nessun spoiler è dietro l’angolo. Posso solo dirvi che non sembra ‘sto granchè. La cosa peggiore secondo me è che ha rilevato differenza sostanziali tra il film e l’omonimo libro, ma ormai anche questa è una cosa abituale.

Non vi consiglierei comunque di andare al cinema. Questo, ragazzi, sembra essere un gran bel weekend. Non so dove voi vi troviate, ma qui nel Nord Italia il sole splende che fa paura. Perciò mi sa proprio che domenica me la godo da qualche parte, a meno che venga assalito dalla pigrizia che poi invece ti trattiene in casa.

Ma questo sole merita davvero, perciò è facile che andrò a scattare fotografie a Torrevecchia Pia (PV), un piccolo paesino vicino a casa mia che merita almeno per un attimo la mia e la nostra attenzione per una faccenda che mi sta un pochino a cuore. E vi posso assicurare che sarà tema di uno dei miei prossimi IV del Venerdì, post sul quale dovrò disabilitare i commenti, altrimenti può succedere che scoppi il finimondo. Ma lo sapete, io sono testone, e quando devo dire certe cose, le dico e basta, senza preoccuparmi troppo delle reazioni: il giorno in cui mi farò scrupoli, vorrà dire che sarò un po’ meno Igor di oggi.

Altri eventi per passare una domenica diversa dalle altre? Beh, comincia il carnevale di Viareggio. Alla fiera di Milano c’è il Salone degli Addobbi Natalizi, del Gioco, del Giocattolo, del Carnevale e delle Decorazioni per le Feste. A quella di Parma c’è l’ 8º Raduno invernale di antiquariato e modernariato.

Ma io, ve lo ripeto, aprofitterei del sole. Perchè se è vero che c’è qualcuno che dice che a Milano il sole non passa mai, c’è anche qualcuno che dice che tutto questo non è vero. Il sole a Milano passa, passa eccome. Godetevelo!

Technorati Tags:

Send to Kindle
Hardware

I 25 anni del primo Macintosh

25 anni fa la Apple metteva in vendita il primo PC con interfaccia grafica a finestre e con un mouse come dispositivo di input. 25 anni sono tanti – dobbiamo dirlo – quel primo Macintosh ha aperto la via alle moderne interfacce a cui oggi siamo ormai abituati. Quello che non sapevo è che all’epoca venne chiamato Kevin Costner per fare lo spot.

Video : http://tv.repubblica.it/home_page.php?playmode=player&cont_id=16238

Oggi chi chiamereste voi per un evento simile?

Technorati Tags:   

Send to Kindle
My personal life

Ci sono giorni in cui…

…perdi la testa, e ti capita di far arrabbiare un’intera community, e degli amici, per aver scritto di getto un post sul proprio blog sul forum.

Ci sono istanti in cui inaspettatamente incroci lo sguardo con il più bel sorriso mai visto nell’emisfero boreale, e l’istante dopo ti accorgi che in realtà quel sorriso è il tuo, riflesso sull’acciaio sporco della macchinetta distributrice di merendine.

Altri giorni invece quel sorriso è veramente di qualcun’altro, un qualcuno che poi – mannaggia la miseria – ti viene in mente anche nei momenti più disparati e più assurdi. E ti rendi conto, pian piano, che forse quella persona è diversa dalle altre, che forse dovresti dirglielo, dovresti fare qualcosa per farle sapere – mannaggia la miseria – che il suo volto ed i suoi capelli ogni tanto compaiono in momenti random della tua giornata, proprio quando stai entrando in metro, o quando stai mangiando, o quando stai rompendo la bustina dello zucchero per berti in santa pace un buon caffè in qualche fottuto bar.

E succede che per farglielo capire non sai mai quale sia la strada migliore. Il luogo comune, fin troppo banale, dice che bisognerebbe essere se stessi. Banale, appunto. Se ciascuno di noi fosse davvero solo una persona, allora Pirandello non avrebbe mai scritto “Uno, nessuno, centomila“, giusto? La verità è che a volte siamo sicuri, a volte no. A volte siamo certi di quello che dovremmo dire, o fare, altre volte no. Siamo tante persone in una, diverse per ogni contesto. La mia ex-professoressa Bresciani direbbe: “Per fortuna che è così!” – ed ha ragione, altrimenti sarebbe tutto più noioso. Qui di noioso non c’è proprio nulla, se lo fosse riuscirei ad andare a letto a dormire, così domani mattina alle 6:30 posso alzarmi riposato e tranquillo. Ed invece sono qui, a bloggare, con il Messenger aperto, e con un’e-mail che è nelle Bozze da 4 giorni e non mi decido a premere Invia. Chissà perchè, poi.

Qualcuno dice che attraverso i post come il mio dovrei far passare soprattutto la professionalità per il mio lavoro. Leggete di fianco, cosa dice il sottotitolo del mio blog: “Non sono solo un programmatore, dannazione: sono una persona…“. L’ho scritto il 22 Aprile scorso, quando l’ho aperto, e lo confermo tuttora. Perciò se mi va di essere malinconico, innamorato, triste, allegro o fuori di testa come al solito, lo esprimo attraverso i miei post.

Ci sono anche giorni in cui certi post non andrebbero scritti. Solo pensati, postati sul proprio blog interiore che prende il nome di coscienza. Forse questo post è uno di questi, ma è troppo tardi – mannaggia la miseria – ormai ho cliccato Pubblica ed il gioco finisce qui.

Buonanotte.

Send to Kindle
My personal life

Stay home, Stay better!!!

In generale, odio andarmene in giro per lavoro. L’ho fatto durante i primi anni in cui lavoravo in proprio: avevo clienti miei – ereditati dalla precedente attività – e me ne dovevo andare in giro per la Lombardia soprattutto, ma anche Piemonte ed Emilia Romagna per fare analisi sui miei software, per nuove installazioni, per interventi tecnici. Le solite cose, insomma.

Dopo un po’, sono scoppiato. Forse se mi fossi organizzato meglio, se avessi avuto un po’ più di iniziativa, avrei potuto tirar su un mio team di programmatori, tecnici e commerciali per gestire il mio allora piccolo volume d’affari. Chi lo sa…magari oggi non avrei un blog, non conoscerei nessuno di UGIdotNET e nemmeno VivendoByte non esisterebbe. Ma ero troppo piccirillo (piccoletto) all’epoca. Magari alla lunga avrei guadagnato di più, avrei generato più mercato per i miei software. Vai tu a capire che risvolti avrebbe preso la mia vita se avessi fatto diversamente.

Sta di fatto che in quel periodo viaggiavo molto, prevalentemente in auto. E torniamo al punto di partenza: odio andarmene in giro per lavoro. Non tanto per i costi, ma per tutte le cose correlate a cui bisogno far fronte quando ci si trova continuamente sballottati tra hotel, taxi, mezzi pubblici, treni, luoghi estranei, letti che non sono i tuoi, bagni e docce estranee, e chi ne ha e più ne metta.

Ho coniato il motto Stay home, Stay better l’altro giorno in macchina, parlando con mio fratello. La questione è semplice: adoro casa mia, adoro l’idea di schiantarmi sotto le mie coperte calde, adoro appoggiare la testa sul mio cuscino. Mi piace svegliarmi la mattina presto e fare colazione nella mia tazza, con il mio latte e con la mia biscottiera piena dei miei biscotti. Adoro quel tranquillo tran-tran quotidiano che mi permette di arrivare in ufficio con il cervello ancora al minimo, perchè certe cose le faccio soprappensiero. Non c’è niente da fare, son fatto così.

E questo inevitabilmente conduce ad una serie di decisioni anche riguardanti il lavoro. Se accetto di lavorare per una società, prediligo quelle che non mi sbattono da una parte all’altra dell’Italia settentrionale. Ma non solo: probabilmente in un lavoro come il mio, il vostro, questo mio atteggiamento è una forte limitazione, perchè si rimane all’interno del proprio stagno e non si vuole arrivare a scoprire lo splendido oceano che c’è appena un po’ più oltre il nostro campo visivo.

Ma non ci posso fare nulla. E’ come soffrire di vertigini.
Se si sale al quarto piano e si guarda giù, gira la testa.
E’ inevitabile.

Technorati Tags:

Send to Kindle