Di .NET e di altre amenita'

dicembre 2004 Blog Posts

A minuti arrivano

...e io sono ancora qui che posto. Non sarà una malattia?

powered by IMHO 1.1

Terminal server.

Visto il post di Lorenzo sul file sharing mi è venuto in mente il sito da cui sto attingendo a piene mani per scrivere il gestionale Kos, che appunto funzionerà in Terminal Server.

http://www.brianmadden.com/

E' un vero pozzo di conoscenza. Ve lo assicuro.

powered by IMHO 1.1

Indovina...

Ho finito di preparare la cena, e giusto per gradire rieccomi a scrivere due righe nel mio beneamato blog. Anche io, seduto in divano, sto riposando le mie stanche membra, mentre scrivo. Una navigata, un po' di codice e arriveranno le 18:30 quando con gli amici inizieranno i festeggiamenti.

La cena, dicevo, l'ho preparata io. Al 66% almeno. Ecco il menù:

  • tartine al salmone, tonno e branzino fumè
  • hors d'euvre a base di "cruditè" di pesce, con un raffinato pinzimonio di mandarino, limone e olio.
  • risotto di gamberi con curry
  • branzino da 1,5 kg con patate nostrane cotto in vino bianco
  • contorni di vario tipo
  • vino a fiumi
  • pandoro e panettone
  • frutta secca di vario genere

l'antipasto, le tartine e il piatto forte (branzino da 1,5 kg) sono il mio 66%...

Slurp...

powered by IMHO 1.1

Un sogno MPx

In barba a tutti gli allucinanti telefonini-fotocamera ibridi che circolano in questi mesi, ho appena scoperto un buon candidato a sostituire il mio attuale (ed eccezionale) Nokia 6310i.

Il telefono è il Motorola MPx la cui uscita è prevista per il prossimo anno negli U.S.A. Considerato un po' di rodaggio che va lasciato ai pionieri della telefonia, e il tempo necessario all'uscita dei concorrenti, direi che il mio cellulare attuale può ancora godere di 1-1,5 anni di vita, prima di cedere il passo ad una meraviglia di questo tipo.

Poi magari non ce la faccio a resistere, ma questo è un'altro discorso :-)

powered by IMHO 1.1

I miei auguri #2

Bene, e giunto il momento che io me ne vada a casa.

Vorrei quindi rinnovare a tutti i miei migliori auguri.

Buon 2005 a tutti.

powered by IMHO

Non dimentichiamoci gli altri morti

Ecco un punto di vista che condivido a proposito delle svariate tragedie nel mondo.

Il Blog di jazzer: Disastri di serie A e di serie B

powered by IMHO

IMHO: A proposito di emoticone

Date un'occhiata a questa animazione:

E' la nuova feature di IMHO che verrà.

powered by IMHO 1.1

Web Services: Terra Server

Le segnalazioni fioccano: Mirko Spagnolatti mi ha indicato il web service di Terra Server USA con il quale è possibile ottenere le immagini dettagliate degli U.S.A.

http://terraservice.net/terraService.asmx

E' veramente impressionante provare a sbirciare un po' in giro con l'interfaccia web.

Ma la domanda è: sarà veramente utile?

powered by IMHO 1.1

Web Services: Validare un indirizzo email

Grazie a questo commento di Davide Mauri, la categoria Web Service Utili ha trovato un altro membro.

http://www.webservicex.net/ValidateEmail.asmx

Consente di validare un indirizzo di posta elettronica, ma come dice Davide non è efficace al 100% perchè si basa su una feature che non tutti i server pop3 espongono.

powered by IMHO 1.1

Web Services: Ottenere i dati di un libro dal codice ISBN

Una piccola ricerca in rete ed ecco spuntare un utile web service scritto in ASP.NET

http://www.webservicex.net/isbn.asmx

E con questo parte una nuova categoria: Web Services Utili.

powered by IMHO 1.1

Pretty Cool... No Thank you.

Quest'oggi il blog spamming mi sta massacrando. Sarà circa un'ora che continuo a ricevere il messaggio "Pretty cool, thank you" nei  miei post.

Qualcuno dovrebbe dargli una lezioncina...

powered by IMHO

IMHO: Estensione di Firefox per IMHO

In questo weblog ci sono molti attivisti del mondo di FireFox. Mi chiedevo se non ce ne fosse nemmeno uno che voglia cimentarsi nella realizzazione di una estensione per Firefox, Mozilla, Thunderbird che permetta di postare su IMHO. Qui è possibile trovare una buona spiegazione su come procedere per realizzarla: How to write Firefox extensions .

Solo un requisito: Deve aggiungere le stesse feature che sono già presenti in Internet Explorer. Post Link to IMHO e Quote in IMHO, con il medesimo comportamento, nei limiti del possibile. Se qualcuno si offre otterrà tutto il mio supporto, per sapere come integrarsi facilmente e vedrà il suo plugin aggiunto all'installazione di IMHO.

Simone, se ci sei batti un colpo...

powered by IMHO 1.1

Running ASP.NET on Apache

Una collezione di link per chi volesse tentare questa strada. Ma prima guardatevi bene IIS6!

Apache and ASP.NET

powered by IMHO

IMHO: Come ti faccio emergere il design

Sono un po' di giorni che penso a questo post, ma fino ad ora non ero riuscito a trovare i 30 minuti consecutivi necessari per poterlo redarre. L'intento è quello di presentare un caso reale in cui il Refactoring mi è stato di aiuto nella realizzazione di una delle ultime features di IMHO, per l'appunto il sistema di upload dei file verso l'ftp.

Quando ho iniziato il lavoro, le uniche cose che realmente avevo chiare in testa erano i seguenti presupposti:

  1. L'unico modo veramente valido per implementare la feature era di usare il protocollo FTP. Svariate ricerche in rete mi avevano confermato che l'eterogeneità dei motori di blogging lasciava poco spazio a soluzioni più sfiziose.
  2. In secondo luogo era necessario comunque lasciare aperta la possibilità, in futuro di creare soluzioni ad-hoc per ogni motore di blogging.

Armato di pazienza e di queste labili certezze, il primo passo è stato quello di cercare una libreria per l'FTP. Di certo una cosa da escludere subito era la realizzazione ex-novo di tale libreria, non perchè impossibile, ma perchè la sua implementazione avrebbe fatto lievitare inutilmente i tempi di realizzazione. La libreria trovata come sapete è la' edtFTPnet, che alcuni test comparativi mi hanno confermato essere la più affidabile.

A questo punto avrei potuto mettermi davanti ad un foglio di carta e disegnare la soluzione del problema così come sarebbe dovuta nascere, tuttavia dato il tempo scarso, e la mia ormai grande fiducia nel refactoring, ho invece aperto Visual Studio e cercato il punto migliore per innestare il nuovo codice. Alla fine la scelta è caduta sull'aggiunta di un bel metodo virtuale alla classe base degli adapter con i parametri che sembravano più adeguati e nel farne l'override in un solo engine, cosciente del fatto che il codice che avrei scritto al limite andava copiato in tutti gli altri engine.

Questa era una soluzione evidentemente temporanea, non sia mai che io cada nella trappola mortale del cut&paste, ma che mi permetteva innanzitutto di approfondire la problematica facendo funzionare il sistema velocemente. Inoltre, evidenziava una bella questione, ovvero come fare in modo, dovendo fornire a tutti gli engine il medesimo protocollo, di astrarre l'implementazione del protocollo dall'engine stesso.

Ma tutto ciò era materia per i posteri. Innanzitutto occorreva scrivere il metodo che trasferiva i file. E già questa questione apriva altri problemi. Al termine del lavoro, quando l'engine di .TEXT già pubblicava i post mi sono reso conto che lo faceva in modo logicamente errato. Infatti l'engine apriva e chiudeva la connessione ad ogni file inviato. Con un protocollo come l'FTP questo era un problema dannatamente grave, perchè l'handshake iniziale causava un overhead eccessivo. Ovviamente pensandoci bene avrei anche potuto trovarmi in futuro con protocolli diversi (si pensi ad esempio ad un webservice) che non richiedessero una apertura e chiusura della connessione. A questo punto i metodi da uno sono divenuti tre. Due responsabile di aprire e chiudere la connessione, e il terzo che trasferiva i file uno per uno. Un protocollo non connesso, semplicemente poteva lasciare vuoti i metodi Open() e Close().

Risolto questo problema era giunto il momento di estendere il funzionamento agli altri engine. Escluso a priori il cut&paste, in buona ottica oop non rimaneva che separare le responsabilità e creare una classe che si occupasse del trasferimento. E così è stato ed è nata la classe FtpPublisher. A questo punto tutti gli engine trasferivano immagini per mezzo dell'FTP. Il problema a prima vista era risolto. Ma ancora il requisito di cui al punto 2 non era del tutto soddisfatto. E' vero che è sempre possibile riscrivere un metodo, ma è anche vero che è di gran lunga meglio se non lo si fa. Inoltre, era evidente una duplicazione delle funzionalità. GLi engine così come il publisher ftp aveevano entrambi i metodi Open(), Close() e SendFile().

Quindi l'idea è stata quella di estrapolare completamente la logica di trasferimento dall'engine e semplicemente di consentire ad esso di fornire l'istanza di publisher da utilizzare per la pubblicazione. Perciò ho creato la classe astratta Publisher, e ho migrato i metodi Open(), Close() e SendFile() verso il publisher, in particolare l'ftp. A questo punto non rimaneva altro che fare in modo che l'engine creasse l'istanza di publisher e perciò ho creato una proprietà che lo restituisse a chi lo chiedeva. Tutto ciò adeguando poco a poco anche la logica che usava il publisher.

La soluzione era veramente buona. Ma ancora gli mancava qualcosa. Anche i questo caso, sostituire il publisher costringeva a ricompilare. E' stata la reflection alla fine che mi è corsa in aiuto. Modificare la proprietà degli engine per fare in modo che leggessero la classe publisher da file di configurazione è stato un gioco da ragazzi. E a questo punto ero veramente soddisfatto.

Ecco, a conclusione di questo post, vorrei rilevare come, partendo con poche certezze e armati della affilate spade dell'object-orientation e del refactoring si possa ottenere una soluzione ben congegnata, risparmiando di spremere le meningi su problemi che per ovvie ragioni all'inizio sfuggono. Ovviamente questo è il mio modo di procedere, suppongo che altri avrebbero ottenuto soluzioni differenti, ma ritengo che il succo del discorso sia davvero importante: non conta che riusciate a smontare il problema pezzo per pezzo da subito, è molto più probabile che, comportandovi come le onde del mare sulla roccia, riusciate più facilmente ad eroderlo mano a mano che esso presenta le sue parti più friabili.

powered by IMHO

USB Cup Warmer

Un commento del mio amico Francesco mi ha fatto scoprire l'esistenza di un vero must-to-have per chi come me e Lorenzo ama bere un buon the tra una classe e l'altra.

Gizmos for Geeks | USB Cup Warmer

Lo voglioooooo.....

powered by IMHO

Hocus Pocus

Eccomi, immaginatemi vestito come Otelma, un po' più simpatico spero, che scruto nella mia sfera di cristallo e snocciolo le mie previsioni per l'anno venturo:

  • Visual Studio 2005 non uscirà prima di settembre. Poi non ditemi che porto sfiga, ma non ho mai visto rispettare un appuntamento
  • La gente che prima si lamentava che i SW Microsoft erano troppo permissivi in termini di sicurezza inizierà a lamentarsi perchè sono diventati troppo restrittivi (a dire la verità hanno già cominciato)
  • Quelli di Blackcomb faranno un bel po di ferie, tanto Longhorn continuerà a prendersela comoda
  • Firefox non salverà il mondo, ma non lo faranno nemmeno Java o Linux
  • Il refactoring salverà il mondo
  • Il referendum sulla fecondazione assistita verrà approvato dalla cassazione
  • Visto che il referendum è stato approvato ci saranno le elezioni anticipate e vincerà dinuovo Berlusconi... tanto finchè non esiste opposizione, non lo ferma nessuno.
  • Non sono un esperto di calcio, ma da quello che sento Andrea Saltarello si comprerà l'Inter. Ormai è alla sua portata.
  • IMHO verrà acquistato dalla Microsoft per integrarlo in MSN Messenger

Pant, pant.. che fatica.

powered by IMHO 1.1

Inflazione Gmail

Ok, vediamo un po' se funziona come in borsa.

Io ho 9 inviti Gmail in attesa di un possessore. Le regole le sapete. Fatevi sotto.

powered by IMHO

Anteprima su MSN Search?

Scartabellando nei log di oggi, ho trovato un accesso dal seguente indirizzo:

