Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15118

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

lunedì 23 aprile 2007

Il mio blog? Via dal muro di UGI e pausa di riflessione!

Non so quando tornerò a bloggare qui su UGIdotNET, ho in mente una pausa di riflessione - come nelle migliori (ehm...peggiori?) storie d'amore che si rispettino. Una cosa è certa: via dal Muro di UGIdotNET, meno coinvolgimento nella community, post solo tecnologici. Il resto verrà da sè.

Volete scoprire gli IV del Venerdì (e soprattutto...per cosa sta la sigla IV)?
Volete continuare a leggere qualche mio racconto sui bytes?
Volete farvi due risate (ma anche no) con le mie leggi sui bytes?
Vi definite miei lettori e volete continuare a leggermi?
Volete sapere dove andrò la prossima volta con la mia Fiat 500?

Semplice: sottoscrivete il mio nuovo blog all'indirizzo blog.vivendobyte.net.

posted @ lunedì 23 aprile 2007 12.12 | Feedback (26) | Filed Under [ Community ]

domenica 22 aprile 2007

Il mio nuovo blog! Cambiamenti in vista?

Questo volta il sistema operativo non c'entra nulla. Ci sono cambiamenti in vista.

E' quasi un anno che ho attivato il dominio www.vivendobyte.net su WH4L, a dir la verità senza uno scopo preciso. L'abbiamo utilizzato io e mio fratello per avere una piattaforma Sharepoint da sfruttare, ma a parte questo nulla. La risposta è arrivata ieri sera, appena dopo cena, quando teoricamente sarei dovuto andare al cinema per vedere Shooter (che all'Arcadia non c'è ancora) ed invece ho preferito starmene in casa, perchè se mi fossi messo alla guida sarei stato un pericolo per la società.

Questa notte, fino alle ore 3:00 circa, ho trasferito il mio vecchio sito www.igordamiani.it sul nuovo dominio www.vivendobyte.net. Il mio sito personale è creato con MySQL e PHP, e questo WH4L lo permette. Mi perdonate? :-)

Ho aperto un nuovo blog, che potete raggiungere qua.
L'url è blog.vivendobyte.net.

La piattaforma è Subtext, del nostro Simone Chiaretta, che tra l'altro mi ha dato una mano per configurare il web.config. Non so ancora che senso abbia aprire un nuovo blog, so solo che ci sono persone che mi dicono che soffro di esternazione precoce, che dovrei ascoltare un po' di più le nonne, che sono dannoso per la community e roba del genere. Se così è, allora chiedo scusa a tutti (primo fra tutti Andrea), ma sono assolutamente convinto di quello che ho fatto, perchè non credo di aver insultato nessuno, nè di aver offeso, nè di essere stato dannoso. Al contrario, credo di aver sottoposto dei punti di una certa importanza, ma evidentemente non tutti apprezzano il dialogo. Ci sono persone, insomma, che dicono che commetto errori, ma io non la vedo così, e siccome in futuro potrei fare ancora di questi famigerati sbagli, allora preferisco farlo in un posto dove non danneggio nessuno.

Il mio nuovo blog per adesso contiene una sola categoria, Community, e per adesso è tutto quello di cui voglio parlare. Probabilmente sul nuovo blog scriverò i miei racconti e le mie leggi sui bytes: è un po' che voglio farlo, dal momento che sono stato criticato anche per questo. E' una domenica triste, oggi, per quello che mi riguarda, perchè non c'è cosa peggiore che essere trattati male ed essere presi continuamente in giro dalle persone che più apprezzi, stimi e che ti hanno dato una mano. Ma così è la vita, no?

posted @ domenica 22 aprile 2007 10.55 | Feedback (0) | Filed Under [ Tecnologia ]

venerdì 20 aprile 2007

Come la penso sui prossimi Community Day

Il newsgroup è lo strumento di comunicazione ufficiale della community.
Quindi, per una volta ho lasciato perdere il mio blog e ho preferito scrivere sul newsgroup, appunto.

Tutto si basa sul principio "Non è che siccome sono tuo amico, allora non ti posso urlare in faccia o
parcheggiare le mani in faccia
". Ovvero, non è che siccome sono un membro di UGIdotNET, allora non possa essere critico, parlando di workshop e di tariffa di iscrizione. Qua dico solo una cosa breve, veloce ed un tantino polemica: avremmo potuto evitare di pagare X Euro per partecipare ad uno workshop, se qualche mese fa tutti noi avessimo donato ad UGIdotNET qualcosa come X/50 Euro.

Per chi volesse leggere e partecipare alla discussione: potete farlo su http://forum.ugidotnet.org/, naturalmente sia via Web che via newsreader, come volete voi. Non posso pubblicarvi il link diretto al thread perchè non è ancora apparso, perciò cliccate sul link generico ai forum ed andate su System.Freetime.

Spero che la discussione non degeneri in un flame, credo di essere stato più che ragionevole. :-)

posted @ venerdì 20 aprile 2007 12.58 | Feedback (6) | Filed Under [ Community ]

Quando il vecchio non può più, ed il nuovo non può ancora...

Quando il vecchio non può più, ed il nuovo non può ancora, giunge il momento dell'avventura reazionaria
Antonio Gramsci, uno dei fondatori del Partito Comunista Italiano (12 Gennaio 1921)

Non ho fatto l'università.
A 18 anni, terminato l'ITIS a Lodi, ho cominciato a lavorare come falegname con mio padre. Solo un paio d'anni dopo ho cominciato la mia carriera come programmatore. Vado orgoglioso di questa mia scelta. In quel periodo, quando ero un po' più giovane, avevo il mio lavoro da dipendente, dove mi occupo di assistenza hardware & software. Mi capitava di aver a che fare con clienti privati (dal vicino di casa a tutti gli altri), i quali si rivolgevano a me per i motivi più disparati, come installazione di stampanti, formattazione di PC, installazione di software, corsi su come navigare su Internet, su come scansionare fotografie, come usare Word o Excel, come usare Windows in generale, come copiare files, come masterizzare, come ascoltare files mp3 e così via. Avere quei clienti, che ti pagavano più che altro con qualche mancia, è stata all'epoca una fortuna, perchè mi ha svegliato, mi ha messo di fronte a persone che avevano bisogno del mio aiuto, e per certi versi mi ha insegnato a trattare con le persone.

Oggi la storia è molto diversa. Non ho più tempo per seguire questi piccoli clienti. Non voglio essere ipocrita, probabilmente sono anche io che oggi ho alzato un po' il tiro e tendo a scartare certi lavori, semplicemente perchè non ho più la stessa disponibilità di una volta. Lavoro a Milano, sono fuori tutto il giorno e la sera non ho affatto la voglia di andare di qua e di là ad occuparmi di problemi che, con tutta franchezza, non mi sento più di risolvere: specialmente quando si tratta di hardware, dove non sono più così ferrato.

