Weekly Issues

Il problema del giorno, cronaca di che cosa posso trovarmi a risolvere in una comune giornata lavorativa... può essere una stupidata, oppure un gran problema... può essere tecnico o di interazione col team, Agile, o meno... insomma, può essere di tutto!
[Weekly Issue] Disabilitare il debug in ASP.NET a livello di server

Qualche post fa avevo evidenziato i principali effetti deleteri dell’avere in produzione un applicativo con il debug abilitato. Ultimamente (ieri), mi è capitato ancora una volta di trovare un applicativo in produzione da parecchio tempo che, per motivi ancora da chiarire, si è ritrovato con il debug abilitato. Gli effetti sono stati che l’architettura bilanciata su due nodi continuava a cadere, provocando disservizio. Un frontend che fino al giorno prima reggeva tranquillamente un milione e mezzo di pagine viste al giorno, si è ritrovato a non sopportarne più di 400 mila, con gravi danni per l’advertising. Una volta riconfigurato il...

posted @ giovedì 13 maggio 2010 17:21 | Feedback (1)

[Umbraco] Macro o non Macro? Questo è il problema…

Chi di voi ha utilizzato almeno qualche volta Umbraco, conosce sicuramente il meccanismo potente delle macro. Come probabilmente sapete, le macro hanno la possibilità di essere “cachate” (utilizzano la cache nativa di ASP.NET) per evitare che vengano interpretate ogni volta. Questa funzionalità è, però, tanto utile quanto pericolosa. Il rischio, infatti, è di “abusare” in maniera eccessiva di questa facilitazione, soprattutto quando si parla di macro XSLT. Un esempio: chiunque lavori in XSLT da più di qualche ora sa che ci sono dei selettori che in generale è meglio evitare. Qualcosa come $currentPage/ancestor-or-self::node//node...

posted @ martedì 11 maggio 2010 12:08 | Feedback (0)

[Umbraco] Import massivo ed errori di Lucene

Una delle maggiori richieste quando si implementa qualcosa in Umbraco che ha del pregresso è, ovviamente, l’importazione. Personalmente, mi sono trovato bene con CmsImport (prima noto come UmbImport), un package commerciale che per 99 dollari permette di fare l’importazione “semplice” e, tramite custom action, maneggiare il documento importato in modo da fare virtualmente qualsiasi cosa. A meno che l’autore non abbia aggiornato la documentazione o il blog mentre leggete questo post, vi consiglio di scrivergli per chiedergli esempi: è possibile fare veramente tante cose e lui è molto disponibile ad aiutarvi, ma gli esempi e la...

posted @ mercoledì 28 aprile 2010 17:17 | Feedback (0)

[Weekly Issue] SQL Server, clustered index e GUID

Il disegno di un database è un punto centrale per tutte le applicazioni. Nel mondo web, anche visto il funzionamento disconnesso di ADO.NET, è forse ancora più imperativo definire bene le cose prima di incorrere in errori. Una delle grandi diatribe relative alle tabelle è l’utilizzo delle chiavi primarie. Identity, GUID, chiavi composte… spesso non si sa cosa scegliere! Io, personalmente, cerco sempre di scegliere i GUID, quando il progetto lo consente. Ma non è, come sempre, “LA” soluzione. Bisogna ponderare di volta in volta per l’effettivo utilizzo. Nel caso, però, si scelgano di utilizzare...

posted @ martedì 20 aprile 2010 21:31 | Feedback (1)

[Weekly Issue] web.config, <compilation debug=”true”> e produzione

Spesso (troppo) vedo un gran numero di progetti web che finiscono in produzione senza le dovute precauzioni. La cosa peggiore che si può fare è, quasi certamente, dimenticarsi di cambiare l’attributo “debug” nel web.config quando si pubblica. Vedere <compilation debug=”true”> .. </compilation> nei web.config dei server di produzione dei miei clienti ormai mi da istinti omicidi :) Molti non lo fanno per pigrizia o perchè “così se c’è un errore, ho informazioni più dettagliate”. Questo approccio è _assolutamente sbagliato_: una forte politica di logging mette al sicuro...

posted @ giovedì 15 aprile 2010 16:41 | Feedback (5)

[Weekly Issue] Header runat=server e doppio tag <title>

Lavorando spesso con siti frontend, il SEO diventa una priorità non trascurabile. L’ottimizzazione per i motori di ricerca è una delle richieste più pressanti da parte del cliente, e questo porta spesso a dover generare titolo, keyword e abstract direttamente da backend (o, utilizzando un CMS, prendendolo dalle proprietà del documento corrente). Un problema che ho rilevato è che, interagendo direttamente con l’header runat=”server” e inserendo un tag <title> direttamente a runtime, il ASP.NET si “incasina” e, non sapendo che voi avete aggiunto effettivamente un tag <title> magari nel page_load, lo aggiunge lui. Questo porta...

posted @ mercoledì 14 aprile 2010 16:43 | Feedback (2)

[Weekly Issue] XSLT 1.0 e divisione

Lavorando così tanto con Umbraco, XSLT ormai è diventato un mio secondo linguaggio. Scendere a patti con la paginazione in XSLT, spesso, può essere un problema. Il problema principale è la mancanza di divisione con resto: idiv è stata introdotta con XSLT 2.0, che purtroppo non è supportato dal Framework ne, quindi, da Umbraco. L’alternativa è: - Introdurre un parser XSLT di terze parti e mettersi a modificare il core (come quello di Altova, che è disponibile gratuitamente). Particolarmente complesso :) - Utilizzare la funzione floor(), che restituisce il numero intero indipendentemente da...

posted @ mercoledì 31 marzo 2010 19:37 | Feedback (0)

[Umbraco] Tips and Tricks

Ci sono molte parti di Umbraco che hanno bisogno di essere… “aiutate” per funzionare correttamente! Molto si trova con la pratica, molto leggendo blog come il mio :) Quindi, visto che non sono geloso, vi giro un altro blog da cui ricavo un sacco di informazioni utili, che spesso utilizzo: http://www.nibble.be/ A discapito dell’estensione, il sito è in comprensibilissimo inglese, e punta molto sull’argomento “startup” di Umbraco, che io spesso posso tralasciare per motivi pratici… Technorati Tags: Umbraco,Tips & Tricks

posted @ martedì 9 marzo 2010 15:49 | Feedback (0)

[Weekly Issue] ASP.NET, System.Drawing.Image.Save() e Generic Error in GDI+

Utilizzando l’oggetto Image, può capitare di ricevere un errore, abbastanza criptico, che spesso è impossibile da interpretare: Generic Error in GDI+ Chiaramente, i componenti COM non hanno la buona educazione di avvisarci riguardo a _quale_ sia effettivamente l’errore…. Per fortuna, in ASP.NET le cause per questo errore sono principalmente due: 1: Permessi. Ossia, stiamo cercando di salvare un immagine in un percorso in cui l’utente interattivo non ha i permessi di scrittura. Come al solito, ma non solo in questo caso, è buona norma assicurarsi che i permessi siano corretti soprattutto quando...

posted @ giovedì 4 marzo 2010 17:04 | Feedback (4)

[Weekly Issue] DataReader.GetOrdinal e invalid column name

Mi è capitato un problema bizzarro, ultimamente, uno dei tanti in cui mi sto scontrando lavorando con siti con alto traffico di utenti. Il problema in questione era che il DataReader, improvvisamente, è “impazzito”, restituendo una System.IndexOutOfRangeException nel metodo GetOrdinal. In pratica, mi diceva che nel set di dati restituito mancava la colonna che cercava di leggere. Peccato che, nel metodo in questione, la colonna ci fosse, la stored fosse corretta… insomma, funzionasse tutto “normalmente”. Come nel classico dei bachi, il problema si presentava in maniera assolutamente randomica. Quindi, per esempio, andava perfettamente in 10 casi,...

posted @ mercoledì 3 marzo 2010 16:25 | Feedback (0)

[Weekly Issue] Generic collection & Multithread

In uno dei tanti progetti che sto seguendo, mi è capitato un errore di quelli che nessuno vorrebbe mai avere: l’applicativo schizza come una lippa ma, improvvisamente, la CPU schizza al 100% (su un server con 16 core e 16 giga di ram…) e rimane li, inchiodata, per quasi un minuto. Poi va giù, senza generare errori rappresentativi, e ritorna a funzionare… per non si sa quanto! Abbiamo passato differenti giornate a cercare di capire il problema. Alla fine, siamo abbastanza sicuri di aver isolato la causa: l’utilizzo di una cache esterna basata su Dictionary, “falliva”...

posted @ lunedì 1 marzo 2010 19:06 | Feedback (2)

[Umbraco] Template, XSLT e parametri

Probabilmente molti di voi, usando Umbraco, si appoggiano a dei template XSLT per gestire le proprie macro. Se già non lo fate, iniziate a farlo… la gestione dei template è importante, e permette di mantenere gli XSLT relativamente semplici da gestire. Una comodissima funzionalità dei template XSLT è la possibilità di richiamare un dato template, passando dei parametri. Questi parametri possono essere passati, o avere un valore di default che verrà utilizzato all’interno del template stesso. Per dichiarare il template con i parametri, la sintassi è <xsl:template match="node" mode="list">    ...

posted @ giovedì 25 febbraio 2010 16:51 | Feedback (0)

[Umbraco] Remove old versions

Umbraco ha alcune grandi pecche. Una delle più grandi è la crescita, a volte incontrollata, della base dati. Questo succede perchè per ogni salvataggio, Umbraco si tiene una versione di tutte le proprietà specificate per un DocumentType, nella tabella cmsPropertyData. Questo è comodissimo dal punto di vista redattoriale, ma per siti con grande ricambio di dati (come le testate giornalistiche che sto seguendo in questo periodo) si traduce in una crescita veramente esponenziale. Inoltre, anche la tabella umbracoLog cresce a dismisura, poichè non è possibile filtrare il livello di verbosity: o si spegne tutto, o ci si...

posted @ martedì 23 febbraio 2010 19:53 | Feedback (2)

[Umbraco] Uppercase e lowercase in XSLT

Una delle funzionalità più richieste è operare con il testo nell’ambito dell’XSLT. Uppercase e lowercase sono sicuramente i metodi più popolari. Umbraco, nelle sue extension, non fornisce supporto per queste funzionalità. Ma non è una mancanza: le funzionalità di questo genere sono esposte dalle Xslt string utilities. In particolare, per l’Uppercase, si dovrà scrivere: <xsl:value-of select="Exslt.ExsltStrings:uppercase($month)"/> Per il lowercase… beh, indovinate :) Purtroppo, nella reference queste due funzioni non sono specificate… quindi è altamente probabile che possano sfuggire! Technorati Tags: Umbraco,Uppercase,Lowercase,Xslt string utilities,Exslt

posted @ lunedì 22 febbraio 2010 15:28 | Feedback (0)

[Umbraco] Visualizzare le icone nella combo dei DocumentType

Ho scritto ieri riguardo il FamFamFam Icon Pack, ed alla sua importanza nel caso di alberi realmente complessi, per dare un feedback visivo all’utente/editore su quello che sta facendo. Mi hanno scritto alcune persone dicendo che è “inutile”, poichè nella selezione del DocumentType, le icone non vengono visualizzate, quindi ci si trova con una combo lunghissima, senza poter sapere che cosa si sta selezionando. Purtroppo, è un “baco noto” di umbraco quello di non visualizzare le icone con nessun browser, tranne Firefox. Quindi, se volete giocare con i DocumentType e le nuove...

posted @ sabato 20 febbraio 2010 17:15 | Feedback (0)