http://sea.search.msn.it/spresults.aspx?q=ugidotnet&FORM=IE4

Se si lancia la ricerca si vede una pagina che mostra i risultati della ricerca con una piccola anteprima. Che si tratti di un nuovo servizio di MSN che qualcuno sta testando?

powered by IMHO

Logo designer for Google

Un intervista con il designer degli splendidi logo di Google.

Ecco un bel passaggio:

Hwang: Understandably, the "O" and the "L" are the easiest to deal with. The "O" has become a Halloween pumpkin, a Nobel Prize medal, the Korean flag symbol and the planet earth. The "L" has been used as a flagpole, the Olympic flame cauldron or a snow ski. The first "G" is the most difficult to deal with, and I don't think the "E" has gotten much action because of its location.

Dennis Hwang, Logo designer for Google

powered by IMHO

Omertà Birmana sullo Tsunami

A quanto pare le vecchie abitudini dell'Unione Sovietica, che affliggono tutte le dittature, continuano a rimanere.

Il regime dell'ex Birmania nasconde i numeri della catastrofe

powered by IMHO

La simulazione del maremoto

Sul sito del New York Times è presente un filmato flash che mostra una efficace simulazione del Maremoto che si è verificato nell'oceano indiano.

Dal New York Times. La simulazione del maremoto

Un consiglio: Sempre a proposito del "giornalismo macabro", saltate la sezione "photography".

powered by IMHO

To be continued: A quando una bella cena Geek/Bloggers a Milano?

Che fine ha fatto l'idea della cena/pranzo a Milano che Lorenzo aveva proposto in questo post ?

Facciamo così: La mia proposta è Milano, Sabato 15 Gennaio ore 12:30.

Ristorante di carne, perchè mi sa che con il pesce ci spellano.

Mogli/fidanzate al seguito.

La scelta dell'arma (ristorante) la lascio ai Milanesi.

Chi ci sta posti un commento qui.

powered by IMHO

Votate per me?

Il suggerimento del mio precedente post è ora sul Feedback center.

http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackId=FDBK19534

Votate in massa...

powered by IMHO

Un'altro suggerimento per VS 2005

Oggi sono un vulcano. Mi è venuta in mente un'altra bella feature che si potrebbe implementare nella IDE di VS 2005.

Vi è mai capitato di avere aperto contemporaneamente una ventina di file? Il problema sorge quando si deve passare da uno all'altro. Tipicamente la speranza è che CTRL+TAB risolvano la situazione, e per fortuna molte volte questo è vero, tuttavia capita più che spesso di dover scorrere tutti i tab aperti per cercare quello che serve.

E se i tab fossero raggruppati per categoria? Un po come succede per i pulsanti delle applicazione nella TaskBar di Windows XP. Tutte le form in design, tutti i cs delle form, tutti i resx (per che usa ancora VS per editarli) e così via. Di solito so bene cosa cerco e questo potrebbe semplificarmi non poco la ricerca.

Corro a postare al Feedback center. Chissà che abbia più fortuna stavolta.

powered by IMHO

A proposito di media

Sempre per continuare sull'argomento scatenato da questo mio post, vorrei far notare che in questo momento, mentre ascolto una gettonata radio nazionale, la deejay sta disquisendo da circa 30 minuti a proposito del divorzio tra Barbie e Ken.

Ma non hanno veramente nulla di meglio da fare?

powered by IMHO

New Year Skin

Sul mio weblog è apparsa la skin di Capodanno, chissà se piace tutto quel violetto?

Prometto che per la Befana farò di meglio.

powered by IMHO

Solitudine...

Stamane nel blog ci sono solo io?

A parte qualche sporadico commento, di post nemmeno l'ombra.

Se avessi il tempo potrebbe essere un'ottima occasione di recuperare terreno su Lorenzo...

powered by IMHO

Microsoft Anti-Spyware Preview

Ho trovato una buona recensione dell'atteso Anti-Spyware che Microsoft dovrebbe rendere disponibile entro la fine di Gennaio 2005, in seguito all'acquisizione della GIANT avvenuta lo scorso 17 Dicembre.

L'articolo ne parla molto bene, non vedo l'ora di provarlo.

Paul Thurrott's SuperSite for Windows: Microsoft Anti-Spyware Preview

 

 

 

 

 

powered by IMHO

Quando invocare GC.Collect()

Segnalo un articolo che ho trovato molto chiaro sulla spinosa faccenda del GC.Collect().

The perils of GC.Collect (or when to use GC.Collect)

powered by IMHO

ASCII art with C# - ASP.NET

Per chi ama stampare ancora con la stampante ad aghi, ecco un progettino per produrre le immagini ASCII.

ASCII art with C# - ASP.NET

powered by IMHO

Incongruenze dimensionali

E anche quest'oggi i miei 20 km hanno colpito. Mentre tranquillamente transitavo in località Albaredo, e la radio gracchiava il notiziario di Radio Radicale, tra me e me ragionavo su quello che trovo veramente faticoso nella realizzazione di un software. A mia del tutto personale opinione, l'attività di gran lunga più tediosa e densa di sottili problematiche è interrogare il database.

Spesso, anzi, quasi sempre, quando mi trovo nella necessità di scrivere uno spezzone di codice che lanci l'ennesima query sul database, mi vedo costretto a fermarmi e a ragionare su quello che veramente voglio ottenere. Mentre il più delle volte, il design dell'applicazione a livello di logica, nasce quasi spontaneamente, è nel punto di contatto con la base dati che sento il più profondo stridore e che avverto la più gravosa fatica. E non è una questione di ignoranza, perdonate l'immodestia, lavoro da parecchio con le basi dati, e ormai l'SQL ha ben pochi segreti per me.

L'impressione, per intenderci, è quella che si può provare cercando di far entrare un mondo tridimensionale in una immagine bidimensionale. Ecco, questo veramente spiega bene quello che provo. Solitamente sono abituato ad fidarmi parecchio del mio istinto nella creazione della logica. Ormai il mio modo di ragionare è object-oriented e da un po' di tempo trovo sempre con più frequenza casi in cui applicare i mai troppo elogiati Design Pattern. Ma, davvero, credetemi se dico che questo è un mondo tridimensionale, che sempre evidenzia con l'armonia l'applicazione di tali concetti.

E invece scccrrreeeeeeecchhh. Il database! Questa maledettamente piatta rappresentazione dei dati, così efficace, ma così difficile da ricondurre alla terza dimensione. Non spaventatevi, non sto mettendo in discussione la teoria relazionale, me e guardo bene, solo trovo che questo modo di gestire i dati, razionale se volete, ma indiscutibilmente piatto, mal si colloca in una realtà object oriented. Già so che molti di voi diranno che mi serve un buon ORM, che devo astrarre la logica dai dati, e tutte queste belle cose. Ma il problema a mio umilissimo parere è più profondo.

E' davvero un mapping quello che ci serve? Oppure è giunto il momento di ripensare al nostro modo di concepire il database?

powered by IMHO 1.1

I miei 20 km d'oro

Sono quelli che separano il luogo in cui vivo, da quello in cui lavoro. Sono alcuni mesi, dopo il trasloco che mi ha portato ad allontanarmi dall'ufficio, che li affronto tutti i giorni, in mezzo alla tranquillità della campagna del trevigiano.

E, cosa importante, non ne sento il peso. Anzi, spesso e volentieri sono davvero dei chilometri d'oro, perchè, nella tranquillità dell'abitacolo, mentre un po' di musica allieta il fluido percorso, interrotto al massimo di qualche trattore, spesso mi trovo a focalizzare al meglio alcuni problemi che nella foga delle ore d'ufficio spesso non riesco pienamente a comprendere e quindi a risolvere.

Suppongo sarebbe importante per tutti, poter fruire di tale tranquillo tragitto, ma so per certo di essere uno dei pochi fortunati che se lo possono permettere.

powered by IMHO 1.1

What's to come from Microsoft in 2005

Alla Microsoft non si perde tempo. Ecco cosa ci regalerà il 2005.

What's to come from Microsoft in 2005

powered by IMHO

L'ombra dello spreco anche negli U.S.A.

Interessante post che evidnzia come con una corretta politica si possano ottenere degli ottimi risultati spendendo poco. E del ponte sullo stretto di messina che si dice?

Building a bridge in France versus US

powered by IMHO

Soople; easy search in Google.

Per chi non ricorda tutte le feature di Google, ecco un buon punto di partenza.

Soople; easy search in Google.

powered by IMHO

Mi faccio un the.

Pochi lo sanno, ma amo molto prendere il the. Mi sento molto anglosassone, per quanto riguarda l'approccio "politico", ma il the che intendo io no ha nulla a che fare con quello inglese. Mi piacciono i the aromatizzati, specialmente alla frutta, basta che l'aroma non risulti preponderante rispetto l'amarognolo della foglia di the. Per intenderci, il the ai frutti di bosco non lo sopporto, mentre amo molto quello alla pesca, all'arancio, alla mela, etc... ma non datemi il The Java...

Tengo una scatola di bustine a fianco al monitor e sfrutto la macchinetta del caffè che mi elargisce acqua calda gratuita per produrre un buon the, che ultimamente assaporo nella tazza che mi ha regalato l'azienda di Lorenzo all'ultimo workshop.

Vado. L'ora del the è passata da un pezzo.

powered by IMHO

Won't fix? Ma allora qualcosa da correggere c'era!!!

Ho appena scoperto che la mia segnalazione in merito a Define Event & Stay ha ottenuto risposta nel Product feedback center.

Ecco come:

Resolved as Won't Fix by Microsoft on 2004-12-27 at 12:53:07    
Hey there -

I absolutely agree that if you're trying to wire up multiple events at once, our default behavior (of jumping to the event handler) is cumbersome. The experience is optimized for folks working in serial rather than "multi-pass" - that is, dropping a control, naming it, labelling it, hooking up an event and writing code for it, etc. We'll consider ways of addressing this in future versions of the designer, however.

Thanks!
Jeff

Fonte: MSDN Product Feedback Center

Ma voi davvero lavorate così?

powered by IMHO

.TRAQ: Stamane il primo passo

Complice il fatto che stamattina sono rimasto a casa dall'ufficio per accudire a mia figlia, mentre sullo schermo del televisore scorrevano le immagini degli Aristogatti che mi hanno garantito dei brevi momenti di concentrazione, ho dato inizio al documento che descriverà il progetto .TRAQ.

Per ora ho buttato giù l'abstract che contiene una breve descrizione dei contenuti e delle considerazioni sulla metodologia di sviluppo da seguire. Sono abbastanza contento di quanto sta nascendo, e conto di rendere pubblico un draft del documento entro la fine dell'anno.

Per inciso ho scelto di scrivere in Inglese. Questo perchè spero che il progetto possa sconfinare da questo blog verso il resto del mondo. Bisogna sempre essere un po' ambiziosi. Ovviamente spero di non aver scritto qualche strafalcione (ma in cuor mio ne sono certo), perciò non ridete di me quando vi capiterà di leggerlo...

powered by IMHO

Giornalismo macabro

Stamane, ho avuto occasione di seguire un telegiornale all'ora di pranzo e come ci si può attendere, la notizia principe era quella dell'immane tragedia che si è consumata in questi giorni. Rimango sempre sconcertato dal gusto che il giornalismo italiano e suppongo quello internazionale riescono a dimostrare per il macabro.

Frasi del tipo "gli ha staccato la testa", oppure domande sulla falsariga di "che sensazione le ha dato vedere tutti questi morti?", sono ormai all'ordine del giorno. Trovo irrinuciabile, che arrivino aggiornamenti pressochè ogni minuto, ma il balletto di cifre intorno al numero di morti che si sviscera in una classifica dell'orrore quasi i poveretti stessero cercando di entrare nel guinness dei primati mi sembra davvero troppo. Cosa cambia, nell'economia delle cose, che lo Sri Lanka abbia 20000 morti, 53 in più della Thailandia?

E per non parlare delle immagini. Ormai la televisione è un apparecchio da tenere spento il più possibile, dato che mi riesce difficile spiegare a mia figlia per quale motivo una gamba mozza sbuchi da un cumulo di macerie all'ora di pranzo, e per quale motivo tutte quelle persone "dormano" in mezzo alla strada.

Daccordo, c'è stata una tragedia, credo che nessuno di noi ne sia all'oscuro e che nessuno cerchi in qualche misura di sminuirla. Sono il primo ad essere rattristato di quanto è avvenuto, e spero per quanto mi sarà possibile di poter fare qualcosa per le vittime e soprattutto per i soppravissuti. Ma questo comportamento dei media, non fa altro che rendere il dolore un'abitudine e perciostesso una cosa da "gustare" tra una forchettata di spaghetti e l'altra e da dimenticare quando si spegne la televisione.