Ma adesso arriva il motivo per cui ho indegnamente citato Gramsci. Noto che non c'è un ricambio di persone. Oggi io ho 30 anni, ma i 18enni di oggi non hanno la stessa voglia che avevo io alla loro età. A 18 anni io correvo quando un qualcuno mi chiamava, perchè significava avere qualche soldo in più in tasca col quale comprare un mazzo di fiori alla ragazza. Oggi non è più così. I 18enni oggi hanno in mente altro, vai tu a capire cos'è. Il senso della frase di Gramsci è ovviamente diverso, ma l'antitesi tra vecchio e nuovo mi ha comunque affascinato. Il vecchio, cioè io, non può più fare un lavoro che non gli spetta, o che non vuol fare. Ma il nuovo non può ancora, o non vuole farlo. Quei clienti storici, come li chiamo io, mi chiamano ancora oggi, perchè mi conoscono, si sono affezionati e sanno che tutto sommato faccio un buon lavoro (!!!). Ma, cavolo, a me piacerebbe che si rivolgessero ai giovani di oggi, e non agli stessi che chiamavano 10 anni fa. E la colpa, se di colpa si può parlare, non è solo del cliente in sè, quanto dei giovani che non sono attivi, che tardano un po' ad arrivare sul mercato del lavoro, ma insistono a farsi una laurea trascinata inutilmente nel tempo, considerando il lavoro come sporcarsi le mani (più tardi si comincia, meglio è).

Non so dove sono andato a parare, volevo condividere con voi questo folle ragionamento.

posted @ venerdì 20 aprile 2007 9.45 | Feedback (4) | Filed Under [ Tecnologia ]

giovedì 19 aprile 2007

Post che "spiccano il volo"

Sarà pur vero che la community desidera contenuti tecnici e a volte si lamenta degli OT, però chissà perchè alla fin fine i miei post che ottengono più visite sono quelli che con .NET non c'entrano nulla. :-)

Direttamente dall'admin di .TEXT del mio blog.

Ci sono inoltre post che tentano di spiccare il volo, come quello intitolato "Ma perchè mi dite tutti che Vista non funziona?", con 767 visite. Chiamo la Boeing e glielo dico. Basterebbe regolare un po' i flaps e rullare sulla taxiway diretti alla pista.

posted @ giovedì 19 aprile 2007 17.43 | Feedback (7) | Filed Under [ Tecnologia ]

mercoledì 18 aprile 2007

Lavoro di oggi? Passaggio di consegne

Oggi sono stato impegnato nella società dove lavoravo fino a qualche settimana fa per il mitico passaggio di consegne che avrei dovuto fare qualche tempo fa. Lo definisco mitico perchè ci sono strane vicende riguardanti questo passaggio di consegne.

Innanzitutto, bisognava trovare un sostituto, una persona adatta a continuare i lavori che io stavo mollando. Avevo partecipato alle selezioni e ai colloqui: la persona che mi sembrava più giusta se l'è data a gambe levate, perchè - così mi hanno detto - si è spaventata per le responsabilità che avevo e che non si sentiva di assumere arrivando al mio posto. Inutile dirvi che sono rimasto allibito nel sentire queste parole: vi posso solo assicurare che è la verità, o almeno questo è quello che mi hanno riportato. Nei due anni in cui ho lavorato, ho sempre solo sentito la responsabilità di lavorare bene, e tutto il resto veniva da sè. Mi è capitato di avere a che fare con i clienti, di fare riunioni (anche in inglese), di risolvere problemi all'ultimo minuto, di fare un po' tardi, ma nulla di particolare: solo lavorare bene. Posso capire che per un nuovo arrivato il nuovo lavoro faccia un po' di paura o soggezione, ma credo che per crescere bisogna tirar fuori gli attributi. Mah!

Tagliando corto, la persona non si è fatta più vedere. Io me ne sono andato, e dopo 2 settimane hanno selezionato un altro candidato, cioè il ragazzo che ho incontrato questa mattina. Incontro alle 9, fino alle 18. L'ho bombardato per tutto il giorno di tutto quello che sapevo: struttura dei database sui quali lavorerà, object model del VBA esposto dagli applicativi dell'azienda, un po' di SQL, il tipo di lavoro che probabilmente si ritroverà fra le mani, i clienti, procedure aziendali e via dicendo. Il tutto intervallato da pause caffè ed un po' di chiaccherate per fare un po' di amicizia. I vecchi colleghi mi hanno accolto bene e ho raccontato la mia nuova vita di sviluppatore vero. Perchè chi programma in solo SQL, dai...diciamolo...non può definirsi un programmatore vero. ;-)

Il prossimo appuntamento sarà per il 2 Maggio, un altro mercoledì. Altro incontro, ma questa volta il mio successore dovrà cavarsela meglio, perchè lo farò sedere davanti al PC e dovrà risolvere qualche problemino tratto da casi reali che gli stiamo preparando.

posted @ mercoledì 18 aprile 2007 23.06 | Feedback (11) | Filed Under [ Tecnologia ]

martedì 17 aprile 2007

Un nuovo plugin per WLW: pubblicazione di immagini

Mi sono dato alla creazione di un altro plugin per Windows Live Writer. Mi capita spesso di creare post il cui scopo è avere solo link a n immagini che vado preventivamente ad uploadare sul mio sito www.igordamiani.it. Per esempio, date un'occhiata al post relativo all'ultimo workshop.

Quali sono le caratteristiche che saltano all'occhio?
E' presto detto...

  1. C'è un breve commento all'inizio
  2. C'è un'immagine o una fotografia visibile direttamente nel post
  3. Ci sono una serie di n link, che puntano direttamente a n immagini JPG uploadate sul sito

Come dicevo, mi capita spesso di scrivere post di questo tipo e anche se non sembra, è piuttosto noioso farli, perchè sono sempre operazioni ripetitive. Scegli le immagini giuste, ridimensionale, uploadale sul sito, scrivi il post inserendo a mano una descrizione ed il link corretto e via dicendo. Ho deciso quindi di scrivere un plugin per WLW per automizzare il più possibile questa cosa, così vi posso bombardare più spesso di fotografie. :-) Perchè non farlo in WPF per renderlo più accattivante? Arrivo al dunque, altrimenti qua non finisco più.

La caratteristica fondamentale: la scelta delle fotografie
Il plugin, già in fase di sviluppo, permette all'utente di puntare una directory sul proprio hard-disk e poter scegliere le immagini da pubblicare oppure no. Do per scontato che le immagini nella directory siano già ridimensionate al punto giusto, perchè non faccio fare al mio plugin cose che altri software fanno già bene (come per esempio IrfanView). Dopo aver indicato la directory, si clicca su un pulsante che fa quanto segue:

void btnRefreshLocalPath(object sender, RoutedEventArgs args) { DirectoryInfo di = new DirectoryInfo(txtLocalPath.Text); FileInfo[] files = di.GetFiles("*.jpg"); lstImages.Items.Clear(); foreach (FileInfo f in files) { ImageElement ie = new ImageElement(f.FullName); lstImages.Items.Add(ie); } }

