Technology Experience
.NET World

MSDN Code Gallery

Da questo post del mio amico Alessandro Del Sole sono venuto a sapere che esiste un portale denominato MSDN Code Gallery, dove è possibile uploadare esempi di codice, piccoli progetti, prototipi che illustrano il funzionamento di una determinata tecnologia, video e così via. Non mi sembra che sia attivo da molto tempo, perchè i vari progetti sono stati tutti uploadati nel 2008, ed anche la loro quantità mi fa pensare che sia online da relativamente poco tempo. Alcuni di questi progetti vengono poi referenziati direttamente da MSDN, come nel caso di Visual Basic LINQ Video Series Samples.

Le funzionalità del portale sono simili a quelle di CodePlex, solo che quest’ultimo è più che altro dedicato all’hosting di veri e propri progetti completi. Tra l’altro, manna dal cielo, per accedere alla MSDN Code Gallery non è necessario creare l’ennesimo account, ma è possibile sfruttare il classico Windows Live ID.

Technorati Tags:   

Send to Kindle
Software

Fare il backup di un sito Sharepoint

Per la serie “Fidarsi è bene, non fidarsi è meglio!” (*).

Il modo migliore per fare il backup di un intero sito Sharepoint è quello di usare lo strumento più adatto, cioè Sharepoint Designer 2007. Esistono diversi modi per esportare il contenuto di un sito Sharepoint, che sono riassumibili con tre estensioni di files diverse:

  • Web Package (.twp files)
  • Backup and Restore (.cmp files)
  • Site Template (.stp files)

Maggiori dettagli su questa pagina Web tratta da Microsoft Office Online.

La seconda opzione è qualla che ci interessa, perchè permette di esportare in un file .cmp tutto il contenuto di un sito Sharepoint: sottositi, struttura, dati nelle liste, etc.

Per fare il backup attraverso Sharepoint Designer, basta aprire il sito, andare sul menù Sito, poi su Amministrazione e poi cliccare sulla voce Backup sito Web.

La procedura produce sul server un file temporaneo con tutto il backup: se tutto è andato correttamente, il file può essere salvato in locale.

(*) : i tipi di Webhosting4Life dicono di fare backup giornalieri, ma non è così. Ci posso cascare una volta, forse anche due, ma sicuramente non tre. Da oggi in poi i backup me li faccio io.

Technorati Tags:  

Send to Kindle
.NET World

Se MSDN Magazine non vi arriva…

Allegato al numero di Gennaio 2008 di MSDN Magazine, che mi è arrivato oggi, ho trovato un foglietto informativo che recita così:

HELP US! If there is an error in your address, please go to www.bleuchipintl.com click on Subscriber Services and enter the Ref# printed below to correct your address.

Avevo già provato in passato a correggere l’indirizzo, ma non usando quel sito, bensì mandando un’e-mail a qualcuno di MSDN Magazine che adesso non ricordo. Oggi pomeriggio sono andato sul sito, ho inserito il Ref# e magicamente è comparso un form con il mio indirizzo, con tutti i dati sputtanati. Li ho sistemati in modo corretto e, spero, una volta per tutte: spero che sia servito a qualcosa.

Morale: se anche voi avete qualche problema con la spedizione di MSDN Magazine, provateci anche voi. Tentar non nuoce!

Technorati Tags:

Send to Kindle
My daily work

[Convalescenza] Giornata 10

Oggi ho distrutto il 99% del mio sito.

Non parlo di questo blog chiaramente, ma del sito che era nato anni fa, creato quando mi misi in proprio per presentare la mia azienda, i software che mettevo in commercio, il mio curriculum, i collaboratori con i quali dividevo il lavoro. C’era addirittura una sezione riservata dove ciascun cliente poteva scaricare la documentazione alla quale avevo diritto, oppure poteva controllare la situazione delle sue fatture, etc. etc.

Oggi il mio lavoro è notevolmente cambiato rispetto a quel periodo, e ho deciso di spazzare via la maggior parte delle cose che non mi interessa più pubblicare. Per adesso ho lasciato solo la home-page e niente di più! E’ molto più semplice mantenere un blog: su questo non si discute.

Ci pensavo comunque da un po’ di tempo: software miei non li vendo più per scelta, eventuali download o altri documenti (come il curriculum) li riverso sul Web usando Sharepoint, cerco il più possibile di slegarmi dai vecchi clienti perchè comunque oggi non avrei più tempo per seguirli.

