Gates Of Dawn http://blogs.ugidotnet.org/Andrew/Default.aspx Pensieri di Andrea it-IT Andrea Sansottera Subtext Version 2.6.0.0 Gates Of Dawn http://blogs.ugidotnet.org/images/RSS2Image.gif http://blogs.ugidotnet.org/Andrew/Default.aspx 77 60 PowerShell 1.0 Windows http://blogs.ugidotnet.org/Andrew/archive/2007/02/03/69684.aspx <P>&#200; stata rilasciata&nbsp;<A href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"><EM>PowerShell 1.0</EM></A>&nbsp;per <A href="http://www.microsoft.com/windowsvista/default.asp"><EM>Windows Vista</EM></A> (RTM). Per l'installazione &#232; disponibile un file con estensione <EM>.msu</EM>, ovvero <EM>Microsoft Standalone Update</EM>.</P> <UL> <LI><A href="http://go.microsoft.com/fwlink/?LinkID=79516">Download for <EM>Windows Vista</EM> for&nbsp;x86</A> <LI><A href="http://go.microsoft.com/fwlink/?LinkID=79517">Download for <EM>Windows Vista</EM> for&nbsp;x64</A></LI></UL> <P>Qualora l'installazione fallisse, potete controllarne il motivo sul pannello di controllo: <EM>Control Panel</EM>, <EM>Check for Updates,</EM> <EM>Update History</EM>. Se si dovesse trattare di un codice di errore 80070020 (<EM>The process cannot access the file because it is being used by another process.</EM>)&nbsp;provate a disabilitare l'antivirus.</P> <P>Il rilascio di <EM><A href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"><EM>PowerShell 1.0</EM></A></EM> per <A href="http://www.microsoft.com/windowsvista/default.asp"><EM>Windows Vista</EM></A> &#232; avvenuto con qualche settimana di ritardo rispetto a quello delle versioni per <EM><A href="http://www.microsoft.com/windowsxp">Windows XP</A> (<A href="http://www.microsoft.com/windowsxp/sp2/default.mspx">SP2</A>)</EM> e <A href="http://www.microsoft.com/windowsserver2003/default.mspx"><EM>Windows Server 2003</EM></A><EM> (</EM><A href="http://www.microsoft.com/technet/downloads/winsrvr/servicepacks/sp1/default.mspx"><EM>SP1</EM></A><EM>)</EM>. Per questi sistemi &#232; disponibile un installer tradizionale. Proprio la differenza tra il packaging di pacchetti&nbsp;<EM>*.msi</EM> e <EM>*.msu</EM> &#232; stata la causa del ritardo.</P> <UL> <LI><A href="http://go.microsoft.com/fwlink/?LinkID=75788&amp;clcid=0x09">Download for <EM>Windows XP</EM> for&nbsp;x86</A> <LI><A href="http://go.microsoft.com/fwlink/?LinkID=75789&amp;clcid=0x09">Download for <EM>Windows XP</EM> for&nbsp;x64</A> <LI><A href="http://go.microsoft.com/fwlink/?LinkID=75790&amp;clcid=0x09">Download for <EM>Windows Server</EM> for&nbsp;x86</A> <LI><A href="http://go.microsoft.com/fwlink/?LinkID=75791&amp;clcid=0x09">Download for <EM>Windows Server</EM> for&nbsp;x64</A> <LI><A href="http://go.microsoft.com/fwlink/?LinkID=75792&amp;clcid=0x09">Download for <EM>Windows Server</EM> for&nbsp;Itanium</A></LI></UL><img src="http://blogs.ugidotnet.org/Andrew/aggbug/69684.aspx" width="1" height="1" /> Andrea Sansottera http://blogs.ugidotnet.org/Andrew/archive/2007/02/03/69684.aspx Sat, 03 Feb 2007 15:20:00 GMT http://blogs.ugidotnet.org/Andrew/archive/2007/02/03/69684.aspx#feedback http://blogs.ugidotnet.org/Andrew/comments/commentRss/69684.aspx Installazione Windows Vista Windows http://blogs.ugidotnet.org/Andrew/archive/2006/11/23/56458.aspx <P>Per la mia partecipazione al beta testing di Vista, mi &#232; stata regalata una licenza dell'edizione Ultimate. Fantastico, davvero un bel gesto!</P> <P>Questa sera ho installato il nuovo sistema operativo sulla mia workstation. Nonostante la macchina abbia ormai cinque anni di et&#224; (solo la scheda grafica &#232; recente), Windows Vista gira splendidamente e sono molto soddisfatto.</P> <P>Queste le specifiche della macchina:</P> <UL> <LI> <DIV align=justify>chipset Intel 840</DIV> <LI> <DIV align=justify>2 processori Pentium III a 866 MHz</DIV> <LI> <DIV align=justify>1 GB di RDRAM PC600 ECC dual channel</DIV> <LI> <DIV align=justify>disco SCSI 10,000 RPM</DIV> <LI> <DIV align=justify>scheda video Radeon 9600 XT con 256 MB di memoria</DIV></LI></UL> <P align=justify>Punteggi:</P> <UL> <LI> <DIV align=justify>Processore: 2.9</DIV> <LI> <DIV align=justify>Memoria: 1.8</DIV> <LI> <DIV align=justify>Grafica: 2.9</DIV> <LI> <DIV align=justify>Grafica giochi: 3.9</DIV> <LI> <DIV align=justify>Disco primario: 4.0</DIV></LI></UL> <P align=justify>Problemi:</P> <UL> <LI>Quando iberno il PC non appare alcuna schermata indicante il progresso dell'operazione. <LI>Non c'&#232; il driver del NIC Ethernet integrato sullo scheda madre (Intel Pro 10/100). Ho dovuto installare un'altra scheda di rete per collegarmi al router e lanciare Windows Update: driver trovato, installato e funzionate. Per&#242; sono rimasto basito, i driver delle periferiche di rete dovrebbero includerli tutti, che senso ha metterli su Windows Update? Non so quanti utente si metterebbero a montare una nuova scheda di rete per scaricarli.</LI></UL> <P>Note:</P> <UL> <LI>Per ora non ho scaricato i driver della scheda grafica dal sito di ATI ma sto usando quelli che Vista installa automaticamente. Non so se siano gli stessi.</LI></UL> <P>Impressioni:</P> <UL> <LI>Rispetto alla RC2 installata su una macchina, il mio notebook, che non supporta Aero, l'impressione &#232; completamente diversa. <LI>Windows Media Center sembra spettacolare. <LI>Il gioco degli scacchi &#232; bellissimo!</LI></UL> <P>Domani prover&#242; ad installare le applicazioni, la stampante e lo scanner. Ora continuo a giocare con le novit&#224; incluse nel sistema operativo. :)</P><img src="http://blogs.ugidotnet.org/Andrew/aggbug/56458.aspx" width="1" height="1" /> Andrea Sansottera http://blogs.ugidotnet.org/Andrew/archive/2006/11/23/56458.aspx Thu, 23 Nov 2006 00:14:00 GMT http://blogs.ugidotnet.org/Andrew/archive/2006/11/23/56458.aspx#feedback 2 http://blogs.ugidotnet.org/Andrew/comments/commentRss/56458.aspx Principio di sostituzione, regola dei metodi e delle proprietà. Perchè Java usa la parola chiave "extends"? http://blogs.ugidotnet.org/Andrew/archive/2006/08/03/45839.aspx <P>Prendo spunto dal post di Emanuele, "<A href="http://blogs.ugidotnet.org/BlogEma/archive/2006/08/03/45808.aspx">OOP != Ereditariet&#224;</A>". Volevo per&#242; fare delle considerazioni. Innanzitutto:</P> <UL> <LI>Una <EM>sottoclasse</EM> non &#232; un <EM>sottotipo</EM>. I sottotipi devono rispettare il <EM>principio di sostituzione</EM>, per le sottoclassi questa propriet&#224; non &#232; richiesta. <LI>In un linguaggio orientato agli oggetti, i sottotipi sono implementati con sottoclassi. <LI>Se si usa un approccio disciplinato all'ereditariet&#224;, ogni sottoclasse &#232; un sottotipo. </LI></UL> <P>Nei linguaggi fortemente tipizzati, la correttezza di una sottoclasse &#232; verificata dal compilatore. Una sottoclasse ha tutti metodi della superclasse e le signature dei metodi sono compatibili (<EM>regola della signatura</EM>).</P> <P>Per un sottotipo devono valere anche la <EM>regola dei metodi</EM> e la <EM>regola delle </EM>propriet&#224;. Tali regole, insieme alla <EM>regola della signatura,</EM> garantiscono che sia rispettato il principio di sostituzione. I compilatori in genere non sono in grado di verificare nulla a questo riguardo. Per valutare se queste regole siano rispettate &#232; necessario avere a disposizione una specifica del tipo di dato astratto (contratto dei metodi e invariante astratto di rappresentazione). Linguaggi di specifica formale e relativi tools, in genere, possono essere d'aiuto. Vediamo in cosa consistono queste due regole.</P> <P>Il contratto di un metodo &#232; definito da ci&#242; che il metodo si aspetta dal chiamante (talvolta definite clausole <EM>requires</EM>) e dalle promesse che il metodo f&#224; al chiamante (talvolta definite clausole<EM> ensures</EM>). Secondo la  regola dei metodi, i metodi ridefiniti da un sottotipo devono estendere il contratto per essi definito nel supertipo. In questo senso, le clausole requires nel sottotipo devono essere <EM>meno restrittive</EM> di quelle nel supertipo. Le clausole ensures possono offrire qualcosa in pi&#249; di quanto garantito dal supertipo, ma mai qualcosa in meno. Ricordo che una volta <A href="http://blogs.ugidotnet.org/pape">Andrea</A> si disse contrario alla scelta della parola chiave <EM>extends</EM> da parte dei progettisti di Java. Il modo in cui va interpretata e proprio questo: un sottotipo estende il comportamento del supertipo, non pu&#242; semplicemente ridefinirlo con qualcosa di diverso. Scrivendo un sottotipo, si pu&#242; ridefinire un metodo, ma il suo contratto pu&#242; solo essere esteso, non ridefinito. OK, nulla vieta di farlo, ma &#232; scorretto se si sta seguendo un approccio disciplinato all'ereditariet&#224;.</P> <P>L'invariante astratto di rappresentazione di un tipo, &#232; l'insieme delle propriet&#224; che valgono sempre per un oggetto di quel tipo. Secondo la regola delle propriet&#224;, i metodi ridefiniti da un sottotipo non devono violare l'invariante di rappresentazione del supertipo. </P> <P> <HR id=null> <P></P> <P>Alla luce di tutto questo, vediamo l'esempio di Emanuele su ArrayList. Microsoft, purtroppo, non ci d&#224; una specifica formale del framework. Secondo MSDN, il metodo ArrayList#Sort():</P> <P>"Sorts the elements in the entire ArrayList using the IComparable implementation of each element."</P> <P>A seconda di come si interpreta la frase, MyArrayList pu&#242; rispettare o non rispettare il principio di sostituzione. &#200; un problema di lingua inglese. Dal mio punto di vista, dire che il metodo ordina ("sort") gli elementi non significa necessariamente in ordine crescente.</P> <P>Se per voi, come per me, "sort" significa semplicemente ordinare, allora MyArrayList &#232; un sottotipo e rispetta il principio di sostituzione. Infatti, il chiamante del metodo non deve aspettarsi che l'array sia ordinato in ordine crescente. Il fatto che ArrayList lo faccia, non significa che anche i suoi sottotipi, qualora ridefiniscano il metodo, debbano farlo. L'importante &#232; che la lista venga ordinata secondo l'implementazione di IComparable da parte degli elementi.</P> <P>Se per voi "sort" significa, di default, ordinare in ordine crescente, allora MyArrayList &#232; una sottoclasse ma non un sottotipo, poich&#232; viola il principio di sostituzione. In questo caso, l'esempio di Emanuele &#232; pertinente.</P> <P> <HR id=null> <P></P> <P>Magari quando ho tempo aggiorno il post con qualche esempio... Detto cos&#236; sembra molto teorico. Lo &#232;, ma con notevoli riscontri nella pratica!</P><img src="http://blogs.ugidotnet.org/Andrew/aggbug/45839.aspx" width="1" height="1" /> Andrea Sansottera http://blogs.ugidotnet.org/Andrew/archive/2006/08/03/45839.aspx Thu, 03 Aug 2006 17:17:00 GMT http://blogs.ugidotnet.org/Andrew/archive/2006/08/03/45839.aspx#feedback 4 http://blogs.ugidotnet.org/Andrew/comments/commentRss/45839.aspx Sysinternals acquisita da Microsoft Windows http://blogs.ugidotnet.org/Andrew/archive/2006/07/18/44853.aspx <P>Una news dal web: la societ&#224; Mark Russinovich e Bryce Cogswell &#232; stata acquisita da Microsoft . </P> <P><A href="http://www.sysinternals.com/blog/2006/07/on-my-way-to-microsoft.html">http://www.sysinternals.com/blog/2006/07/on-my-way-to-microsoft.html</A></P> <P>Da un certo punto di vista mi piacerebbe che i tool principati sviluppati da questa societ&#224; venissero incorporati in Windows, ma mi rendo conto che non siano molto utili alla maggior parte degli utenti. Forse dovremmo aspettarci una super-versione dei vari resource kit / support tools.... Chi lo s&#224;. Sul blog ci sono reazioni di varia natura rispetto a questo notizia. Per come la vedo io,&nbsp;due persone di talento ed esperienza come loro&nbsp;sapranno sicuramente sfruttare le opportunit&#224; (in termini di risorse, umane e non, nonch&#232; di codice sorgente, etc.)&nbsp;offerte da Microsoft per fare ancora meglio che in passato.</P><img src="http://blogs.ugidotnet.org/Andrew/aggbug/44853.aspx" width="1" height="1" /> Andrea Sansottera http://blogs.ugidotnet.org/Andrew/archive/2006/07/18/44853.aspx Tue, 18 Jul 2006 20:33:00 GMT http://blogs.ugidotnet.org/Andrew/archive/2006/07/18/44853.aspx#feedback 4 http://blogs.ugidotnet.org/Andrew/comments/commentRss/44853.aspx Audio in Windows Vista Windows http://blogs.ugidotnet.org/Andrew/archive/2005/11/27/30612.aspx Per chi fosse interessato, ho pubblicato sul mio blog in inglese un <a href="http://blog.gatesofdawn.org/?p=14">breve post</a> riguardante le novità del sottosistema audio presente in Windows Vista. <img src="http://blogs.ugidotnet.org/Andrew/aggbug/30612.aspx" width="1" height="1" /> Andrea Sansottera http://blogs.ugidotnet.org/Andrew/archive/2005/11/27/30612.aspx Sun, 27 Nov 2005 19:03:00 GMT http://blogs.ugidotnet.org/Andrew/archive/2005/11/27/30612.aspx#feedback http://blogs.ugidotnet.org/Andrew/comments/commentRss/30612.aspx