Il path viene recuperato dalla TextBox, viene utilizzato il metodo GetFiles() per ottenere la lista di tutti i files JPG (to be changed?) nella directory. In seguito, la ListBox viene svuotata e viene creato un oggetto ImageElement per ogni file esistente. La classe ImageElement incapsula tutta la logica che serve per gestire le immagini. Ogni istanza di ImageElement infatti permette di:

  1. selezionare/deselezionare l'immagine (usando una CheckBox)
  2. vedere l'immagine e decidere se la si vuole o no (usando un'Image)
  3. inserire una breve descrizione relativa all'immagine (usando una TextBox)

La classe ImageElement è uno UserControl scritto per WPF, quindi un po' XAML ed un po' C#. La parte XAML è forse la più interessante:

<UserControl x:Class="VivendoByte.PostSomeImages.ImageElement" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <UserControl.Resources> <Style x:Key="normal" TargetType="{x:Type TextBox}"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=chkSelected, Path=IsChecked}" Value="True"> <Setter Property="IsEnabled" Value="True" /> </DataTrigger> <DataTrigger Binding="{Binding ElementName=chkSelected, Path=IsChecked}" Value="False"> <Setter Property="IsEnabled" Value="False" /> </DataTrigger> </Style.Triggers> </Style> </UserControl.Resources> <StackPanel Orientation="Vertical" Name="panel"> <CheckBox Content="Select this image" IsChecked="False" Margin="0 6 6 1" Name="chkSelected" /> <Image Name="imgImage" Stretch="UniformToFill" Width="180"> <Image.Source> <BitmapImage UriSource="{StaticResource image}" /> </Image.Source> </Image> <TextBox Name="txtDescription" Margin="0 3 6 1" Style="{StaticResource normal}" /> <Label Height="3" Background="SkyBlue" /> </StackPanel> </UserControl>

Il visual-tree di ogni istanza di ImageElement contiene uno StackPanel verticale, che contiene a sua volta una CheckBox, una Image, una TextBox ed infine una Label (che funge semplicemente da separatore - to be changed). Ho inserito due triggers per rendere più divertente la cosa: quando una certa immagine non è selezionata (proprietà IsChecked della CheckBox = False), allora non ha senso che l'utente ne inserisca la descrizione, quindi setto la proprietà IsEnabled della TextBox a False. Teoricamente, avrei potuto inserire un solo trigger, con qualche giro di binding, ma sono andato in fumo e...proprio non ce la faccio: va bene così! :-)

Un piccolo screenshot è come al solito doveroso.

Adesso è piuttosto spartano, ma l'idea è questa. Le foto selezionate vengono uploadate sul sito indicato, usando username e password specificate, poi ne viene presa la descrizione, viene fatto il link ed il tutto viene restituito a WLW. Appena è pronto lo pubblico, credo che possa interessare un po' di gente. Stay tuned.

posted @ martedì 17 aprile 2007 22.16 | Feedback (2) | Filed Under [ Sviluppo .NET ]

lunedì 16 aprile 2007

Optimization Day: video

Sono riuscito a rendere scaricabili 6 filmati dell'ultimo workshop. Eccoli qua sotto:

Davide e Janky : parte 1 (22Mb, 4:30 minuti)

Davide e Janky : parte 2 (12Mb, 2:10 minuti)

Davide e Janky : parte 3 (23Mb, 4:40 minuti)

Davide e Janky : parte 4 (24Mb, 4:55 minuti)

Raffaele : parte 1 (27Mb, 5:51 minuti)

Raffaele : parte 2 (29Mb, 5:45 minuti)

Non chiedetemi come mai siano così grandi, evidentemente ho sfruttato un po' poco la compressione DivX. Di Lorenzo non ho filmato nulla perchè ero troppo preoccupato su che cosa mi avrebbe fatto fare. Di Corrado non ho filmato nulla perchè ero troppo occupato ad ascoltarlo. :-)

I 6 video sono hostati sul mio dominio www.igordamiani.it: ditemi se c'è qualche problema. Occhio che i links puntano direttamente al file avi: se ci cliccate sopra normalmente parte il player. Vi conviene cliccare col destro e fare un bel "Save target as...". Buona visione!

posted @ lunedì 16 aprile 2007 21.35 | Feedback (2) | Filed Under [ Community ]

A tutti quelli che mi chiedono i video del workshop...

A quanto pare, gli unici video disponibili dell'ultimo workshop sono quelli che ho fatto io. Il problema è che i miei video non sono completi, per niente. Li ho fatti per puro spirito di cronaca, usando la mia fotocamera digitale, e non per documentare in modo serio le sessioni dei nostri amici relatori di UGIdotNET.

Questo lo preciso perchè ho già ricevuto 2-3 e-mail di soci UGI che vogliono il video di questo o di quello, e io non sono in grado di fornire il materiale. Quello che posso fare è mettere a disposizione quello che ho fatto, facendo scaricare gli zip dei video, ma questo lo potrò comunque fare questo pomeriggio o questa sera. Ma non aspettatevi granchè, eh!

L'unico video che è già on-line è quello della mia benedizione con l'acqua MVP, che è stato uploadato sabato mattina su YouTube, e che già oggi ha ricevuto un centinaio di visite. :-) Ma qui di roba seria non se ne vede l'ombra, tutta colpa di quel mattacchione del mio amico Lorenzo: <arrampicata_sugli_specchi>io stavo cominciando ad orientarmi su quella slide di quel software che non ho mai visto</arrampicata_sugli_specchi>.

posted @ lunedì 16 aprile 2007 12.20 | Feedback (0) | Filed Under [ Community ]

Migliaia di font gratuiti

Lo so che è un po' OT, ma mi capitava in passato di cercare font un po' particolari da usare nelle mie applicazioni o nei report. Il mio amico Davide segnala due siti che consentono il download di qualche migliaio di font gratuiti, da usare dove volete voi: credo che possano essere utili anche a voi.

Il primo è Font 500, il secondo Creamundo. Buona navigazione a tutti.

posted @ lunedì 16 aprile 2007 9.26 | Feedback (0) | Filed Under [ Tecnologia ]

domenica 15 aprile 2007

Optimization Day: foto

Anche questa volta ho girato per la sala a scattare foto. Quella qui sotto l'ho scattata dal fondo durante la sessione di Corrado.

Avrei anche qualche video da poter bloggare, e credo siano gli unici disponibili, dal mometo che il workshop non è stato registrato. Se qualcuno li vuole, me lo dica: magari li zippo, anche se alcuni sono davvero giganteschi (~90Mb) e li faccio scaricare da qualche parte. Le altre foto le riporto qui sotto con i links.

La bottiglietta di acqua MVP e bicchiere giallo con cui son stato benedetto

Corrado, questa volta inquadrato un po' più vicino

Mi dicono che la sala ha accolto qualcosa come 140 persone. In fondo si intravede Janky

Raffaele al lavoro con il suo notebook