[Umbraco] Icone per i DocumentType

Sono sicuro che anche a voi le icone standard fornite da Umbraco scontentano proprio. Quando si ha a che fare con molti DocumentType, avere a disposizione una gamma più ampia di icone è quasi una necessità, per consentire alla redazione di lavorare meglio ed accorgersi, anche visivamente, nel caso stiano facendo qualche errore. Il miglior icon pack che ho trovato per Umbraco è il Fam fam fam icon pack, del già “famoso” Mark James. Installatelo ed avrete a disposizione una marea di icone per i vostri DocumentType… avrete solo l’imbarazzo di dover svegliere quella giusta! … e se...

posted @ venerdì 19 febbraio 2010 18:03 | Feedback (0)

[TeamCity] AjaxControlToolkit e roblemi di compilazione nelle DLL con Umbraco

Teamcity è un ottimo prodotto gratuito (con limitazioni, ma molto ampie) che risolve brillantemente il problema della Continuous Integration, senza spostarsi su prodotti più articolati come TFS, che per molti clienti è fuori portata. Lo uso abitualmente in congiunzione con SVN: formano un’accoppiata molto stabile, e non mi danno praticamente nessun problema. Ogni tanto, però, la build si rompe per misteriosi motivi, soprattutto usando Umbraco. Come premessa, in tutte le solution che hanno umbraco come website ho disabilitato la compilazione del website, perchè ci mette un sacco. Quindi, l’unico modo per assicurarsi che tutto funzioni...

posted @ giovedì 18 febbraio 2010 16:09 | Feedback (4)

[Umbraco] DirectoryUrl, IIS 7 e Session a null

In molti casi, è necessario estendere Umbraco per aggiungergli diversi tipi di funzionalità. Nell’ultimo progetto, che andrà online tra qualche settimana, abbiamo dovuto creare un sito parallelo che girasse dentro umbraco (quasi come abbiamo fatto con www.style.it). In questo sito, che comunque gira sotto umbraco, abbiamo dovuto utilizzare la sessione per diversi motivi. Ovviamente, pubblicato sull’ambiente di stage, non funzionava piu nulla. Gli “object reference not set” del log non davano molte informazioni, ma con un pò di magia abbiamo scoperto l’arcano: le sessioni erano tutte misteriosamente a null. Ma non nel senso...

posted @ mercoledì 17 febbraio 2010 15:57 | Feedback (0)

[Bootcamp] Tasto INS e Visual Studio

Chiunque possegga un mac e lo utilizzi (violenti?) per farci girare windows, si scontra probabilmente ogni giorno con il grande problema della tastiera, soprattutto se si ha un macbook o macbook pro. Una delle grandi conquiste che ho avuto negli ultimi tempi è trovare la combinazione per il tasto “INS”, comodissimo in certi casi, inutile in molti altri: fn+Invio. Me ne sono accorto a mie spese, quando l’ho attivato inavvertitamente (cercando di fare un canc, fn+Backspace) e ho sudato per levarlo… :) Invece, non ho ancora trovato alternativa alla tilde… se non utilizzare la tastiera...

posted @ lunedì 15 febbraio 2010 16:09 | Feedback (1)

[Umbraco] Performance del Backend e Cache

Forse non tutti sanno che, negli ultimi mesi, sono stato presissimo perchè la mia azienda si è occupata totalmente del rilascio del nuovo sito di style.it. Posso affermare senza ombra di dubbio che è il progetto piu complesso che abbia mai affrontato con Umbraco. Con qualche ombra di dubbio, posso affermare che è uno dei progetti più complessi che conosca in generale, sviluppato con Umbraco. Se qualcuno sta pensando al novello ASP.NET, la grande differenza tra i due è che ASP.NET è utilizzato e editato da gente che, più o meno, capisce quello che sta facendo. Style...

posted @ venerdì 12 febbraio 2010 22:02 | Feedback (1)

[Umbraco] Trace e Chrome

Probabilmente molte persone che usano umbraco ormai sono a conoscenza della possibilità di visualizzare il trace di .NET ed i relativi messaggi di errore delle macro utilizzando umbShowDebugTrace (per chi non ne fosse a conoscenza, fate un salto qui: http://our.umbraco.org/wiki/how-tos). Per chi invece già lo conosce e, come me, lo ritiene a volte poco intuitivo e pratico, segnalo questa utilissima estensione per Chrome di Kenneth, con cui ho avuto il piacere di lavorare spesso. In pratica ti aggiunge un menù che ti permette di entrare e uscire dalla modalità di debug, navigare direttamente in umbraco e...

posted @ giovedì 11 febbraio 2010 19:44 | Feedback (2)

[Umbraco] umbraco.DataLayer.SqlHelperException not marked as Serializable

Visto che, ultimamente, la maggior parte dei miei Weekly (Daily? Hourly?) Issue sono dovuti principalmente a questo CMS, ho deciso di creare una sezione apposta :) Iniziamo con uno degli errori più comuni che mi sono capitati in questi ultimi giorni: non si sa per quale motivo, l’applicativo in produzione ha iniziato a crashare prima ancora di avviarsi, tirandosi dietro tutto il W3WP.exe. L’errore, abbastnza criptico, era: Type 'umbraco.DataLayer.SqlHelperException' in Assembly 'umbraco.DataLayer, Version=0.3.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable. Dopo parecchi giri, discussioni via MSN con alcune persone del core team, e ricerche dovunque, si è...

posted @ martedì 9 febbraio 2010 18:25 | Feedback (0)

[Weekly Issue] Pre/Post build Events, la sintassi

Mi capita spessissimo di lavorare con i Build Events sulle solution, soprattutto usando Umbraco (seguiranno infatti una serie di post su questo CMS. Che è il motivo principale per cui sono sparito in questi mesi :)). Il problema principale che ho avuto è trovare una vera reference della sintassi. Le macro ci sono quasi tutte, ma spesso non si sa bene che cosa si può fare e che cosa no. Girando un pò, sul sito msdn si spiega che la sintassi dei Pre/Post build event in realtà è la medesima dei “vecchi” comandi MS-DOS. Quindi, potete agilmente trovare...

posted @ martedì 9 febbraio 2010 13:07 | Feedback (0)

[Weekly Issue] Leggere dati binari con WebRequest

Capita, ogni tanto, di avere a che fare con la lettura di dati da server remoti. In questi casi, HttpWebRequest ci viene in contro, fornendoci tutti gli strumenti necessari. Finché si tratta di pagine web, ci sono pochi problemi. Abbiamo qualche piccolo pensieri in più, invece, quando si tratta di dati binari: spesso e volentieri, il risultato appare incompleto. Per esempio, le immagini vengono restituite con un bel po' di byte persi qua e là. Questo perché, se è vero che nel leggere stringhe basta utilizzare il consueto ReadToEnd, per leggere dati binari conviene sempre utilizzare il meccanismo del...

posted @ lunedì 5 ottobre 2009 10:24 | Feedback (1)

[Weekly Issue] Verificare il supporto per Hyper-V prima dell’installazione

Hyper-V è probabilmente il modo migliore per mettere in piedi un’architettura virtualizzata con relativamente poco sforzo, ed una grande efficenza. Potrebbe però rivelarsi comodo avere la sicurezza che il nostro hardware supporti la virtualizzazione hardware, senza dover andare a controllare nel bios della macchina, soprattutto se questa è già installata e funzionante e si vuole “aggiornarla”. Fortunatamente, sia Intel che AMD mettono a disposizione due comode utility per controllare le caratteristiche salienti del processore, tra cui anche la possibilità di avere la virtualizzazione hardware. Se avete un processore Intel potete scaricare il Processor Identification Utility...

posted @ giovedì 16 aprile 2009 13:01 | Feedback (1)

[Weekly Issue] LinQ + Extension Methods = Evviva ASP.NET 3.5!

L'ultimo problemuccio che ho avuto era legato ad un array di interi. Avevo la necessità di selezionare l'intero più alto tra quelli inseriti nell'array. Se qualche riga di ciclo for vi sembra troppa, allora probabilmente siete come me: per questo mi sono lanciato su una soluzione basata su Linq. Ebbro di gioia, ho scoperto presto che gli array di interi espongono un extension method "Max()" che fa esattamente quello che serve a me! Quindi, se vi servisse, basta fare 1: int maxInteger = intArray.Max(); e il gioco è fatto! Meglio di così.... :) edit: mi fanno notare che gli extension methods e...

posted @ mercoledì 28 gennaio 2009 16:29 | Feedback (8)

[Weekly Issue] IPhone development e Application Verification Failed (0xE800003A o 0xE8000001)

La mia prima applicazione per IPhone consiste in un bottone, con una textbox ed una label, che sostituisce dei valori al cambiare della textbox. Ovviamente, terribilmente semplice. Mi ha sconvolto, comunque,  la difficoltà e la conoscenza necessarie per portare a termine un'azione così semplice. L'intellisense di XCode non aiuta, anzi, porta fuori strada! La documentazione Apple è lacunosa in molti punti e da troppe cose per scontato (sembra che sia stata scritta da persone con livelli tecnici terribilmente differenti e senza una eccessiva supervisione... il documento prima ti spiegano come funzionano i commenti, quello dopo parte dal presupposto che...

posted @ domenica 25 gennaio 2009 06:35 | Feedback (2)

[Weekly Issue] Aggiungere utenti a Team System Workgroup edition... senza dominio!

Tempo fa avevo raccontato alcune peripezie per installare un TFS Workgroup edition da smandruppare con i test. Dopo qualche mese di utilizzo, devo dire che sono rimasto molto soddisfatto del funzionamento: dopo le ultime esperienze con SVN e TeamCity, posso dire che sicuramente TeamSystem è un bel passo avanti, sia per la facilità nella configurazione della Continuous Integration, i tool di merging già integrati, e via dicendo. Purtroppo, il costo è ancora irraggiungibile per una struttura come la mia, e le difficoltà di installazione sono comunque notevoli anche nella versione 2008 che è decisamente migliorata rispetto alla 2005. In sostanza, credo...

posted @ giovedì 22 gennaio 2009 18:24 | Feedback (0)

[Weekly Issue] Remoting e configurazione

Ricominciamo un pò con i weekly issue ... :) Ultimamente sto lavorando molto con remoting, di cui apprezzo la potenza e la flessibilità in applicazioni distribuite .NET rispetto ai web services. L'unica spina nel fianco è sempre stata la configurazione che, sebbene con 3.5 presenti dei messaggi di errore un tantino più amichevoli di quando ci lavoravo con 1.1, mantiene una sorta di aspetto oscuro tipo "magia nera". Uno dei bisogni che avevo in una delle ultime applicazioni che ho fatto, era mantenere nello stesso applicativo winform una configurazione "client" o "server a seconda dell'utente scelto. Gli approcci...

posted @ martedì 20 gennaio 2009 16:31 | Feedback (2)

[Weekly Issue] TFS e Shaerpoint Services: finalmente è finita...

E' finita la mia odissea con TFS. Da stanotte, o meglio da poco fa, sono (s)fortunato possessore di uno splendido TFS Workgroup Edition da distruggere per i test, con tanto di MyForsWorkspace creato ... spero che nel caso debba fare l'upgrade a Standard sia solo una questione di licenza e non debba toccare null'altro :P Stanotte, preso dallo sconforto e probabilmente dal sonno, ho superato l'ultimo scoglio riusciendo ad installare i maledettissimi Sharepoint Services. Questo perchè, leggendo l'installazione, mi sono illuso che questi venissero installati in automatico dall'installazione di TFS. O almeno, così era scritto. Invece, leggendo le postille,...