Credo che alla fin fine con il sito facevo passare un’immagine di me molto diversa da quello che sono oggi, e ho dovuto prendere provvedimenti. Domani ci lavoro ancora un po’ su, sistemo la home-page, metto un piè di pagina decente ed altre cosucce del genere.

Era parecchio che non mi occupavo di pagine Web.
Vi devo chiedere scusa: non è mica tanto male, lo sapete?
D’altronde, questo PHP è eccezionale!!!!

Technorati Tags:   

Send to Kindle
.NET World

Da leggere? Ne ho fin troppo!

Qualche tempo fa vi ho tediato raccontantovi qualche disavventura con il mio abbonamento alla rivista MSDN Magazine. Le mie diaavventure continuano, ma ho deciso di non annoiarvi più di tanto. Vi dico solo – in forma breve – che il numero di Gennaio 2008 mi è arrivato questa mattina, dopo aver puntualmente ricevuto quelli di Febbraio e quello relativo al lancio degli ultimo prodotti Microsoft.

Quindi, ho tre numeri di MSDN Magazine da leggermi allegramente.
Non proprio tre, forse, solo due, perchè quello di Febbraio comunque l’avevo già letto.

Inoltre, mio fratello per il mio compleanno ha pensato di bene di regalarmi un libro su Expression Blend.

Ok, sono a casa in convalescenza, ma non potete tenermi lontano più di tanto dalla lettura, per cui…ho tutto il tempo che voglio per unire relax, visite mediche, libri, ospedale ed articoli.

Technorati Tags:   

Send to Kindle
Software

AutoLogon con Windows Vista

Prima che installassi la RC1 dell’SP1 per Windows Vista non mi ero mai interessato ad un eventuale auto-logon, perchè avevo uno strano comportamento. Se tentavo di loggarmi subito, appena la UI me lo permetteva, andava a finire che il DHCP della mia rete non mi aveva ancora dato un IP e di conseguenza non vedevo gli altri computer della LAN. Siccome io ho connesso diverse unità di rete, il sistema operativo mi segnalava alcuni errori, perchè non mi trovava il disco dei Documenti, o quello dei Download e via dicendo. Morale: prima di potermi loggare, aspettavo un minuto, così ero sicuro che il PC fosse correttamente connesso alla mia rete locale.

Questo fastidioso problema è sparito il giorno in cui ho installato l’SP1 per Vista.

Se volete che il vostro PC si autentichi automaticamente all’avvio, potete utilizzare questo tool.

E’ un tool che va eseguito dalla command-line, e che vi permette di impostare l’auto-logon, volendo per un certo numero di avvii del sistema. Basta decidere semplicemente lo username. La password viene salvata in chiaro nel registry! E ricordatevi che…

Remember this isn’t an officially supported Microsoft tool it’s just something some devs whipped together to make their lives easier. It’s not supported by product support and there’s no guarantee that it’s bug free.

A buon intenditor, poche parole!

Technorati Tags:    

Send to Kindle
.NET World

WPF: Accedere agli elementi di una ListBox con la classe ItemCollection

Ad una ListBox generalmente possiamo fornire oggetti da visualizzare in due modi differenti: o utilizziamo il data-binding con la proprietà ItemsSource oppure accedendo alla proprietà Items, attraverso la quale possiamo aggiungere/rimuovere/ricercare oggetti.

La proprietà Items è di tipo ItemCollection, una classe che espone un’interfaccia davvero semplice e potente al tempo stesso. Supponiamo di avere una Window con una ListBox popolata in questo modo. Se volessimo accedere agli oggetti contenuti nella ListBox possiamo scrivere in C# quanto segue:

1 ItemCollection photos = ListPhotosSelected.Items;

Possiamo sapere se la collection è vuota attraverso la proprietà IsEmpty.

Possiamo navigare all’interno della collection con un set di metodi: MoveCurrentTo(object item), MoveCurrentToFirst(), MoveCurrentToLast(), MoveCurrentToNext(), MoveCurrentToPosition(int position) e MoveCurrentToPrevious(). Dal momento che possiamo navigare nella collection in avanti e all’indietro, possiamo utilizzare le proprietà IsCurrentAfterLast e IsCurrentBeforeFirst.

Ma questi sono tutti dettagli tecnici, che tra l’altro potete trovare anche voi nella members list della classe ItemCollection su MSDN.

