Franny's Adobe http://blogs.ugidotnet.org/Franny/Default.aspx Il blog di Francesco Carucci it-IT Francesco Carucci Subtext Version 2.6.0.0 Franny's Adobe http://blogs.ugidotnet.org/images/RSS2Image.gif http://blogs.ugidotnet.org/Franny/Default.aspx 77 60 Fable 2 is GOLD Fable 2 http://blogs.ugidotnet.org/Franny/archive/2008/09/23/94128.aspx <p>.... mentre io mi godo le lasagne della mamma a Imperia :)</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/94128.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/09/23/94128.aspx Tue, 23 Sep 2008 14:59:38 GMT http://blogs.ugidotnet.org/Franny/archive/2008/09/23/94128.aspx#feedback 46 http://blogs.ugidotnet.org/Franny/comments/commentRss/94128.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/94128.aspx E' il mio ultimo commit in Fable 2... http://blogs.ugidotnet.org/Franny/archive/2008/08/16/93723.aspx <p>... dopo quasi tre anni d lavoro? Lo sapro' domani. Dita incrociate.</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/93723.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/08/16/93723.aspx Sat, 16 Aug 2008 16:59:05 GMT http://blogs.ugidotnet.org/Franny/archive/2008/08/16/93723.aspx#feedback 8 http://blogs.ugidotnet.org/Franny/comments/commentRss/93723.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/93723.aspx Why Crunch Mode Doesn't Work: 6 Lessons http://blogs.ugidotnet.org/Franny/archive/2008/07/28/93547.aspx <p><a title="http://www.igda.org/articles/erobinson_crunch.php" href="http://www.igda.org/articles/erobinson_crunch.php">http://www.igda.org/articles/erobinson_crunch.php</a></p> <p>Grazie Federico per la segnalazione.</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/93547.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/07/28/93547.aspx Mon, 28 Jul 2008 11:18:47 GMT http://blogs.ugidotnet.org/Franny/archive/2008/07/28/93547.aspx#feedback 61 http://blogs.ugidotnet.org/Franny/comments/commentRss/93547.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/93547.aspx Non solo bug http://blogs.ugidotnet.org/Franny/archive/2008/07/09/93339.aspx <p><img height="256" src="http://photos-e.ak.facebook.com/photos-ak-snc1/v272/238/74/738129967/n738129967_1026412_3024.jpg" width="382" /> <br /></p> <p>Rock on!</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/93339.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/07/09/93339.aspx Wed, 09 Jul 2008 15:12:39 GMT http://blogs.ugidotnet.org/Franny/archive/2008/07/09/93339.aspx#feedback 16 http://blogs.ugidotnet.org/Franny/comments/commentRss/93339.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/93339.aspx Sessanta a uno http://blogs.ugidotnet.org/Franny/archive/2008/07/08/93327.aspx <p>Oggi passeggiavo per il codice cercando di aggiungere una funzionalita' (perche' qui la definizione di code complete e' molto lasca), quando mi imbatto in un pezzo di codice game-side che aggiorna due <strong>Collision Sphere </strong>nelll'engine, usate per collidere con la vegetazione. Sono circa una decina di righe di codice che scrissi qualche mese fa per "testare" la funzionalita' nell'engine. Facevano il loro lavoretto, niente di piu', niente di meno, con un bel commento sulla falsa riga di "codice di test da implementare correttamente game side". Oggi ho trovato l'implementazione corretta: quelle dieci righe di codice, che facevano il loro dovere, sono diventate un <strong>VegetationCollisionSphereManager</strong>, piu' <strong>VegetationCollisionSphereItem</strong> per un gran totale di 600 righe di codice che, essenzialmente, fanno la stessa cosa. C'e' una rapporto di sessanta a uno.</p> <p>Io credo che ci sia sempre una spiegazione razionale per tutto, anche per chi si lamenta di avere centinaia di bug ancora da fissare nella sua bug list. Io ne ho quattro. C'e' un rapporto di sessanta a uno anche li'.</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/93327.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/07/08/93327.aspx Tue, 08 Jul 2008 12:35:26 GMT http://blogs.ugidotnet.org/Franny/archive/2008/07/08/93327.aspx#feedback 7 http://blogs.ugidotnet.org/Franny/comments/commentRss/93327.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/93327.aspx [OT] Fra un bug e l'altro... http://blogs.ugidotnet.org/Franny/archive/2008/06/25/93168.aspx <p>... a Febbraio ho comprato una DSLR (Reflex Digitale per gli amici) e sto imparando a fotografare, come testimoniano i curiosi banner di recente apparsi alla sinistra del mio blog.</p> <p><img src="http://farm4.static.flickr.com/3247/2609172572_87500772de_m.jpg" align="right" />Dopo circa quattro mesi sono stato accettato da un'agenzia di Macrostock piuttosto famosa chiamata <a href="http://www.alamy.com/stock-photography/62DB7D4B-2A72-4D84-A0F3-F838BC87FD34/1/Francesco%20Carucci.html" target="_blank">Alamy</a>. In pratica sono ufficialmente un fotoreporter. Solo il pensiero fa molto piu' ridere me di quanto faccia ridere chi legge: e' piu' o meno come prendere in mano un compilatore senza averne mai visto uno prima, e pretendere di scrivere codice di produzione dopo quattro mesi.</p> <p>A parte gli scherzi mi diverto un mondo: aiuta a rilassarmi la sera dopo cena, prima di tornare a dare la caccia ai memory scribbler. Inoltre la fotografia in generale ha moltissimi legami con il mio lavoro. </p> <p>Per i Flickr maniaci questo e' il mio <a href="http://www.flickr.com/photos/fcarucci/" target="_blank">Photo Stream</a> e questo un piccolo ritratto di una dolcissima ragazzina durante la sfilata della fiacca Olimpica a Londra.  <br /><br />Stay tuned.</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/93168.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/06/25/93168.aspx Wed, 25 Jun 2008 15:28:06 GMT http://blogs.ugidotnet.org/Franny/archive/2008/06/25/93168.aspx#feedback 9 http://blogs.ugidotnet.org/Franny/comments/commentRss/93168.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/93168.aspx Un'analisi informale dei crash bug in C++ http://blogs.ugidotnet.org/Franny/archive/2008/05/26/92805.aspx <p>Il mio lavoro si e' trasformato nelle ultime settimane (mesi) nell'analisi e (possibilmente) nel fix dei bug nell'engine in ingresso nel database di Fable 2. Ogni giorno ho qualche decina di bug da guardare, se riesco risolvere al momento, oppure indirizzare verso chi di dovere.</p> <p>Vuol dire in parole povere che ne ho viste parecchie.</p> <p>L'engine consiste in qualche centinaia di migliaia di righe di codice, divise fra una decina di programmatori nel corso di tre anni.</p> <p>Da questo lavoro di analisi ho potuto farmi un'idea molto informale (nel senso che non ho raccolto dati precisi) sulle cause dei crash bug in Fable 2, e sul codice che li genera. La stragrande maggioranza dei crash bug e' dovuta a problemi con la gestione del ciclo di vita di un oggetto, quando e' allocato, sopratutto quando, come e dove e' deallocato. I double delete sono all'ordine del giorno. Peggio ancora mantenere reference a oggetti che sono stati deallocati da qualcun altro e scriverci sopra, che equivale a scrivere sopra un oggetto casuale in un qualsiasi pezzo di codice nel sistema che si e' trovato ad usare quel pezzo di memoria deallocato. Crash random e problema difficilissimo da diagnosticare, perche' la causa non e' locale.</p> <p>Piccole regolette che aiutano molto a prevenire anziche' curare:</p> <p>- Resource Allocation Is Initalisation, sempre e comunque</p> <p>- Azzerare un puntatore dopo il delete</p> <p>- Usare smart pointer dove possibile (ma occhio ai problemi con il ref counting)</p> <p>- Notificare ai client la distruzione di un oggetto, possibilmente attraverso Observer (ma occhio alle complicazioni di design che ne derivano)</p> <p>- <strong>Fare le cose semplici</strong></p> <p> </p> <p>L'ultimo sembra un consiglio stupido, ma e' forse l'unico importante: sono tre anni che predico di fare le cose semplici, e io ho cercato di seguire il mio consiglio il piu' possibile, senza complicarmi la vita, non scrivendo mai nulla che non fosse espressamente richiesto, cercando di scrivere codice piu' leggibile possibile. L'ultimo crash bug nel mio codice risale a quattro mesi fa (un doppio delete). Funziona.</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/92805.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/05/26/92805.aspx Mon, 26 May 2008 11:06:58 GMT http://blogs.ugidotnet.org/Franny/archive/2008/05/26/92805.aspx#feedback 6 http://blogs.ugidotnet.org/Franny/comments/commentRss/92805.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/92805.aspx Fable 2: The Choices You Make http://blogs.ugidotnet.org/Franny/archive/2008/05/16/92700.aspx <p>La settimana scorsa Fable 2 e' stato presentato ad un evento stampa Microsoft. Qui il report di IGN:<br /><a href="http://xbox360.ign.com/articles/873/873866p1.html">http://xbox360.ign.com/articles/873/873866p1.html</a></p> <p> </p> <p>Mi ricorda il soldato tedesco sul fronte orientale alla fine del '44, con l'armata rossa alle porte della Germania, che in trincea difende la posizione strenuamente sotto il fuoco dell'artiglieria sovietica, in pesante inferiorita' numerica, senza cibo, senza munizioni, in mezzo alle malattie e allo squallore, in preda al panico. Mentre Hitler a Berlino annuncia l'arrivo delle Divisioni dal Nord che ricacceranno Ivan al di la' dei confini...</p> <p>Basta crederci e va tutto bene :)</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/92700.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/05/16/92700.aspx Fri, 16 May 2008 13:32:50 GMT http://blogs.ugidotnet.org/Franny/archive/2008/05/16/92700.aspx#feedback 9 http://blogs.ugidotnet.org/Franny/comments/commentRss/92700.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/92700.aspx Crunching! (Side B) http://blogs.ugidotnet.org/Franny/archive/2008/04/05/92065.aspx <p>Un tipico sabato pomeriggio nella Game Industry.</p> <p> </p> <p><a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Franny/WindowsLiveWriter/CrunchingSideB_CB54/DSC02488_1.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="195" alt="DSC02488" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Franny/WindowsLiveWriter/CrunchingSideB_CB54/DSC02488_thumb_1.jpg" width="290" border="0" /></a> </p> <p><br />In ordine di apparizione:</p> <ol> <li>Domino Pizza (immangiabile)</li> <li>Birra (bevibile)</li> <li>Coca cola (per stare sveglio)</li> <li>Monitor col codice</li> <li>Monitor col devkit attaccato (vi sarebbe piaciuto ci fosse stato il gioco che gira :D)</li> <li>Duck Of Build Breaking Shame! (guadagnata con sudore durante Black&amp;White 2 e difesa strenuamente durante Fable 2)</li> <li>Keith che mangia la pizza</li></ol> <p><br />Per i puristi, scusate il flash sparato sul monitor ma non avevo un diffusore dietro... Non e' il mio miglior esempio di tecnica fotografica.</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/92065.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/04/05/92065.aspx Sat, 05 Apr 2008 15:31:02 GMT http://blogs.ugidotnet.org/Franny/archive/2008/04/05/92065.aspx#feedback 45 http://blogs.ugidotnet.org/Franny/comments/commentRss/92065.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/92065.aspx Python, I love you http://blogs.ugidotnet.org/Franny/archive/2008/04/04/92054.aspx <p>Ieri sera alle 11 lancio un processo scritto in Python cosi' da avere tutto pronto oggi, giorno di consegna.</p> <p>Questo mattina sono accolto da:<br /><br /><strong>TypeError: GetTargetFilename() takes exactly 3 arguments (2 given)</strong> </p> <p> </p> <p>Segnalarmi un errore di sintassi a tempo di compilazione effettivamente nel 2008 e' chiedere troppo. Mattinata di lavoro persa. Grazie Guido, I love you too.</p><img src="http://blogs.ugidotnet.org/Franny/aggbug/92054.aspx" width="1" height="1" /> Francesco Carucci http://blogs.ugidotnet.org/Franny/archive/2008/04/04/92054.aspx Fri, 04 Apr 2008 11:54:08 GMT http://blogs.ugidotnet.org/Franny/archive/2008/04/04/92054.aspx#feedback 33 http://blogs.ugidotnet.org/Franny/comments/commentRss/92054.aspx http://blogs.ugidotnet.org/Franny/services/trackbacks/92054.aspx