posted @ mercoledì 12 novembre 2008 10:52 | Feedback (0)

[Weekly Issue] Hyper-V Core e controllo remoto

Sto reinstallando i server della mia azienda, e ne ho approfittato per consolidare tutto usando Hyper-V. Oddio, tutto no, per ora TFS e Web server... ma è già un inizio! Ho avuto qualche piccolo problema di installazione, dovuto principalmente ad errori di gioventù... ma meglio riportarli, così sai mai che possa servire a qualcuno! 1: Hyper-V Core è proprio core... viene installata l'interfaccia a comandi che poi ti permette di fare la maggior parte delle operazioni ma NON di gestire le virtual machine. Per quello, bisogna utilizzare il componente remoto. 2: Il componente remoto di amministrazione (Hyper-V...

posted @ lunedì 10 novembre 2008 15:24 | Feedback (5)

[Weekly Issue] Rimuovere i commenti da SubText

Tornato dalle vacanze, mi sono trovato una spiacevole sorpresa. Non so come, non so quando, non so nemmeno perchè, ma mi sono trovato qualcosa come 4000 ping/trackback di spam.  Ancora non so se la risposta sia disabilitare totalmente ping/trackback o abilitare la moderazione (cosa che tra parentesi nemmeno so se funziona per i trackback), ma la cosa piu urgente da fare ora come ora è eliminare queste quintalate di feedback non desiderati. Una rapida scorsa all'interfaccia amministrativa di SubText mi fa capire che volendoli cancellare uno per uno (a pagina, 10 alla volta) con tanto di mille mila messaggi di conferma, sarei...

posted @ martedì 26 agosto 2008 13:26 | Feedback (3)

[Weekly Issue] L'inizio di una serie?

Sono ormai un paio di mesi che non riesco ad aggiornare i miei Daily Issue. Il motivo è presto detto: il lavoro massacrante mi ha costretto e levarmi di peso da tutte le attività community, per evitare di soccombere. Ho preso decisamente troppi impegni per questa fine di anno, tra cui due libri (uno in pubblicazione, il secondo in gestazione.. lunga :P) e una serie di team da formare e far crescere... troppe responsabilità e orari sballati mi hanno portato a dover rinunciare a qualcosa. Assodato che non rinuncio alla palestra ne al minimo di vita sociale che mi rimane, la...

posted @ venerdì 22 agosto 2008 19:32 | Feedback (0)

[Daily Issue] 1 2 3 stella...

