dicembre 2004 Blog Posts
...e io sono ancora qui che posto. Non sarà una
malattia?
powered by IMHO 1.1
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
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
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
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
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
Date un'occhiata a questa
animazione:
E' la nuova feature di IMHO che
verrà.
powered by IMHO 1.1
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
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
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
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
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
Una collezione di link per chi
volesse tentare questa strada. Ma prima guardatevi bene IIS6!
Apache and ASP.NET
powered by IMHO
Dei buoni propositi per l'anno
venturo?
My New Year's
Resolutions
powered by IMHO
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:
- 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.
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Alla Microsoft non si perde
tempo. Ecco cosa ci regalerà il 2005.
What's to come from Microsoft in 2005
powered by IMHO
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
Per chi non ricorda tutte le
feature di Google, ecco un buon punto di partenza.
Soople; easy search in Google.
powered by IMHO
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
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
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
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
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
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
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
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
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
Ormai i motori di ricerca
stanno combattendo una dura guerra fratricida...
Yahoo! Video Search
powered by IMHO
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
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
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
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
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
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
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
Stamane mi sono accorto di una cosa strana, che non
riesco a spiegare.
Il seguente codice ritorna true:
1 public void Main()
2 {
3 string test = "1.0.....2";
4
5 double doubleResult;
6
7 Console.WriteLine(
8 double.TryParse( test, NumberStyles.Any, CultureInfo.CurrentCulture,
out doubleValue ) );
9 }
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
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
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
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
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
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
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
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, per la prima volta il mio weblog ha superato
le 500 visite (Page View) in un solo giorno.
Ovviamente le mie non si contano...
Tuesday |
21st December 2004 |
501 |
239 |
127 |
112 |
Ancora grazie e tutti.
powered by IMHO
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
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
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
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:
- Non c'è soluzione alla questione perciò non vale la pena di rispondere
- 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
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
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
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
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
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
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
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
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
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
Indovinate un po': le mie ferie natalizie sono saltate... perciò sono curioso di sapere chi mi farà compagnia sul weblog.
powered by IMHO
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
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
Avete scritto un libro? Aggiungetelo a Google Print!
Google Print
powered by IMHO
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
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
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
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
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
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
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 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
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
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
Segnalato un nuovo problema di sicurezza di Internet Explorer.
New Spoofing Vulnerability for IE
powered by IMHO
Un po' di shortcut per la MSN
Deskbar:
- Knowledge base
Articles
@kb,http://support.microsoft.com/?kbid=$w
- Trovare feed RSS
@rss,http://www.feedster.com/search.php?q=$w
- Cercare su Google
@google,http://www.google.com/search?complete=1&hl=it&q=$w
- Un weblog di UgiDotNet a partire
dal nickname
@ugi,http://blogs.ugidotnet.org/$w
powered by IMHO
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
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
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
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
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
Questo me lo segno. Anche un
problema semplice talvolta non è di soluzione immediata.
Enter Instead of
Tab
powered by IMHO
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
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
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
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
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.
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
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
Ecco dove scaricare la beta di
MSN Desktop Search.
http://beta.toolbar.msn.com
powered by IMHO
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
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
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
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
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
Le Membership API di ASP.NET
2.0 per ASP.NET 1.1, le trovate qui
powered by IMHO
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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.
-
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.
-
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
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
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
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
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
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
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
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
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
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
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
...sono tornati i piedoni sul mio weblog.
In effetti così ha molto più carattere.
powered by IMHO
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
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