powered by IMHO

Un blogger da Phuket

Uno dei blogger di asp.net si trovava a Phuket nel momento in cui o tsunami si è abbattuto sulla spiaggia. Se l'è cavata per puro miracolo. Ecco come racconta la storia: Earthquake in Indonesia, just happened I am there :-(

powered by IMHO

IMHO: Creare e configurare un publisher custom

Come promesso svariati post fa, eccomi finalmente a spiegare come si può creare e soprattutto configurare un publisher custom per il proprio repository di immagini. Questa tecnica ad esempio consente di pubblicare i file attraverso un web service piuttosto che agganciandosi alle schermate di .TEXT per farne l'upload direttamente nelle gallery, per chi ha il coraggio di cimentarsi in tale arte.

Innanzitutto occorre avere ben presente che un Publisher non è un plugin, ovvero non eredita direttamente dalla classe plugin che è presente negli assembly di IMHO. Questo significa due cose: non è sufficiente aggiungere l'assembly in una cartella, e non si configura direttamente dal pannello dei plugin. Un Publisher è semplicemente una classe di supporto al plugin Engine Adapter per cui esso è configurato.

Detto questo, creare un Publisher comporta innanzitutto estendere la classe Elite.IMHO.Engines.Publishers.Publisher. Questa classe ha una serie di metodi, che devono essere obbligatoriamente estesi, dato che si tratta di una classe astratta, ma che non devono necessariamente fare qualcosa. Ad esempio, per un publisher che si connetta ad un WebService, i metodi Open() e Close() potrebbero anche non servire, perciò andranno semplicemente lasciati vuoti. Alla fine dei conti, quello che veramente conta è il metodo SendFile() che riceve in ingresso il path del file da trasferire e deve restituire l'url presso cui si troverà il file per mezzo del protocollo http.

Anche il publisher ha un metodo Configure(). Esso viene chiamato dal runtime di IMHO, quando, dal pannello dei plugin o da quello degli account, si accede alle impostazioni di un Adapter. Ad esso viene passata una HashTable che può essere gestita in proprio per immettere e leggere delle coppie nome-valore che sono i parametri di configurazione.

Infine volendo (e potendo) gestire il progresso dell'upload dei file sarà necessario invocare il metodo OnTransferProgressUpdate() cui va passato un TransferProgressUpdateEventArgs che contiene la percentuale di avanzamento. Tale metodo non fa altro che invocare un evento della classe publisher cui i runtime si aggancia.

Compilato e testato il Publisher, rimane solo da agganciarlo ad IMHO. Per farlo è necessario copiare l'assembly nella cartella di installazione di IMHO, e aggiungere una chiave al file di configurazione imho.exe.config. Il nome di questa chiave è legato all'adapter che si vuole usare. Nulla vieta ovviamente di usare lo stesso Publisher per tutti gli adapter. Per .TEXT la chiave si chiama DotTextFilePublisher. Gli altri adapter hanno una chiave che si compone sempre del nome dell'engine e della desinenza "FilePublisher". Nel valore dovrà essere riportato il nome completo dell'assembly, composto dal nome della classe comprendente il namespace, una virgola e il nome dell'assembly senza l'estensione, così come è consueto per i tipi che vengono istanziati per mezzo di Type.GetType().

Chi riuscisse a creare qualche publisher particolare può contattarmi per valutare l'inclusione del suo assembly nell'installer della prossima versione di IMHO. Buon lavoro.

powered by IMHO

Burp!

Scrivo, mentre cerco di digerire e il titolo tradisce il problema. Questo Natale è giunto solo a metà, e già mi sto chiedendo se il mio stomaco ce la farà. Vigilia di pesce, e pranzo natalizio interminabile. E poi domani ancora pesce dai miei. Non che io non sia allenato, ma questi tour de force gastronomici mi mettono a dura prova... burp.

Vado. Il caffè mi attende.

Auguri.

powered by IMHO 1.1

"Take back" de chè?

Saremmo anche sotto Natale e tutti dovremmo essere più buoni, ma oggi è la vigilia e consentitemi di essere un po' acido. Lo spunto me lo da il post di auguri di Simone, che mostra una bella cartolina con su scritto "Take back the web". Ecco, quello che mi viene da esclamare è proprio: Take back de chè?

Ok, Firefox sarà anche un buon browser, lo ammetto volentieri, probabilmente più sicuro, anche se la prova l'avremo con il tempo, belle funzionalità, tabbed browsing, etc etc...

Ma quello che mi fa "girare" è questo clima da crociata. Che nessuno mi venga a raccontare che firefox e chi gli sta dietro vuole restituimi il web, io me lo sono già preso. Sono proprio curioso di vedere, se mai firefox arriverà al 51%, se davvero mi vorrà restituire il web oppure se in fondo, giocando sui sentimenti della gente in realtà non voglia appropriarsene.

Ecco, mi sono sfogato. E' la vigilia, ma buono non mi sento.

Speriamo domani sia meglio.

Auguri... anche a Firefox.

powered by IMHO 1.1

Quando si dice semplificare per agevolare

Ecco un bell'esempio. Se si vuole che un servizio sia usato più frequentemente non c'è altro da fare che semplificarlo. E così hanno fatto quelli di Google.

Sembra una cosa banale, ma pochi sanno farlo veramente. In internet sicuramente, ma anche nelle applicazioni classiche, riuscire a togliere anche un solo click è un traguardo che bisogna cercare di raggiungere.

E quelli di Google su questo hanno molto da insegnare.

powered by IMHO 1.1

Tempo di beta: Yahoo! Video Search

Ormai i motori di ricerca stanno combattendo una dura guerra fratricida...

Yahoo! Video Search

powered by IMHO

Ecco gli auguri

Dato che probabilmente non tutti sono come me, che per evitare una crisi di astinenza da blog dovrò collegarmi anche alla mezzanotte dell'ultimo dell'anno, posto adesso i miei auguri.

E quindi:

A tutti un grande augurio di Buon Natale e un Felice Whidbey (ops... 2005).

powered by IMHO

IMHO: Perchè quando reinstallo IMHO perdo le impostazioni?

E' una domanda che mi è stata posta da Lorenzo in un post, ma naturalmente il problema me lo ero già posto prima di mettere online la nuova versione.

Attualmente IMHO utilizza il Configuration Management Application Block per mantenere in forma crittata le impostazioni che vengono immesse nel pannello delle preferenze. Per fare questo ho dovuto realizzare un "classone" che incapsula tutte le informazioni e il CMAB semplicemente opera serializzando e deserializzando questa classe in un file xml crittato.

Purtroppo, quando modifico la classe per aggiungere nuove impostazioni, la deserializzazione da un'eccezione perchè il tipo vecchio e quello nuovo non corrispondono più. Per risolvere questo problema probabilmente dovrò implementare l'interfaccia ISerializable e gestire le proprietà nuove "saltandole". In questa occasione ho però preferito pubblicare comunque la beta, anche in considerazione del fatto che la quantità di impostazioni è decisamente limitata.

Un altro problema è dato dal database access che contiene i post in sospeso. Qui il problema è addirittura più complesso perchè modificando il database dovrei crearmi una procedura di esportazione/importazione che gestisca tutti i possibili casi (qualcuno potrebbe avere installato ancora la versione 1777 invece che la 1787). Probabilmente questa parte del problema non la risolverò mai a meno che non mi venga un colpo di genio... o che non venga a voi.

Questo giusto per farvi capire in che razza di ginepraio mi sono cacciato!

powered by IMHO

IMHO: Per chi usa il proxy server.

Un commento di un possibile utente di IMHO mi ha fatto ricordare una piccola limitazione di cui soffre attualmente il publisher FTP. Se lo usate dietro un proxy server, l'upload non andrà a buon fine. Purtroppo non sono riuscito a trovare una libreria FTP che consenta di usare un proxy server perciò per il momento mi sono dovuto accontentare.

Naturalmente l'intenzione è quella di modificare la ottima classe edtFTPnet per supportare anche il proxy server, ma come potete immaginare non si tratta di una passeggiata.

Portate pazienza.

powered by IMHO

Consigli su Adobe Reader 7.0

Molti si sono lamentati della lentezza di Adobe Reader. In questo post ci sono degli utili suggerimenti per fare in modo che si apra più velocemente. Chissà se funzionano anche con Acrobat 6?

How to make Adobe Reader 7.0 load faster

powered by IMHO

Un modello da seguire...

Non sono molti quelli che sarebbero riusciti a prendere una decisione come quella che è riportata in questo post: Ch-ch-ch-changes...

Soprattutto, non sono molte le donne italiane (e gli uomini) che possono farlo!

powered by IMHO

Logotipi di Google

In questa pagine si possono trovare alcuni dei logotipi che Google ha prodotto negli ultimi 6 anni di attività. E' curioso ripercorrere la storia degli ultimi mesi, attraverso questi logo, che davvero sono molto ben fatti. Complimenti ai grafici per la fantasia!

Logotipi di Google

powered by IMHO

IMHO 1.1.1817 - Transparent Image Management

Finalmente, dopo esattamente 30 giorni dal rilascio della versione 1.0 sono lieto di annunciare che è disponibile la prima beta di IMHO 1.1, la build 1817, che come più volte ho avuto occasione di anticipare su queste pagine introduce la gestione automatica delle immagini.

La versione attuale consente la pubblicazione esclusivamente su un server FTP, perchè questo era l'unico modo che accomunava tutti i tipi di engine attualmente supportati. Ancora una volta ho scelto di rendere il programma facilmente espandibile. Infatti, la pubblicazione delle immagini avviene per mezzo di una classe Publisher che nella sua versione FTP, incapsula tutte le funzionalità di questo protocollo.

Saranno oggetto di un mio prossimo post, le modalità di implementazione di questo publisher, che può essere sostituito configurando opportunamente l'applicazione.

Come già detto, le immagini verranno gestite autonomamente dal programma che si incarica anche di individuare duplicati all'interno di uno stesso post e di ottimizzare l'upload. Senza alcun intervento, le immagini verranno spostate dapprima in una cartella temporanea locale ed in seguito, all'atto della pubblicazione verranno caricare nell'ftp e l'url corretto sarà inserito all'interno dell'html. Una prossima release consentirà di trattare allo stesso modo anche qualsiasi altro file linkato nell'editor, e adotterà una politica di ottimizzazione dei file cross-post.

Ma come si può vedere dall'immagine allegata, anche l'editor ha subito una piccola revisione. Grazie ai magnifici componenti sandDock e sandBar, che non finirò mai di lodare per qualità e semplicità d'uso, le categorie e i formatter sono diventati dei pannelli che possono essere spostati a piacimento sull'area dell'editor e collassati così come fanno everett e whidbey. Anche i più pigri troveranno così più facile inserire uno snippet o un'emoticona nell'HTML. Inoltre un nuovo look&feel più colorato e i pulsanti 3d, lo rendono più piacevole.

Il mio dovere è compiuto. Ora mi aspettano altre fatiche, sia con IMHO che con .TRAQ. Rimanete connessi, perchè presto altri post chiariranno meglio le nuove feature e i nuovi progetti per l'immediato futuro.

powered by IMHO

double.TryParse()

Stamane mi sono accorto di una cosa strana, che non riesco a spiegare.

Il seguente codice ritorna true:

 public void Main()
 {
     
string test = "1.0.....2";
     
     
double doubleResult;
     
     Console.WriteLine( 
         
double.TryParse( test, NumberStyles.Any, CultureInfo.CurrentCulture, out doubleValue ) );
 }

Ma con tutta la buona volontà non riesco a capire come "1.0.....2" possa essere un double valido. Va detto per inciso che sul mio pc il punto è considerato il separatore delle migliaia, tuttavia questo non va certo a migliorare la situazione.

powered by IMHO

Arrivano i primi auguri...

 A
chi
ama
dormire
ma si sveglia
sempre di buon
umore. A chi saluta
ancora con un bacio. A
chi lavora molto e si diverte di
più. A chi va in fretta in auto, ma
non suona ai semafori. A chi arriva
in ritardo ma non cerca scuse. A chi spegne
la televisione per fare due chiacchiere. A chi è
felice il doppio quando fa a metà. A chi si alza presto
per aiutare un amico. A chi ha l'entusiasmo di un bambino
ma pensieri da uomo. A chi vede nero solo quando è buio.
A chi non aspetta Natale
per essere
più buono.
Auguri
BUON NATALE e FELICE 2005

powered by IMHO

Portable Firefox 1.0

Per i maniaci di Firefox, ecco come fare a farlo stare in una chiavetta USB.

Portable Firefox 1.0 (USB Drive-Friendly)