Non è esattamente uno Issue.... però per me si! Mi è arrivato il portatile nuovo... un XPS M1330 supercarrozzato che userò per gli spostamenti e/o tutte le occasioni in cui non posso e non voglio portarmi dietro il mio "mulo" (inteso come 17 pollici da 5kg, non come noto programma di file sharing :P). Ieri contento come una pasqua ho aperto la confezione e questo è quello che mi sono trovato davanti Tanto, chi voleva fare le virgolette?? :P (Comunque la Dell si è offerta di rispedirmelo intero per venerdi. Io purtroppo non...

posted @ martedì 22 luglio 2008 12:06 | Feedback (6)

[Daily Issue] Sql Injection, ASP classic, e la storia

Mi ricollego a questo post di Massimiliano riguardo gli ultimi attacchi di Sql Injection che stanno subendo un pò tutti. Ricercando su goggle per 'www.bigadnet.com', vedrete subito una quantità di siti impressionante, tutti purtroppo sviluppati con il vecchio ASP 3.0. Molti, sempre purtroppo, riguardano siti istituzionali che fortunatamente sono stati già messi a posto, per ora. Se si conta che bigadnet è solo uno dei domini che si occupano di mandare in giro certe schifezze... a questo indirizzo trovate una lista aggiornata di altri domini. Il meccanismo di injection è piuttosto semplice anche se raffinato: si concentrano...

posted @ sabato 21 giugno 2008 12:37 | Feedback (6)

[Daily Issue] Cambiare/rimuovere l'intestazione delle form in un Setup Project

Sono un paio di giorni che sto "impazzendo" con la scarsa maneggevolezza dei setup project. Odio fare progetti di setup generalmente e quando li faccio sono sempre molto semplici. Se devo andare un tantino oltre, mi scontro sempre con le evidenti limitazioni di "semplicità" del setup project di Visual Studio. Stendendo un velo pietoso sui maneggi per cercare di dare un aspetto grafico alla cosa, dopo aver semplicemente cambiato la banner image, mi sono scontrato col fatto che il titolo dato di default ai vari tipi di form faceva a pugni con l'immagine messa come banner......

posted @ venerdì 9 maggio 2008 17:19 | Feedback (0)

[Daily Issue] Ajax e "Maximum length exceeded"

Mi è capitato in un paio di progettini Ajax con cui stavo "giocando" (cambiate "giocando" con "pubblicando in produzione" ed avrete un'idea un tantino piu precisa :P) di avere ogni tanto il suddetto errore quando invocavo Page Methods o Web Services dal mio codice Ajax. Dopo una prima fase di nervosismo (visto che di questi giorni è il periodo degli errori che capitano "ogni tanto".... magari in futuro ne scriverò altri :) ) ho controllato un pò i dati che passavano e mi sono accorto che ad un certo momento, per determinati criteri di ricerca, venivano passati piu di...

posted @ martedì 6 maggio 2008 11:02 | Feedback (2)

[Daily Issue] Vista e Telnet

Se come me non usate spesso telnet, e avete installato vista da tempo ma, quando lo andate a cercare, non riuscite a farlo partire da command prompt.... è perchè dovete installarlo :) Control Panel / Programs and Features / Features di windows / Telnet client. Fonte: RedRain P.S.: Si, sto lavorando il 25 Aprile. No, non sono antiliberazione. Si, sono un cretino :D

posted @ venerdì 25 aprile 2008 22:26 | Feedback (0)

[Daily Issue] Javascript, Virtual Earth e documentazione

Per chi avesse seguito i miei ultimi post, sto lavorando tantissimo in questo periodo con le tecnologie Live. Virtual Earth, Gadget, Live Agent e chi piu ne ha piu ne metta. Di tutte queste tecnologie, quella che piu mi affascina è sicuramente Virtual Earth, per la velocità con cui ha saputo colmare quasi completamente l'enorme gap che lo divideva da Google Maps, e per la gamma di implementazioni che offre. Purtroppo, qualche buco c'è e come già dissi tempo fa, la mancanza di un Interactive Sdk valido mi obbliga spesso ad andare a vedere direttamente MSDN e controllarmi...

posted @ venerdì 21 marzo 2008 17:32 | Feedback (0)

[Daily Issue] WPF, Blend ed i Resource Dictionary che spariscono

Come avrete capito da alcuni miei ultimi post, le risorse sono fondamentali per un corretto utilizzo di WPF. Fortunatamente, blend ti aiuta molto in queste cose gestendo in maniera autonoma sia DataTemplate che ControlTemplate e permettendoti di creare i tuoi dictionary. Sfortunatamente, ogni tanto la December Preview di Blend "impazzisce" e decide che quando voglio associare un ControlTemplate definito in un dictionary esterno, quel dictionary che fino a 23 secondi prima era disponibile ora non esiste piu :( Questo si traduce nel fatto che o vado nello xaml e pianto a mano il mio StaticResource, fiducioso del fatto che a runtime funzionerà...

posted @ giovedì 21 febbraio 2008 13:24 | Feedback (3)

[Daily Issue] WPF e animazioni a Runtime

Per uno dei miei progetti piu complessi in WPF ho avuto la necessità di caricare dei controlli dinamicamente all'interno di un contenitore apposito. Per rendere la cosa "fancy", ovviamente, ho avuto la bella idea di caricare questi Usercontrol attaccandoli a delle animazioni generiche... tutto bene all'inizio, se non fosse che ogni tanto, con qualche controllo, incappavo in questo fantomatico strano errore "'[Unknown]' property does not point to a DependencyObject in path '(0).(1).[0].(2)'." Dopo esserci impazzito per un bel po di tempo, ho usato il caro vecchio metodo montessori: ho preso ed ho fatto un brutale confronto con...

posted @ lunedì 18 febbraio 2008 09:56 | Feedback (0)

[Daily Issue] Doctor House ha i suoi limiti...

Issue filosofico... era tempo che non ne facevo uno eh? :) Periodo di lavoro intenso, questo, tanti progetti tutti importanti su tanti clienti... e da tutti i miei clienti faccio parte di quello che io ormai chiamo il "Gruppo Dottor House". Breve spiegazione: credo che chiunque abbia almeno sentito parlare della famosa serie; Nel caso, per riassumerla, parla del  dotto Gregory House, medico fuori dal normale a capo di una equipe di medici brillanti predisposti alla risoluzione dei casi disperati, a volte anche un pò eccessivi, tipo che si parte da un raffreddore e si arriva ad una sindrome sconosciuta mortale e/o...

posted @ giovedì 31 gennaio 2008 15:44 | Feedback (7)

[Daily Issue] WPF e le risorse: la compilazione (ed il reverse engineering...)

Ho avuto dei bei problemi a creare un applicativo WPF che fosse bello a vedersi ma che incorporasse anche alcune funzionalità del tipo contabile/amministrativo. Putroppo, per questo tipo di lavori, una griglia è sempre quello che fa al caso nostro, perchè non c'è un modo piu comodo dal punto di vista dell'utente per avere una visione d'insieme e riuscire ad avere un'operatività discreta su quello che sta facendo... questo almeno finchè l'utente vorrà vedere i dati piu o meno come li vede stampati.... necessità che non capisco molto se non stai facendo report, ma fa nulla :) Comunque,...

posted @ lunedì 28 gennaio 2008 10:28 | Feedback (0)

[Daily Issue] WPF e i Visual Studio: storie di vita vissuta

Ho in cantiere due issue su ControlTemplate e DataTemplate: noto spesso dai clienti che la differenza tra i due non è così conosciuta come dovrebbe essere, e soprattutto i meccanismi di utilizzo dell'uno e dell'altro non li si conosce.... Purtroppo, sono slittati come priorità visto che oggi ho passato una giornata lavorativa a venire a patti con un progetto VS2005 + Cider e un VS2008. Dovevo fare delle prove con una GridView per WPF di cui magari un giorno vi parlerò, e per farlo ho aperto  un progetto WPF _nuovo_ con VS2008 e tenendo di fianco il...

posted @ sabato 26 gennaio 2008 20:53 | Feedback (0)

[Daily Issue] WPF e le risorse: trovare una risorsa

Ultimamente ho parlato spesso di risorse e WPF: sia io che Corrado vi abbiamo fatto vedere come utilizzare al meglio le risorse per gli elementi testuali. In qualche post futuro farò una breve digressione sulle varie tipologie di risorse e su come possono essere utilizzate con differenti tipi di oggetti. Può succedere, in ogni caso, di avere la necessità di trovare una particolare risorsa da codice, cioè non interrogando i Dictionary in maniera programmatica. Mi sono scontrato con questo problema "stupido" agli inizi del mio percorso in WPF perchè credevo nella mia innocenza che il FindName...

posted @ giovedì 24 gennaio 2008 11:26 | Feedback (0)

[Daily Issue] WPF e custom namespace

Agli "inizi" della mia avventura con WPF mi capitava spesso di avere un errore abbastanza scomodo che era "Mapping URI is not valid" quando dovevo tipo importare un mio namespace per referenziare per esempio uno usercontrol (quindi qualcosa del tipo xmlns:uc="clr-namespace.." etc etc). Per mia esperienza personale, con Visual Studio 2005 e prima che gli errori avessero un pò di senso da quel punto di vista, le sviste piu comuni erano: 1: ":" al posto di "=". Non so perchè ma mi è sempre venuto automatico scrivere per esempio xmlns:uc="clr-namespace=myNamespace" invece della sintassi corretta xmlns:uc="clr-namespace:myNamespace" 2: Nel...

posted @ mercoledì 23 gennaio 2008 10:35 | Feedback (0)

[Daily Issue] WPF e le risorse: il testo

Trovo sempre utile per applicazione di un certo calibro ricorrere alle risorse per tutto ciò che riguarda il testo. E' facile, veloce e non costa praticamente niente. Se vi siete persi il mio primo Issue generale sulle risorse, andatevelo a rivedere per sicurezza :) Per chi usa Blend (e per chi non lo usa scaricate la December Preview di Blend2 che è uno spettacolo) basta selezionare l'oggetto (pulsante/label/whatever) e controllare il piccolo quadratino di fianco alla casella di testo: schiacciandolo, si avrà accesso ad una serie di voci tra cui quattro segnalate in verdino che sono Local Resource System Resource Edit...

posted @ martedì 22 gennaio 2008 12:27 | Feedback (3)

[Daily Issue] WPF e le Risorse

Ho visto che Corrado non ne ha mai parlato, quindi mi lascio andare ad una piccola digressione sulle Resouce e i ResouceDictionary in WPF. Le risorse in WPF sono un discorso molto ampio. Sarebbe meglio trattarlo tutto intero, ma questo esulerebbe un pò dallo spirito nudo e crudo del Daily Issue (che è tornato in sordina dopo un luuuungo tempo di silenzio... mi scuso ma viaggi e impegni mi  hanno stretto alla gola :D) quindi lo tratterlò un pò a pezzi. Come prima parte, una breve infarinatura sulle risorse: sono un "tantino" diverse dalle nostre resx, ma il concetto è lo stesso:...

posted @ lunedì 21 gennaio 2008 20:52 | Feedback (1)

[Daily Issue] Comandare la serializzazione di una classe tramite attributi - Parte 2


Ho parlato tempo fa di come comandare la serializzazione di una classe con XmlSerializer utilizzando XmlElementAttribute per avere il nome degli elementi XML non concorde con quello dei campi della Classe. In questi giorni mi è capitato di dover aggiungere degli attributi ai nodi del mio XML, e in questo caso le cose si complicano un poco ....
(continua)

posted @ giovedì 15 novembre 2007 10:50 | Feedback (1)

[Daily Issue] Strani errori in Application_Error


Ormai tutti quanti abbiamo log4net nelle nostre applicazioni web che, ben piantato nel global.asax o in un error handler, ci avvisa di tutti i casi in cui la nostra applicazione va in errore. In una grossa applicazione che ho in produzione, mi capita da qualche mese di ricevere due errori che proprio non riuscivo a spiegarmi: Invalid character in a Base-64 string e Unable to validate data
(continua)

posted @ martedì 13 novembre 2007 10:03 | Feedback (1)

[Daily Issue] Warning "fasulli" con WPF, UserControl e VS2005


Sto lavorando ormai da un pò in WPF utilizzando tutte le varie beta di VS2005. Ultimamente però ho dovuto portare alcuni progetti che avevo in 2008 su 2005 per poi rilasciarli a dei clienti esterni che non hanno a disposizione 2008 e, giustamente, non vogliono utilizzare Beta. Purtroppo, ho riscontrato problemi, nel senso che tutte i progetti che "passavo" da un ambiente all'altro mi davano dei warning strani in presenza di UserControl. (continua)

posted @ lunedì 12 novembre 2007 10:49 | Feedback (2)

[Daily Issue] @@IDENTITY, SCOPE_IDENTITY e ... IDENT_CURRENT


Trovo ancora molte perplessità riguardo all'utilizzo delle funzioni T-SQL citate nel titolo...Quasi tutti conoscono la prima, alcuni anche la seconda, ma non capiscono bene cosa differisca dalla prima (e quindi essendo piu semplice la prima vanno con quella :P), quasi nessuno conosce la terza....
(Continua)

posted @ venerdì 9 novembre 2007 10:43 | Feedback (2)

[Daily Issue] Web Service, AXIS Interop e namespace


Web Service e namespace NON sono i miei argomenti preferiti, anzi di solito tendo a limitarmi al mondo .NET appunto per evitare problemi. Purtroppo in giro c'è di tutto, e recentemente ho avuto parecchi problemi ad interfacciarmi con un Web Service su base AXIS con due diverse definizioni di Namespace...
(Continua)

posted @ giovedì 8 novembre 2007 14:35 | Feedback (1)

[Daily Issue] Embedded flash e "click to activate and use this control"

Le applicazioni flash sono ormai roba di tutti i giorni. Le recenti problematiche di protezione, purtroppo, hanno reso gli embedded flash un tantino piu problematici, nel senso che in ogni caso, Internet Explorer ti chiede di fare "un click in piu" per arrivare ai tanto agognati pulsantini flash. Questo succede nel caso si usi l'embed classico, perchè Internet Explorer lo tratta come un ActiveX "potenzialmente pericoloso".  Ovviamente, essendo il flash nella stragrande maggioranza dei casi un componente dedicato a menu e simili, far fare all'utente un click in piu per un pulsante può portare a... hem.. problemi di interfacciamento :D Quindi sono usciti...

posted @ mercoledì 7 novembre 2007 11:31 | Feedback (1)

[Daily Issue] Simulare una Postback con GetPostBackEventReference


Tempo fa scrissi un post riguardo l'uso del metodo GetPostBackClientEvent() dell'oggetto Page per avere a disposizione uno snippet JavaScript che simulasse la PostBack (il classico _doPostBack()).

Già a quel tempo, ma anche per molti mesi prima, misi in guardia dall'andare dall'interagire a manina con il Javascript del framework, ma ancora in questi giorni sui NG se ne è tornato a parlare quindi meglio riprecisare ulteriormente:
[continua]

posted @ martedì 6 novembre 2007 10:39 | Feedback (0)

[Daily Issue] Access e "No value given for one or more required parameter"


Access non è, come noi tutti sappiamo, una gran scelta in campo di base dati.
Per alcuni progetti, d'altronde, si rivela essere l'ideale, sia per il supporto in fase di deploy che per la semplicità per darlo in pasto all'utente intanto che si sfiluppa un backoffice decente :)
[continua]

posted @ lunedì 5 novembre 2007 20:04 | Feedback (0)

[Daily Issue] Custom Control (o Reflection) e App_Code

Qualche tempo fa, avevo parlato di un progetto che stavo iniziando con gente totalmetne a digiuno di programmazione e totalmente con strumenti free. Il progetto in se, dopo una partenza "difficoltosa", sta ingranando.... vedremo come andrà. Nel frattempo, mi sono scontrato con un'esigenza che lavorando in ambiente "classic" non ho mai avuto: utilizzando Visual Web Developer Express 2005 come IDE ed avendo il mio codice di business nella directory App_Code, tutti i miei CustomControl e le mie classi sono definite li. Quindi, cosa prendo come nome di assembly quando devo referenziare un Custom Control con la direttiva di pagina Register o da Web.config?...

posted @ sabato 3 novembre 2007 21:16 | Feedback (0)

[Daily Issue] Colloquis - Problemi di configurazione del QueryServer

Sto lavorando (purtroppo) sull'SDK della  colloquis per creare bot MSN. L'SDK in se ha delle potenzialità linguistiche impressionanti, purtroppo castrate da un IDE e da un linguaggio di sviluppo (il BuddyScript appunto) che ... diciamo eufemisticamente "rallentano" lo sviluppo. Se a questo si aggiunge che la documentazione è, sempre per usare un _forte_ eufemismo, largamente incompleta, capirete quanto sia complesso. Perchè lo uso? Diciamo politica :S Il server che "ospita" i bot invece è bellino.. tranne che anche lui ogni tanto fa le bizze. Per esempio, nell'ultimo bot che sto creando avevo un problema in fase di deploy sul server che...

posted @ venerdì 2 novembre 2007 17:55 | Feedback (0)

[Daily Issue] XmlDocument, selezionare i nodi con namespace

Mi è capitato ultimamente di avere a che fare col mondo flash.. molto a che fare... Tralasciando le considerazioni personali, ho avuto modo di vedere che il parser XML di Flash ed i WebServices che restituiscono DataTable o DataSet non vanno molto d'accordo... (questo a detta di chi ci lavora, anzi gradirei sapere da qualcuno che conosce bene actionscript se è vera questa informazione.....) Quindi, quello che ho dovuto fare è stato, per amore della tranquillità (e per esigenze di deploy in tempi "stretti"), cambiare l'output da DataTable a XmlDocument. Anche così, dava problemi la dichiarazione che ne consegue, che ha...

posted @ mercoledì 31 ottobre 2007 21:50 | Feedback (1)

[Daily Issue] Levare l'ultimo progetto VS2003

Allora, cosa sareste disposti a fare voi per levarvi dalle scatole lultimo progetto 2003 che avete tra le mani? Io personalmente sarei disposto a un sacco di cose.... il problema principale è che questo applicativo è uno dei piu complessi guarda caso (un motivo se non l'abbiamo ancora migrato c'è :D) Contiene una trentina di progetti, di cui due web, diverse console application, un servizio, ed il resto sono classi di business. ... oggi ho iniziato a fare le prove, e vediamo come andrà a finire... L'interrogativo è: farlo per tutto e metterli di fronte al fatto compiuto? O parlarne...

posted @ martedì 30 ottobre 2007 20:53 | Feedback (1)

[Daily Issue] Custom Control e MasterPage: gli eventi non vengono scatenati?

Ho avuto un insidioso problema che mi ha fatto tribolare non poco oggi. Sto creando una gestione di immagini via web (no Matteo, niente a che vedere con te :P) che permetta di caricare un immagine e cropparla, resizarla, girarla, controllarla. Insomma: un mini photoshop, ovviamente molto molto mooooooooolto mini :D Ovviamente mi sono guardato in giro e nno ho visto niente che facesse come volevo io, tanti begli spunti alcuni fatti anche molto bene, ma mancavano di qualcosa oppure non mi convincevano per le soluzioni "tecnologiche" adottate (soprattutto per quanto riguarda CSS e Javascript). Quindi mi sono messo di impegno e mi sono...

posted @ domenica 28 ottobre 2007 01:15 | Feedback (0)

[Daily Issue] HTML, MailTo e "a capo"

Siamo nel 2007, è vero, ma in certe occasioni è ancora piu comodo/semplice/intuitivo/whatever interagire con l'oggetto mailto per mandare email direttamente da pagine HTML, per esempio in gestionali o in pagine web con contenuti marketing ... Ora, mi dimentico _sempre_ alcune cose, tipo come inserire diversi indirizzi nel TO, come andare a capo nel Body (\n o br o altro non funzionano) etc etc. Ogni volta devo ricercarlo, e visto che immagino che come me ci siano molti "smemorati", vi link  l'RFC con le specifiche piene. In particolare, se non volete leggervela tutta, per inserire piu di un indirizzo email nel to del...

posted @ mercoledì 24 ottobre 2007 20:56 | Feedback (0)

[Daily Issue] ASP.NET Custom Control e Page.ResolveClientUrl

Mi sono trovato a sviluppare un sacco di Custom Control nella mia "carriera". In molti casi mi sono "scontrato" con la scarsa conoscenza del team in questo campo. E' una cosa abbastanza strana, capire che un Custom Control non è niente di trascendentale e che quello che fa il framework con la sua Textbox volendo possiamo rifarlo anche noi è una cosa che tutti gli sviluppatori dovrebbero _quantomeno_ comprendere... non dico saperla fare ad occhi chiusi, ma comprenderla si :) Comunque, a parte le filippiche, le domande che piu mi sento fare è come utilizzare dei path relativi. Ho visto brutture (roba...

posted @ martedì 23 ottobre 2007 15:31 | Feedback (2)

[Daily Issue] .NET Performance Tips and Tricks...

Il periodo pieno non accenna a smettere.. da un certo punto di vista mi va benone, dall'altro dormo troppo poco :) In questi giorni, comunque, sto notando che manca proprio un'infarinatura su molte tematiche di base... uno dei piu gravi purtroppo è quello delle Performance.. ValueTypes, ReferenceTypes, boxing e unboxing, eccezioni... tutte cose di cui magari si parla ma di cui si ignorano gli impatti (Anche importanti, la maggior parte delle volte) in termini di velocità di esecuzione.... Una buona introduzione potrebbe essere questo articolo su msdn, un pò vecchiotto ma ancora attuale... sarebbe il caso di darci un'occhiata giusto per vedere...

posted @ giovedì 11 ottobre 2007 13:31 | Feedback (2)

[Daily Issue] I Warning.. trattateli come errori.. ok?

Mi capita troppo spesso (sempre??) di avere a che fare con Warning presi sottogamba.... Il classico è il try/catch in cui si fa il catch dell'eccezione, ma poi non la si usa... Questo vuol dire 1: non si conosce che il costrutto "catch" è ammesso anche se non si specifica l'eccezione, nel caso io voglia fare qualcosa senza interagire con l'eccezione stessa 2: si sta facendo debug spinto e "mi serve l'ex per capire cosa succede altrimenti non capisco"... Ok.. perfetto..  una volta, due volte.. la terza ci attacchi un log4net..... I warning sono l'anticamera di un problema. Si chiamano warning per un motivo, mica hanno...

posted @ lunedì 8 ottobre 2007 16:51 | Feedback (4)

[Daily Issue] Le Naming Guideline....

... sono la base dello sviluppo... Sono forse una delle cose piu importanti che voi possiate adoperare... No, sul serio, non è uno scherzo.... non riesco a pensare a niente di piu serio di una corretta nomenclatura... tutto ciò di buono che possiamo fare o saper fare diventa inutilizzabile se non sappiamo dargli il giusto nome, corretto nel giusto contesto, e se non abbiamo il coraggio di cambiarlo (refactoring anyone?) nel caso diventi osboleto o scorretto. Classi, variabili, metodi, proprietà, tutto il "mondo" dello sviluppo si disloca intorno a questo.. .eppure siamo nel 2007, molto è passato dai tempi della "niu economi"...

posted @ lunedì 8 ottobre 2007 00:42 | Feedback (11)

[Daily Issue] Non avere fretta....

Lo vedo capitare sempre, ogni giorno, in tutto quello che faccio. Gente che pur di fare un passaggio in produzione al millimetro lo fa alle 8 di sera di venerdi, e nel week end puntualmente si inchioda tutto, gente che se ne va a casa lasciando modifiche nel codice non testate senza nemmeno preoccuparsi del fatto che dovrà essere rilasciato tutto l'indomani, gente che dichiara chiuso un progetto perchè "funziona" e poi scatta alla macchinetta del caffè... ma non funziona, e non funzionerà mai .... Capisco perfettamente la voglia di fare altro, di svago, di essere in altri posti soprattutto quando è...

posted @ giovedì 4 ottobre 2007 19:59 | Feedback (3)

[Daily Issue] Un milione di scimmie NON fanno un developer serio....

Daily? Ma che daily... monthly... Yearly... insomma, è sempre lo stesso issue che si ripropone.... Partiamo dalla citazione che ha dato inizio al tutto:  "Supponiamo di aver addestrato un milione di scimmie a battere a caso sui tasti di una macchina da scrivere e che lavorino con ardore dieci ore al giorno con un milione di macchine da scrivere di tipi diversi. Che i sorveglianti illetterati raccolgano i fogli anneriti e li rileghino in volumi. Nel giro di un anno questi volumi conterranno la copia esatta dei libri di ogni genere e di ogni lingua conservati nelle biblioteche piu' ricche del mondo." Emile...

posted @ lunedì 24 settembre 2007 22:46 | Feedback (3)

[Daily Issue] Spiegare il Method In-Lining

Ok magari è un "mezzo" Daily Issue... però in relazione al mio post di ieri ed alla relativa osservazione di Massimo, ho ricevuto un pò di domande del tipo "ma che vuol dire inlining del JIT??"... Effettivamente posso capire che non sia un concetto con cui si ha a che fare tutti i giorni, a meno di non chiamarsi Adrian :P..... quindi, piuttosto che spiegarlo io che potrei fare un bel po di confusione, vi rimando a questo post di Gunnerson che spiega in breve cos'è, a cosa serve e come funziona (piu o meno :))

posted @ venerdì 14 settembre 2007 12:33 | Feedback (1)

[Daily Issue] SubText Tuning: occhio agli update panel!

Sto mettendo le mani nel codice di SubText per fare una modifica per un cliente. Praticamente la richiesta, tra le tante, pretendeva di aggiungere l'upload di una foto in fase di invio di un commento (please, non chiedete il perchè... :)) Questo ha creato non pochi problemi, ultimo dei quali il non funzionamento del controllo FileUpload nella parte dei commenti. Questo perchè, paciugando nell'architettura di SubText, ho notato che tutta la parte dei commenti è compresa in un UpdatePanel chiamato apnlCommentsWrapper cui vengono aggiunti i controlli. Questo panel viene istanziato e caricato quando si caricano i controllo Comments.ascx e PostComment.ascx,...

posted @ lunedì 10 settembre 2007 16:19 | Feedback (1)

[Daily Issue] Usare DataTableReader..... serve?

Oggi sempre grazie a Claudio ho scoperto un oggetto che proprio non conoscevo. Il DataTableReader. Questo oggetto, leggendo nella documentazione, permette di avere differenti tabelle (a-la DataSet) e di ciclarle in maniera ReadOnly e ForwardOnly. Questa cosa mi ha fatto subito pensare: 1: Mio dio, sto mischiando pere con mele senza avere facolta di sapere cosa c'è in una e cosa c'è nell'altra (cosa che già odio nei dataset, figuriamoci qui.... 2: Però, dovrebbe essere velocissimo... Quindi visto che sono bizzarro, ho fatto due prove ed è venuta fuori una cosa singolare: Il DataTableReader, con una sola istanza di tabella, paragonato al ciclo su righe...

posted @ venerdì 7 settembre 2007 20:21 | Feedback (1)

[Daily Issue] Condividere l'autenticazione tra diverse applicazioni ASP.NET

Può succedere di dover condividere l'autenticazione tra differenti applicazioni sotto lo stesso virtual host, sia omogenee (tutte 2.0) che eterogenee (2.0 e 1.0). Il problema è facilmente sorpassabile utilizzando l'elemento MachineKey del file di configurazione: specificando un machinekey identico, si possono condividere i cookie tra applicazioni diverse. Per esempio, se io ho  <machineKey   validationKey="99AF6556D754949EF4171355D5D538930DCCF674453E4F3882B240B011A7381CD86A79C1D317B7ADD94E7781F816C319D67E5555DFD0EC969719DC1EB166A9ED" decryptionKey="DA2056148C0642A11D9CDBB79F67BCB631D8A1A20BC75935" /> (Se si cerca di far condividere l'autenticazione tra 1.1 e 2.0, nel machinekey dell'applicazione 2.0 bisogna aggiungere "validation="3DES" " in quanto l'algoritmo di default di 2.0 è MD5 e quindi non funzionerebbe la decriptazione dei token 1.1) subito dopo System.web nei web.config delle due applicazioni, avrò accesso ai...

posted @ giovedì 6 settembre 2007 17:27 | Feedback (0)

[Daily Issue] Smaltire la coda

Ogni rientro dalle ferie, di qualsiasi genere siano, è quasi sempre un delirio. Piu clienti si hanno, piu questi considerano il tuo tempo come prioritario "visto che sei stato via" e quindi ti vogliono tutto per loro. Questo porta a parecchi salti mortali e, come molti di voi hanno notato, astinenza dal blog per un pò :) Come fate voi per gestire le priorità? E' difficile capire cosa effettivamente vuol dire "urgente" quando si parla al telefono con un cliente, molto spesso è facile fare la scelta sbagliata e dare priorità a qualcosa che invece prioritario non lo è per niente .... Io personalmente...

posted @ martedì 4 settembre 2007 13:38 | Feedback (0)

[Daily Issue] (Too much) Agile?

Adoro le metodologie agili. In generale, mi piace qualsiasi cosa che ti permetta di seguire correttamente il corso di un progetto. Tutti vorrebbero l'analisi perfetta che una volta scritta non cambia per farci degli splendidi castelli mentali e creare l'architettura perfetta... ma chiunque abbia lavorato per un pò sa che è impossibile, o comunque se succede, è poco pratica. I requisiti di qualcosa cambiano sempre nel tempo, e l'approccio agile (magari non tutto, ma comunque parti di esso)  è necessario per evitare di crollare. Informare il cliente della propria metodologia è altresi imperativo, non si può essere agili senza l'appoggio del...

posted @ venerdì 31 agosto 2007 19:55 | Feedback (1)

[Daily Issue] Definire le priorità

Questa settimana è stata un pò "sabbatica". Non nel senso che non ho fatto niente (così evito che i clienti che leggono il mio blog mi levino la pelle di dosso :)) ma nel senso che ho approfittato della mancanza di gente dagli uffici per riorganizzare un pò le cose dal punto di vista "burocratico", quindi codice come anche persone e cose (no, animali no :P) Questo ha levato molto materiale al Daily Issue, ma mi ha portato a vedere ancora una volta quanto sia importante definire le priorità prima.... e quanto poco lo faccia invece quando sono preso dal caos...

