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!
[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 14.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 16.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 15.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 18.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 15.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 18.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 14.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 16.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 17.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 15.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 14.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 15.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 21.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 18.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 17.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 12.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 9.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 12.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 15.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 5.35 | Feedback (6)

Full Weekly Issues Archive