venerdì 27 novembre 2009

C#, il MALE

Ecco un esempio di ciò che io chiamo Progettazione e sviluppo ponderato di una applicazione object oriented.
C# mi fa MALE.
C# è il MALE.

martedì 24 novembre 2009

Giornata del Software Libero / Day of Free Software


Si chiama "Giornata del Software Libero" e avra' luogo Sabato 28 Novembre 2009 a Catania (alle 9:30, presso l'Aula Magna del Dipartimento di Matematica e Informatica) e a Ragusa (alle 16:30, presso l'Aula Consiliare del Palazzo dell'Aquila). L'evento, organizzato congiuntamente dalle associazioni culturali "GLUGCT - GNU/Linux User Group Catania" e "Solira - Software Libero Ragusa", ha carattere divulgativo e vuole focalizzare l'attenzione dell'opinione pubblica sull'importanza dell'approccio collaborativo alla produzione e alla diffusione della cultura e della conoscenza. Nel corso dei diversi seminari in programma saranno affrontati temi relativi a
Software Libero (con particolare riferimento al sistema operativo GNU/Linux), diritti nell'era digitale, importanza dei formati aperti, disponibilita', accessibilita' e condivisione della conoscenza (con particolare attenzione ai diritti connessi all'uso e allo scambio di materiale digitale), sistemi collaborativi per la produzione di informazione (Wikipedia & co.), licenze d'uso libere (GNU GPL, Creative Commons etc.). La partecipazione all'evento e' aperta a tutti!

The "Day of Free Software" will be held on November, 28th 2009 in Catania (start from 9:30 at the auditorium of the Mathematics and Computer Science Department) and in Ragusa (start from 16:30 at Palazzo dell'Aquila).The event has been organized jointly by cultural associations "GLUGCT - GNU / Linux User Group Catania" and "Solira - Free Software Ragusa, it will be divulgative and its main purpose is to disseminate to the public the importance of collaborative production and the dissemination of culture and knowledge. Several seminars and speeches will be hold covering topics related to Free Software (referring in particular to the operating system GNU / Linux), rights in the digital age, the importance of open formats, availability, 'accessibility' and sharing of knowledge, collaborative systems for the production of information (Wikipedia & co.), free licenses (GPL, Creative Commons etc.). Everyone is invited!

Links:
http://www.solira.org/
http://catania.linux.it/

lunedì 23 novembre 2009

Ersu Adventures - L'assegnazione parte uno



E' una bella mattina di fine Ottobre, di quelle calde che solo noi siciliani possiamo permetterci; il cielo è sereno, non c'é una nuovola nel raggio di 3423423423 chilometri, gli uccellini cinguettano e l'albero a cui tendevi la pargoletta mano, il verde melograno dai be' vermigli fior rinverdisce solo a guardarlo.

Tanto stamattina ci sbrighiamo subito.
Mi volto a guardare il mio collega, gli chiedo di ripetere quello che ha detto, non ho capito bene.
Ma si, stamattina ci sbrighiamo subito, dobbiamo solo fare il versamento e basta.
Per istinto, mi tocco le palle.

Sono le 09.12. Sia io che lui, abbiamo appena prenotato il nostro posto letto [presso la stramaledettissima casa dello studente cittadella] attraverso la futuribile procedura online e adesso stiamo per andare in banca per effettuare il versamento della cauzione sul conto corrente dell'ERSU. Scegliamo la filiale del Monte Paschi del Policlino Universitario, è quella più vicina a casa nostra (e, sopratutto, non c'é mai un cazzo di nessuno).

Entriamo in banca. Non c'é nessuno. Che culo. Allo sportello un tizio che avrà avuto 35 anni al massimo.
Io: Buongiorno, salve. Senta, noi dobbiamo fare un versamento sul conto dell'ERSU Catania come cauzione per il posto letto. Il codice dell'ERSU è il 76.
Tizio: Ah... si. Cosa dovete fare?

Nubi nefaste si addensano all'orizzonte.

Io: Si, dicevo devo fare un versamento sul conto dell'ERSU [per cui Monte Paschi Siena fa da tesoriere] perché ho prenotato il posto letto presso una casa dello studente e, prima di potermelo fare assegnare devo pagare una cauzione.
Tizio: Ah... e avete il numero del conto su cui fare versamento?
Io: No, ma... se fate da tesorieri per l'ERSU credo che voi dobbiate sapere quale sia il conto dell'ERSU.
Tizio: No, ragazzi, dovete sapere qual è il numero di conto, altrimenti non posso fare il versamento.