posted @ venerdì 24 agosto 2007 14:01 | Feedback (2)

[Daily Issue] Ricominciamoooo

Eh si.. altro che Pappalardo... direi che il Daily Issue di oggi è proprio ricominciare, dopo 3 settimane di stop è dura.... Ma ce la posso fare, ho esaurito e risposto a tutte le email ho controllato i conti correnti e visto che non mi sono entrate clonazioni strane di carte di credito quindi anche queste vacanze sono riuscite..... Adesso, devo convincere il mio cervello a levare la retromarcia ed iniziare a fare qualche rapido prima-seconda per evitare di trovarmi bloccato tutto il giorno a fissare il monitor... :P ho perso qualche minuto a "ritrovarmi" nel nuovo blog engine, ma ho semplicemente distrutto...

posted @ lunedì 20 agosto 2007 12:43 | Feedback (0)

[Daily Issue] Stop and go

La cosa piu difficile (e qui molti mi insulteranno, ma va beh...) è tornare dalle ferie, avere solo una settimana per cercare di rimettere ordine nella propria vita lavorativa, e poi ripartire ancora :) Io sono tornato ieri, e sabato riparto per la sicilia... le vacanze "a salto" che sto facendo quest'anno non me le sono programmate, ma è piu che altro la volontà di vedere posti diversi con gente diversa, che si traduce nell'accontentare le esigenze dei giorni di ferie degli amici (si sa, noi consulenti siamo "flessibili"... sigh...). Questo si traduce in una "lentezza" mentale che è dura da...

posted @ martedì 31 luglio 2007 11:10 | Feedback (0)

