Technology Experience
.NET World

Modificare la skin di Subtext

Venerdì mattina mi ha venuta la voglia di modificare la skin del mio blog che state leggendo. Al contrario di Mighell, che se ho ben capito ha litigato più per il lato estetico, io mi sono sforzato di raggiungere un solo e semplice obiettivo, cioè integrare nella parte sinistra della pagina Web tutte le informazioni che mancavano. Ad esempio, sul mio vecchio blog UGIdotNET avevo l’elenco di tutte le categorie e l’elenco dei mesi/anni di attività del blog stesso. Queste informazioni fino a venerdì mancavano del tutto nello skin attuale.

Così, dopo una breve chiaccherata con Simone per avere qualche informazione utile, mi sono dato da fare e ho risolto tutto nel giro di pochi minuti.

La prima cosa da fare è aprire con un qualsiasi editor HTML il file /Skins/<template_name>/PageTemplate.ascx. Al posto di <template_name> bisogna ovviamente mettere il nome della skin che state utilizzando. Nel mio caso, la skin è lightz. Dopo averlo aperto, è sufficiente aggiungere lo UserControl sia all’interno del <div id=”menu”>, sia all’interno del blocco iniziale <%@ Register … />.

Nel mio caso, ho dovuto aggiungere lo UserControl contenuto all’interno del file SingleColumn.ascx, quindi:

<%@ Register TagPrefix="uc1" TagName="SingleColumn" Src="Controls/SingleColumn.ascx" %>

e più sotto…

<uc1:SingleColumn id="SingleColumn1" runat="server"></uc1:SingleColumn>

Ovviamente la posizione è a vostra discrezione e non c’è alcun vincolo. Adesso – finalmente – chi raggiunge il mio browser vede sul lato sinistro le varie categorie ed i mesi di attività del blog, che è partito l’Aprile scorso. Mi piace molto, perchè in questo modo è un po’ più “navigabile” e user-friendly, ma magari è solo la mia impressione.

Ultima nota sugli UserControl. Con le ultime release di Subtext è supportata anche la Tag Cloud: è possibile specificare quanti elementi visualizzare modificando la proprietà ItemCount. All’inizio il mio skin ne visualizzava solo 20, io l’ho aumentata a 50 ed adesso la mia Tag Cloud è un po’ più popolosa.

Se ho detto qualche bestialità (cosa probabile, trattandosi di ASP.Net e dintorni), perdonatemi, ma la mia competenza è quella che è, in questo campo. Fate così: rivolgetevi ad un maestro del settore, o comunque a qualcuno di vostra fiducia come faccio io. Cosa può esserci di meglio che uno dei creatori di Subtext? 🙂

Technorati Tags:    

Send to Kindle
My personal life

Annisettanta. Il decennio lungo del secolo breve

Il titolo del post è una mostra alla Triennale di Milano aperta dal 27 Ottobre 2007 al 30 Marzo 2008.

Io sono del 1976 – negli anni ’70 sono nato e li ho vissuti poco – ma magari qualcuno di voi lettori può essere interessato. La mostra parla di tutto il mondo anni ’70: fumetti, cinema, arte, usi e costumi, videogiochi, moda, musica, radio, sport etc. Mi ispira, mi sembra una cosa più che interessante. Non sono espertissimo, ma quasi 3.000mq di mostra da visitare mi sembrano tanti, però magari mi sbaglio.

Il prezzo del biglietto per gli adulti è di 8 euro.
Aperta tutti i giorni tranne il lunedì, dalle 10:30 alle 20:30.

Technorati Tags:   

Send to Kindle
IV del Venerdì

[IV] del Venerdì (23)

Anche oggi ho una bella storiella da raccontarvi.

[Prima parte]
Qualche settimana fa i miei genitori andarono ad un raduno di Fiat 500 a Rapallo (GE). Trovarono un tempo magnifico: bel sole, temperatura al punto giusto, e passarono quindi una bella giornata con amici e a farsi una mangiata di pesce in terra ligure.