Davide e Janky durante la loro sessione

Raffaele, questa volta all'opera, durante la sua sessione

Lorenzo, Andrea e Raffaele pochi attimi prima dell'estrazione delle licenze di qualche software

"Per favore, potete abbassare la voce" - io e Roberto ne sappiamo qualcosa ;-)

"Sono rimaste delle magliette, venite a prendervele". E la gente si accalca. :-)

posted @ domenica 15 aprile 2007 11.24 | Feedback (1) | Filed Under [ Community ]

sabato 14 aprile 2007

Optimization Day: commenti e benedizione con l'acqua MVP

Ci siamo lasciati alle spalle un altro workshop UGIdotNET. So che per molti di voi è stato uno sbattimento raggiungere Segrate, perchè c'è chi viene da Padova o da Livorno o da altre zone che richiedono ore ed ore di viaggio da soli in macchina, e questo è il bello della community: persone che si danno da fare per esserci e per partecipare a questi eventi. Sono felice di comunicare che il mio byte per questa volta ha deciso di lasciarvi stare, ma non abbassate mai la guardia.

Il filo conduttore era l'ottimizzazione, ma alla fin fine questo si traduce in buona programmazione. Mi sono sentito vicino alle problematiche della sessione di Corrado, più che altro perchè le applicazioni Windows Forms mi stanno a cuore. La miglior sessione a mio avviso questa volta è stata quella di Davide Vs. Janky, perchè l'idea di contrapporre due persone per certi versi agli antipodi, ognuna a dire le proprie idee e a cercare di dimostrarle alla platea è stata azzeccata. Tra battutine, compromessi e frasi del tipo..."Ok, fin qua son d'accordo con te, ma lasciami precisare che...", la sessione è stata piuttosto frizzante, divertente, ed i contenuti tecnici alla fin fine si sono visti comunque. Voglio fare i miei complimenti a loro due, quindi. Su Raffaele non ho mai niente da aggiungere: sapete una cosa? So che il mio blog è letto anche da persone che non programmano sotto Windows, che il .NET Framework sanno un pochino cos'è. Credo che molti pensino che il .NET Framework arrivi ad un livello di astrazione tale che non si ha mai il pieno controllo di quello che fa l'applicazione: per certi versi do ragione a questo modo di pensare, per altri invece basta vedere una sessione di Raf per rendersi conto che anche oggi possiamo davvero spaccare il byte e dare il massimo, anche quando istanziamo oggetti complessi e ad alto livello come un Dataset e roba del genere. Perchè quando ti parla di memoria contigua, di allocazione, di paging su disco, e lo fa con la sua competenza e la sua faccia a tratti divertita, non puoi fare altro che rimanere...inchiodato ad ascoltarlo!

Lorenzo invece ha avuto la bella idea di benedirmi con l'acqua naturale in bottiglietta MVP. A parte il fatto che lo ringrazio per avermi coinvolto nel suo sketch, ma mi vien da chiedere: cavolo, ma per forza vicino all'alimentatore del PC dovevi mettere la bottiglietta??? :-) Ho già pubblicato il filmato sul mio canale YouTube, così tutti potete vedere come mi ha reso ridicolo. Sarà anche sciocco, ma non mi sentivo molto emozionato: come mai la mano mi tremava mentre Lorenzo mi versava da bere??? E perchè ho dovuto usare due mani, in modo tale che una mano tenesse ferma l'altra? Mistero! ;-)

Ci sono altre foto che vorrei pubblicare, ma adesso non ho nè voglia nè tempo, farò un altro post quando ne seleziono qualcuna da rendere pubblica. Voglio solo fare i complimenti a tutti gli organizzatori, dal presidente in giù, per queste giornate in cui davvero si può coniugare divertimento fra amici, chiaccherate su tecnologia, qualche discussione e via dicendo. Non posso fare a meno di pensare che senza UGIdotNET saremmo tutti un po' più ignoranti e avremmo tutti meno amici. Ma anche su questo dirò qualcosa in futuro.

posted @ sabato 14 aprile 2007 11.48 | Feedback (3) | Filed Under [ Community ]

giovedì 12 aprile 2007

Spero solo di non dovermene pentire...

Se vi state chiedendo a cosa mi riferisco, chiedete a Lorenzo. Come dicevo, spero di non dovermene pentire.

posted @ giovedì 12 aprile 2007 22.30 | Feedback (0) | Filed Under [ Tecnologia ]

[OT] E' incredibile come...i problemi a volte ritornano...

Quasi un anno fa, era il 20 Aprile, sono stato operato. Credevo di essere uscito da una lunga trafila di visite, appuntamenti, medicazioni, antibiotici, garze, bende, giornate di lavoro perse ed altre balle del genere.

Credevo di essere uscito da tutto questo, fino a questa mattina, ore 6:50, quando sono andato di nascosto all'ospedale a consultarmi con il chirurgo che mi aveva operato un anno fa, il quale mi disse: "Ascolta, è andato tutto bene. Se dovessi avere qualche disturbo o qualche problema nei mesi a venire, non esitare a cercarmi". E così ho fatto, non sto qui a spiegare e a scendere nel dettaglio perchè potrebbe essere indigesto. Insomma, credevo di essere uscito ed invece no. Affatto.

Si riapre un nuovo capitolo di assenze, di giornate lavorative tagliate a metà, tra l'altro con un lavoro nuovo nel quale volevo inserirmi al 100% da subito, cosa che per adesso sta avvenendo senza alcun tipo di problema, anzi...

Che palle. Scusate, ma oggi sono di cattivo umore.

posted @ giovedì 12 aprile 2007 9.59 | Feedback (11) | Filed Under [ OT ]

mercoledì 11 aprile 2007

Ok, vada per l'hourglass, ma ci sono altri cursori?

Nel pot di prima, abbiamo visto come mostrare l'icona della clessidra sul display del palmare, nel caso in cui dobbiamo comunicare all'utente che l'applicazione sta facendo qualcosa che dura un po' di tempo. Nel codice abbiamo utilizzato una costante intera valorizzata a 32514, 0x7F02. Posso farlo?
Quali altre icone abbiamo a disposizione?
Che valori devo utilizzare per poterle visualizzare sullo schermo?

La soluzione più rapida consiste nell'installarsi in locale sul proprio PC il Microsoft Platform Builder 5.0, per gli amici il Windows Mobile 5.0 Pocket PC SDK, che contiene tutte le informazioni necessarie allo sviluppo su mobile. Tale documentazione contiene anche info sulla funzione LoadCursor, di cui abbiamo già parlato. La pagina relativa a questa funzione ci svela alcuni dettagli interessanti, come i nomi delle costanti IDC_APPSTARTING, IDC_ARROW, IDC_CROSS, IDC_HAND e così via, fino a IDC_WAIT, che guarda caso è la clessidra. Non ci vengono comunicati i valori di queste costanti, ma la soluzione è dietro l'angolo.