[Daily Issue] Ma è così difficile avere un API decente?

Mi sto scontrnado in questi giorni con un sacco di problemi di documentazioni incomplete. Dopo i problemi vari con Virtual Earth, e quelli forse ancora piu gravi coi Gadgets di live, mi sto scontrando in questi giorni con l'API dei Sql Server Reporting Services per scrivere una Rendering Extension. La documentazione è quantomeno scadente: gli oggetti ci sono tutti, ma la spiegazione è risicata all'osso. C'è un brevissimo stralcio di codice sull'implementare l'interfaccia IRenderingExtension, ma non spiega per esempio nel dettaglio il contenuto dei vari parametri del metodo Render che, sorpresa sorpresa, sono NameValueCollection e quindi non ci si capisce cosa...

posted @ venerdì 20 luglio 2007 13:00 | Feedback (1)

[Daily Issue] Could not find installable ISAM

Stranamente, ci sono quelle giornate in cui senti che il  fato/caso/murphy/whatever comanda effettivamente le pedine.... Ogni tanto sono brutte, ogni tanto stupende, spesso neutre, ma curiose... oggi è una di queste, in cui per un qualche strano caso, tre persone che conosco se ne sono venute fuori su MSN con questo errore... mah, direi che è un errore decisamente poco comune, ma il fatto che me l'abbiano chiesto in tre mi ha fatto sorridere e quindi, già che ci sono, ci scrivo sopra un bello issue, anche se non è stato un mio scontro personale :) Comunque, "Coult not find installable ISAM"...

posted @ martedì 17 luglio 2007 23:08 | Feedback (0)

[Daily Issue] Vacanze, lavoro, afa.. e virtual earth :)

In questi giorni, sono un pò piu passibile di mancanze nei miei Daily Issue, soprattutto all'arrivo del week end.Anche nei newsgroup è un periodo in cui non riesco a reggere il passo di Andrea e Matteo, che rispondono (correttamente :P) prima ancora che io abbia il tempo di fare refresh :) Questo perchè, ultimamente, sento il bisogno di svagarmi. Ma non perchè sia scansafatiche, perchè non abbia voglia, etc, ma semplicemente per un fattore.. il caldo! In questi giorni qui a milano sta raggiungendo picchi che non sentivo da anni, e personalmente faccio fatica a lavorare in queste condizioni. Ok, la...

posted @ martedì 17 luglio 2007 01:29 | Feedback (3)

[Daily Issue] T-SQL e OpenDataSource

Oggi doppio Daily Issue, per farmi scusare del fatto che sono rimasto zitto per quasi tre giorni :) Oggi ho avuto un problema di import di un DTS da un database remoto al nostro di sviluppo. Non sapevo bene come fare tutto con una query e evitare di passare da stored od altre cose strane. Il problema principale era che il db era esterno e quindi avrei dovuto collegarmici, e soprattutto che non è detto che rimanesse quello e quindi avevo bisogno di un metodo che mi facesse selezionare dinamicamente una base dati. Mi è venuto in aiuto il costrutto OPENDATASOURCE, che...

posted @ martedì 10 luglio 2007 12:49 | Feedback (0)

[Daily Issue] Nuove tecnologie: live gadgets

Che non sta per "tecnologie nuove" quindi gadget per vista, ma "implementazione di tecnologie esistenti che non si ha mai avuto modo di provare" :) In questi giorni, sto seguendo l'implementazione di un gadget per live spaces, con tutti i problemi che ne conseguono. Devo dire, è un mondo che mi affascina ed è interessante vedere quanta cura è stata messa da Microsoft nella gestione del JavaScript necessario per gestire i gadget. La parte di sicurezza è stata curata in maniera maniacale, nel senso che appena cerco di "scriptare" fuori dal mio behaviour, ottengo un access denied, giustamente, ma sto già...

posted @ martedì 10 luglio 2007 12:46 | Feedback (1)

[Daily Issue] Caricare controlli dinamicamente con LoadControl

Ho avuto come esperienza alcune domande sull'uso di LoadControl che mi hanno spiazzato. Ho sentito dire (:)) che per usare LoadControl bisogna per forza mettere un register tagprefix all'interno della pagina.... però tutto questo non ha molto senso, perchè se devo fare un LoadControl vuol dire che (potenzialmente) non so che controllo dovrò caricare, e quindi tutto questo diventa impossibile. Ma infatti, per utilizzare il metodo LoadControl non c'è bisogno di avere nessuna registrazione: basta avere un placeHolder, e utilizzare il metodo LoadControl della classe Page, passando il path relativo (con la sintassi Page.LoadControl("~/Controls/MyControl.ascx");) In questo modo avrò un istanza di UserControl...

posted @ venerdì 6 luglio 2007 10:51 | Feedback (0)

[Daily Issue] Nullable Types...

Ieri ho rivisto dopo taaaaanto tempo (tipo 2005 :P) la sintassi dei Nullable Types... No, non vuol dire che vivo con la testa sotto la sabbia, vuol dire che non li ho mai usati... praticamente... :) Ora, prima che luka chieda la mia testa su un piatto d'argento, mi spiego: credo che l'utilizzo vero dei nullable types a meno di architetture enormemente (eccessivamente??) complesse, sia semplicemente quello di interazione con la base dati. [continua]

posted @ mercoledì 4 luglio 2007 11:23 | Feedback (9)

[Daily Issue] Riprendersi dalle trasferte

Le trasferte "non programmate" sono sempre un devasto. Sono stato appunto a Firenze giovedi e venerdi, con preavviso... a mercoledi .... fare una trasferta con un giorno di preavviso mi ha obbligato a spostare un sacco di impegni che avevo già preso come assodati... risultato: ho perso quasi tutto il lunedi a riorganizzarmi con i clienti. Se si conta che poi questo lunedì è stato molto... particolare.... in bene ovviamente... diciamo che nemmeno ho avuto tempo di aprire i newsgroup :) Oggi risalgo un po in sella... non sono ancora al 100% però devo tornare dai miei clienti che poveretti gli manco...

posted @ martedì 3 luglio 2007 10:45 | Feedback (4)

[Daily Issue] Gestire gli imprevisti

La vita di un consulente è tempestata da imprevisti. Tralasciando quelli (sempre presenti) della vita personale, gli imprevisti lavorativi possono rappresentare un vero problema. Ultimamente (cioè ieri :P) mi è capitato di dover assecondare un cliente per andare a Firenze (sigh.. caldo...) giovedi e venerdi, quindi con pochissimo preavviso, ed ho dovuto spostare un appuntamento che avevo per venerdi ad un altro giorno. Questo per fortuna mi è successo perchè non avevo altri impegni assolutamente improrogabili.... ma altrettanto per fortuna mi "scelgo" abbastanza accuratamente, quando posso,  i miei clienti per poter avere la possibilità di sapere come ragionano. Con alcune tipologie,...

posted @ mercoledì 27 giugno 2007 15:18 | Feedback (3)

[Daily Issue] Comprendere la sezione <authorization> nel web.config

Ultimamente, parlando con alcuni colleghi e sui newsgroup, mi è capitato di incorrere in qualche incomprensione sul funzionamento della sezione authorization. Visto che è capitato così tante volte nell'arco di una sola settimana, direi che a sto punto lo scrivo qui, così almeno se me lo richiedono... rimando al link sul mio blog :) Allora come è scritto qui: http://msdn2.microsoft.com/En-US/library/acsd09b0(VS.80).aspx At run time, the authorization module iterates through the allow and deny elements, starting at the most local configuration file, until the authorization module finds the first access rule that fits a particular user account. Then, the authorization module grants or denies access to...

posted @ lunedì 25 giugno 2007 11:25 | Feedback (2)

[Daily Issue] ASP.NET, Statistiche, Request.UrlReferrer

Stavo paciugando in questi giorni con un piccolo programmino di statistiche... l'idea è tenere sotto controllo, senza troppe pretese, le solite cose che interessano in caso di statistiche, senza utilizzare un prodotto gratuito con immagini invasive ed assolutamente non-fashion (:P) e senza dover pagare per averlo. E ovviamente, essendo hostato su server non conosciuti, senza avere accesso ai log della macchina. In se, creare un programma semplice è un lavoro veloce di una mezza giornata, per conteggiare le classiche cose: accessi unici, pagine visitate, useragent, browser, referrer, etc etc. Preso dalla smania, ho deciso di customizzarlo un pochetto, sai...

posted @ venerdì 22 giugno 2007 11:03 | Feedback (2)

[Daily Issue] Usare il parametro "Type" dei metodi dell'oggetto ClientScriptManager

Non è esattamente un Daily Issue.. ma ieri, per il progetto di cui parlavo tempo fa, mi sono ritrovato ad entrare nell'annosa questione del parametro Type dei famosi metodi dell'oggetto ClientScriptManager per iniettare codice JavaScript all'interno di una pagina, ed in particolare RegisterClientScriptBlock e RegisterStartupScript. In questi due metodi, sono sempre stato abituato dagli esempi a mettere come tipo this.GetType(). Questo sia che lo mettessi in una pagina direttamente, che in un custom control. Il dubbio mi è venuto ieri, quando ho sviluppato un CustomControl derivato da un mio CustomControl, ed ho notato che... lo script veniva duplicato! Dopo...

posted @ giovedì 21 giugno 2007 11:15 | Feedback (0)

[Daily Issue] Centrare un contenuto usando solo i CSS

Ricominciando (mah... direi per fortuna? :)) ad avvicinarmi al mondo della grafica, ho ricominciato ad avere alcuni problemucci legati alle diverse implementazioni del motore di rendering dei CSS. In particolare, i problemi si hanno quando, come usuale, si testa tutto l'applicativo sotto explorer, e poi lo si porta a fare un "giro di prova" su firefox, o viceversa ... di solito quello che succede è ... beh.. Kabooom... :) In particolare, il caso che mi è successo era l'allineamento di un div all'interno di un altro div. Io avevo usato (erroneamente) text-align, credendo che se va bene per il test va bene anche per...

posted @ martedì 19 giugno 2007 11:22 | Feedback (1)

[Daily Issue] L'importanza dei ... CSS

Ebbene si, finalmente, dopo molte peripezie, sono riuscito a fare installare i validissimi ASP.NET 2.0 CSS Friendly Control Adapters che, per chi non li conoscesse, permettono di renderizzare la maggior parte dei controlli ASP.NET 2.0 con html compliant alle specifiche CSS. Questo mi ha aiutato a prendere alcune delle applicazioni già scritte e "sfrondarle" di tutte quelle noiose tabelle per riportare allo splendore i DIV innati dentro di loro... Risultato.. beh, sembra uno spot pubblicitario, ma le pagine sono _decisamente_ piu snelle e decisamente piu veloci nel rendering. Ed il cross platform non è neanche così distruttivo, se si prendono come assodate alcune differenze...

posted @ lunedì 18 giugno 2007 10:52 | Feedback (2)

[Daily Issue] Cambiare.....

Non sempre i problemi tecnici sono quelli maggiori... I problemi tecnici sono quasi sempre superabili, basta capire quanto tempo ci si vuole spendere e quante risorse.... ... mentre invece quando si è davanti a problemi di attitudine, noia, routine... le cose si fanno complesse! In questa settimana sto ricominciando a spolverare il mio lato "grafico" piu di quanto avessi fatto nell'ultimo tempo... tra le mie varie prove con Silverlight (si si presot ricomincerò con i Daily Issue.. sulla 1.0... sigh....), qualche veloce digressione su grafica e photoshop che mi ha fatto ricordare che peccato sia non poterci lavorare di piu, alcuni progetti...

