<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Libri</title>
        <link>http://blogs.ugidotnet.org/angellaa/category/Libri.aspx</link>
        <description>Libri</description>
        <language>it-IT</language>
        <copyright>Andrea Angella</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>[Libri] - Windows Phone 7 Secrets</title>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2010/11/30/books-windows-phone-7-secrets.aspx</link>
            <description>&lt;p&gt;   &lt;br /&gt;&lt;font size="4"&gt;Il nuovo sistema operativo mobile della Microsoft e’ veramente fantastico. Ho acquistato un LG Optimus 7 al giorno del lancio e posso dire assolutamente che sono stati soldi sicuramente ben spesi. La nuova esperienza utente e’ eccezionale! Anche i piu’ fanatici non possono non riconoscerlo.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/Windows-Live-Writer/Windows-Phone-7_150AB/lg-optimus7_2_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: ; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="lg-optimus7_2" border="0" alt="lg-optimus7_2" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/Windows-Live-Writer/Windows-Phone-7_150AB/lg-optimus7_2_thumb.jpg" width="366" height="276" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;Ho appena finito di leggere il libro "Windows Phone 7 Secrets” che racconta le funzionalita’ di WP7 lato utente.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="4"&gt;Scrivo questo post per condividere alcuni funzionalita’ meno ovvie ma che e’ bene far notare:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="4"&gt;Ovviamente utilizzare un profilo Windows Live e’ un obbligo. Tuttavia &lt;strong&gt;e’ importante andare sul sito live.com e connettere servizi esterni che utilizzate quotidianamente &lt;/strong&gt;in modo da avere accesso a tutte le vostre informazioni in maniera centralizzata e restare aggiornati e sincronizzati. E’ possibile collegare a live diversi servizi quali Facebook, YouTube, Flicker, MySpace, Feed RSS, LinkedIn, Last.fm e cosi’ via. In futuro ci saranno sempre piu’ servizi a disposizione. Live e’ sostanzialmente un aggregatore di informazioni e il centro della propria “vita virtuale”.         &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="4"&gt;Quando inserisci un testo in una casella di testo e per sbaglio hai inserito una lettera sbagliata &lt;strong&gt;e’ possibile spostare il cursore tenendo premuto il dito e spostandolo nella posizione di interesse.&lt;/strong&gt; Questa e’ una caratteristica che potrebbe sfuggire all’inizio ma davvero molto utile !         &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="4"&gt;Se &lt;strong&gt;tenete premuto il tasto START potete usare un comando vocale per eseguire certe azioni&lt;/strong&gt;. Per esempio potete dire “Open Facebook” per aprire l’applicazione Facebook oppure “Call Mark” per chiamare Mark.         &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="4"&gt;All’interno dell’hub people, precisamente nella lista dei contatti &lt;strong&gt;se premi su una delle lettere appare una griglia in cui puoi specificare la lettera iniziale del nome in modo da filtrare la lista&lt;/strong&gt; e arrivare piu’ facilmelte al contatto di interesse. Ovviamente e’ sempre possibile fare una ricerca diretta.         &lt;br /&gt;&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font size="4"&gt;Zune PC software puo’ essere eseguito su piu’ PC ed e’ possibile utilizzare il proprio Windows Phone 7 come condotto tra due o piu’ PC (da provare). E’ inoltre possible sincronizzare il dispositivo tramite WiFi.&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt; &lt;font size="4"&gt;   &lt;p&gt;     &lt;br /&gt;&lt;/p&gt; &lt;/font&gt;  &lt;p&gt;&lt;font size="4"&gt; &lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/99515.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2010/11/30/books-windows-phone-7-secrets.aspx</guid>
            <pubDate>Tue, 30 Nov 2010 03:14:10 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2010/11/30/books-windows-phone-7-secrets.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/99515.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/99515.aspx</trackback:ping>
        </item>
        <item>
            <title>[Libri] &amp;ndash; Ingegneria del codice, Seconda Edizione</title>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2010/10/28/libri-ndash-ingegneria-del-codice-seconda-edizione.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Tutti quelli che mi conoscono sanno quanto mi piace leggere e imparare cose nuove. In particolare adoro leggere libri tecnici per aumentare le mie competenze e imparare dall’esperienza di tanti altri che mi hanno preceduto. Per questo motivo ho deciso che ogni volta che terminero’ la lettura di un libro scrivero’ un post in cui racchiudero’ l’essenza del libro e le mie considerazioni. Lo scopo e’ riassumere il contenuto, evidenziando i punti principali e piu’ importanti. Spero che possa anche accendersi un dibattito e un confronto costruttivo sui contenuti con le persone che hanno letto il libro o quelle che desiderano acquistarlo.&lt;/p&gt;  &lt;p&gt;Ho deciso di inaugurare questa sezione del mio blog con un testo classico che ho recentemente finito di leggere:&lt;/p&gt;  &lt;p&gt;“&lt;strong&gt;Ingegneria del Codice, Seconda Edizione&lt;/strong&gt;” di &lt;strong&gt;&lt;a href="http://www.stevemcconnell.com/"&gt;Steve McConnell&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/Windows-Live-Writer/LibriProgramming-Pearls-Second-Edition_145B7/9788804540342g_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: ; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="9788804540342g" border="0" alt="9788804540342g" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/Windows-Live-Writer/LibriProgramming-Pearls-Second-Edition_145B7/9788804540342g_thumb.jpg" width="334" height="434" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Questo libro mi e’ stato regalato da alcuni amici dell’universita’ di Pisa per la mia laurea triennale nel 2006. Il libro e’ in italiano. La traduzione non e’ particolarmente brillante, quindi per coloro che avessero intenzione di acquistarlo consiglio il testo in lingua inglese:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.amazon.co.uk/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&amp;amp;qid=1288218269&amp;amp;sr=8-1"&gt;&lt;strong&gt;“Code Complete, Second Edition”&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Il libro e’ un mattone di 900 pagine che affronta a 360 gradi tutto cio’ che riguarda la costruzione del software. Esso presenta una serie di pratiche di programmazione che servono a mantenere sotto controllo, a manutenere e a modificare grossi e complessi progetti. Il libro e’ una raccolta di innumerevoli fonti integrate con anni di esperienza professionale. Dal mio punto di vista, il suo valore e’ altissimo e molto probabilmente dovro’ leggerlo una seconda volta, magari in inglese.&lt;/p&gt;  &lt;p&gt;Uno degli aspetti interessanti del libro e’ il numero di ricerche statistice che vengono riportate per supportare le tesi sostenute.&lt;/p&gt;  &lt;p&gt;Ecco alcune frasi significative estratte dal testo:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Il prodotto della costruzione, il codice sorgente, e’ spesso la sola descrizione accurata del software. Di conseguenza, e’ imperativo che il codice sorgente sia della piu’ alta qualita’ possibile. &lt;/li&gt;    &lt;li&gt;I rischi di progetto piu’ comuni nello sviluppo del software sono i prerequisiti scarsi e una scarsa pianificazione di progetto &lt;/li&gt;    &lt;li&gt;Parte del lavoro di dipendente tecnico consiste nell’educare il personale non tecnico che vi circonda sul processo di sviluppo &lt;/li&gt;    &lt;li&gt;In generale, il principio e’ trovare un errore nel momento il piu’ vicino possibile a quando e’ stato commesso &lt;/li&gt;    &lt;li&gt;Il primo prerequisito che si deve soddisfare prima di iniziare la costruzione e’ una formulazione chiara del problema che si vuole risolvere: la mission del prodotto &lt;/li&gt;    &lt;li&gt;I prerequisiti stabili rappresentano il sacro Graal dello sviluppo del software &lt;/li&gt;    &lt;li&gt;I programmatori che non dimenticano di considerare l’impatto business delle loro decisioni valgono tanto ora quanto pesano &lt;/li&gt;    &lt;li&gt;Una delle maggiori sfide che si presenta a un architetto software e’ rendere l’architettura abbastanza flessibile da favorire le probabili modifiche &lt;/li&gt;    &lt;li&gt;Prima che la costruzione inizi, specificate le convenzioni di programmazione che utilizzerete. &lt;/li&gt;    &lt;li&gt;I tool di programmazione utilizzati non devono determinare come si interpreta la programmazione &lt;/li&gt;    &lt;li&gt;Il design e’ l’attivita’ che collega i prerequisiti alla codifica e al debugging. &lt;/li&gt;    &lt;li&gt;L’imperativo tecnico principale del software e’ gestire la complessita’ &lt;/li&gt;    &lt;li&gt;Abituatevi a chiedervi “Cosa devo nascondere?”. Resterete sorpresi dal come molti difficili problemi di design si dissolveranno davanti ai vostri occhi &lt;/li&gt;    &lt;li&gt;Talvolta non si puo’ realmente sapere se un design funzionera’ finche’ non si comprendono meglio alcuni dettagli di implementazione. &lt;/li&gt;    &lt;li&gt;Il design e’ euristico. Una adesione dogmatica a qualsiasi singola metodologia danneggia la creativita’ e danneggia i programmi &lt;/li&gt;    &lt;li&gt;I programmatori nel corso dell’esistenza di un sistema spendono molto piu’ tempo a leggere il codice che a scriverlo &lt;/li&gt;    &lt;li&gt;Le revisioni rappresentano un meccanismo importante per fornire ai programmatori un feedback sul loro codice &lt;/li&gt;    &lt;li&gt;La scrittura dei test case prima del codice richiede la stessa quantita’ di tempo e impegno della scrittura dei test case dopo il codice, ma accorcia i cicli difetto-rilevazione-debug-correzione &lt;/li&gt;    &lt;li&gt;Neanche l’esperienza aiuta molto con l’ottimizzazione. L’esperienza di una persona puo’ essere stata acquisita su una macchina, un linguaggio o un compilatore ormai datato: se cambia uno di questi aspetti, tutte le certezze sono errate. Non si puo’ mai essere certi sull’effetto di una ottimizzazione finche’ non si misura l’effetto. &lt;/li&gt;    &lt;li&gt;Piu’ cervelli bisogna coordinare, piu’ documentazione formale e’ necessaria per coordinarli &lt;/li&gt;    &lt;li&gt;Utilizzare il sistema di benefit della propria azienda per incentivare le buone pratiche di codifica &lt;/li&gt;    &lt;li&gt;Gestire un progetto software e’ una delle imprese piu’ eccezionali del ventunesimo secolo, e stimare le dimensioni di un progetto e l’impegno richiesto per terminarlo e’ uno degli aspetti piu’ impegnativi della gestione di un progetto software &lt;/li&gt;    &lt;li&gt;I buoni programmatori tendono a raggrupparsi &lt;/li&gt;    &lt;li&gt;I manager dei progetti di programmazione non sono sempre consapevoli che certi aspetti della programmazione sono questioni di religione &lt;/li&gt;    &lt;li&gt;Nello sviluppo del software, i manager non tecnici sono comuni, come lo sono i manager che hanno esperienza tecnica ma che e’ obsoleta di 10 anni. I manager tecnicamente competenti, e tecnicamente aggiornati sono rari. Se si lavora con uno di essi, fate di tutto per mantenere il vostro lavoro. E’ un piacere insolito. &lt;/li&gt;    &lt;li&gt;La soddisfazione visuale e intellettuale del codice ben formattato e’ un piacere che pochi non programmatori possono apprezzare &lt;/li&gt;    &lt;li&gt;Il Teorema Fondamentale della Formattazione dice che una buona disposizione visuale mostra la struttura logica di un programma. Se una tecnica mostra meglio la struttura e un’altra conferisce un aspetto migliore, utilizzare quella che mostra meglio la struttura &lt;/li&gt;    &lt;li&gt;Molti aspetti del layout sono aspetti religiosi. Cercate di separare le preferenze di obiettivo da quelle soggettive. &lt;/li&gt;    &lt;li&gt;I commenti inadeguati sono peggio di nessun commento &lt;/li&gt;    &lt;li&gt;Commentare il codice complicato e’ esattamente l’approccio errato da seguire. Non documentare il codice pessimo: riscriverlo. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Una cosa interessante che ho scoperto da questo libro e’ che il mio stile di codifica pur essendo esteticamente valido viola quello che l’autore chiama il Teorema Fondamentale della Formattazione. In pratica io preferisco mettere la prima parentesi di un blocco nella riga successiva. Lo trovo estremamente leggibile anche se talvolta porta ad un aumento del numero di linee di codice.    &lt;br /&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:497c5ede-3e74-4c9d-b0bc-2a4e060b3f52" class="wlWriterEditableSmartContent"&gt; &lt;div style="border: #000080 1px solid; color: #000; font-family: 'Courier New', Courier, Monospace; font-size: 10pt"&gt; &lt;div style="background-color: #ffffff; max-height: 500px; overflow: auto; padding: 2px 5px; white-space: nowrap"&gt;&lt;span style="color:#0000ff"&gt;foreach&lt;/span&gt;(&lt;span style="color:#0000ff"&gt;var&lt;/span&gt; word &lt;span style="color:#0000ff"&gt;in&lt;/span&gt; words)&lt;br /&gt; {&lt;br /&gt;     &lt;span style="color:#2b91af"&gt;Console&lt;/span&gt;.WriteLine(word);&lt;br /&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Come dice Steve: &lt;strong&gt;I buoni programmatori devono essere di larghe vedute sulle proprie pratiche di layout e accettare le pratiche che si sono dimostrate migliori di quelle a cui sono abituati, anche se adattarsi a un nuovo metodo comporta un disagio iniziale.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I motivi per cui questo approccio e’ sconsigliato sono:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Begin e End (le parentesi) non fanno parte del costrutto di controllo, ma non fanno neanche parte della istruzione seguente &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Onestamente tuttavia non lo trovo un motivo sufficiente per farmi cambiare il mio stile di formattazione dei blocchi. Sarei curioso di sapere il vostro. Qual e’ ?&lt;/p&gt;  &lt;p&gt;Altre frasi:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Se siente un ingegnere del software, il materiale di base di costruzione e’ intelletto umano e il vostro strumento primario siete voi. Piuttosto che progettare una struttura fino all’ultimo dettaglio e poi passare i disegni a qualcun altro per la costruzione, sapete che dopo aver progettato un blocco di software fino all’ultimo dettaglio, e’ fatta. L’intero lavoro della programmazione e’ realizzare castelli in aria: e’ una delle attivita’ piu’ puramente mentali che si possa fare. &lt;/li&gt;    &lt;li&gt;Se volete essere validi, e’ vostra la responsabilita’ di rendervi tali. E’ una questione di carattere personale. &lt;/li&gt;    &lt;li&gt;Nello sviluppo di un ottimo programmatore la curiosita’ sugli argomenti tecnici deve essere una priorita’. &lt;/li&gt;    &lt;li&gt;Un modo particolarmente valido per apprendere la programmazione e’ studiare il lavoro di ottimi programmatori. &lt;/li&gt;    &lt;li&gt;Alcuni programmatori creativi vedono la disciplina degli standard e le convenzioni come qualcosa di asfissiante per la creativita’. E’ vero il contrario. &lt;/li&gt;    &lt;li&gt;Dijkstra ha costantemente sottolineato il messaggio che il compito essenziale della programmazione e’ padroneggiare l’enorme complessita’ della scienza dei computer. &lt;/li&gt;    &lt;li&gt;Per sperimentare efficacemente, si deve essere disposti a modificare le proprie opinioni in base ai risultati dell’esperimento &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Il libro e’ una vera miniera di consigli e linee guida. Tuttavia e’ solamente un punto di partenza in quanto vengono elencate una raccolta sterminata di ulteriori libri/articoli/fonti su cui approfondire ed espandere gli argomenti trattati. Un intero capito e’ dedicato a questo scopo.&lt;/p&gt;  &lt;p&gt;&lt;font size="5" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="5" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="5" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="5" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="5" /&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/99410.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2010/10/28/libri-ndash-ingegneria-del-codice-seconda-edizione.aspx</guid>
            <pubDate>Thu, 28 Oct 2010 03:46:14 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2010/10/28/libri-ndash-ingegneria-del-codice-seconda-edizione.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/99410.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/99410.aspx</trackback:ping>
        </item>
    </channel>
</rss>