Quello che voglio dirvi è spiegarvi per cosa tutto questo mi è stato utile stasera.

Prima di vuole un preambolo: prometto di essere veloce. 🙂

Questo qui sopra è lo screenshot del plug-in che sto realizzando per poter inserire foto prese da Flickr direttamente nei post scritti con Windows Live Writer. E’ suddiviso logicamente in tre parti: nella parte evidenziata in rosso l’utente specifica il nome dell’utente Flickr, poi c’è un pulsante ed una Combox che elenca i photoset di quell’utente. Quando si seleziona un photoset, viene popolata la parte della Window evidenziata in verde scuro: ovvero, le fotografie appartenenti al photoset selezionato dalla Combox. L’ultima parte – quella in violetto – contiene le foto che l’utente vuole inserire nel post di WLW: la ListBox qui contenuta viene popolata tramite drag’n’drop, sfruttando le meravigliose classi di supporto di Beatriz Costa. Un consiglio spassionato: se avete bisogno di implementare il drag’n’drop in un’applicazione WPF, non buttate via il vostro tempo (prezioso). Studiatevi un attimo quello che ha fatto Beatriz Costa e vivrete tutti più felici.

Arrivo al dunque. Quando l’utente clicca il pulsante Ok, voglio generare il codice HTML per inserire le tre fotografie che sono state draganddroppate nella ListBox. L’handler dell’evento Click sul Button Ok è davvero semplice:

1 private void ConfirmButton_Click(object sender, RoutedEventArgs e) 2 { 3 FlickrBrowserPhoto p; 4 ItemCollection photos = ListPhotosSelected.Items; 5 6 if (!photos.IsEmpty) 7 { 8 while (photos.MoveCurrentToNext()) 9 { 10 p = (FlickrBrowserPhoto)photos.CurrentItem; 11 _photosHtml = string.Concat(_photosHtml, "<img src="", p.Url, "" />"); 12 } 13 14 this.DialogResult = true; 15 } 16 else 17 { 18 this.DialogResult = false; 19 } 20 }

Ottengo l’istanza di ItemCollection dalla ListBox. Se non è vuota, ciclo tutti gli elementi, castando ciascun elemento al tipo che conosco: in questo caso si tratta di FlickrBrowserPhoto, che è una classe custom sviluppata ad-hoc. Il resto non è importante, è solo logica applicativa che costruisce l’HTML da restituire al chiamante attraverso il membro privato _photosHtml.

Un’ultima cosa importante. Il metodo MoveCurrentToNext() ritorna un booleano che dice se l’operazione è avvenuta con successo oppure no. Alla riga 6 la proprietà CurrentItem vale null, e CurrentPosition vale -1. Questo perchè appena si accede alla collection il cursore interno è prima del primo elemento: ecco perchè ho usato un while invece di un do…while: l’avanzamento del cursore attraverso il metodo MoveCurrentToNext() deve essere fatto anche in corrispondenza della prima iterazione.

Technorati Tags:    

Send to Kindle
.NET World

Perchè non mi piace fare screencast o video

In alcune occasioni mi sarebbe piaciuto fare screencast o video dei contenuti del mio blog. Per esempio, se volessi parlare un po’ di WPF e XAML, potrei farlo con un bel video, invece di farvi vedere gli screenshot e scrivendo il testo del post. Ritengo però che ci siano alcuni aspetti contrastanti che non fanno del video lo strumento migliore per trasmettere contenuti tecnici.

  1. I motori di ricerca non indicizzano i video. O meglio, lo faranno anche, ma non ne indicizzano comunque il contenuto.
  2. Un video è difficilmente “navigabile”. Su una tradizionale pagina Web possiamo tranquillamente (e velocemente) andare su e giù, rileggere con calma il testo, senza necessariamente rispettare i tempi che il creatore del video ha seguito. Sembra una stupidaggine, ma se un tizio ha la parlantina veloce, sarà così anche nel video: non è così invece per un normale post.
  3. Il “copia & incolla” dai video non funziona. Se nel mio video vi facessi vedere un blocco di XAML o un metodo C#, non avreste modo di fare copy & paste nel vostro codice. Con un normale post invece sì. E…credetemi, io ci sono passato, perchè una volta ho dovuto ricopiare il codice da un filmato mi pare scaricato da qualche pagina di MSDN.
  4. Vuoi ascoltare un video? Disturbi i colleghi! Spesso blog e siti tecnici vengono consultati durante le ore di ufficio. Magari avete colleghi di fianco, e se alzate il volume li disturbate. Certo, mi dite voi, basta mettere gli auricolari e siete a posto. Ma io li considero scomodi e, oltre a questo, trovo poco elegante isolarsi dai colleghi.
  5. Il video non ha accento, nè inflessione, nè erre moscie. Sembra una sciocchezza persino questa, ma ciascuno di noi ha una propria voce, una parlata particolare, che possono risultare scomodi a chi ci ascolta. O persino a se stessi, come la mia erre moscia che io non sopporto. Il testo non ha nulla di tutto questo: oddio, il testo può essere scritto male ed essere sgrammaticato. Ma mentre lo stile di scrittura può essere migliorato, la voce è quella che è.
  6. Il video richiede banda larga, il testo no. Possiamo navigare siti testuali con un gran numero di dispositivi, dal notebook al palmare, dal cellulare più scarso allo smartphone, e con qualsiasi tipo di connessione. Con il video invece no.
  7. Il video non sempre è disponibile. A volte non ci si può permette di scaricare 80Mb di file AVI, a volte i firewall delle aziende bloccano siti come YouTube, a volte non si ha a disposizione il codec giusto, a volte qualcuno di voi naviga con un cellulare via GPRS, etc. etc. I motivi per cui potreste non riuscire a vedere un film possono essere diversi.