Sulla via del ritorno, in autostrada, sulla A7, si fermarono in una delle tante piazzole di servizio per fare benzina e per fare qualche spesuccia. Mia madre, prima di risalire sulla 500 parcheggiata lungo un guard-rail, nota una grossa borsa nera abbandonata, lì sul ciglio della strada. La prima intenzione è stata ovviamente quella di fregarsene, dato che poteva essere una borsa di chissà chi, dimenticata chissà quanto tempo fa. Eppure, mia mamma va lì, prende la borsa ed insieme a mio padre ne esplorano il contenuto cercando di capire di chi potesse essere. Al suo interno trovano medicine, documenti validi, il passaporto di una persona del New Jersey, un sacco di foglietti…sembrava tutto fuorchè una borsa “pericolosa”. La presero con loro con l’intenzione di fare qualcosa di più che lasciare lì quella borsa in quell’angolo di autostrada. Mia mamma si sentì in colpa, perchè lei quando ha qualcosa di altri ha sempre un po’ più di ansia.

Il giorno dopo chiamarono uno dei numeri di telefono e scoprirono che i proprietari della borsa erano una signora italiana sposata con un signore del New Jersey che vivono negli USA, nel New Jersey, vicino a New York. Si trovavano in Italia in vacanza, e per trovare i loro famigliari ad Asti. La famiglia fu molto felice di sapere che fine aveva fatto la loro borsa, che era stata effettivamente dimenticata per una banale distrazione sull’autostrada. Dentro, come ho detto, e come capita un po’ a tutti, c’era un sacco di roba…più che di valore economico, di valore affettivo, e comunque oggetti che perdere è sempre un peccato. Insomma, i due signori italo-americani erano piuttosto disperati, perchè ormai avevano considerato la faccenda chiusa, borsa persa per sempre, mentre in realtà noi l’abbiamo recuperata.

Il giorno dopo, i miei genitori si incontrarono con i due signori, che ci raggiunsero a casa nostra insieme ai parenti di Asti. Venti minuti di chiaccherata, un caffè, il racconto di come andarono le cose quella domenica, tanti ringraziamenti. La famiglia non perse solo la borsa, ma altre cose disperse qua e là…insomma, non sono l’unico distratto perenne esistente sulla faccia della Terra. I coniugi italo-americani non sapevano come ringraziarci, i miei dal canto loro volevano solo fare un gesto gentile ed onesto, quindi la vicenda si chiuse così, felici davvero di aver fatto utile per qualcuno.

[Seconda parte]
Ieri pomeriggio, arriva un corriere sotto casa mia. Si ferma davanti a casa nostra, deve consegnare uno scatolone. Noi non ne sappiamo nulla, nessuno ha ordinato nulla, i miei chiedono all’autista maggiori informazioni. Il tipo ci dice che lo scatolone arriva da Asti…mio padre e mia madre si ricorda di quella cosa. Firmano, accettano la spedizione e tornano in casa con lo scatolone in mano.

Quando lo aprono, trovano due cose: una bella lettera di ringraziamento scritta a mano e 12 bottiglie di vino di Asti che sicuramente ci berremo nelle prossime settimane/mesi. Bello il gesto, perchè assume più significato se fatto a posteriori e non lì sul momento. Voglio personalmente ringraziare la famiglia di cui ora mi sfugge il nome (Iraldi o Ivaldi), soprattutto per averci scritto, che è sempre un bel pensiero. Dimostra come un bel gesto gentile ha sempre il suo perchè: conosco persone che se ne sarebbero sbattute o fregate, o peggio ancora. Sono orgoglioso di far parte di una famiglia di questo tipo. Mi fermo qua.

Send to Kindle
My personal life

Scambio di SMS la mattina presto

Ieri mattina, tangenziale ovest di Milano, la mia Astra bloccata ed incolonnata nel traffico.

Ho la bella idea di mandare un SMS ad una persona di UGIdotNET che devo ringraziare. Sono passate da poco le 7:00, ma non ho nulla da fare in quel momento, così prendo il mio Nokia e digito il primo SMS.

Igor (il sottoscritto): “L’altro giorno ho conosciuto Pinco Pallino, mi ha detto che le avevi parlato bene di me. Grazie!!“.
Destinatario: “La prossima volta che mi mandi un SMS a quest’ora, ti rispondo con un vaff….. 🙂
Igor (il sottoscritto): “Vale anche adesso?“.
Destinatario: “Vaffxxxxxx!