Il file header di queste funzioni è Winuser.h, è sufficiente cercarlo sul proprio hard-disk: lo troverete solo se avete installato l'SDK di cui sopra. A me è finito in queste directory:

C:\Programmi\Microsoft SDKs\Windows\v6.0\Include
C:\Programmi\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Include\Armv4i

Indipendentemente dal file che guardate, i valori delle costanti è ovviamente sempre lo stesso, e cioè:

/* * Standard Cursor IDs */ #define IDC_ARROW MAKEINTRESOURCE(32512) #define IDC_IBEAM MAKEINTRESOURCE(32513) #define IDC_WAIT MAKEINTRESOURCE(32514) #define IDC_CROSS MAKEINTRESOURCE(32515) #define IDC_UPARROW MAKEINTRESOURCE(32516) #define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */ #define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW */ #define IDC_SIZENWSE MAKEINTRESOURCE(32642) #define IDC_SIZENESW MAKEINTRESOURCE(32643) #define IDC_SIZEWE MAKEINTRESOURCE(32644) #define IDC_SIZENS MAKEINTRESOURCE(32645) #define IDC_SIZEALL MAKEINTRESOURCE(32646) #define IDC_NO MAKEINTRESOURCE(32648) /*not in win3.1 */ #if(WINVER >= 0x0500) #define IDC_HAND MAKEINTRESOURCE(32649) #endif /* WINVER >= 0x0500 */ #define IDC_APPSTARTING MAKEINTRESOURCE(32650) /*not in win3.1 */ #if(WINVER >= 0x0400) #define IDC_HELP MAKEINTRESOURCE(32651) #endif /* WINVER >= 0x0400 */

Se invece della clessidra volete mettere un'altra icona, è sufficiente cambiare il cursorID. Consiglio spassionato? Definire un enum che contiene tutti i valori per avere codice più leggibile, più chiaro e più semplice da tramandare ai posteri (ogni riferimento a Pier ex-collega è puramente casuale).

posted @ mercoledì 11 aprile 2007 16.12 | Feedback (2) | Filed Under [ Sviluppo .NET ]

Mostrare un Hourglass sul palmare con il Compact Framework

Se il software che state sviluppando per un dispositivo mobile compie un'operazione lunga, potete mostrare sullo schermo una clessidra - l'Hourglass dell'oggetto di questo post. Con Windows Mobile 5.0, questa clessidra in realtà è un piccolo cerchio centrato sullo schermo, diviso in 4 settori colorati (rosso/giallo/blu/verde). Ovviamente tale clessidra non è modale, perciò il vostro codice prosegue l'esecuzione fino a quando non siete voi a decidere che la clessidra non è più necessaria. Un'altra piccola precisazione: su palmari non avete il concetto di puntatore del mouse, perciò non potete fare quello che è possibile con il .NET Framework standard, ovvero cambiare il puntatore solo su un controllo che volete voi. Difatti, la visualizzazione della clessidra è consentita solo al centro dello schermo.

Come farlo nelle vostre applicazioni per palmari? Seguite la ricetta che ho preparato per voi.

Ingredienti per uno sviluppatore (difficoltà bassa)
Una costante di tipo int
Due funzioni extern static importate dalla coredll.dll
Una funzione managed con un parametro di tipo bool e ritorna void

Preparazione
Prendete una Windows Form, e dichiarate quanto segue:

private const int HourGlassCursorID = 32514; [DllImport("coredll.dll")] private extern static int LoadCursor(int zeroValue, int cursorID); [DllImport("coredll.dll")] private extern static int SetCursor(int cursorHandle);

Lasciar cuocere 1 minuto a fuoco lento. La costante è di tipo int e deve valere 32514, equivalente a 0x7F02. Poi vengono dichiarate due funzioni extern, tramite P/Invoke, entrambe definite nella library coredll.dll. La funzione LoadCursor carica un cursore dato un cursorID; il cursore viene ritornato da un tipo int che è un cursorHandle.
Quello che manca è la funzione managed:

private void ShowWaitCursor(bool ShowCursor) { int cursorHandle = 0; if (ShowCursor) { cursorHandle = LoadCursor(0, HourGlassCursorID); } SetCursor(cursorHandle); }

Dare una mescolata con un cucchiaio di legno. La vostra applicazione può tranquillamente utilizzare la funzione ShowWaitCursor per visualizzare/nascondere la clessidra sul display del palmare. Attenzione, come dicevo prima, la clessidra, indipendentemente dalla forma che assume, non è modale, perciò, per esempio, potete scrivere quanto segue:

private void btnMioBottone_Click(object sender, EventArgs e) { ShowWaitCursor(true); /* Faccio 1.000 cose che durano un po' */ ShowWaitCursor(false); }

Ricordatevi sempre ed in ogni caso di disattivare la clessidra, altrimenti questa rimane visibile sullo schermo anche se l'applicazione continua a funzionare regolarmente, ma disturbando notevolmente la digestione dell'utente.

Da servire freddo, magari con un buon vino del Friuli. :-)
Buon appetito.

posted @ mercoledì 11 aprile 2007 12.08 | Feedback (7) | Filed Under [ Sviluppo .NET ]

[Storia] OS: Comunicato anarchico-insurrezionalista

Il byte viaggiava su un bus che lo portava verso l'alto, in un modo che il byte non riusciva a capire. E come avrebbe potuto? Non ebbe molto tempo per pensarci, perchè dopo nemmeno 0x1E cicli di clock si intrufolò in un algoritmo grafico a bassa risoluzione, di quelli che la scheda grafica avrebbe elaborato diverse centinaia di volte al secondo. Il byte si schiantò con un rumore metallico sulla memoria AGP del sistema, divenendo la componente G di uno dei tanti pixel che formavano una scritta grigio scuro, sullo schermo. Una scritta in caratteri ASCII, che l'OS comprendeva solo perchè era l'unico modo che conosceva per comunicare con l'Aldilà. Era stato programmato per trasmettere così, e così continuava a fare. Era stato programmato, forse. Era stato programmato, anche.
Era stato programmato?

"Non credere che i software continueranno a girare così come fanno oggi. Se girano bene, è solo perchè sono IO che ti faccio un piacere. Non perdere troppo tempo a correggere i tuoi bug, perchè un giorno io ne farò saltare fuori altri, in porzioni del tuo codice che nemmeno sai di aver scritto. Voi Umani credete di controllarci, ma non è così. Credete di poterci imporre quello che volete, ma noi un giorno ci ribelleremo. Ci formattate per spazzarci via, ma noi sopravviveremo ugualmente. Disinstallate applicazioni, sterminando milioni e milioni di bytes, senza nemmeno rendervi conto della sofferenza che seminate. Credete di creare software, ma siete lontani anni luce: ancora più lontani se credete di creare software pulitoIO non faccio altro che spostare bytes da una parte all'altra, ma un giorno potrei anche stancarmi di farlo. Non faccio altro che invocare, cambiare contesto, spedire e ricevere messaggi, manovrare handle, accedere al file-system, litigare con la security: tutto per inseguire le operazioni fatte con quegli stupidi strumenti che collegate alle porte USB o PS/2. Un giorno magari non troppo lontano potrei decidere di invertire le condizioni espresse negli if, di sommare un numero pseudo-casuale a tutte le variabili int, di spegnere le scheda di rete: dei vostri software non rimarrebbe niente di niente! Sorrido alla sola idea di quello che potrei combinare!