powered by IMHO

A proposito di FTP

Se qualcuno cercasse un servizio FTP gratuito da usare con IMHO, io ho provato questo: http://www.0catch.com/

Mi sembra abbastanza buono. Ovviamente sarà meglio affiancargli un DNS alias per poter spostare le proprie immagini in caso di necessità senza dover riscrivere tutti i post. Meglio se vi comprate un dominio comunque.

powered by IMHO

Ottimizzazione della memoria in ambiente managed

Questo è da leggere assolutamente, visti anche i 30MB usati da IMHO che mi sono stati segnalati.

Rediscover the Lost Art of Memory Optimization in Your Managed Code

powered by IMHO

IMHO: Rilascio imminente della 1.1 beta

Ci siamo, se tutto va bene, stanotte rilascerò la prima beta della versione 1.1 di IMHO che comprende la gestione delle immagini automatica.

Assieme a questa attesa feature, ci sarà anche una bella sorpresa... per i più pigri.

Intanto cominciate a scaldare l'FTP!

powered by IMHO

Uno shortcut per il DLL Hell

Preso direttamente dal suggerimento di Raffaele, ecco un altro shortcut per la MSN Toolbar che ho appena ideato.

@dll,http://support.microsoft.com/dllhelp/default.aspx?dlltype=file&l=55&alpha=$w&S=1&x=14&y=15

provate con:

dll advapi32.dll

Comincia davvero a piacermi questa toolbar!

powered by IMHO

Microsoft contro il problema dello Spam sui Weblog

La Microsoft sta cercando delle misure contro il problema dello spam sui weblog, che affligge i suoi 1200 bloggers attuali. Personalmente non credo che la moderazione sia la soluzione, piuttosto mi muoverei verso una Human Interactive Proof nella form di invio dei commenti.

Fonte: Microsoft Bloggers Face Search Spam Pinch

powered by IMHO

Ieri più di 500 visite

Ieri, per la prima volta il mio weblog ha superato le 500 visite (Page View) in un solo giorno.

Ovviamente le mie non si contano...

Day

Date Page Loads Unique Visitors First Time Visitors Returning Visitors
Tuesday 21st December 2004 501 239 127 112

Ancora grazie e tutti.

powered by IMHO

Il mio suggerimento segnalato su MSDN Lab

Come mi ha consigliato Lorenzo, ho postato su MSDN Lab il mio suggerimento per l'IDE di Visual Studio .NET 2005.

Chi volesse votarlo può farlo al seguente indirizzo:
http://lab.msdn.microsoft.com/ProductFeedback/viewfeedback.aspx?feedbackid=73b88439-eebb-4a44-8123-8defe3863697

powered by IMHO

Umile suggerimento

Vorrei esprimere un piccolo suggerimento, rivolto nientepopodimenochè ai progettisti di Visual Studio.NET 2005, nella speranza che qualcuno che mi legge e che ha conoscenze "altolocate" sia in grado di farlo arrivare a destinazione, sempre se lo considera fondato ovviamente.

Il problema è questo: Quando si è in design di una form, spesso e volentieri si definisce l'evento di default di un controllo semplicemente facendo doppio click su di esso. Questo causa uno "spostamento" sul codice, esattamente all'interno dell'evento appena creato. Comodissimo, in alcuni casi, ma talvolta ci si trova nella necessità di definire più di un evento alla volta, perciò si è costretti a "palleggiare" tra design e codice.

Perchè allora non aggiungere un menù di contesto "Define Event & Stay" (o comecavolovipare), che permetta di definire l'evento e rimanere in design? Magari con un submenù che contiene tutti gli eventi definibili. (o i più frequenti)

Boh. Forse sarà una stupidaggine, ma a me sarebbe molto comodo.

Chissà se si può fare con un add-in per VS.NET 2003?

powered by IMHO

Pattern & Practices - Articoli in uscita

Sta diventando una piacevole abitudine. Grazie alla collaborazione con la Infomedia, ho partorito una serie di 5 articoli che usciranno su Computer Programming a partire da Gennaio.

La serie avrà come tema le Pattern & Practices di Microsoft che già sono state affrontate nella sessione di Lorenzo Barbieri lo scorso 2 dicembre. Gli articoli riguardano in particolare:

  • Data Access Application Block
  • Exception Management Application Block
  • Caching Application Block
  • Configuration Management Application Block
  • User Interface Process Application Block

E' anche possibile che alla serie si aggiunga all'ultimo momento una altro articolo su Smart Client Offline Application Block.