Bellissimo!!!

Send to Kindle
My personal life

Se mi state leggendo, avete trovato il mio blog!

L’ultimo post della serata è dedicato ai miei colleghi che hanno recentemente scoperto la mia notevole presenza on-line. Sia che si tratti del mio vecchio blog su UGIdotNET, oppure del blog attuale, dell’account Flickr o quello su YouTube, ormai…la mia privacy è stata violata in almeno un centinaio di modi diversi. 🙂

I miei colleghi con .NET c’entrano poco, sono più che altro sviluppatori Java. Ma non importa, anche perchè so benissimo che loro si divertono comunque a leggermi indipendentemente da quello che dico (scrivo).

Un saluto quindi a Matteo, Isacco, Mauro, Stefano e Marco. Ce ne sono altri, ma li saluterò in un altro momento.

Ed infine, una donna, Raffaella, che mentre ci incamminavamo insieme ad altri verso Piazzale Lodi, a Milano, mi ha chiesto il cognome per potermi cercare meglio su Google. Raffaella, se sei arrivata fin qua, allora hai trovato il mio blog! Benvenuta! 🙂

Technorati Tags:

Send to Kindle
Community

E visto che siamo in ballo con eventi…

…non posso non segnalare anche il prossimo evento UGIdotNET, Web Development 2008. Argomento che non mi tocca per nulla, sia per il tipo di lavoro che faccio, sia – ed è anche peggio – come interesse. Ma alla fine ci andrò per staccare dal lavoro una giornata e per trovare tutti gli amici che so già di trovare.

L’iscrizione è gratuita, al contrario del precedente che era invece a pagamento.

Piccola nota: di web non me ne frega nulla, però trovo giusto che UGIdotNET dedichi uno workshop a questo argomento. Per chi è sfortunato e sviluppa in ASP.NET/Ajax/Silverlight, credo siano tempi un po’ duri, nel senso che ci sono evoluzioni pesanti. Ho solo seguito superficialmente la vicenda della release di Silverlight 1.0 ed 1.1, però penso che casini ci siano lo stesso. E quindi tutti gli sviluppatori Web (tra i quali non mi annovero) potranno bombardare di domande i vari guru come Dino Esposito e Lorenzo Barbieri, per citare i due segnalati in questo momento sull’agenda della giornata.

In bocca al lupo agli organizzatori e…buon lavoro!

Technorati Tags:   

Send to Kindle
Community

Workshop DotNetSide su Sharepoint

Se lavorate con Sharepoint, se volete approfondire qualche argomento, e soprattutto se il 9 Novembre 2007 sarete a Bari, non dovreste perdervi il prossimo workshop della community DotNetSide. Speaker dell’evento saranno il mio omonimo Igor Macori e Giuseppe Dimauro. L’evento è ovviamente gratuito potete registravi qua.

In diverse occasioni ho elogiato la tecnologia di Sharepoint: la uso per miei progetti personali, è uno dei componenti di Visual Studio Team System e, non ultimo, ci lavora mio fratello e quindi so che Sharepoint fa cose mirabolanti, a patto di saperlo padroneggiare senza problemi.

Complimenti a Fabio Cozzolino, Vito Arconzo (eehh, Ostuni e Cisternino, grande serata, la ricordo come fosse ieri), Vito Sulla, Tiziana Loporchio (come va la gravidanza?) e Mario Ferrante per aver scelto questo argomento, perchè Sharepoint è davvero una tecnologia per certi versi emergente, e quindi è davvero necessario divulgare informazioni tecniche e non per renderlo noto al pubblico.

Technorati Tags:   

Send to Kindle
.NET World

Interfacce da utilizzare con WCF: consigli?

Senza scendere nei dettagli di WCF, è chiaro come client e server comunichino fra loro attraverso un’interfaccia. Supponiamo di aver definito un’interfaccia IFatturazione che espone i seguenti membri pubblici:

[ServiceContract()] public interface IFatturazione { [OperationContract] int GetImportoFattura(string denominazione); [OperationContract] string GetXmlArticolo(string Codice); [OperationContract] string GetXmlCliente(string Codice); [OperationContract] string GetNuovoNumeroFattura(); [OperationContract] bool SalvaFattura(string xmlFattura); }