posted @ venerdì 15 giugno 2007 11:07 | Feedback (4)

[Daily Issue] Forzare la finestra di dialogo "Open/Save" anche per i tipi conosciuti

Questo è un anticipo del Daily Issue di domani.. so già che non avrò tempo, visto che ne ho un po da rubare al sonno, anticipo :) Capita spesso di dover fare in modo di servire contenuto diverso dalle pagine web in un'applicativo ASP.NET. Siano questi fogli excel, pdf, e via dicendo.Mi capita spesso di avere anche il problema di non voler caricare questi elementi nel visualizzatore del browser, soprattutto nel caso di PDF o Excel, ma di dare all'utente la scelta di aprirli o salvarli su disco.Peccato che il browser sia abbastanza insistente e se viene servita direttamente una risorsa...

posted @ mercoledì 13 giugno 2007 01:03 | Feedback (1)

[Daily Issue] Alzare gli occhi dallo schermo

Questo è un daily issue piu strano del solito... ero salito qui per scrivere un piccolo issue su XML che ho avuto in questi giorni.... mi collego e dico "dai, che è da venerdi che non scrivo"... mi collego e vedo il mio ultimo Daily Issue... datato 6 giugno! Improvvisamente panico, controllo il Live Writer per controllare che non mi sia rimasto nessun fantasma nelle bozze... poi ricordo... ho passato giovedi e venerdi da un cliente fino a tardi (mooolto dopo mezzanotte :P) per buttare in produzione un programma rispettando scadenze che i nostri partner invece NON avevano rispettato... ed...

posted @ martedì 12 giugno 2007 12:51 | Feedback (0)

[Daily Issue] To Ajax or not to Ajax?

Non è un segreto che non ho moltissima fiducia nel framework Ajax: lo ritengo ottimo e ben fatto, ma molto spesso utilizzato a sproposito e senza effettiva cognizione di causa. Mi trovo spesso a ragionare sul suo utilizzo o meno, nel senso che vedendo come funziona la classe di base, il codice javascript ed il prototyping parecchio complesso che gestisce la base tutto il framework Ajax, mi chiedo in certi casi se sia veramente necessario o meno! Per esempio, ieri (notte... sigh) mi stavo interrogando sull'utilizzo di Ajax in un'applicazione per una singola form che aveva bisogno delle classiche DropDownList fillanti. Ho rispolverato...

posted @ venerdì 8 giugno 2007 15:56 | Feedback (5)

[Daily Issue] O quasi: Attached Properties in Silverlight 1.0

Ebbene si.... il mio tentativo di iniziare una demo per un cliente in 1.1 è stata messa da parte a favore della 1.0, ritenuta piu matura. A ragione, probabilmente, ma la 1.1 era sicuramente più figa ... :) Comunque, una volta messe le pive nel sacco, mi sono messo d'impegno per replicare tutto quello che avevo fatto in 1.1 con 1.0, ho ovviamente incontrato molti dei problemi già visti che sono stati risolti in maniera simile. Le attached properties, invece, si comportano in maniera lievemente differente da quello che avevo descritto nel precedente post In 1.0, utilizzando Javascript quindi, si hanno due...

posted @ mercoledì 6 giugno 2007 12:14 | Feedback (0)

[Daily Issue] Gestire il framerate con Silverlight

In alcuni casi, mi sta succedendo di avere dei problemi con lo Streaming: probabilmente a causa della versione Alpha della release 1.1, alcuni video soprattutto quando ci sono effetto mirror o quando ce ne sono piu di due, ed i video sono troppo grandi e definiti, il mio PC schizza al 100% (ed il mio portatile non è proprio una schifezzina :P) ed il video perde sincronia con l'audio. Questo è dovuto al fatto che comunque il codice in alpha gira sulla macchina client, non su quella server, e questo porta a problemi di performance di questo genere. Questo può...

posted @ martedì 5 giugno 2007 10:34 | Feedback (4)

[Daily Issue] Capacità tecniche VS Capacità umane

Sto facendo molta poca "ciccia" e molto piu PR in questo periodo. Sono le classiche settimane in cui si è sempre in giro, ogni giorno in un posto diverso, con volti diversi, e già ricordarsi i nomi delle persone che si incontrano alla macchinetta del caffè può diventare difficile....
Sono anche i giorni in cui capisci esattamente quanto poco abbia rilevanza l'aspetto tecnico di una persona senza un'adeguata controparte umana .... [segue]

posted @ martedì 29 maggio 2007 10:58 | Feedback (0)

[Daily Issue] Ritono al passato....

... o meglio, far dialogare bene Linux con Windows... Si... può... fare... (cit. :P) Cmq, torno oggi da una due giorni (sabato e domenica) di riconfigurazione generale della rete da un cliente abbastanza grosso (abbastanza grosso per chi, come me, ha la configurazione hardware come secondo/terzo lavoro :)). Abbiamo configurato tutti i client windowsXp levando il dominio ed abbiamo riconfigurato il server usando Linux e Samba e gestito le ACL tramite script. Abbiamo levato il dominio non per problemi tecnici ma per effettivo inutilizzo dello stesso: inutile avere un porche e tenerlo parcheggiato. Il tutto ha preso un sascco di tempo... ma solo...

posted @ lunedì 28 maggio 2007 11:34 | Feedback (0)

[Daily Issue] Riempire un DataSet da una stringa XML

Ho sempre lavorato poco con XML, vuoi per scelta, vuoi per la continua intermediazione con istituti bancari e finanziari che da secoli hanno i propri formati proprietari... In questi giorni, cambiando un pò clienti, sto abbracciando un pò di piu l'interscambio di dati con i webservices.... [..]

posted @ giovedì 24 maggio 2007 23:40 | Feedback (0)

[Daily Issue] Non dimenticare il passato....

Che ovviamente è una delle cose piu complesse che mi sia capitate :) Chi di noi non ha progetti vecchi che vorrebbe dismettere ma che non riesce a levarsi di torno... ed ogni tanto si ritrova a fare manutenzione su applicativi ASP 3.0 o VB6... Per fortuna, non ho applicativi VB6 da gestire, ma ne ho in ASP 3.0, e ieri stavo appunto controllando uno di questi per cercare di inserire una sorta di controllo HIP. Mi è scesa la lacrimuccia a scrivere Dim s as Strings = mioMetodoDiControllo(Request.QueryString("Hip")) e sentirmi rispondere che non potevo chiamare una funzione usando le parentesi ......

posted @ mercoledì 23 maggio 2007 10:36 | Feedback (1)

[Daily Issue] Usare progetti di setup per installare Windows Services

Lavoro praticamente sempre con le Web Application, dove l'X-copy regna sovrano e i progetti di setup molto spesso sono piu un problema che altro. Però, in quasi tutte le grandi applicazioni distribuite, ci sono sempre dei servizi, degli eseguibili che servono a completare tutti quei task che il web per sua natura non può assolvere. Soprattutto per quanto riguarda i servizi Windows, il programma di setup è essenziale, anche in fase di test, per essere sicuri che quello che io sto provando sulla mia macchina sia effettivamente quello che poi andrà in produzione, e soprattutto per evitare di dover giocare...

posted @ lunedì 21 maggio 2007 12:36 | Feedback (0)

[Daily Issue] L'importanza dell'architettura... ma non poi tanto...

Aspettate, leggete prima di saltarmi addosso :POvviamente il titolo va il verso a questo mio post, in cui sembravo dire tutto il contrario...Comunque, oggi ho avuto un'altra sessione di riunione/sviluppo presso uno dei miei clienti. Quello di oggi, in particolare, ha la necessità di creare una demo funzionante in tempi brevi che verrà usata, ma che comunque è destinata ad essere soppiantata/riscritta. Per l'applicativo in questione io faccio la parte di coordinatore delle risorse ed "architetto". Parlando con altre persone di questo lavoro, mi sono reso conto che il mondo dello sviluppo è cambiato radicalmente, ma forse anche un pò...

posted @ venerdì 18 maggio 2007 03:31 | Feedback (18)

[Daily Issue] Silverlight, Canvas e Background color....

Ormai sono "malato" di Silverlight come tutti i miei contatti msn avranno probabilmente intuito :P Oggi, paciugando nella creazione di un Silverlight User Control (magari scriverò di questa cosa una prossima volta) ho avuto alcuni problemi a configurare la mia pagina in modo da avere lo stesso colore di sfondo [...]

posted @ giovedì 17 maggio 2007 00:29 | Feedback (0)

[Daily Issye] Silverlight e AVG: problema con file html.js

Ho trovato un (fastidioso) problema nell'interazione tra i progetti di defaultdi Silverlight e l'antvirus AVG che impedisce il corretto rendering dei progetti in Internet Explorer e, quindi, il loro funzionamento [...]

posted @ mercoledì 16 maggio 2007 05:49 | Feedback (3)

[Daily Issue] MemoryStream e position

Ho avuto un problema banale qualche giorno fa: il classico "il metodo funziona se lo chiamo da qui, se lo chiamo da quà invece el va no" [...]

posted @ martedì 15 maggio 2007 13:07 | Feedback (2)

[Daily Issue] L'importanza dell'architettura

Ieri ho fatto un mini-corso intensivo ad una persona che dovrà lavorare per noi, che veniva da Java e che non aveva la piu pallida idea di cosa fosse un'architettura a tre livelli, figuriamoci il resto. Durante la giornata, spiegando i concetti base della divisione dei layer ed il passaggio di dati tra questo, l'importanza del Domain Model e tutte queste problematiche di base, mi sono ricordato quando ho iniziato, quanto è stato bello vedere che dividendo e differenziando, costruendo un datamodel serio prima di concentrarmi sul classico database, mi si sono aperti gli occhi su quanta importanza avesse l'architettura in...

posted @ giovedì 10 maggio 2007 20:07 | Feedback (0)

[Daily Issue] Salvare un MemoryStream su file

Può capitare di dover salvare un MemoryStream su filesystem, per poi riprenderlo con qualche programma esterno e paciugarci su per creare qualcosa di.. hem.. magari inutile.. ma bello :) [...]

posted @ mercoledì 9 maggio 2007 00:07 | Feedback (0)

[Daily Issue] Vita da Consulente parte 2: Ubiquità

Molti si ricordano che sto per partire.... Molti sanno che il periodo mi sta facendo impazzire! Prepararmi alla partenza quando la vacanza è piu lunga di qualche giorno e non coincide con i normali giorni festivi (estate/feste comandate) è sempre problematico, per tutta una serie di motivi. Forse per questo tendo a staccarmi il meno possibile dal lavoro (sbagliando), e per quello quest'anno sto avendo il doppio dei problemi rispetto agli anni scorsi a staccarmi dal lavoro... Durante i mesi e gli anni il consulente si insinua sempre di più nella struttura delle aziende per cui lavora, diventando a volte una parte...

posted @ giovedì 19 aprile 2007 16:17 | Feedback (1)

[Daily Issue] Creare where dinamiche con stored procedure senza usare sp_executesql

Si lo so, ho usato "query" e ho usato "stored procedure" e sullo stesso muro scrive anche Janky.... va beh, accetterò la punizione .... :P Cmq, capita spesso per differenti motivi di avere a che fare con le store, e di doverle usare magari con dei parametri opzionali che cambiano o meno delle clausole di where [...]

posted @ mercoledì 18 aprile 2007 12:05 | Feedback (1)

[Daily Issue] Vita da consulente

Me ne sono capitate di ogni, passando da un cliente all'altro. Chi è consulente e si muove spesso probabilmente lo sa anche meglio di me.....[...]

