Latest Posts
Su UGI ci sono molto amici, e gli amici si fanno ridere quando possibile, guardate questo video, fatelo, ne vale la pena!
YouTube:
TSxIckekMZQ Matteo Migliore.
Studiando le dinamiche interne delle aziende con cui evolvono e si trasformano e quelle con cui si innovano si è scoperta l'importanza che hanno le politiche aziendali.
Formalizzando matematicamente le politiche di una azienda (vedi Dynamic systems) e usando questo modello in una simulazione al computer si riesce spesso a predire i limiti di crescita determinati da quelle politiche e cioè si riesce a predire i principali ostacoli e le maggiori difficoltà che l'azienda si troverà ad affrontare (vedi il pdf System Dynamics and the Lessons of 35 Years ).
Nel momento in cui si raggiungono i limiti di crescita e gli ostacoli e le difficoltà si materializzano Jay Forrester ha notato una interessante dinamica: per superare ostacoli e difficoltà i manager solitamente applicano ancora più aggressivamente le politiche aziendali, le stesse che stanno determinando gli ostacoli e le difficoltà, e questo crea una spirale negativa che inasprisce i problemi.
Solitamente le persone in azienda sanno cosa c'è che non funziona nella propria area di lavoro e sanno anche come sistemarlo, ma no ne hanno l'autorità o l'incoraggiamento per realizzare il cambiamento. Mentre i Manager hanno l'autorità ma non hanno il tempo necessario.
Work Out Diverse eperienze pratiche (*) mostrano che le persone in azienda incoraggiate (ad esempio a esprimersi apertamente con i propri manager anche in modo critico senza rischiare conseguenze alla propria carriera) e garantite di autorità commisurata alle responsabilità che affrontano sono l'altra parte sana dell'equazione che può far ripartire la spirale positiva di evoluzione e crescita dell'azienda.
(*) il libro GE Work-Out e altre risorse in rete GE Work-Out Resource Solutions for Six Sigma, Lean Six Sigma & Lean
Tags : Team Work | Lean Agile | Complessità | Leadership | Innovazione |
Nessun nuovo Mac e nessun nuovo iPod per questa volta, ma "solo" una bici da corsa nuova di pacca.
L'offerta era imperdibile: la bici era venduta a metà prezzo perchè la ditta smette di produrre bici da corsa per dedicarsi solo alla bici da triathlon:
Per maggiori info: Valdora XRD Carbon Compact road bike.
Rilasciato oggi TSWA 2008 aggiornato al SP1, per fornire accesso via web al TFS.
La novità più grossa è l'integrazione in TSWA di WIWA (Work Item Web Access), prima disponibile come download separato, che permette di vedere i workitems ad utenti che non hanno una CAL per l'accesso.
Qui il download
Appena tornato dalla vacanze, trovo una news interessante, almeno per me: SyncToy, il programma di Microsoft per la sincronizzazione di file e cartelle, è giunto alla versione 2.0 finale. Il download è disponibile qui.
Technorati Tag:
Programs,
Tools
Il fondatore di Castle Project e le amare riflessioni circa il nostro lavoro. Tutto il mondo è paese, non solo geograficamente, ma anche tecnologicamente.
Purtroppo.
Voglio solo segnalare che nella nuova preview di ASP.NET MVC gli extension methods generici di HtmlHelper sono stati spostati da System.Web.Mvc a Microsoft.Web.Mvc, nota che non compare nella release note.
Per chi può, eviti di andare di reflector come me...
Accettare la sfida è stato facile
...però ora arriva la parte difficile, raggiungere l'obbiettivo!!
La prima fase è un test iniziale nel quale ho fatto 25 flessioni di fila!! ( + 1 infarto
)
Con l'uscita di IE8 Beta 2 Microsoft ha rilasciato diverse immagini VID per il test con diverse versioni di sistema operativo e di browser.
Le VHD sono:
- Windows XP Service Pack 3 con IE6
- Windows XP Service Pack 2 con IE7
- Windows XP Service Pack 3 con IE8 Beta 2
- Windows Vista (non specifica il SP) con IE7
Tutte le VHD scadranno a gennaio 2009.
Internet Explorer Application Compatibility VPC Image
Un piccolo progetto di esempio per testare la soluzione proposta in questo post:
http://code.google.com/p/syncsl/
Technorati Tag:
Silverlight,
wcf
Tornando sull’argomento UI e usabilità, Daniela ha scritto un paio di post sugli schematics:
Il primo spiega cosa sono gli schematics, mentre il secondo perchè è importante farlo e come farli.
La progettazione delle UI è un elemento troppo spesso tralasciato (ed il motivo per cui “software sucks”). Chissà se prima o poi i manager riusciranno a capirlo e inizieranno a far fare questo lavoro a degli esperti invece che ai soliti junior che non hanno nessuna esperienza per farlo.
Technorati Tags:
UI,
Schematics
E' di oggi la notizia della seconda versione di questo tool.
Tra gli upgrade interessanti è da notare il fatto che ora il setup è personalizzabile potendo scegliere quali tool installare e quali no...
E, più importante ancora, il fatto che dopo l'installazione non ci sia più la necessità di richiamare istruzioni a linea di comando quali Psconfig e Stsadm.
Maggiori info qui.