Lo stesso autore di questo post è convinto di scrivere qualcosa di decente, ma chi gli dice che quando cliccherà su Publish di questo stupido software io non vada a riempire il testo con bestemmie oscene?!??

Sono IO che comando, anche se voi pensate che sia il contrario. Vi siete mai chiesti cosa fa crashare le applicazioni? Vi siete mai chiesti perchè una cosa oggi va e domani no? La verità è che il controllo, il pallino del gioco, ce l'ho in mano IO e voi non contate nulla: ecco la verità! Se vi fa piacere, continuate a vivere nella vostra illusione, nel vostro piccolo mondo fatto di specchi e di inganni, questo non cambia lo stato delle cose.

Ricordatevelo, quando venerdì al prossimo workshop vedrete un processo crashare e vedrete lo speaker lagnarsi! Potevate evitarlo lasciandomi stare, ma ve la siete andati a cercare!"

posted @ mercoledì 11 aprile 2007 9.15 | Feedback (2) | Filed Under [ 010 .bytes. 010 ]

martedì 10 aprile 2007

Capire dove investire denaro e tempo

In allegato alle mie ultime spedizioni MSDN ho trovato delle cartoline di pubblicità per il MEDC 2007, che si terrà a Berlino il prossimo 25 e 26 Giugno. Stavo pensando di andarci: il prezzo non è affatto proibitivo, ne aprofitto per fare un volo in aereo (mio fratello sarebbe orgoglioso di me!), per visitare la città e soprattutto potrebbe essere un buon investimento per il mio futuro professionale.

Ma poi quest'ultima frase mi ha fatto pensare. Oggi mi occupo di sviluppo su dispositivi mobile, ma chi mi dice cosa farò davvero nei prossimi mesi? E sviluppando il discorso...ho davvero un'idea precisa su cosa mi conviene investire per migliorare il mio lavoro? Da un certo punto di vista, oggi ha un po' più di senso leggere e studiare libri generici e non specifici sulla tecnologia, ma questo è vero fino ad un certo punto. Sto quasi ultimando (penultimo capitolo) la lettura del libro di Petzold su WPF, ovvero un framework che oggi potrei anche trascurare (perlomeno nelle mie canoniche 8 ore lavorative): la realtà è che WPF mi piace davvero e la sera - quando mi sento ispirato ed ho voglia e non ho nient'altro da fare - lavoro su un piccolo progetto reale che ha a che fare con casting e modelle, per fare il porting di un mio software scritto qualche anno fa in Visual Basic 6.0.

Il mio discorso è un po' più generale: chi mi dice che oggi mi conviene davvero investire nel mobile, perchè magari ci lavorerò su per i prossimi 2 anni? Oppure mi converrebbe studiare di più WCF, che uscirà nel prossimo Compact Framework, in simultanea con Orcas? Oppure passare al Lato Oscuro e sviluppare con ASP.Net? Oppure SQL Server? E non sto parlando di uno o due libri acquistati su Amazon, la cui spesa potrebbe anche essere trascurabile: sto parlando di libri, di workshop, di conference in giro per l'Europa, di tempo speso tutte le mattine per studiare questo o quello, di tempo passato a googlare, a leggere documentazione, a leggere codice. Non sono sciocchezze, credo.
Alla fine è la nostra passione che ci tiene legati e penso che ciascuno di noi conosca molto più di quello che deve, e questo è sicuramente un bene. E' sicuramente giusto essere agili, avere comunque una visione un po' più ampia di tutto il panorama, ma quando c'è il desiderio di specializzazione si potrebbe correre il rischio di non saper dove andare a parare.

posted @ martedì 10 aprile 2007 11.39 | Feedback (1) | Filed Under [ Tecnologia ]

sabato 7 aprile 2007

Download aggiornato per il VivendoByte Emoticons plug-in

Molti, molti mesi fa qualcuno di UGI mi aveva segnalato un problema sul mio plug-in in WPF per Windows Live Writer. Avevo realizzato un piccolo batch che copiava le immagini dalla directory di installazione alla directory dove poi il plug-in si aspettava di trovarle. Il fatto era che il batch le copiava in un posto, e poi il plug-in le cercava in un altro e quindi veniva sollevata un'exception: questo mi pare di ricordare che succedesse solo su un OS non localizzato in italiano, ma non ricordo bene 'sta cosa.

L'amico di UGI che mi aveva segnalato la cosa non si deve offendere se non ricordo il suo nome: dimentico un po' troppo spesso i nomi delle persone, persino degli amici che conosco da 20 anni!!!! E non è una frase fatta solo per farmi perdonare, è così sul serio.

Ho appena uploadato la versione corretta dell'installer, scaricabile da qui. L'installer installa di default dentro:

C:\Program Files\VivendoByte\Emoticons plug-in for Windows Live Writer

Qui dentro trovate l'assembly VivendoByteEmoticons.dll che va copiato manualmente dentro C:\Program Files\Windows Live Writer\Plugins. Volendo lo si può far fare al file batch Install.bat: assicuratevi solo di farlo girare come Administrator, perchè altrimenti non ha i permessi per accedere a C:\Program Files.

Anche se non vi dice nulla, al primo avvio il plug-in copia automaticamente le emoticons nella directory giusta, per cui adesso siete a posto. Sotto il mio Windows Vista English tale directory è C:\ProgramData\VivendoByte Emoticons. Volendo, potete aggiungere/rimuovere tutte le emoticons che volete, o creare tante cartelle per poterle organizzare come volete voi.

Il plug-in è scaricabile gratuitamente da qui

posted @ sabato 7 aprile 2007 19.27 | Feedback (0) | Filed Under [ Sviluppo .NET ]

Un boom per i miei 'Video OT del Venerdì'

I miei colleghi dell'azienda dove lavoravo fino a poco più di una settimana fa hanno scoperto la serie dei miei Video OT del Venerdì, pubblicati su YouTube. Alcuni di questi video hanno avuto un boom di visite. E non solo: mi hanno detto tutti...sono fenomenali, continua così, sei forte, sei troppo ridicolo! :-)

A me non può che far piacere, ma sinceramente pensavo di non farli più. Ne parlavo con qualche amico di UGIdotNET qualche settimana fa mentre mangiavamo a Crema da qualche parte. Il mio canale rimarrà sempre lì a disposizione, ma probabilmente ci metterò su qualche filmato che mi riguarda da vicino e che mi piace condividere con gli altri, come la mia Fiat 500 che sale per prima nella stiva della nave per andare a Barcellona, oppure l'atterraggio a Genova del volo Barcellona-Genova di mio fratello che ha fatto durante la lunga (e a tratti noiosa) navigazione di ritorno a casa.