Le nubi si avvicinano. Il tizio mi ha liquidato in tre secondi. Non mi ha lasciato proferire verbo. E' come quando parli con un deficiente che dice cose deficienti e non sai cosa rispondere. Lui, nel frattempo, alla faccia di Brunetta ha abbandonato il posto di lavoro, forte della sua panza e del fatto che lavora nell'unica filiale di banca al mondo dove entrano 0.0041 persone/ora, se ne va fuori a fumarsi una sigaretta. Lui può. E ci lascia lì. A imprecare in islandese antico.

Prendo il telefonino. Chiamo qualcuno che possa collegarsi a internet per prendermi il fottuto numero di conto dell'ERSU. Compongo numeri in serie. Occupato. Non prende. Irraggiungibile. Cazzo. Quando ho ormai esaurito la rubrica (e anche i Santi a cui chiedere aiuto) quando sto per decidere la ritirata (con la coda fra le gambe), risponde, finalmente LUI. Il mio Salvatore. Direttamente dal muto orto solingo.

Nel frattempo il Tizio ha finito la sigaretta e tenta disperatamente di rientrare in banca forzando la porta scorrevole noncurante della deliziosa vocina che gli dice che per entrare in banca devi piazzare il tuo maledettissimo dito indice sul maledettissimo scanner di impronte digitali e che le tue impronte digitali saranno conservate da Monte Paschi onde prevenire eventi criminosi e similia. Ha fretta, il Tizio. Una volta dentro si mette persino a correre. Per non farci aspettare, dirai tu, caro lettore.
Col cazzo. Si infila veloce nella toilette. La sigaretta deve aver fatto effetto.

venerdì 13 novembre 2009

Calling a WCF Service from a .NET CF application

I'm currently developing a distributed C# application, named Hippocrates. It is a prototype for a Hospital distributed information system: every Unit runs its own database and a WCF service which is the database only access point. Such services will cooperate among themselves, sharing informations and forwarding requestes issued by computer terminals and mobile devices running Windows Mobile and the .NET 3.5 CF.

Well, I realized that developing applications for the .NET CF is not always straightforward: a lot of things are missing in the compact framework implementation, with respect to the legacy .NET framework and there are also a lot of things to keep in mind while programming mobile devices which makes use of WCF service references.

On the server side, you cannot make use of Async or Duplex Contracts. Second, your service must expose an EndPoint that uses the BasicHttpBinding, otherwise the mobile client won't be able to invoke any method.

Let's now see how to code the client part. Working with Visual Studio 2008 mobile project template, you won't be able to add a reference to a running WCF service through the "Add Service Reference" entry of the Smart Device Application Project properties: there's not such an option! I managed to solve such an issue downloading and installing the Power Toys for the Microsoft .NET Compact Framework. Then, using the NECTCFSvcUtil utility I generated the proxy code:

C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\bin\NETCFSvcUtil.exe
http://server:port/service/

This will generate two files (Service.cs and ServiceClient.cs) that I had to add to the mobile device project in order to invoke WCF methods. Once you've got this work done, you can invoke the service methods. For example, assuming you've got a WCF service contract that exposes a "Request" method:

ServiceClient client = new ServiceClient();
client.Request();

That's all, folks!

mercoledì 4 novembre 2009

to be or not to be.

Noi, famelici ingegneri di giorno, poetici blogger di notte, sempre pronti a lanciare la cpu - pardon - il cuore oltre l'ostacolo, siamo grandi appassionati di teatro. Shakespeare. A me piace Shakespeare. Vado matto per l'Amleto, il Macbeth, la Tempesta, il Mercante di Venezia.

Non per niente ho cominciato a imparare il linguaggio del grande poeta - ma di questo magari vi parlo in un altro post.
Oggi condivido con voi un - come definirlo? - art attack del mio collega ralkass: in preda alla sua solita, lucida follia, ha riscritto i celebri versi "to be or not to be" della prima scena del terzo atto dell'Amleto in Python (con qualche piccola licenza poetica). Enjoy.

def question(B = 2B): (B || !B): this.question(B)
La versione originale del codice la trovate qui.