Quindi, in futuro non mi vedrete mai fare video tecnici, a meno che le cose cambieranno. Ma penso proprio di no, visto che alcune cose sono proprie del contenuto multimediale, quindi…

Technorati Tags:   

Send to Kindle
Community

Per me è troppo tardi, ma voi potete ancora farcela

Domani è il 28 Febbraio 2008: molti di voi si ricorderanno di questa data perchè domani Microsoft festeggia con una festa in grande stile il lancio di un po’ di prodotti: Windows Server 2008, Visual Studio 2008 e SQL Server 2008. Io non potrò esserci perchè sono a casa in malattia, ma spero che tutti i miei amici di UGIdotNET che parteciperanno si divertano alla grande qua a Milano.

Ma domani è anche il mio compleanno, anzi…per dirla tutta…tra poco meno di un’oretta. Bel modo di passare il compleanno. Dovrò recuperare quando tornerò efficiente (e chiaccherone) come prima. Quanti sono 32 anni? Sono tanti o sono pochi? Io non me li sento affatto, se non in certi momenti, quando mi rendo conto che devo prendere nel mio piccolo decisioni importanti. Per il resto, l’importante è scherzare, ridere e trovare sempre il buonumore: quello sì che mantiene giovani, come dice il proverbio.

Send to Kindle
My personal life

[Convalescenza] Giornata 5

Ho quasi finito di annoiarvi, perchè la mia serie Dalla Terra alla Luna oggi è terminata con gli ultimi due episodi. Domani mi guardo l’ultimo DVD che contiene i soliti ed immancabili contenuti speciali in lingua inglese.

  • Il club delle prime mogli
    Parla del difficile rapporto tra le mogli degli astronauti USA, i loro mariti e la NASA stessa. Difficile perchè i mariti rimangono lontani da casa per lunghe settimane. Difficile perchè devono intervenire nelle grandi serate organizzate dalla NASA, conoscendo senatori ed i presidenti USA. Devono mandare avanti la casa, gestire i figli, accumulare lo stress. La moglie di Edward White – una delle vittime di Apollo 1 – non sopporterà il peso e alla fine si suiciderà. Molte delle altre divorzieranno.
  • Le voyage dans la Lune
    Il titolo dell’ultimo episodio è il titolo del primo film che racconta il viaggio dalla Terra alla Luna, realizzato da un francese mi pare intorno al 1930. L’ultimo episodio è dedicato ad Apollo 17, l’ultimo viaggio che porterà uomini sulla Luna. Puntata grandiosa, davvero, per una serie di motivi che non sto qui a dirvi. Bellissimo il discorso di Kennedy alla fine. Bellissimi i titoli di coda, che elencano in ordine alfabetico tutti gli astronauti del programma spaziale.

Adesso mi vado a leggere un articolo di MSDN Magazine che mi è arrivato ieri. Per adesso l’ho solo sfogliato per vederne i contenuti: mi interessa quello su VSTO 3.0 e quello sulla creazione di instant messaging con il .NET Compact Framework 3.5.

Send to Kindle