Stay hungry, stay foolish.

Today I want to tell you three stories from my life. That's it. No big deal. Just three stories. The first story is about connecting the dots...

Acer Iconia Tab W500

Ho acquistato un Acer Iconia Tab W500: è brutto, grosso e pesante. Ciò nonostante, è più che sufficiente per mostrare che Windows 8 ha un potenziale *altissimo*. “Provare per credere” (cit.)

Tag di Technorati: ,,

AAA: cercasi web developer

Un nostro cliente (una società di servizi con sede operativa a Milano) cerca un web developer freelance per una collborazione di 6 mesi, potenzialmente estendibile (per intenderci: se il progetto va “lungo”, la collaborazione si allunga). Skill richiesti: ASP.NET web forms (v 1.1 e superiori), ADO.NET “Oracle oriented” (ergo, PL-SQL e tutti quei bei “:” nei named parameter), linguaggio VB e Silverlight 3.0.

Se qualcuno fosse interessato, faccia un fischio e lo metto in contatto con il cliente.

UGIdotNET: gli eventi “new wave”

Beh, visto che qualcuno ha già spifferato la notizia ai 4 venti… Parliamone. Nel prossimo mese e mezzo, UGIdotNET organizza una mini serie di 2 workshop “gemelli”, che abbiamo definito “New wave”. Qualche ben informato sospetta che il nome sia dovuto ai miei gusti musicali: lungi dal rinnegarli, in realtà volevamo solo riflettere il fatto che i temi affrontati non sono probabilmente relativi a tecnologie che useremmo “domani”, ma che ben presto potrebbero far parte della nostra vita (lavorativa) quotidiana. E’ il caso (guardando all’evento di settimana prossima) di HTML5: lo standard è ancora in beta e la RFC richiederà ancora tempo, ma l’argomento è sulla bocca di tutti (e, soprattutto, l’attuale beta è già utilizzata da vari siti/portali. E’ anche il caso di Silverlight, del quale offriremo una preview della versione 5 basandoci sulla beta attuale, e poi ci sono i device mobili e una preview di WCF vNext.

L’agenda del 6 giugno, invece, non è ancora completa (BTW, se avete delle proposte non esitate a comunicarcele), ma all’appello hanno già risposto NuGet (io non riuscirei più a farne a meno) e ASP.NET MVC, per il quale abbiamo messo in agenda una sessione di confronto di 2 view engine (per la precisione: Razor e Spark). Probabilmente, approfitterò dell’occasione per riproporre la sessione su Code Contracts/LINQ/Generics che ho erogato durante .NET Campus, che in 45 minuti era risultata un po’ “tirata” ma che in 75 dovrebbe essere maggiormente fruibile. E poi… Vedremo: le idee sono tante ma, ribadisco, anche le vostre proposte sono benvenute.

Le iscrizioni per entrambi gli eventi sono ancora aperte qui e qui.

Algoritmi di ordinamento… A passo di danza

FAN-TAS-TI-CO.

Keep It Simple, Stupid!

Programmers… often take refuge in an understandable, but disastrous, inclination towards complexity and ingenuity in their work. Forbidden to design anything larger than a program, they respond by making that program intricate enough to challenge their professional skill.
[“Principles of Program Design” - Michael A. Jackson]

Usare path custom con NuGet

Leggere attentamente le avvertenze, usare con cautela: questo post utilizza una feature non documentata di NuGet, ergo… It works on my machine <g>

Dal rilascio della versione 1.1, per i miei spike ho iniziato ad utilizzare NuGet, un interessante package manager per Visual Studio; per intenderci, è un add-in che “infila” un prompt Powershell nell’IDE e permette di aggiungere comodamente delle reference al progetto aperto. Per esempio: volete provare le “gioie” di Entity Framework 4.1 (a.k.a. Code First)? Aprite/create il progetto “cavia” con VS, e nel prompt della shell di NuGet digitiamo:

Install-Package EntityFramework

Ciò fatto, NuGet scaricherà i package dal suo repository online, li “piazzerà” in un folder chiamato packages all’interno della solution e li referenzierà. Tutto perfetto, se non fosse che in bottega tutti i progetti hanno sul file-system una struttura del tipo:

filesystem

Chiaramente, io vorrei che NuGet “piazzasse” invece i package nel folder “lib”; per ottenere ciò, è sufficiente creare nel folder della solution un file xml avente nome “nuget.config” e contenente:

<settings>
  <repositoryPath>../lib/</repositoryPath>
</settings>

HTH

UPDATE: Etttepareva che non rilasciassero proprio oggi la versione 1.2 di NuGet <g> In ogni caso, il succitato hack funziona ancora… Phew!

AndreaS @ .NET Campus 2011

Ho pubblicato sul mio profilo Slideshare (link diretti: qui e qui) le slide delle sessioni che ho erogato sabato scorso a Roma in occasione del .NET Campus 2011; in attesa delle “tappa” di Milano, non escludo di modificarle quanto basta per recepire il feedback (fortunatamente positivo) che ho ricevuto. Come al solito, “la” demo è NSK: per le demo MVC (MVC3, remote validation, Razor view engine, …) consiglio vivamente di scaricare l’ultimo changeset disponibile.

P.S.: AFAIK le iscrizioni per la data di Milano (9 aprile) sono ancora aperte

Do ut des

Ultimamente, uno dei dischi del server UGIdotNET decide di dichiararsi “offline” ogni tanto. Poi riparte, ma il fenomeno è fastidioso (il volume deve essere ricostruito). Nessun reale problema per la “salute” dei nostri dati (blog, forum, news, …) perchè:

  • il server dispone di una catena RAID6 (ergo, dovrebbero rompersi simultaneamente 2 dischi per essere faulty e “addirittura” 3 per perdere il volume)
  • effettuiamo un backup “online” dei dati ogni 4 ore
  • effettuiamo un backup offline dei dati (“qualche” Gb di database) 2 volte alla settimana

Ciò premesso: il 14 e 15 febbraio Managed Designs ha organizzato un corso “Idiomatic Domain Driven Design” dedicato ai nostri dev, allo scopo di uniformare il nostro “dizionario tecnico”. In pratica, un corso nel quale effettueremo un “mapping” tra metodologia (ISO9126, ISO42010, DDD, MVC, MVVM, O/RM, IoC, trick & track, …) e tecnologia (ASP.NET MVC, WPF, EF, NH, …) utilizzando il codice e la documentazione dei nostri stessi progetti (Amiacque, Conto Arancio, NSK, …) per “rivederli” ragionando con spirito critico su DDD e riflettere sulla nostra implementazione architetturale idiomatica di esso, il famigerato “idioma LET” (Layered Expression Trees). Per intenderci: nel bene e nel male (parleremo anche degli insuccessi) si respirerà aria “real world” e non fuffa della serie: “nei corsi/conferenze/post-sul-blog ti dico di fare così, poi in realtà io vado a botte di designer e wizard o cmq mi ’invento’ qualcosa”.

Ed ecco il motivo del titolo di questo post: l’aula che abbiamo a disposizione per il corso è un po’ più grande del necessario, quindi ove ci fossero 3 baldi ggggiovani interessati a partecipare gratuitamente al corso destinando una donazione ad UGIdotNET come contropartita, potremmo acquistare un disco “spare” (SAS 300Gb 15.000 rpm) da aver lì pronto in caso di definitiva rottura del disco “problematico”. Eventuali interessati possono contattarmi qui.

UPDATE: i 3 posti sono “andati” (a dirla tutta, anche un 4° “extra”): grazie a tutti per il supporto!

Offline di UGIdotNET: chicomedovecosaquando

Qualcuno si sarà accorto che, durante il fine settimana appena trascorso, la “suite” UGIdotNET (sito, forum, blog, …) è stata offline per diverse ore: ciò è stato dovuto a dei lavori di infrastruttura svolti presso la server farm di FullSIX che, sin dalla notte dei tempi, ci ospita. Gratuitamente (e qui un “millegrazie” a Francesco è “cosa dovuta”).

Una premessa fondamentale: sono “contento” della valanga di messaggi (twitter pubblici/privati, facebook, skype, mail, sms, …) che ho ricevuto per “avvisarmi” ed assicurarsi che non ci fossero “problemi”; sono “contento” perchè è una grande e preziosissima dimostrazione di affetto nei confronti della nostra community.

Ciò premesso, però, constato che l’annuncio (avvenuto qualche giorno in anticipo) dell’offline sia passato praticamente inosservato. Quindi, citandomi, ricordo che UGIdotNET utilizza il feed pubblicato su Twitter (che invito tutti i soci a sottoscrivere) per le notizie “flash” (ossia quelle che non necessitano di un approfondimento) e il feed “classico” per gli eventuali approfondimenti (es: rilasci di prodotti, iniziative della Associazione, …).

Abbiamo scelto Twitter perchè…

  • essendo una risorsa “esterna”, è online anche quando i nostri server non lo sono
  • è accessibile mediante una moltitudine di client, disponibili per ogni piattaforma
  • utilizzando gli hashtag, ci permette di pubblicare notizie potenzialmente fruibili anche da chi non ha effettuao il “follow” di UGIdotNET ma arriva ai nostri tweet mediante ricerche tematiche
  • offre tutti i servizi suddetti ad un prezzo estremamente favorevole <g>

Tutti su Twitter e… Non sparate sul pianista :-)

Technorati Tags: ,
«febbraio»
domlunmarmergiovensab
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910