Quand'è che un programmatore considera un codice sorgente "Legacy" ???
Quando e come quel codice è diventato Legacy ???
Visti i link, letti i commenti, l'idea che mi convince sempre di più è questa.
Visto che non è una tecnologia superata a rendere un codice Legacy - visto che non è il fatto che il codice non è documentato e nessuno sa più cosa fa come e perché a renderlo Legacy - visto che non è il tempo che passa e non è l'uso che lo consuma a renderlo Legacy - vista la difficoltà di leggere il codice rispetto la facilità a scriverlo cioè non è facile valutare il codice altrui (specie quando non presente) allo stesso modo del proprio (ogni scarrafone è bello a mamma soja) ... :
Il codice quando è Legacy lo è dal momento stesso in cui viene scritto oppure non lo è per niente
E quanto il codice scritto è Legacy o non lo è varia in relazione degli skill di coding del team che lo produce
Dal punto di vista pratico sono 2 le cose che mi convincono in questo senso:
- Mi è capitato di trovare nel codice di un sw rifatto da zero segni di difficoltà/ostacoli simili a quelli del codice "Legacy" che sostituiva
- Leggendo Working Effectively with legacy code di M.C.Feathers ci ho trovato tecniche di refactoring del codice valide e applicapili tanto a codice Legacy pre-esistente quanto a codice nuovo ancora da scrivere
Tags : Team Work | Agile | Pratiche | Progettazione Software |
In questo post riporto la teoria che c'è dietro ad alcuni degli algoritmi di ordinamento più usati, e, in fondo al post, riporto i codici sorgenti per ognuno di essi.
Un algoritmo di ordinamento ((EN) sorting algorithm) è un algoritmo che viene utilizzato per elencare gli elementi di un insieme secondo una sequenza stabilita da una relazione d'ordine, in modo che ogni elemento sia minore (o maggiore) di quello che lo segue. In assenza di altre specifiche, la relazione d'ordine viene sempre considerata totale (cioè tale da rendere sempre possibile il confronto tra due elementi dell'insieme): le relazioni d'ordine parziale danno origine agli algoritmi di ordinamento topologico. A seconda del verso della relazione considerato, un ordinamento può essere ascendente o discendente.
fonte wikipedia
Nella cartella di sotto trovate pronti per il download gli algoritmi descritti in precedenza.
Non è mia intenzione fare paragoni fra Internet Explorer e Mozilla Firefox, voglio solo portare a conoscenza un problemino.
Su questo blog è possibile commentare i miei post solo utilizzando Mozilla Firefox, con Internet Explorer si riceve questo errore:
Idee?
Grazie, Riccardo.
SubSonic è un tool open(ci sono i sorgenti inclusi nel package di installazione) che fornisce un framework di accesso ai dati basato sul pattern ActiveRecords.
Risulta quindi una soluzione molto utile, veloce e semplice da utilizzare in progetti in cui non è un requisito l'avere una architettura per forza di cose "loosely coupled"(anche se da questo post l'autore dimostra come anche con SubSonic posso comunque realizzare architetture basate per esempio sul pattern Repository e mantenendo le indipendenze tra i vari layers).
L'ultima versione, la 2.1, presenta un bug durante l'esecuzione di stored procedures che abbiano parametri di tipo decimal con impostati lo "scale"(es. decimal(18,2)).
Qui c'e' il post relativo alla segnalazione, con relativa conferma di fix.
Purtroppo non ho trovato i sorgenti di queste ultime modifiche, che sembra saranno rilasciati in una futura versione 2.1.1.
La soluzione più veloce per me è stata quella di caricare con VS2008 i sorgenti di SubSonic(caricati come dicevo all'inizio durante l'installazione) e cercare di trovare il rimedio al bug in questione. Ecco dove correggere(la parte in bold), nella classe SubSonic.SqlDataProvider:
private static void AddParams(SqlCommand cmd, QueryCommand qry)
{
if(qry.Parameters != null)
{
foreach(QueryParameter param in qry.Parameters)
{
SqlParameter sqlParam = new SqlParameter(param.ParameterName, Utility.GetSqlDBType(param.DataType));
sqlParam.Direction = param.Mode;
//output parameters need to define a size
//our default is 50
if(sqlParam.Direction == ParameterDirection.Output || sqlParam.Direction == ParameterDirection.InputOutput)
sqlParam.Size = param.Size;
if(param.Precision != null)
sqlParam.Precision = Convert.ToByte(param.Precision);
if(param.Scale != null)
sqlParam.Scale = Convert.ToByte(param.Scale);
//fix for NULLs as parameter values
if(param.ParameterValue == null || Utility.IsMatch(param.ParameterValue.ToString(), "null"))
sqlParam.Value = DBNull.Value;
else if(param.DataType == DbType.Guid)
{
string paramValue = param.ParameterValue.ToString();
if(!String.IsNullOrEmpty(paramValue))
{
if(!Utility.IsMatch(paramValue, SqlSchemaVariable.DEFAULT))
sqlParam.Value = new Guid(param.ParameterValue.ToString());
}
else
sqlParam.Value = DBNull.Value;
}
else
sqlParam.Value = param.ParameterValue;
cmd.Parameters.Add(sqlParam);
}
}
}
E' sufficiente ricompilare ed utilizzare il nuovo assembly.
del.icio.us Tags:
Subsonic
Sembra essere la moda ALT.NET-tiana del momento… RobConery su Twitter, continuando a postare i suoi risultati serali, mi ha quasi convinto a partire nella sfida: un programma di 6 settimane per arrivare da zero a 100 flessioni di fila: la HundredPushups Challenge.
Chi mi segue?
UPDATE: Nel test iniziale, 15 flessioni di fila
Come interpretare le istruzioni di sicurezza in caso di incidenti...
Sicuramente molti di voi lo stavano aspettando ed eccolo qui

Si, è ufficiale sono rientrato a lavoro. E con esso i pensieri.
Ma non i pensieri del tipo "vado in spiaggia alle 17 o alle 18", oppure "stasera mi guarda un bel film, o faccio un'altra missione a CivCity Rome?", oppure ancora "preferisco la mia beniamina, o la new entry? (troppo giovani...forse)".
Pensieri diversi.
E mi sorprendo a vedere come tutti i Valori che in vacanza mi sembrano sbagliati eccessivi a favore di altri, al rientro, con la progressiva trasmutazione a pecora lavorativa, la cosa si ribalti automaticamente.
E' come in Borsa.
In vacanza dicevo "no, non dovrei dedicare tutto questo tempo a lavoro, ci sono cose più importanti (e belle, sopratutto quando passavano certe ragazze :D), e poi guarda...mi sono bastate tre