ServiceContract ed OperationContract sono due attributi che fanno parte del mondo WCF per identificare quando una certa interfaccia funge da contratto per un servizio, e quali sono i metodi che devono essere esposti attraverso la comunicazione. Pensandoci bene oggi pomeriggio, sono arrivato ad un’altra possibile definizione dell’interfaccia, cioè questa:

[ServiceContract()] public interface IFatturazione { [OperationContract] int GetImportoFattura(string denominazione); [OperationContract] Articolo GetArticolo(string Codice); [OperationContract] Cliente GetCliente(string Codice); [OperationContract] string GetNuovoNumeroFattura(); [OperationContract] bool SalvaFattura(Fattura fattura); }

La grande differenza fra le due è che la prima espone tipi base del .NET Framework: i metodi ritornano tipi come int, string e bool. I parametri di input dei metodi sono tutti di tipo string. La seconda invece è un po’ più consistente e forte per il domain model sul quale sto sviluppando: i metodi ritornano oggetti come Articolo, Cliente oppure prendono in input istanze di Fatture. Ad una prima analisi, dal mio punto di vista la seconda interfaccia sembrava migliore, però mi ha obbligato ad effettuare alcune operazioni:

  1. I tipi che devono essere trasmessi (Articolo, Cliente e Fattura) devono essere decorati con l’attributo DataContract. Cosa che non è sempre possibile, per esempio quando non disponiamo del sorgente dei tipi appena citati. Nel mio caso non è così, però, come ragionamento ci sta.
  2. La prima interfaccia mi dà l’impressione di essere più interoperabile. D’altra parte, non fa altro che mandare avanti ed indietro stringhe in XML, o comunque di ritornarmi tioi semplici. La secondo no. Ditemi se sbaglio.

Alla fine ho scelto la prima implementazione di IFatturazione.

Sul server ho messo del codice che serializza oggetti e li restituisce come XML al client. Per esempio, se il client esegue il metodo GetXmlCliente passando un certo codice, viene creata un’istanza dell’oggetto, i valori delle proprietà vengono lette da database. Poi l’oggetto viene serializzato in uno StringWriter e restituito al client. Ecco il metodo che fa da helper a questa funzionalità:

static string getSerializedObject(Entity instance) { XmlSerializer ser = new XmlSerializer(instance.GetType()); StringWriter output = new StringWriter(); ser.Serialize(output, instance); output.Flush(); output.Close(); return(output.ToString()); }

Sul client c’è del codice che fa l’esatto opposto, cioè da una stringa XML deserializzo per ottenere l’istanza dell’oggetto. Vero che così facendo ho aggiunto un po’ elaborazione aggiuntiva, ma ho preferito fare così. Se anche voi sviluppate con WCF, mi piacerebbe sapere cosa ne pensate, perchè sicuramente siete passati anche voi da una situazione di questo tipo. Come l’avete risolta? Perchè?

Technorati Tags:    

Send to Kindle
.NET World

RapportinoMaker cresce, e sfrutta WCF

Vi ho già parlato altre volte (forse troppe) del mio piccolo RapportinoMaker. Eppure, vi dirò, nella sua semplicità mi permette di esplorare, disegnare e sfruttare componenti che altrimenti non avrei mai visto. Vi faccio un piccolo riassunto perchè ci tengo.

RapportinoMaker è un software che gira dalla console di Windows. Accetta al massimo due argomenti: il mese e l’anno di cui si vuole generare il rapportino. Quindi, per esempio, possiamo lanciarlo con una riga simile a questa:

Dopo aver premuto Invio, RapportinoMaker apre il database di Outlook, preleva tutti gli appuntamenti del mese e dell’anno passati come input e conta quanti giorni ho lavorato. Il conteggio si basa sull’oggetto dell’appuntamento: se è una determinata stringa, allora l’appuntamento viene preso in considerazione, altrimenti…nisba.

Determinato il numero di giorni effettivamente lavorati (per esempio 20), posso generare due cose: il rapportino su un foglio Excel e la fattura. Parliamo di quest’ultima. Tutto il database della mia fatturazione è online, adeguatamente protetto, su un server SQL 2005 disponibile via Web. Tecnicamente parlando, se non ci sono firewall o regole particolari, RapportinoMaker potrebbe aprire una connessione verso il server SQL ed aggiungere record nelle tabelle per generare la fattura. Questo può ovviamente essere ottenuto sia con istanze di SqlConnection/SqlCommand, sia con architettura basata su NHibernate.