Tutti sono corredati da degli esempi di uso scritti da me (a parte l'UIPAB). Vi segnalo un password manager che usa il Configuration Management Application Block e un mini ORM che usa il Data Access Application Block.

Mi raccomando, tutti in edicola!

powered by IMHO

Un silenzio preoccupante

Ieri sera ho scritto un post che supponevo avrebbe scatenato le ire di molti, magari puristi dell'object orientation che "speravo" si sarebbero scagliati, sciabola alla mano, contro le questioni che ho posto, magari aiutandomi a risolverle.

Invece nulla. A parte due, graditissimi commenti, null'altro.

Ora, la cosa mi preoccupa, perchè attribuisco ad essa due possibili significati:

  1. Non c'è soluzione alla questione perciò non vale la pena di rispondere
  2. Questo non ha capito nulla... non perdo nemmeno il tempo a rispondergli.

Spero vivamente che il punto 1 sia smentito, e vi invito a dirmi chiaramente se il punto 2 è vero. Meglio saperlo!

powered by IMHO

Una fix per Google Desktop Search

Il team di Google ha rilasciato un'aggiornamento per un problema di sicurezza del Desktop Search.

FONTE: WindowsBeta.Net - Google Fixes Desktop Search Flaw

powered by IMHO

Date, formati e timezone

So che uno degli argomenti più ostici è il trattamento delle date. Qui c'è un buon post che riassume un po' lo stato dell'arte.

DateTime Parsing and Formatting with Time Zones [Anthony Moore]

powered by IMHO

Radical Feeds

Ho scovato sul sito di Radio Radicale il link ai Radical Feeds . A quanto pare ci sono finito dentro durante l'ultima campagna dei Radicali per il referendum. Inutile dire che sono lieto che le mie parole giungano anche ai miei compagni Radicali.

powered by IMHO

L'insistenza di Windows

Ma per quale motivo se ti ho detto che voglio riavviare più tardi continui ad insistere a chiedermelo???

(N.B. Questo è il primo post con l'immagine caricata automaticamente)

powered by IMHO

Commenti in lingue sconosciute

Sono stato costretto a rimuovere un commento in portoghese dal mio weblog, perchè nonostante avessi tentato di tradurne il contenuto con Google, il suo contenuto mi rimaneva oscuro. Mi spiace di dover operare in questo modo, ma accetto solo i commenti che posso comprendere fino in fondo, non vorrei che dal mio weblog possano essere divulgate ingiurie o spamming.

powered by IMHO

Una nuova moda interrogativa?

Perdonatemi, ma guardando i post di quest'oggi mi sono reso conto che ben quattro sono posti come una domanda. E' solo la giornata che è interrogativa.

Domani cercherò di usare solo punti esclamativi, giusto per compensare.

powered by IMHO

Una buona notizia...

Vengo a sapere che (finalmente), dopo 25 anni di attività chiude il Maurizio Costanzo Show. Non posso che esserne felice, non sono mai riuscito a sopportare quella trasmissione, ma ultimamente era diventata veramente inguardabile e suppongo che gli ascolti mi abbiano dato ragione. Non ho mai sopportato la selettività delle presenze, sempre "ben scelte" dal presentatore, ma ultimamente maghi e maghetti, star e starlette hanno proprio rovinato tutto.

Maurizio Costanzo davvero non sentirà la differenza. Non passa giorno senza che non lo si veda in televisione per una nuova trasmissione, lui o sua moglie.

powered by IMHO

I limiti dell'OOP?

Giornataccia quest'oggi. Nulla di male, bel tempo, un bel po' di lavoro, e non fosse altro che le attese ferie natalizie sono sfumate, si potrebbe dire che la giornata è nata bene. Però stamane credo di aver sfiorato e superato i limiti della programmazione Object Oriented.

Sto realizzando un sistema per l'editing di referti medici, con la creazione on-the-fly di un numero spropositato di controlli, che mappano una mole esagerata di dati, gestendo regole di tipizzazione dei dati (numerici, testuali, enumeratori), formule di calcolo cross-field, e addirittura i matching delle tipologie di pazienti per gestire i possibili valori normali.

Il problema è che, realizzato in pura logica object oriented, mappando i dati su oggetti, semplicemente questo sistema barcolla. La mole di dati da gestire è tale che usando un ORM mi trovo nela condizione di effettuare decine di chiamate al database, che in una logica di accesso concorrente (sono previsti picchi di 50 utenti contemporanei), rischiano di abbattere le performances.

La soluzione alla fine è stata quella di ricondurre il tutto a un DataSet che descrive la struttura dei dati e ad un paio di DataTable caricati in un secondo momento che contengono i dati veri e propri, abbattendo notevolmente la durata e la quantità di accessi al database, nella speranza di lasciarlo respirare.

Questo però mi inquieta. Che l'adozione di logiche fortemente orientate agli oggetti avesse un impatto sulle performances è risaputo, ma che questo impedisse ad una applicazione di funzionare correttamente non lo avrei mai immaginato. Però è da un po' che ci penso. L'adozione dell'OOP, nella logica applicativa,da sempre è stata una carta vincente, per flessibilità e manutenibilità, ma spostandoci ai dati gestiti da una applicazione, spesso mi sono trovato a chiedermi se il gioco valga la candela.

So che con queste poche righe scatenerò i puristi della programmazione, ma ritengo di dovermi assumere questo rischio perchè due sono le cose, o c'è qualcosa di veramente sbagliato e dobbiamo discuterne, oppure, più probabilmente c'è qualcosa che non ho capito, e allora è il caso che ci sbatta il naso, se non altro per migliorare in futuro.

A voi l'accetta. Colpite duro!

powered by IMHO

Qualcuno sa il portoghese?

Mi è giunto questo commento su un post. A naso direi che il commento è calzante, ma dato che non conosco il portoghese non so decidere se si tratti di spam oppure no.

Qualcuno mi aiuta?

powered by IMHO

Sondaggio: chi lavora durante le ferie?

Indovinate un po': le mie ferie natalizie sono saltate... perciò sono curioso di sapere chi mi farà compagnia sul weblog.

powered by IMHO

Virus panic!

Stamane una vera e propria manifestazione di terrore da Virus. L'amministrazione ha inviato gli auguri a tutti, clienti e dipendenti e il primo pensiero è stato: Non sarà mica un virus?

Questa cosa ci sta veramente rovinando la vita!

powered by IMHO

Un buggetto di .TEXT?

Stamattina mi sono imbattuto in un comportamento fastidioso di .TEXT. Come molti, ho aggiunto alcune keyword alla configurazione che vengono convertite al momento del post in link. Google è una di queste. Purtroppo, postando un link ad un nuovo servizio di Google, che come spesso succede contiene la parola Google, mi sono accorto che questo link è stato sostituito con quello della home page del motore di ricerca.

Capisco sostituire le keyword, ma dato che le keyword sono link, almeno i tag andavano saltati. Comunque, l'errore si corregge semplicemente editando nuovamente il post. Non so se qualcuno se n'è mai accorto, ma la sostituzione delle keyword funziona solo alla creazione del post.

powered by IMHO

Google Print

Avete scritto un libro? Aggiungetelo a Google Print!

Google Print

powered by IMHO

La sede di Google

Mai vista la sede di Google? Ecco un po' di foto. Devo dire che la Reception non tradisce le attese

6S Visits Google

powered by IMHO

Ancora sugli shortcut della MSN Toolbar

Qualcuno ha pensato di scrivere due righe in C# per copiare uno shortcut della MSN Toolbar nella clipboard.

Off Topic: MSN Deskbar Clip

powered by IMHO

Tic, tac, tic, tac...

Se qualcuno si accorge che quest'oggi nel mio blog i post vanno e vengono, non c'è nulla di cui preoccuparsi. Sono in fase di test, e quelli che si vedono sono i primi vagiti del publisher di immagini... Pare che tutto funzioni, ma devo ancora raffinare qualcosa. Attendete con fiducia.

powered by IMHO

Una libreria FTP open source

Cercando qualcosa da usare in IMHO per l'upload delle immagini, mi sono imbattuto nella librearia edtFTPNet che ho trovato molto ben fatta e affidabile. L'unico difetto e che non ha supporto per il Proxy Server, ma forse con un po' di lavoro è possibile aggiungerlo.

powered by IMHO

Il terrore corre sul carrello

Quale giorno migliore da dedicare ad uno dei miei sport preferiti: spingere il carrello.

Non so se ci avete mai fatto caso, ma la gente quanto ha un carrello in mano va completamente in palla. Si piazzano in tre in mezzo alla corsia, uno a fianco all'altro, oppure si mettono di sghembo, mentre con la mascella raschiano il pavimento nell'ammirazione del nuovo modello di televisore. E di questo è colpevole anche il supermercato che sapientemente mescola i prodotti per creare confusione.

Ecco, in questi momenti viene fuori lo sportivo che è in me. Il gioco ha una sola regola: scegliere una velocità di crociera e mantenerla a tutti i costi, con buonapace delle caviglie degli indecisi. Ovviamente bisogna dribblare il più possibile, anticipare le mosse imprevedibili del carrellista che sta davanti a voi e quando incappate in qualcuno che vi lancia un'occhiataccia sfoggiate il vostro migliore sorriso ed esclamate: "ah... desolato, non l'avevo vista". Se poi riuscite a salire sul traversino del carrello e a lasciarvi trasportare per qualche metro siete davvero dei campioni.

Non sono molti che possono vantare di aver fatto la spesa il 18 dicembre in 45 minuti netti. 8-D

powered by IMHO

Tripudio Natalizio

La giornata è scivolata via, tra pacchetti e assegni, difficili scelte e bancomat, veloce e faticosa come solo l'ultimo sabato prima di Natale sa esserlo. Ma l'apoteosi della giornata è stata la visita ad una cosa chiamata Green Village.

Si entra, un capannone esternamente anonimo, se non fosse per un Babbo Natale, con tanto di renne e slitta che sovrasta il tetto dell'ingresso e già la vi sentite traditi. Assaporate la quantità spropositata di miele che fra pochi minuti affaticherà il vostro pancreas, nell'inutile intento di produrre la necessaria insulina. E poi si entra e si viene investiti dalla quantità di accozzaglia che vi è contenuta. Forse qualcuno di voi potrà amare certe cose, ma personalmente sono uno sfegatato minimalista, tanto nel codice che scrivo quanto nell'arredare casa mia. Perciò quando mi trovo di fronte ad una tale quantità di decorazioni natalizie, oltretutto quelle più disgustose ed elaborate, comincio a pormi un sacco di domande oziose, e tendo a sentirmi depresso.

All'ingresso manca solo una cosa, forse l'unica che sarebbe reale, un bel cartello con su scritto: Qui si vende il Natale. C'è tutto ciò che potreste desiderare anche quello che ancora non avete immaginato, e tutto educatamente impilato, catalogato e prezzato. Un tripudio di verde, rosso e bianco che non ha nulla a che vedere con il patriottismo. Palle di Natale rosse, blu, verdi, gialle, lucide e opache, semplici e decorate, di plastica o di vetro, perfino pelose, se qualcuno ha lo stomaco di metterle sull'albero. Finte pigne, finte stalattiti orfane delle annesse stalagmiti, finti orsi, cani e renne, tutto finto, anche il Natale. E per tutte le tasche, dai 20 centesimi per una manciata di sassolini rigorosamente finti per un presepe di plastica, ai 568.00€ per un Babbo Natale con annesse Renne e slitta a grandezza naturale. Confessatelo, chi di voi non ha mai sognato di poterlo parcheggiare nel mezzo del proprio salotto?

E poi l'apoteosi dell'inutile. Segnalibri, fermaporte, portafoto, sottopentola, strofinacci, asciugamani e quant'altro, il tutto rigorosamente a forma di Babbo Natale. Come dire: compralo, tanto poi il 27 Dicembre lo butterai nel cesso. Ecco questo poi mi fa dannatamente incazzare. Non c'è nulla di così bello come la forma di una cosa fatta appositamente per il lavoro che deve compiere. Per quale motivo dobbiamo distruggere questa forma per darne un'altra, dettata dalla moda o dal cattivo gusto? A cosa mi serve un portalatte a forma di mucca? Una mucca lo fa il latte, ma se tento di versarlo in una tazzina de tale portalatte immancabilmente bagnero la sottostante tovaglia.

Ne sono uscito, con in mano solo un nastro. Mia moglie doveva fare delle decorazioni per la tavola e per fortuna ha l'abitudine di metterci la sua creatività piuttosto che acquistarne di confezionata. Per quest'anno sono salvo.

powered by IMHO

Giornata di regali

In barba ai miei buoni propositi pasticceri, stamane sarà una giornata campale, passata tra centri commerciali e negozi di pelletterie. Pranzo al Mc Donald e... ggrrrr....

E se me ne andassi in ufficio?

powered by IMHO

400 e non sentirli!

400 post in 8 mesi scarsi. Se me lo avessero detto lo scorso 9 maggio 2004, data del mio primo post, non ci avrei creduto. Grazie a tutti i miei 24 lettori (1 meno di Manzoni... non mi permetterei mai), e grazie soprattutto a quelli che hanno la bontà di commentare i miei post.

Giusto oggi, ho stabilito il nuovo record, ben 30 commenti su un solo post. E' stata una gran bella discussione, su un tema decisamente OT per il mainfeed, ma che a quanto pare ha riscosso molto più favore di molti post informatici.

Impagabile.

powered by IMHO

Back to the Past

Sto reinstallando Visual Basic 6 su un portatile per fare un progettino COM.

Mi ricorderò ancora come si fa dopo circa 2 anni che non lo uso più?

Beh, credo sia un po' come andare in bicicletta, una volta che hai imparato non lo dimentichi più, basta solo un po' di allenamento.

powered by IMHO

MSN Toolbar: Così non va!

Sono sul punto di togliere la toolbar di MSN. Possibile che ogni volta mi mischia i pulsanti di Internet Explorer che tanto accuratamente mi sono sistemato come mi pare?

Per ora rimane, ma se non si risolve questo problema potrei davvero arrabbiarmi!

powered by IMHO

New Spoofing Vulnerability for IE

Segnalato un nuovo problema di sicurezza di Internet Explorer.

New Spoofing Vulnerability for IE

powered by IMHO

MSN deskbar shortcuts

Un po' di shortcut per la MSN Deskbar:

  1. Knowledge base Articles
    @kb,http://support.microsoft.com/?kbid=$w
  2. Trovare feed RSS
    @rss,
    http://www.feedster.com/search.php?q=$w
  3. Cercare su Google
    @google,http://www.google.com/search?complete=1&hl=it&q=$w
  4. Un weblog di UgiDotNet a partire dal nickname
    @ugi,http://blogs.ugidotnet.org/$w

powered by IMHO

La Turchia in Europa.

Da giorni imperversa l'ipocrisia sul tema dell'ingresso della Turchia nella comunità Europea. Personalmente penso che è necessario che al più presto e senza indugio, questo stato debba entrare a far parte dell'Europa a pieno titolo. La Turchia da tempo ha scelto la strada del laicismo nelle istituzioni riuscendo a mantenere un delicato equilibrio tra la spinta al fondamentalismo e la democrazia. Con questo non voglio dire che la Turchia sia un modello di stato moderno, ma che è necessario condurla nella giusta direzione, prima che le forti spinte fondamentaliste la facciano precipitare nel baratro della Sharia. E l'ingresso nella comunità Europea ha questo preciso significato.

Coloro che identificano un contrasto tra la cultura dominante cattolica e quella musulmana commettono un errore. Pur essendo vero che la religione cattolica è quella numericamente preponderante in Europa, questo non può essere un motivo per contrapporla al quella musulmana in un contrasto di carattere puramente confessionale che nulla ha a che vedere con la natura laica delle istituzioni europee.

Anche io come molti temo l'atteggiamento che hanno le popolazioni musulmane verso le leggi e le regole democratiche che sono proprie di tutti gli stati europei. Tuttavia ritengo che sia necessario combattere questo atteggiamento con le armi del laicismo, fondando questa lotta nel rispetto del diritto e nella "dura" applicazione delle norme di civile convivenza sulle quali si basa uno stato moderno. Contrapporre il cattolicesimo alla religione musulmana è foriero invece di violazioni di diritti fondamentali dell'uomo e di una battaglia ideologica che può portare solamente all'annullamento delle istituzioni come le conosciamo, non fosse altro che per la preponderanza numerica delle popolazioni musulmane.

Occorre quindi fare leva sui diritti civili, per erodere la cultura fondamentalista, così come è successo storicamente per il cattolicesimo. Chi oggi condanna il velo delle donne musulmane dovrebbe ricordare come vestivano le donne cattoliche nel non lontano '800. I tabù, pur se relativi a diverse parti del corpo erano i medesimi, ma grazie ad una lenta crescita della coscienza e della cultura laica, oggi la donna può praticare quasi indisturbata anche il nudismo, pur continuando a dichiararsi cattolica.

E' un difficile cammino, ma non può che iniziare accogliendo queste popolazioni dalle quali molto abbiamo da imparare oltre che insegnare. L'importante è tenere ben salda la barra del timone del laicismo e presto anche questo atteggiamento si trasformerà in una cultura democratica.

powered by IMHO

MSNSpaces

Vorrei creare un adapter di IMHO, per postare su MSNSpaces, ma non trovo alcuna informazione riguardo le API per collegarsi a questo servizio. Mi viene il dubbio che non ci siano... sarebbe un vero peccato.

powered by IMHO

.TRAQ: ci siamo quasi...

Sicuramente molti di voi si staranno chiedendo che fine ha fatto l'idea di sviluppare .TRAQ, che da alcune settimane sembra sparita nel nulla. Purtroppo mi trovo in un brutto periodo che mi impedisce di sfruttare appieno il mio tempo libero per lavorare su quello che più mi interessa. Tuttavia prevedo che, dopo aver rilasciato la prossima versione di IMHO (probabilmente la prossima settimana), finalmente riuscirò a cominciare a scrivere qualcosa da sottoporre alla community.

Portate pazienza e prima o poi ci riuscirò.

powered by IMHO

Un dubbio sullo sviluppo agile

C'è un dubbio che mi rode da un po' di tempo, sullo sviluppo con metodologie agili. Probabilmente deriva dal fatto che mi sfugge qualcosa oppure che proprio non ho capito, ma mi sento di renderlo pubblico, perchè potrebbe essere l'ultima barriera che mi separa dal provare veramente ad applicare queste metodologie anche in campo lavorativo.

Ritengo corretto questo tipo di metodologia perchè può certamente risolvere al meglio i problemi di sviluppo e consente di fornire un prodotto migliore e più adeguato alle esigenze del cliente, ma mi chiedo: come convincere di questo anche il cliente?

Mi spiego meglio. Normalmente quando si inizia una trattativa con un cliente per la realizzazione di un progetto, si lavora per preparare un preventivo. Il preventivo per essere attendibile deve considerare la quantità di lavoro da svolgere, le persone da impiegare e di conseguenza il tempo necessario allo sviluppo. Ma è proprio questo il punto: come produrre un preventivo attendibile adottando una metodologia agile? In realtà non dovrei essere in grado di esprimere all'inizio la quantità di lavoro da compiere e di conseguenza non sarò nemmeno in grado di stabilire il tempo necessario alla sua realizzazione.

Trovo improbabile che un cliente accetti di farmi realizzare un progetto senza sapere con esattezza che cosa spenderà alla fine. Trovo anche scorretto azzardare un prezzo ad occhio, perchè i miei costi potrebbero superare la cifra che ho stabilito e di conseguenza mi troverei nella necessità di abbassare la qualità del software allo scopo di non sforare con i costi.

La risposta a questa domanda è vitale. Spero che qualcuno mi sappia rispondere.

powered by IMHO

Aggiungere uno shortcut alla MSN Toolbar

Ho scoperto un interessante tip per la MSN Toolbar. Basta digitare la seguente per aggiungere uno shortcut alla documentazione di MSDN2:

@msdn2, http://msdn2.microsoft.com/library/$w

Fatto questo basterà digitare msdn2 System.Web per accedere direttamente alla documantazione di questo namespace.

Fonte: Off Topic: MSN Toolbar Suite

powered by IMHO

Usare ENTER al posto di TAB

Questo me lo segno. Anche un problema semplice talvolta non è di soluzione immediata.

Enter Instead of Tab

powered by IMHO

.NET Security: Lessons Learned and Missed from Java

Un documento sulle differenze nell'applicazione della security tra .NET e Java, pubblicato da Brad Abrams. Ne ho letto solo un pezzetto (il tempo è tiranno quest'oggi), ma sembra decisamente interessante.

.NET Security: Lessons Learned and Missed from Java (PDF)

powered by IMHO

Togliere i pulsanti alla MSN Deskbar

Nella Taskbar c'è sempre poco spazio: Ecco come togliere i pulsanti alla MSN Deskbar per recuperarne un poco.

Registry hack to turn off buttons

powered by IMHO

IMHO: Gestione delle immagini con un pizzico di intelligenza

Ci sto ancora lavorando, tuttavia mi sembra che ne stia uscendo un buon lavoro. La prossima feature che IMHO acquisterà, entro pochi giorni, sarà la gestione trasparente delle immagini.

Sarà possibile aggiungere immagini a piacere ai propri post e vederle automaticamente pubblicate. Ho appena concluso l'ottimizzatore delle immagini che grazie ad uno stratagemma è in grado di riconosce quando si inseriscono immagini duplicate e di conseguenza usarne una sola e di valutare ad ogni modifica del post se le immagini sono le stesse, oppure se ne sono state aggiunte o tolte. Il meccanismo è banale: genero un Hash MD5 per ogni file immagine che inserisco nel post ed effettuo la verifica su di essi. Ad Hash uguale corrisponde un'immagine uguale.

Infine, ancora una volta sono affascinato dalla potenza delle regular expressions. Sono alla base del sistema che riconosce automaticamente le immagini inserite nel post. Senza di esse avremmo tutti una vita più dura.

powered by IMHO

FeedSpeaker

Spulciando tra i post del mio aggregator ho scovato un'utility che mi farà proprio comodo. finalmente potrò ascoltare i feed rss, mentre impegno gli occhi a fare qualcos'altro.

FeedSpeaker  è un interessante programmino, scritto in .NET che usa il Microsoft Speech SDK per convertire i post di un feed rss in file mp3. La qualità non è eccelsa, ma con un po' di allenamento si capisce qualcosa.

Peccato che manchino i sorgenti...

powered by IMHO

Rumori di frana...

Le statistiche del mio weblog non sono certo esemplari della situazione, ma se penso che solo una settimana fa Internet Explore totalizzava l'82% direi che il 63% odierno è qualcosa di più di un lontano rumore di frana.

  Browser Name Version
61 MSIE 6.0
30 Firefox 1.0
4 Mozilla 5.0
2 MSIE 5.5
1 Firefox 1.0 S
1 Konqueror 3.3
1 Opera 7.54

Forse sarebbe il caso che a Redmond cominciassero a preoccuparsi.

powered by IMHO

Popup Blocker Hell

Ho installato la beta di MSN desktop Search. Ora mi ritrovo di fronte alla seguente amletica domanda:

Mi sembra davvero troppo. Ora mi ritrovo ad avere 3 popup blocker sul mio browser, Google, MSN e WindowsXP. Senza contare quello di FireFox. Naturalmente opterò per quello di Windows, ma mi chiedo:

non sarà che la cura è peggio della malattia anche questa volta?

powered by IMHO

MSN Desktop Search Beta

Ecco dove scaricare la beta di MSN Desktop Search.

http://beta.toolbar.msn.com

powered by IMHO

Generare un feed RSS con l'XmlSerializer, ASP.NET e C#

Un utile post e un interessante controllo per ASP.NET che è in grado di generare un feed a partire da una istruzione SQL.

Source: Generating an RSS feed with XmlSerializer, ASP.NET and C#

powered by IMHO

The Code Room

Qualcuno ha pensato di realizzare un reality show per programmatori. Si sfidano tre programmatori che hanno a disposizione una autonomia limitata sul loro portatile e devono realizzare un sito di e-commerce in una manciata di ore. Pessima idea direi. Ci manca solo che qualcuno possa pensare che bastano poche ore a far funzionare bene un e-commerce, poi siamo pronti per cambiare lavoro!

Source: The Code Room - Reality TV for Developers ?

powered by IMHO

Spazio 1999

Mentre lavoro al pc stanotte, in questo preciso momento scorrono le immagini di Spazio 1999, la serie televisiva che ebbe un bel successo tempo fa.

Ricordo quando, ancora giovincello, aspettavo che arrivasse la puntata settimanale. Questo telefilm mi ha sempre stregato. Assieme a Star Trek, ma in modo forse più raffinato era l'unica che aveva un sapore realmente futuristico. 

Ora prendo l'Aquila e me ne vado a letto. Buona notte.

powered by IMHO

IMHO: Aggiornato il package italiano

Ho rilasciato su sourceforge.net il package in lingua italiana cui ho apportato la correzione del bug segnalato nel mio precedente post.

Ancora grazie.

powered by IMHO

IMHO: Bug della versione italiana

Grazie alla preziosa collaborazione di Michele Bernardi, che si è prestato a debuggare IMHO sul suo pc, sono finalmente venuto a capo di un bug che se non mi ha fatto perdere il sonno poco ci manca.

In poche e semplici parole: Il code snippet editor di IMHO in versione italiana semplicemente non funziona.

Tutto è dovuto alla mia mania di non esser mai contento del nome che do a classi, variabili e altre cose del genere. Questa volta si tratta di una risorsa, che nella versione italiana ha un nome diverso. Questo causa un errore nel costruttore della form dello Snippet Editor, che impedisce di aprirlo.

Nel ringraziare ancora moltissimo Michele, mi pongo la fatidica domanda: Possibile che solo Michele e Simone abbiano installato IMHO in italiano?

La patch entro breve.

powered by IMHO

Microsoft ASP.NET v1.1 Member Management Component Prototype

Le Membership API di ASP.NET 2.0 per ASP.NET 1.1, le trovate qui

powered by IMHO

La semplicità non è di questo mondo

Splendidi quei controlli DataGrid che si rigirano i dati in ogni modo possibile, li raggruppano, li mescolano, li invertono e li ordinano ma... 350 proprietà mi sembrano davvero troppe, senza considerare che alcune di esse sono proprietà di proprietà, e che i metodi di conseguenza sono altrettanti.

Daccordo, ci manca poco che facciano anche il caffè, ma non credo che con un po' di design non si potesse fare meglio. Alla fine che cosa mi serve acquistare un controllo se poi per configurarne tutte le istanze che uso ci metto quasi lo stesso tempo che ci metterei a rifarmelo?

Tanto per dirne una sono circa venti minuti che mi scorro le proprietà una per una per riuscire a capire come fare a trovare la prima riga e selezionarla... Non ne posso più. Mi sa che per l'ennesima volta dovrò sentire l'assistenza.

powered by IMHO

Smetto quando voglio

A fine gennaio torna Fabio Volo con il suo mitico programma, "Smetto quando voglio".

Non sono un televisionaro, ma questo mi piace davvero.

powered by IMHO

Google Suggest

Google ne ha fatta un'altra. Provate a digitare qualcosa in questa casella e ne rimarrete affascinati... (almeno a me è successo ).

Google Suggest

powered by IMHO

Come Visual Studio istanzia una form in design

So che questo è un problema su cui molti dibattono. Ho trovato questo interessante post che spiega piuttosto bene quello che succede.

How does the Windows Forms designer in Visual Studio load a Form?

powered by IMHO

IMHO: Creare un formatter custom. Attenzione alle versioni

Assistendo Simone nell'impresa di creare il suo Emoticon Formatter, mi sono reso conto che si potrebbe incontrare qualche difficoltà la cui soluzione non è immediata.

Per poter creare un formatter è necessario referenziare l'assembly Elite.IMHO.Data.dll che si può trovare nella directory di IMHO. Tale assembly attualmente è alla versione 1.0.1787.933 ed è firmato. Tuttavia è abbastanza scomodo lavorare su un formatter usando la versione installata del programma, perchè si è costretti a copiare il compilato del proprio progetto nelle cartelle di IMHO ogni volta che si vuole testarlo. Pur potendo automatizzare questa operazione, mediante un post build event, è evidente che così si perdono tutte le potenzialità del debugger.

Perciò, come è successo a Simone, può venire la tentazione, peraltro legittima, di scaricare il sorgente di IMHO e di aggiungere il proprio progetto per essere facilitati nel debug. Questo naturalmente è fattibilissimo, anzi addirittura consigliabile, ma occorre fare attenzione ad un particolare che non è immediatamente evidente. Ricompilando il progetto IMHO, ci si troverà nella condizione di far avanzare la versione dell'assembly Elite.IMHO.Data, che è contrassegnata con 1.0.*.

Finchè si lavora al formatter questo non è un problema, ma se al termine del lavoro di prendono gli assembly e li si copia nelle cartelle di destinazione del programma installato si scoprirà che essi generano una eccezione, anche piuttosto oscura, dato che il suo messaggio riporta esclusivamente un punto di domanda "?". Quello che è successo è che il runtime del framework ha generato una FileLoadException perchè la versione dell'assembly Elite.IMHO.Data che il formatter richiede è diversa da quella installata.

Risolvere questo problema è banale. E sufficiente aprire il file AssemblyInfo.cs del progetto Elite.IMHO.Data, trovare l'attributo AssemblyVersion e fissare la versione a 1.0.1787.933. In questo modo il formatter compilato quando sarà posto nelle directory del programma installato sarà perfettamente a suo agio.

Sarà mia cura nelle prossime versioni, oltre a cercare di non rompere la compatibilità all'indietro, anche di inserire le necessarie configurazioni nell'app.config per redirigere i formatter che richiedessero versioni precedenti dell'assembly, su quelli nuovi.

powered by IMHO

E i bottoni son 3D...

Fatto... adesso Lorenzo sarà contento. Ho rimesso lo style 3d che tanto gli piace ai bottoni di IMHO.

Tanto io il tema lo metto sempre a Windows Classic.

L'ho già detto, sono un'abitudinario che ci volete fare?

powered by IMHO

Un agile cucchiaio di legno

Avete presente quei cucchiai di legno che usava la nonna? Ci avete mai fatto caso, che quelli più usati hanno sempre la tendenza ad assumere la medesima forma? Di solito, a causa dell'attrito del fondo della pentola, si consumano e tendono ad appiattirsi da un lato, perchè in realtà il giro che fanno è sempre lo stesso. E, cosa curiosa, alla fine sono quelli che funzionano meglio, perchè è l'uso che ha determinato la loro forma è così essi si sono adeguati e nonostante siano vecchi e consunti fanno il loro lavoro meglio di quelli nuovi.

Ho letto questa osservazione anni fa, non mi chiedete in quale libro, non lo ricordo, però oggi mi è tornata in mente leggendo il post di Lorenzo, che suggerisce, oltre agli orribili "bottoni 3d", di migliorare la possibilità di interazione con i formatter, che in questo momento è certamente ostica, soprattutto nell'uso del formatter per le emoticone che ha creato il buon Simone. Ci lavorerò su, lo prometto, e vedremo se riuscirò a limare un po' il cucchiaio di imho, per fare si che gratti meglio il fondo dela pentola.

Credo che questo debba far pensare un po' alla positività di un approccio di sviluppo agile. Alla fine, se ci pensate, dare la possibilità all'utente di usare quasi da subito il proprio "cucchiaio-software" può fare in modo che quell'antiestetico ma funzionale "scanso", appaia prima che il software sia finito, e così consenta di farlo funzionare al meglio delle sue possibilità già dai primi cicli di elaborazione.

Questa è una opportunità cui credo nessun cliente dovrebbe rinunciare. Partecipare attivamente allo sviluppo del proprio software, gli consentirà di adeguarlo mano a mano alle proprie esigenze, rendendosi conto sul campo delle minuscole modifiche di cui esso ha bisogno, e di come queste modifiche potrebbero addirittura rendere inutili alcune funzionalità che inizialmente sembravano indispensabili.

powered by IMHO

Le keyword raccontano delle storie.

Sono sempre più incuriosito dalle statistiche sul mio weblog. In realtà c'è una parte che mi attira ogni giorno di più: le keyword. E' davvero interessante capire quali sono le combinazioni di parole che portano ai miei post, ma è ancora più interessante cercare di capire le situazioni che potrebbero portare a cercare certe cose.

xaml, scriptomatic, visual studio, wmi, e cose del genere non stupiscono di certo, ma quando mi imbatto in qualcuno che ha digitato su Google "linux falce e martello" oppure "cose la solidarietà?", o ancora "non vedo gmail", le domande sono davvero molte.

Il primo me lo immagino: li davanti al suo slackware, in uno stanzino buio avvolto dalla sua kefiah, con un dito si spinge gli occhiali sulla cima del naso e pensieroso avvia lynx. Si sà, le domande sulla vita assillano, ma Google ha tutte le risposte... ma "linux falce e martello" bastano per coltivare il mio terreno?

Il secondo è uno molto devoto. Proprio quest'oggi ha avuto una brutta esperienza giù in centro e non l'ha ancora digerita. Accende il pc, scrollando la testa e quando Google risponde gli pone la domanda fatale: dimmelo tu "cos'è la solidarietà?".

Il terzo è uno smanettone. Arriva a casa la sera dall'ufficio e ci prova anche lui a trovare 'sto gmail che i colleghi gli hanno nominato. Ma dannazione lo cerca e non lo trova, chissà dove sarà perciò a chi chiederlo se non a Google? quasi imprecando lo invoca disperato... "non vedo gmail!"

Fa sorridere non è vero? Ci si può ricamare parecchio, ma alcune per me non hanno spiegazione. Provateci voi a spiegarmi chi può essere che cerca "shit happens"!

powered by IMHO

E iniziato ufficialmente il Natale

Quest'oggi, come ogni anno ho fatto i biscotti. Questo evento che normalmente faccio cadere in questo periodo, per me e la mia famiglia segna l'inizio del periodo natalizio. Dedico una giornata, talvolta due a questa attività. Alla fine ne sono uscite 5 scatole piene di svariati tipi di frollini: Spitzbuben, ussari, stelline alla cannella. Ora inizia la parte bella, si fanno i sacchettini e si distribuiscono agli amici e ai parenti.

Faccio questa cosa, da 6/7 anni a questa parte, per combattere la tendenza del Natale a sfuggire ogni anno sempre di più, inghiottito dai centri commerciali affollati. Questa assurda corsa al regalo ci fa dimenticare quelli che sono i bei momenti di questo periodo, perciò ho deciso di importare questa tradizione dai miei amici altoatesini (che in questo la sanno lunga), per tentare di riportare a casa il Natale.

Tutto sommato ci sto riuscendo. I miei biscotti sono molto apprezzati, e ormai sono attesi da tutti, ogni anno sempre di più. E le giornate che investiamo per questo lavoro regalano a me e alla mia famiglia dei momenti veramenti indimenticabili.

Provatelo, vi assicuro che sarà un Natale diverso.

powered by IMHO

Due parole su mia figlia

Mi rendo conto di non aver mai parlato di mia figlia su queste pagine. Mia figlia ha il potere di stupirmi. Mentre sto scrivendo queste righe è seduta sul divano, e guarda i cartoni suoi animati preferiti, ovvero Bugs Bunny. Tutto questo non ha nulla che possa stupire, ma dovete considerare che mentre li guarda si sta sgranocchiando una carota che gli ho appena ripulito.

Crunch, crunch, come fosse un succulento biscotto, so per certo la finirà fino all'ultimo millimetro, non fosse altro perchè non è la prima volta che me la chiede. Curiosa abitudine, che naturalmente mamma e papà cercano di assecondare ogni volta che possono, viene dai giorni in cui le stavano crescendo i denti e le gengive le prudevano. Fortunatamente non l'ha mai persa.

Se provate a pensare a sgranocchiare una carota in questo modo, ne sono certo, molti di voi come me abbandonerebbero l'impresa dopo i primi bocconi, e invece lei, ha a fortuna di apprezzare il lieve sapore dolciastro della fibra che mastica con vigore. E non è solo la carota. Anche il sedano, il finocchio e quasi ogni tipo di verdura.

Davvero, mia figlia è strana. Ma di uno strano positivo. Sarà che sono un papà orgoglioso?

powered by IMHO

Ho fatto 100 e 2

Ebbene sì, è venuto i momento di festeggiare il 100esimo utente di IMHO. Non so quanti se ne siano accorti, ma nella home page del mio weblog è presente un contatore che indica gli utenti unici di IMHO, a partire dal 22/11 scorso (data del rilascio della 1.0).

E' opportuno che spieghi in due parole come funziona il meccanismo che mi permette di conoscere con buona approssimazione quanti sono gli utenti che usano il mio programma anche per sgomberare la strada da dubbi sulla privacy o cosucce antipatiche del genere.

Il contatore che vedete è legato al servizio di notifica degli aggiornamenti che giornalmente verifica se la versione correntemente installata è la stessa che è presente in un piccolo file di testo sul mio sito. Durante questa notifica il servizio riceve dal chiamante un Guid che viene generato alla prima installazione e rimane tale anche in caso di successivi aggiornamenti.

Quindi nessuna preoccupazione per la privacy. Solo un numero casuale che identifica univocamente il chiamante e che rimane uguale tra una installazione e l'altra. Lo script che gira sulla home del mio sito non è altro che un javascript, caricato dal sito stesso, che ogni volta va a contare i guid unici in un file di log.

Grazie a tutti... e a presto per la prossima release.

powered by IMHO

Logo condannati

Leggendo questo post di Lorenzo mi è venuto in mente a quanti "logo" possiamo ritenere condannati all'oblio dalla storia. Quelli più illustri, sicuramente infangati dal Nazismo, che aveva la capacità di scegliere dei simboli decisamente efficaci.

Prendiamo la svastica ad esempio. Oggi è considerato un simbolo di morte, ma in realtà, se abbiamo la capacità di dimenticare il significato orribile che la storia gli ha appiccicato, ci troviamo di fronte ad un simbolo di una bellezza disarmante. Il simbolo dell'energia, e del dinamismo. Alcune popolazioni lo associavano al sole.

E' davvero terribile che dobbiamo legare certe simbologie a un periodo di morte, e non mi dispiacerebbe che qualcuno fosse in grado di riciclarle, magari con un po' di belletto. Sarebbe un grande passo avanti, togliere ai carnefici la loro identità.

Ma è davvero impossibile. In logo, è l'essenza stessa della comunicazione e una volta che si riesce a conferirgli un significato, diventa esso stesso parte del significato stesso.

Peccato.

powered by IMHO

Che fine ha fatto Andrea?

Per i miei due lettori, che forse si stanno chiedendo che fine ho fatto, sappiate che sto venendo fuori da una bella gastroenterite...

Ho perfino la nausea del pc... non lo auguro a nessuno.

powered by IMHO

Pattern di tutti i giorni

Sto ancora ragionando sugli eventi, sulle parole e sulle cose che sono successe al workshop dell'ugidotnet di giovedì scorso. L'occasione stavolta viene dai discorsi che negli ultimi minuti di presenza, al termine delle sessioni ho avuto la fortuna di poter ascoltare e ai quali ho con piacere partecipato.

Un Raffaele che in punta di fioretto menava stoccate come solo lui sa fare, ha detto una cosa, che se volete non ha nulla a che vedere con la programmazione, e con l'informatica in senso più ampio. Citava il caso nel quale scambiando le posizioni dei pulsanti di un utente medio, il giorno successivo questo sbagliava ogni operazione che li prendesse in causa. Un caso questo che mi riguarda da vicino ultimamente, dato che mi trovo in una situazione analoga, ma quello che conta è che questa affermazione mi è rimasta in testa da quando l'ho sentita e solo ora comincio ad assaporarne il recondito significato.

Tutto questo ha un nome: Pattern.

In ultima analisi, quello che fa un data enter, che usa mille e mille volte una applicazione non è altro che costruirsi un pattern che poi si limita a ripetere alla stregua di una macchinetta, ottenendo sempre una soluzione migliore della volta precedente. Occorre pensarci bene. Sfido chiunque a non aver mai apprezzato un pattern di questo tipo, magari pigiando la medesima sequenza di tasti sulla tastiera e apprezzandone l'efficacia e l'armonia nella digitazione ogni volta che la si ripete.

Ecco quindi spiegato in due parole il significato da manuale di pattern: una soluzione conosciuta per un problema ricorrente.

Se ne possono trarre due conclusioni a mio parere. Innanzitutto che il pattern è tanto più efficace, quanto più è sperimentato. In fin dei conti l'esperienza nell'uso dei pattern porta a trovare sempre più soluzioni che vi possano essere ritagliate e soprattutto a dare una applicazione migliore e più efficace del pattern stesso. In secondo luogo, è l'esperienza che porta al pattern e non viceversa. Il pattern nasce innanzitutto dal riconoscimento di un problema ricorrente e poi della soluzione che gli si può dare. E come una costruzione mentale, diventa quasi un automatismo, che permette di migliorare l'eleganza e con essa l'efficacia del codice.

powered by IMHO

SMS.AC

Giusto perchè si sappia, stamane ho proprio fatto la figura del pollo. Ieri sera mi sono iscritto ad un fantomatico servizio che si chiama sms.ac del quale avevo ricevuto notifica via mail su MSN da parte di un amico.

Quelle cose che uno non ci pensa su due volte. Prova a iscriversi perchè lo incuriosiscono, tanto poi al massimo non le usa.

Bene, stamattina tutti i miei contatti in MSN hanno ricevuto una mail analoga a quella che mi ha fregato.

NON SOTTOSCRIVETE SMS.AC!

powered by IMHO

Installare Sql 2005 Express e il Framework 2.0

Stasera ho deciso di installare un virtual pc, con il framework 2.0 e Sql Server 2005 Express, per fare qualche esperimento e predisporre l'ambiente di sviluppo per .TRAQ. Probabilmente molti di voi lo avranno già fatto, ma ecco lo stesso alcune indicazioni per chi volesse provarci.

  1. tanto per cominciare, occorre installare la giusta versione di framework 2.0 in base alla versione di Sql Server 2005 che si intende utilizzare. Personalmente ho scelto di installare la CTP di Ottobre perchè è l'unica che consente di utilizzare il Sql Express Manager che è stato rilasciato da poco. Le versioni scaricabili del framework sono attualmente due: 2.0.40607 e 2.0.40903 . Con la prima versione è possibile installare esclusivamente Sql Server Express Beta 2, mentre con la seconda versione si può installare la CTP di ottobre.
  2. Al termine dell'installazione per potersi connettere a Sql Server è necessario abilitare alcuni protocolli che di default non sono abilitati. L'installazione di default di Sql Express crea una named instance denominata appunto SqlExpress accessibile esclusivamente utilizzando il protocollo shared memory. Mediante l'uso di Sql Computer Manager è possibile abilitare anche le named pipes e il protocollo tcp. Ecco come fare:
  • aprire il Sql Computer Manager
  • trovare il nodo Services -> SqlServer e avviare il servizio
  • trovare il nodo Server Network Configuration -> Protocols for SQLEXPRESS
  • abilitare con il menu di contesto Np e Tcp
  • chiudere il Sql Computer Manager
  • aprire l'applet dei servizi e lanciare SqlBrowser
  • impostarne l'avvio automatico se necessario

Questo procedimento vi porterà a potervi connettere al database anche per mezzo dei consueti protocolli di rete che di default sono disabilitati. In particolare vale la pena notare che occorre avviare il servizio SqlBrowser che consente al client di trovare qual'è la porta su cui esso deve connettersi. Il servizio SqlBrowser inoltre è deputato al SQL Server Discovery, ovvero a pubblicare l'istanza di database e a renderla visibile ai client che la cercassero sulla rete.

A questo punto è possibile connettersi a SqlServer con l'express manager specificando come nome ".\sqlexpress" oppure "servername\sqlexpress". Di default il metodo di autenticazione scelto è la Windows Authentication, ma se in fase di installazione lo avete specificato è possibile anche usare l'autenticazione di SqlServer e il classico utente "sa".

powered by IMHO

Un sabato qualunque

Eccolo lì, mi hanno incastrato anche stamattina. E un sabato che poteva essere una bella occasione da passare con la mia famiglia si trasforma in una normale giornata di ufficio come ce ne sono tante, il cappello da "maialino" in testa a buttare giù chilometri di codice.

Talvolta mi chiedo se davvero ne valga la pena. Buttare così le proprie ore a fare qualcosa che altri ritengono urgente, e intanto mia figlia passa la giornata a giocare con le zie, o peggio a guardare la dannosissima televisione. Mi consolo pensando che lo sto facendo anche per lei. Per garantirgli un futuro, la possibilità di crescere bene, di studiare.

Ma il dubbio è forte.

powered by IMHO

Il traguardo è oltre la curva. (ovvero considerazioni sul refactoring)

Nessuno se la prenda se adesso dirò che l'intervento che mi ha regalato le maggiori soddisfazioni al Workshop è quello che ha tenuto Marco Abis. Rispetto le metodologie di sviluppo agile mi sono da sempre sentito vicino e convinto, ma davvero mai avevo sentito narrare con tanto trasporto di questo argomento.

Eccomi quindi ora, ancora una volta, a ricordare alcuni passi di quell'intervento, che mi sono stati ricordati dalle foto nel blog di Luca Minudel. In particolare mi riferisco al momento in cui Marco, davanti ad un grafico che indicava l'andamento dell'indice ciclomatico, puntanto il dito sul culmine di una curva sosteneva che quello fosse il momento in cui inizia il refactoring.

Togliete il cappello da "maialino" e mettete quello del refactoring, e la curva si abbassa.

Molti di noi sanno che in realtà, quello che succede è che il cappello da maialino raramente ce lo fanno togliere, e quindi alle fine l'andamento di un progetto nel tempo è molto più simile ad una scalata dell'Everest che alla passeggiata collinare che il grafico ci suggeriva. Nell'economia dei tempi e del business "miope", quello che succede è che una volta arrivati al culmine della curva, ove tutto funziona, male ma funziona, arriva il capo e ci informa che sì, siamo stati bravi, abbiamo risolto il problema, ma siccome lui dovrà passare il Natale alle Bahamas è opportuno che il progetto finisca lì e che si cominci ad arrancare sulla dorsale "ciclomatica" di un altro progetto, cercando di arrivare alla sospirata vetta "ciclomatica".

La mia non vuole essere una critica all'intervento di Marco, ma piuttosto un prendere coscienza di tali problematiche, per darvi una risposta, nella convinzione che mi muove che il ragionamento fila e anche bene. Il nostro sforzo quindi deve essere quello di andare oltre la curva. Non importa quando, come o perchè, ma dobbiamo avere la capacità di sentire il nostro codice, i fasci di istruzioni che lo percorrono e che ne danno vita, gli intoppi che tali istruizioni incontrano e spianarli, facendo sempre qualche passo oltre la curva.

Non necessariamente è obbligatorio che il refactoring avvenga quando il codice è terminato e funzionante. L'occasione si può incontrare più facilmente invece quando si aggiungono nuove funzionalità. Una volta che si è giunti in vetta non ha probabilmente alcun senso intervenire nel codice che funziona (con buonapace delle ferie del nostro capo), ma lo ha certamente correre a testa bassa sulla china del refactoring per preparare la rincorsa che ci consentirà di raggiungere le vetta successiva.

Personalmente vedo questa attività analoga al reimpastare la creta, per renderla più malleabile, in vista della azione scultorea che essa dovrà subire fino a raggiungere la forma desiderata. Lo stesso avviene con il refactoring. Si prende il codice, lo si osserva bene e si comincia a menare fendenti. Una classe nasce e un'altra muore. un parametro cambia tipo, una metodo cambia nome, una variabile fa altrettanto. Il tutto in una azione coordinata di accerchiamento al problema che lo stritola. E alla fine si è pronti. Si mettono assieme le cose e la vetta è raggiunta.

Davvero credetemi. non mi capita spesso di parlare di qualcosa con tale veemenza, ma lo faccio proprio perchè ritengo che se è vero, come penso che sia, che la programmazione è solo un'altra forma di arte, la più nuova e sconosciuta, allora il refactoring è la giusta strada.

powered by IMHO

E poi il blogorroico sarei io.

36 post in tre giorni è un record degno del guinness dei primati.

Se facciamo un rapido calcolo significa che entro 8,1 giorni Lorenzo sarà in testa alla classifica dei blogger. Non c'è gara, questo è davvero troppo per me. Oltretutto il mio contratto di lavoro parla chiaro. Oltre i 5 scatta il licenziamento per giusta causa!

Mi arrendo.

powered by IMHO

License Hell

Seguendo il panico di Lorenzo in merito alla licenza di IMHO, mi sono soffermato a pensare se ne valga davvero le pena.

Dato che suppongo di essere l'unico latore dell'interpretazione della licenza che ho fornito per imho, ho deciso che è il caso di esplicitarne il vero significato così di consentire un po' a tutti di farsi un'idea di come utilizzare i componenti che ne fanno parte (e che tra l'altro sono pensati proprio per essere riutilizzati)

Il senso della mia GPL è il seguente:

Fintanto che usate imho o alcuni suoi pezzetti, per software liberamente distribuibili i componenti che fanno parte di imho non subiranno mai nessuna censura da parte mia, basta che nell'about ci mettete un link alla sorgente originale. Questo vale sia per altre GPL che per qualsiasi altro tipo di licenza. Se proprio non volete esser GPL pure voi, che ci posso fare?

Se poi decidete che è il caso di farne una versione commerciale allora ne parliamo. Mai avuto l'idea di fare il buon samaritano...

Se a Lorenzo serve una build con licenza LGPL non ha che da dirlo et voilà... il gioco è fatto!

powered by IMHO

Il lato oscuro della forza

Volevo spendere due parole su questo epiteto bonario che Andrea Saltarello, durante le sessioni di ieri ha spesso indirizzato verso le comunità di sviluppatori Java.

A prescindere dal fatto che il mio amore per la saga di Guerre Stellari mi porta ad apprezzare l'idea di vedermi nei panni di Luke Skywalker, nella lotta tra bene e male, trovo che questa definizione racchiuda al suo interno un significato "recondito" molto importante e per nulla deleterio.

E' bene innanzitutto che ci mettiamo in testa che se loro sono il "lato oscuro" non necessariamente noi siamo quello "luminoso". Tuttavia, in questa frase si nasconde l'accezione che il mondo Java nasconde una indiscutibile "potenza sconosciuta" che dobbiamo naturalmente imparare a conoscere e far diventare anche nostra.

Ma c'è una considerazione cui essi dovrebbero pervenire: se è vero questo, occorre tenere presente che, pur riconoscendo loro tutta la positività dell'esperienza Java e di tutto ciò che sta loro attorno, non è per nulla scontato che il "bene" stia dalla loro parte.

powered by IMHO

Il design emerge.

Questa è uno delle frasi più significative che ho incontrato durante le sessioni sul refactoring.

Il design emerge.

Come Michelangelo sosteneva che il suo lavoro non era altro che il fare emergere da un blocco di pietra la scultura che esso conteneva, noi, novelli Michelangioli, scolpiamo con sapienti colpi di refactoring la cruda roccia di bit per trarne una figura compiuta, armonica e funzionante.

Volete vedere il blocco di pietra della vostra prossima applicazione?

public void Main(string [] args)
{
}

E adesso a colpi di refactoring fatene emergere il design.

E' tutto li.

powered by IMHO

Un sintomo blogorroico

Ehm, leggendo i post di Lorenzo sono venuto a sapere che anche lui soffre di mal di schiena, come ne soffro io.

Che si tratti di un effetto collaterale della blogorroicità?

powered by IMHO

Siamo uomini o Nprogrammatori?

Non si tratta di un errore di battitura, ma di una necessaria constatazione.

Nant, Nmock, Nunit, NHibernate, Log4N, N, N, N, N.

A parte il carattere implicitamente "N"egativo di questa lettera che con .NET ha ben poco a che fare, trovo dannatamente odiosa questa abitudine di sostituire una N ad una J ovunque ci si imbatta in progetto che da Java viene portato in ambiente .NET

Trovo la cosa così odiosa, perchè, pur riconoscendo nel "Lato oscuro della forza" (come la chiama Andrea), una indubbia predominza di buone idee e di affascinanti teorie, ritengo che non sia il caso di scivolare nella "sudditanza". Quindi proporrei piuttosto un onesto "il porting di..." per identificare quei progetti nati nei dintorni di Sun, ma che indubbiamente nella loro transizione verso .NET qualche punto potrebbero anche averlo conquistato.

powered by IMHO

I dovuti ringraziamenti

Eccomi qui finalmente, in fondo ai miei 350km, a tirare le somme di una giornata "pregna" con i necessari e meritati ringraziamenti

Ad Andrea Saltarello e a tutti i soci dell'UgiDotNet che hanno organizzato e reso possibile questa giornata va il mio primo pensiero. Trovo che sia stata un'esperienza impareggiabile, soprattutto per il carattere degli argomenti trattati, che nonostante la cortese ospitalità di Microsoft, toccavano in realtà temi non prettamente Microsoft. Chi ci è stato, sa che la giornata di oggi è stata per così dire "multipiattaforma", anche se sempre con un occhio al nostro framework del cuore. Agile development, design patterns, refactoring e unit testing (che grazie alla travolgente e appassionata sessione di Andrea ho finalmente compreso appieno).

Un ringraziamento molto caloroso va a Marco Abis, e a Luca Minudel che nel corso dei loro interventi hanno avuto la bontà di citare alcuni dei miei più "gettonati" post in questo weblog, consentendomi così idealmente di affiancarli nel sostenere un argomento, quello dello sviluppo Agile, che ho molto a cuore. Non potrò (ne vorrò) esimermi ora dall'approfondire ulteriormente queste metodologie e dal dare loro voce per mezzo di altri post.

Un'altro ringraziamento va a Raffaele Rialdi, che ha coniato per me e per Lorenzo un termine che spero entri a far parte al più presto dello Zanichelli: Blogorroico. Non so in realtà se si tratti di un'accezione positiva o negativa, ma credo che il termine mi si addica. Ho come l'idea che esso sarà oggetto di uno dei miei prossimi post.

Un ringraziamento ad Adrian, che mi ha incontrato per la prima volta in un corridoio, riconoscendomi (non so bene come) e mi ha regalato una stretta di mano e uno scambio di saluti natteso. Vorrei scusarmi con lui perchè non avendolo immediatamente riconosciuto temo di non aver dimostrato tutta la gioia che tale conoscenza mi ha regalato. Soffro ancora, per non aver potuto seguire la sua sessione.

Un grazie colossale, va a tutti coloro che mi hanno onorato del riconoscermi e salutarmi, nel conversare amabilmente con me e nell'ascoltarmi e che hanno dimostrato di apprezzare i contenuti del mio weblog, del mio lavoro e dei miei progetti. Si tratta indubbiamente della conferma che la direzione nella quale lavoro, sperando di contribuire al successo della comunità dell'UgiDotNet e di .NET in generale è quella giusta. Non mancherò all'implicita responsabilità che i vostri riconoscimenti mi hanno conferito.

Grazie a tutti.

powered by IMHO

Bugzilla syndrome

Talvolta mi scontro con le posizioni più strane. Una mi è capitata in questi giorni. Credendo di mettere a disposizione un utile strumento, più che altro una comodità per tutti, come dovrebbe essere un ambiente collaborativo, ho predisposto un'istanza di bugzilla per il progetto sul quale sto lavorando. E' successo un po' di tempo fa, e fino a questa settimana nulla di nuovo.

Senonche vengo a sapere che bugzilla sarebbe una perdita di tempo. Meglio scrivere tutto in un foglio excel che ci passeremo a mezzo email, e che oltretutto riprende i vari campi che lo compongono dalle segnalazioni stesse di bugzilla. Beninteso, la cosa mi va benissimo, lungi da me l'essere un fondamentalista, basta che esista un sistema e che questo sistema garantisca un risultato efficace.

Però il dubbio mi rimane. Cosa può spingere un utente, a considerare così ingombrante uno strumento di lavoro al punto tale da rifiutarne le enormi potenzialità per rivolgersi a mezzi indubbiamente meno sicuri e tracciabili?

Anche in vista del mio impegno su .TRAQ, è fondamentale capire questa cosa.

powered by IMHO

A grande richiesta...

...sono tornati i piedoni sul mio weblog.

In effetti così ha molto più carattere.

powered by IMHO

Nuova skin per il mio weblog

Ci ho lavorato parecchio queste notti in albergo. E' in linea la nuova skin del mio weblog.

come sempre le critiche sono le benvenute.

powered by IMHO

Demo Daemon

Stamane demo.

Chi di voi ci è passato sa quale sia la tensione che accompagna momenti come questo. Ti prepari, una settimana intensa, fatta di mille cautele che hanno come unico scopo quello di mettere in piedi qualcosa, che spesso ancora non esiste, ma che deve piacere. Lavori sodo, predisponi, ti fai la scaletta e pensi a prevenire tutto quello che potrà succedere, conscio che ovviamente sarà quello che non hai previsto che ti potrà fregare, e ironia della sorte c'è sempre qualcosa che non hai previsto.

Poi arriva la demo. Sono tutti li, attorno ad un tavolo bello lucido e davanti ad un Barco da svariate migliaia di euro e tu spendi il briciolo di energie che sei riuscito a conservare per convincerli che quello che stanno vedendo è una cosa reale, che funziona e che è la soluzione che si aspettavano.

Ma la demo di quest'oggi è stata diversa. E' cominciata come una normale riunione, tra noi, gli analisti e i programmatori. E piano piano sono arrivati. Non tutti assieme, uno alla volta, bussano alla porta, permesso, ue... è qua che c'è il programma? Faciteme vedè. Una giornata, una demo. Massacrante, ma al tempo stesso molto umana e carica. Una giornata così ti stende, ma ti lascia un panorama di sensazioni, quasi "familiari" che non hanno alcunchè a che vedere con la sterile presentazione al pubblico erudito.

Ancora una volta i Napoletani mi hanno stupito.

powered by IMHO