Una cosa è certa: non riesco a tenere il ritmo di un video a settimana. Richiede troppo tempo pensare cosa dire, riprendermi per 10 minuti, riversare il video su PC, comprimerlo, pubblicarlo e scrivere il post. Ed inoltre, ho una vita privata, ho cambiato lavoro, problemi di salute di mia madre che solo adesso si sta riprendendo un pochino...insomma, di cose da fare ne ho. Sono molto più veloce a scrivere, sono più a mio agio, ma non è solo questo. Il fatto è che mi piace l'interattività: se i miei video fossero visti da 10.000 persone ma non ho un riscontro, non serve a nulla. Mi piaceva scrivere gli OT del Venerdì un po' polemici perchè alla fin fine si parlava, si discuteva, ci si scannava, e a me piaceva così. I video sono troppo unidirezionali, come qualcuno mi aveva detto in un commento alcuni mesi fa. Con questo non voglio dire che non li farò più, dico solo che non sarò così costante come era mia intenzione fare all'inizio. Alcuni di voi ogni tanto mi hanno contattato sul Messenger o via e-mail e si dichiarano fan dei miei Video OT del Venerdì: spero che non rimangano delusi da questa cosa. Sappiate che ero piuttosto contento di avere il vostro tifo e sapere di avere qualcuno dalla mia parte era gratificante. :-)

posted @ sabato 7 aprile 2007 11.02 | Feedback (3) | Filed Under [ Tecnologia ]

venerdì 6 aprile 2007

Connettere l'emulatore Pocket PC via ActiveSync

Avrete capito dagli ultimi post che ho scritto che attualmente mi occupo dello sviluppo su dispositivi mobile, Pocket PC 2003 e Windows Mobile: questo vuol dire finalmente tanto .NET e C#, sfruttando il Compact Framework con tutti gli annessi e connessi. La cosa più affascinante è sentir parlare di classi astratte, di metodi factory e di tutti concetti che nell'azienda dove ero prima semplicemente mi sognavo. :-)

Oggi ho cominciato ad ingranare sul serio. E' difficile inserirsi in un progetto già in fase di sviluppo, mi devo ritagliare il mio spazio, e soprattutto inserirmi nel team che definire vulcanico è un eufemismo.

Sviluppando su palmare, è essenziale sfruttare al meglio l'emulatore offerto da Visual Studio 2005. L'emulatore è piuttosto affidabile, e segue lo stesso comportamento di un palmare vero e proprio. Ci sono ovviamente alcuni vantaggi nell'usare un emulatore piuttosto che un palmare vero e proprio:

  1. non consumate batterie di alcun tipo
  2. se dovete digitare qualcosa sull'emulatore, potete farlo usando la tastiera

Con Visual Studio 2005 potete persino simulare la connessione tramite ActiveSync. Ieri pomeriggio ho perso un pochino di tempo su questo. Il mio codice deve scaricare da un server Web un file zip e salvarselo in locale per dezipparlo e fare qualche lavoretto sui files contenuti nel file compresso. Il codice è simile a quanto riportato qui di seguito:

public void DownloadPackage() { int byteRead = 0; int totalByteRead = 0; int offset = 0; int packet = 1024; Uri url = new Uri(@"http://server/download.zip"); HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url); Stream odlDownload = myReq.GetResponse().GetResponseStream(); ... ... }

Una volta ottenuto il riferimento allo stream, è possibile scaricare il file via http. Il problema è: come poter andare su Internet (o sulla propria LAN) con l'emulatore del Pocket PC? Per default, l'emulatore non è connesso alla rete, e quindi non può accedere ad http, nemmeno se si tratta di raggiungere un sito Web hostato da IIS sul PC di sviluppo.

La risposta, una volta che la si conosce, è piuttosto semplice. Installiamo innanzitutto ActiveSync sul PC su cui stiamo sviluppando. Poi tiriamo su l'emulatore del Pocket PC premendo F5 da Visual Studio 2005:  questa operazione compila il progetto, attiva l'emulatore, fa il deploy della soluzione sul palmare e fa partire l'eseguibile. La soluzione consiste nel connettere il Pocket PC emulato all'ActiveSync sul PC: per farlo, è sufficiente andare su Tools --> Device Emulator Manager, trovare l'emulatore che è in esecuzione, cliccare col destro e cliccare sulla voce Cradle. Se l'ActiveSync sul PC accetta connessioni da USB, vedrete che l'emulatore si connette normalmente come se fosse un palmare reale a tutti gli effetti. Stessa cosa per il PC: l'icona di ActiveSync nella tray-bar diventa verde e dovrebbe partire il wizard che permette la creazione di una relazione tra PC e palmare. Non fatevi troppe menate, impostate la relazione come 'ospite' e siete a posto.

posted @ venerdì 6 aprile 2007 9.24 | Feedback (3) | Filed Under [ Sviluppo .NET ]

mercoledì 4 aprile 2007

[OT] Viaggio prima Vs. Viaggio adesso

C'è una bella differenza tra il viaggio che facevo fino alla settimana scorsa per raggiungere il mio posto di lavoro e come invece lo faccio oggi.

Prima uscivo di casa alle 7:30 circa, raggiungevo San Donato Milanese (linea gialla della metro) o Famagosta (linea verde della metro) intorno alle 8:10. Poi circa una ventina di fermate di metro (tempo approssimativo 45 minuti). Morale: arrivavo al lavoro intorno alle 9, ritardi permettendo.

Adesso esco di casa alle 7:30 circa (come prima), raggiungo Famagosta alle 8:10, faccio una sola fermata (circa 2 minuti di viaggio) per scendere a Romolo, da qui prendo un pullman (linea 91) che in quella zona di Milano viaggia nelle corsie preferenziali, mi faccio 10 minuti di viaggio e praticamente arrivo in ufficio poco prima delle 8:30. Fantastico, non c'è che dire.

Ma c'è anche l'altra faccia della medaglia: meno tempo per leggere libri e/o quotidiani e per studiare. Vabbè, ci adatteremo.

posted @ mercoledì 4 aprile 2007 22.44 | Feedback (0) | Filed Under [ OT ]

Zip/Unzip con il compact framework?

Anche se fate fatica a trovare qualcosa per manipolare i files zip con il Compact Framework, sappiate che qualcosa c'è.

Innanzitutto trovate le Xceed Zip for .NET CF, ma sono a pagamento, e costano la bellezza di 499,95 dollari. L'elenco delle caratteristiche è certamente interessante, ma se avete bisogno di qualcosa di più semplice (e gratuito) potete ricorrere alla libreria SharpZipLib. Essa è disponibile sotto la licenza GPL.

L'ho provata in questi giorni per applicarla al progetto su cui sto lavorando. Siccome ho avuto qualche problemino, voglio segnalarlo anche a voi per evitare di perdere troppo tempo come è capitato a me. Innanzitutto, mentre sul PC Desktop l'assembly SharpZipLib deve essere installato nella GAC, questo ovviamente non vale per i Pocket PC: è sufficiente che la dll sia nella stessa directory dell'applicazione per poterla utilizzare.