posted @ martedì 17 aprile 2007 10:49 | Feedback (4)

[Daily Issue] ASP.NET, Cancellazione cartelle e Session

Questo post deriva in realtà da una interessantissima discussione sul NG di microsoft di settimana scorsa. Un utente del forum ha postato un problema riguardante la cancellazione di directory: praticamente ogni volta che chiamava un System.IO.Directory.Delete di una cartella che creava dentro App_Data, veniva persa la sessione. Io ho risposto con baldanza "beh grazie, App_Data è una cartella riservata. Sopsta sotto un'altra cartella e vedrai che va tutto"... ed infatti non andava nulla.... Io, sempre meno baldanzoso, mi sono messo a fare un paio di prove, ed ho notato una "feature" (bug?) di ASP.NET 2.0 non presente nelle versioni precedenti: la cancellazione...

posted @ lunedì 16 aprile 2007 11:24 | Feedback (2)

[Daily Issue] Capire gli impegni presi...

L'altro ieri ho pensato tutto il giorno ad un Daily Issue molto carino... Non vedevo francamente l'ora di postarlo, ieri, ma come magari qualcuno avrà visto, non è invece arrivato nulla sul blog di UGI da parte mia.... Purtroppo, ieri ho avuto la classica giornata "Da Consulente" che è partita in riunione da clienti, è continuata in giro per milano da clienti, ed è finita sulla cresta dell'onda ad una festa di compleanno nella mia cara vecchia Bollate, per poi spegnersi a casa molto, molto tardi :P Quindi non sono riuscito ad aprire Live Writer e/o l'interfaccia del blog per postare...

posted @ venerdì 13 aprile 2007 10:28 | Feedback (0)

[Daily Issue] Organizzare la partenza (o meglio, di chi è la colpa? :))

Come alcuni già sanno, settimana prossima parto per gli stati uniti per due settimane! Il maggior problema che ho avuto ieri (o meglio, che sto avendo da settimana scorsa e che avrò anche per la successiva mi sa....) è organizzare le cose per la partenza! Io non so voi su quanti progetti siete abituati a lavorare, io (purtroppo o per fortuna) molte volte sono preso su progetti diversi, con clienti diversi anche dislocati geograficamente e molti di questi sono un casino da andare a trovare per la classica chiacchierata informale. Sempre per fortuna, o purtroppo, mi capita spesso di essere l'unico...

posted @ mercoledì 11 aprile 2007 11:15 | Feedback (5)

[Daily Issue] Evitare la politica

Odio la politica... E non parlo di Prodi, Bertinotti e compagnia danzante (su quello avrei da dire ma non voglio aprire flame politici :P).... parlo della politica che nasce dai rapporti di forza all'interno dei progetti, quando lo sviluppo non è agile per niente, anzi proprio il contrario, e il cliente è visto come melone da spremere.... [...]

posted @ martedì 10 aprile 2007 10:50 | Feedback (5)

[Daily Issue] (o quasi) Remain Focused

Oggi il Daily Issue non sarà un vero e propro Daily Issue... [...]

posted @ venerdì 6 aprile 2007 11:18 | Feedback (0)

[Daily Issue] L'importanza del divertimento

Nel link del mio post di ieri si evidenziava quanto sia importante divertirsi in una sessione di confronto... Ieri, vedendo quanto codice ho spippolato (scusa Daniele se ti rubo i termini :P) mi sono accorto una volta di piu di quanto sia importante divertirsi anche mentre si lavora.... Stare in un ambiente sereno, con colleghi (è giusto parlare di colleghi quando sei consulente? :) ) pronti a scherzare ed a prendersi il proprio tempo, ma anche pronti anche a fare le 9 di sera se qualcosa non funziona come dovrebbe è un must per qualunque gruppo di lavoro che voglia fare...

posted @ giovedì 5 aprile 2007 11:46 | Feedback (2)

[Daily Issue] Comandare la serializzazione di una classe tramite attributi

Sigh... in questo periodo lavoro molto (troppo :P) con XML.... In particolare, come descritto dal mio precedente post mi sono trovato a dover serializzare degli oggetti custom in XML per generare un documento conforme a certi standard XSD. Ora, non ci sarebbe nulla di particolarmente complicato, se non fosse che giustamente chi ha definito l'XSD _non_ conosce evidentemente le naming convention e gestisce gli elementi un pò in inglese, un pò in italiano, un pò minuscolo, un pò maiuscolo [...]

posted @ mercoledì 4 aprile 2007 10:54 | Feedback (0)

[Daily Issue] Utilizzare un XmlTextReader con una stringa XML

Cliente nuovo, problemi nuovi :) In particolare, ieri mi sono trovato a combattere con un WebService che accettava una stringa Xml invece di un classico oggetto esposto dallo stesso... lasciamo stare anche che il suddetto webservice (in produzione) esponesse come namespace tempuri.org (ok ok, me aculpa, devo leggere i messaggi in grassetto _prima_ di creare le reference :P) e che quindi alla fine non sia nemmeno riuscito a testarlo.. ovviamente _non_ dirò la società in questione, ma non è piccola :) Comunque, questa faccenda della stringa mi ha obbligato a crearmi delle mie strutture ed a serializzarle a run-time per ottenere...

posted @ martedì 3 aprile 2007 10:23 | Feedback (4)

[Daily Issue] Creare un progetto free in ambiente Microsoft

 Più che un Daily Issue, essendo Lunedì è stato un "Week-end Issue"... ma tant'è.... Comunque, con alcuni conoscenti sto facendo partire un progetto personale, il cui scopo è emulare un pò quello che aveva fatto Francesco con il suo gruppo di Javisti. Solo, invece di creare un Videogame in Java prendendo sviluppatori che non avevano mai avuto esperienza di creazione di videogame, io ho avuto un'idea ancora piu bizzarra: creare una web application utilizzando persone che non avevano mai avuto _nessuna_ esperienza di sviluppo! Il tutto utilizzando strumenti gratuiti in ambiente Microsoft/Windows.... un pazzo eh? :) Cmq per il codice ovviamente mi sono...

posted @ lunedì 2 aprile 2007 11:16 | Feedback (5)

[Daily Issue] Controllare il rendering degli asp:Controls - Parte 2

Ecco il seguito della prima parte, in cui svelo effettivamente l'implementazione :) Come discusso nei commenti con Adrian, ho preferito ereditare la DataGrid (si, era un progetto 1.1) e implementare nell'override del metodo Render un modo per levare spazi e caratteri non voluti, piuttosto che scrivere un HttpModule che facesse lo sporco lavoro, perchè: 1: Questa cosa mi interessava solo in certi punti con veramente tanti movimenti. In altri, preferisco comunque avere un output Html "leggibile"2: Comunque, il benefit di eliminare gli a-capo nelle altre parti non era preponderante (ballavano 50/100k massimo)3: Piu importante: molti script JavaScript di terze parti smettono di funzionare...

posted @ venerdì 30 marzo 2007 11:07 | Feedback (0)

Mi tocca spostare il Daily Issue... alla mattina :)

Come si dice, man mano che si fa una cosa, si impara a migliorarla... Ho iniziato da poco l'avventura del Daily Issue ma già mi accorgo che la sera non è il momento migliore per scriverlo. Può succedere (come oggi) che il lavoro mi trascini fino a tardi, perchè uscito dal cliente devo fare delle cose per un altro cliente, e senza che te ne accorgi si fanno le 9.. .ma tu avevi un appuntamento alle 9 e 45 e devi ancora andare a casa a farti la doccia... Insomma, la sera si è spesso troppo di fretta, oppure (come ieri)...

posted @ giovedì 29 marzo 2007 22:19 | Feedback (0)

[Daily Issue] Controllare il rendering degli asp:Controls - Parte 1

Il cliente ha sempre ragione... Anche quando vuole visualizzare 10.000 righe di dati senza paginazione... e poi si lamenta che il browser si incarta.... Questi ed altri problemi ci possono far girare le scatole.. perchè far sottostare l'applicativo a delle logiche palesemente "sbagliate" è molto poco agile... e molto poco intelligente ( IM(very)HO, se devi fare inquiry su 10.000 movimenti, usi i reporting services... se devi fare operatività su 10.000 movimenti.. metti un pulsante massivo, e fai vedere il dettaglio solo se _veramente_ ti serve, perchè non ci credo che tu nella maggior parte dei casi ti andrai a passare tutti i 10.000...

posted @ mercoledì 28 marzo 2007 18:54 | Feedback (6)

[Daily Issue] La Sindrome Del Coniglio Bianco.... ma è vera... ??

Sono in ritardo, sono in ritardo, sono sempre in ritardo....Tutti o quasi i gruppi di lavoro delle società con cui sto collaborando in questo periodo hanno sempre lo stesso cronico problema... ed anche io l'ho avuto certe volte.... .... e mi chiedo, ma il ritardo c'è veramente, o ce lo creiamo noi? O ce lo crea il "management"? Oppure tutte e due le cose, gli screzi col management sono tali che "esso" (non so se personificarlo o meno) ci impone dei tempi impossibili e noi, per tutta ripicca, non evidenziamo che sono impossibili e ce la prendiamo ancora piu comoda, forti del fatto...

posted @ martedì 27 marzo 2007 19:03 | Feedback (1)

[Daily Issue] GetPostBackClientEvent per simulare una postback

Molto spesso in ASP.NET capita di dover simulare il click di un Button/LinkButton/ImageButton/Etc per tutta una serie di motivi. Troppo spesso, negli esempi che vedo su internet vedo che si scrive a manina un richiamo alla funzione __doPostBack (JavaScript) forzando l'id del controllo e gli eventuali argomenti. Questa cosa non mi piace per nulla ed oltretutto è passibile di errori: qualsiasi service pack del framework _potrebbe_ cambiare il metodo e quindi vanificare i nostri progetti. Per avere sempre la referenza corretta, consiglio di utilizzare GetPostBackClientEvent, che viene esposto dalla classe Page, ed accetta un oggetto di tipo Control (quindi il Button, LinkButton, ImageButton...

posted @ lunedì 26 marzo 2007 19:11 | Feedback (1)

[Daily Issue] Inizio di una serie....

Ho sempre avuto problemi di "costanza".... nel senso che in tutto ciò che non sia lavoro, dopo un pò mi faccio prendere (dal lavoro appunto :( ) e metto da parte il resto... questo vale tendenzialmente per tutto tranne che per i miei esercizi (che faccio di prima mattina) e per la mia vita sociale post-lavoro (che parte da quando finisco, di solito non prima delle 8/9, e va ad oltranza ... ;) ) Purtroppo, ho questi problemi di costanza anche col Blog... ora è un buon periodo, e riesco a seguirlo, ho paura che, visti anche alcuni nuovi clienti che...

posted @ lunedì 26 marzo 2007 12:23 | Feedback (2)

Event ID 115: The Service could not bind instance 1.

Ho ricevuto questo strano errore giusto poco tempo fa, dal mio caro amico W3SVC,  che in partenza mi dava una bellissima iconcina di stop al posto del familiare globo tenuto in palmo di mano, ed un errore strano (non sono neanche stato li a scriverlo giù) ogni volta che tentavo di avviarlo. Sono in un periodo molto incasinato e sono (stranamente) a casa questa sera per finire alcuni progetti urgenti da testare domani. Immaginerete le mie bestemmie quando all'apertura di windows ho ricevuto questo splendido errore dopo che, per la troppa fretta, ho "insaccato" il portatile ancora acceso nello zaino,...

posted @ lunedì 13 marzo 2006 22:30 | Feedback (1)