Capita però di dover utilizzare RapportinoMaker in ambienti dove il mio SQL Server è irraggiungibile. Vuoi per qualche firewall, vuoi per qualche restrizione dei responsabili di rete, RapportinoMaker non riesce a completare il lavoro per cui è stato progettato mesi e mesi fa. Se lo uso a casa, non ci sono problemi, ma quando lo uso sul lavoro, qualcosa non va.

Ecco il motivo per cui ho deciso di studiare WCF. Esponendo un servizio WCF sulla porta 80, RapportinoMaker non comunica più direttamente verso il database, ma sfrutta un servizio che lo fa per lui. RapportinoMaker comunica con il servizio tramite un’interfaccia IFatturazione che espone metodi per caricare e salvare articoli, clienti e fatture. Adesso si è fatto davvero tardi, ma mi riprometto in futuro di parlarvene, se non altro per darvi qualche infarinatura su come creare un servizio WCF, dal momento che potrebbe davvero essere utile a tutti voi. Come al solito, stay tuned!

Technorati Tags:    

Send to Kindle
My personal life

Due libri di Philip Dick messi in cantiere

Qualche giorno fa ho finito di leggere “In senso inverso” e “La svastica sul sole“, che avevo acquistato a Livorno durante la cena con alcuni amici di UGIdotNET.

Un giudizio veloce è obbligatorio, sebbene a quest’ora cominci davvero a sentirmi stanco.

Quello che preferisco dei due è “In senso inverso“. E’ ambientato in un futuro non troppo lontano dal nostro: ci sono automobili volanti, pistole laser e altre chicche di questo tipo, ma il resto del mondo è tutto sommato molto simile. La cosa particolare è che a causa della Fase Hobart (dal nome dello scienziato) il tempo scorre al contrario. Non ci sono dettagli scientifici su cosa sia esattamente: si dice che alcune zone della Terra ne sono più influenzate, ma non si va troppo nel dettaglio. Questa Fase Hobart scatena tutta una serie di stranezze davvero geniali: la gente nasce nei cimiteri e muoiono negli uteri delle donne, le sigarette si fumano al contrario, invece di mangiare si rigetta il cibo, le biblioteche non conserva i libri ma li cancella al momento opportuno. Ad un certo punto del romanzo – di cui non vi svelo nulla – il protagonista è inseguito da un commando di poliziotti veterani…ma questi non sono nient’altro che bambini, proprio perchè in questo mondo il bambino è vecchio, ed il vecchio è giovane. Davvero geniale. La storia non ve la racconto; ci sono alcuni punti del romando dove si sfiora la teologia, perchè ci si chiede, per esempio, quando nasce realmente l’anima di una persona (vi ricordo che nascere in realtà significa risvegliarsi in qualche modo sottoterra, seppelliti nella propria tomba…ehm ehm).

Il secondo, “La svastica sul sole“, è molto più politico. Qui siamo negli anni ’60, dove però la Seconda Guerra Mondiale è stata vinta da Germania e Giappone. L’Italia fa la figura del pollo, perchè in realtà a metà strada si è alleata con USA e compagnia bella. E’ un romanzo politico, dicevo, perchè la stragrande parte del mondo è dominato dal Reich. La Germania è all’avanguardia in tutto, in primis la tecnologia (razzi vanno e vengono tranquillamente da e verso Marte). Nella parlata comune sono entrate parole tedesche e giapponesi. I risciò sono diffusissimi. La gente spesso consulta libri-oracoli di origine giapponese. La cultura americana ossessionata il Giappone, che infatti compra e vende oggetti di ogni tipo: orologi con su Topolino, lattine di Coca-Cola, etc. La storia è incentrata su vari personaggi, tra cui un mercante di oggetti d’arte di grande valore. Io come al solito non vi dico nulla: se siete interessati, leggetelo.

Anche questi due libri sono stati inseriti nella mia lista Sharepoint che ho messo on-line.

Technorati Tags:  

Send to Kindle