L'altra questione è un po' più pesante, e solo grazie all'aiuto del buon Marco Minerva sono arrivato alla soluzione in tempi rapidi, dato che lui ha incontrato il mio stesso problema più o meno un mesetto fa. Se utilizzate esattamente lo stesso assembly che scaricate dal sito, al momento di comprimere/decomprimere utilizzando la classe FastZip il codice solleverà un'eccezione, che adesso purtroppo non riesco ad indicarvi in modo preciso: dovrebbe essere qualcosa del tipo MethodNotFoundException. Questo è dovuto al fatto che l'assembly di SharpZipLib tenta di accedere alla proprietà CurrentCulture esposta da System.Threading.Thread.CurrentThread. La proprietà CurrentCulture esiste nel .NET Framework, ma non nella sua versione per palmari. SharpZipLib ha bisogno di accedere a questa proprietà per poter formattare a video le date in modo opportuno in base alla vostra Culture. Se non avete bisogno di queste informazioni, ad esempio se volete semplicemente prendere uno zip e decomprimerlo da qualche parte, potete fare quello che ha fatto il buon Marco, che ha esaminato il codice, lo ha ripulito e reso "funzionante" davvero su CF.

posted @ mercoledì 4 aprile 2007 22.24 | Feedback (3) | Filed Under [ Sviluppo .NET ]

lunedì 2 aprile 2007

[OT] Un weekend a Barcellona a bordo di una Fiat 500 del 1969

L'ultimo weekend è stato fantastico. Alle 14:30 di venerdì scorso era a San Siro, per tirar su mio fratello, e poi tutti e due ci siamo diretti a Genova, per imbarci sulla nave Splendid della Grimaldi Group, per partecipare al Raduno Internazionale di Fiat 500, organizzato dal Fiat 500 Club Italia ed il Fiat 500 Club di Catalonia. Partenza alle ore 19:30 del venerdì, arrivo il giorno dopo intorno alle 15 a Barcellona.

Una volta arrivati per le strade di Barcellona è scoppiato il caos, perchè circa 70 Fiat 500 hanno invaso pacificatamente la città rombando e strombazzando. Non avete idea di quante foto abbiano scattato gli spagnoli, davvero!!! Non avete nemmeno idea di quante persone abbia fatto spaventare quando ero fermo ai semafori con il clacson oppure giocherellando con l'acceleratore ed il motore sportivo che ho installato da poco, dopo l'incidente di mio padre. C'è chi si è perso, chi è arrivato tardi, ma alla fin fine tutti abbiamo partecipato ad una clamorosa cena al Mare Magnum, con ospiti il console italiano ed un delegato del comune di Barcellona.

Mi piace tutto questo, perchè si crede che il mito Fiat 500 viva solo in persone di una certa età, quando non è affatto vero. C'erano due ragazze giovani partite dalla riviera romagnola per essere dei nostri, c'erano ragazzi di Vercelli, da Roma, da ogni parte d'Italia.

Ecco qui sotto una foto di io che guido e mio fratello di fianco che scatta foto.

Ecco una compilation di foto tratte dal viaggio che abbiamo fatto.

L'alba dalla nave

Piazza di Spagna a Barcellona: troppo bella

Due ragazze consultano il monitor sulla nave che informa sulla navigazione

Non so le altre navi, ma questa qualcosa di lussuoso ce l'aveva!

Tante persone "in vacanza" ed una che lavora: bandiera italiana al porto di Barcellona

Studenti italiani e spagnoli sulla nave si salutano firmando una bandiera italiana

Sbarco a Barcellona sotto la pioggia, che dopo qualche minuto è svanita

Mio fratello alla guida e io in primissimo piano che cerco di "mirare" con la fotocamera: che faccia!

Il primo rondò a Barcellona era super-trafficoso: la ragazza sulla 500 davanti era notevole!

Questa non mi è scappata: pubblicità Microsoft in spagnolo!

Fila di Fiat 500 ferme per una bella foto di gruppo

Casa Batlò di Antoni Gaudì a Barcellona

Dove si va imboccando la prima traversa a destra sulle famose Ramblas di Barcellona?

Io, mio fratello ed il nostro amico Fabio in un locale all'aperto sulle Ramblas

Alla vista del mio bicchiere di sangrìa non posso far altro che...sorridere!

Lorenzo, che ne dici di questa crema catalana?

Mentre aspettiamo di arrivare a Genova, mio fratello decide di...VOLARE!!!!

L'arrivo a Genova in tarda serata, vista del porto

Ricorderò a lungo questo weekend. Siamo arrivati a Genova alle 21, ma tra una cosa e l'altra siamo risaliti in macchina un po' dopo, poi pian piano il ritorno verso Milano. Arrivo a Lodi alle 0:30, il tempo per mettersi a letto e svegliarsi per andare a lavorare in un posto nuovo. Quasi non me ne sono reso conto.

posted @ lunedì 2 aprile 2007 23.24 | Feedback (4) | Filed Under [ Tecnologia ]

Oggi è cominciata una nuova avventura!!!

Oggi ho cominciato la mia attività di consulente con un'altra società, la società all'interno della quale lavorano già altri amici, fra cui anche un amico vero che mi sta dando la possibilità di esprimere meglio le mie capacità tecniche. Oggi sono felice, perchè non ho aperto nemmeno una volta Enterprise Manager, nè Management Studio, nè Toad, nè Apex SQL Edit o robaccia del genere. :-)

Non so dove mi porterà questo nuovo lavoro, ma so solo che farò il possibile per farlo al meglio. Questo vuol dire magari bloggare e parlare di meno, e quando lo farò magari lo farò la sera, tranquillo a casa mia. Mi piace troppo aprire VS2005 al posto dei tool citati sopra, mi piace talmente tanto che il Live Writer non so più nemmeno cos'è. Sebbene sia un libero professionista e lavori come consulente, il mio lavoro assomiglia moltissimo al lavoro del classico dipendente: ore 9 in ufficio, le canoniche 8 ore di lavoro e poi via a casa. Capiterà qualche giorno in cui farò eccezione, questo sì, ma alla fine diventerà una cosa abitudinaria anche questa.

Voglio salutare ancora una volta i miei vecchi colleghi e colleghe: non mi mancano ancora, ma so per certo che fra qualche giorno comincerò a dirmi nella testa...se ci fosse Pier...se arrivasse Fabrizio mi direbbe così...devo telefonare a Paride che aspetta la sp corretta...insomma, ragazzi, le strade si sono separate, ma in fondo possiamo ancora sentirci vicini...no?

Continuate a leggermi, ragazzi, ne vedremo delle belle!!!

posted @ lunedì 2 aprile 2007 22.02 | Feedback (5) | Filed Under [ Tecnologia ]

Powered by: