Franny's Adobe

Il blog di Francesco Carucci
posts - 99, comments - 948, trackbacks - 6705

Programming

Scrum and Long Term Project Planning for Video Games

Ringazio Luca per avermi segnalato l'articolo su Gamasutra. http://www.gamasutra.com/view/feature/3142/scrum_and_long_term_project_.php?page=1 E' interessante perche' descrive bene il rapporto fra i publisher, che vogliono uno schedule dettagliato, e lo sviluppatore che non riesce mai a finire un gioco nel tempo stabilito.

posted @ giovedì 20 dicembre 2007 14:31 | Feedback (2) | Filed Under [ Programming ]

I need a hammer

http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12 "And this is the way everyone is doing it now? Everyone is using a general-purpose tool-building factory factory factory now, whenever they need a hammer?""Yes."

posted @ martedì 27 novembre 2007 16:28 | Feedback (2097) | Filed Under [ Programming ]

No Comment

I commenti nel codice e' senza dubbio uno dei miei argomenti preferiti: io sono per la zero policy. Nessun commento, a parte cio' che non puo' in alcun modo essere espresso in codice. Oggi guardavo un po' di codice e mi imbatto in: #ifndef _XXXX_MANAGER_HPP_#define _XXXX_MANAGER_HPP_ /// Include guard. A parte l'underscore di fronte ad un identificatore che in C++ e' riservato al compilatore e al comitato di standardizzazione, quindi non deve mai essere usato: il commento e' quanto meno illuminante. Il prossimo entra dritto nella top 10: # define IGNORE_MISSING_DX_FILE // ignore missing file Il commento dice meno di...

posted @ martedì 16 ottobre 2007 16:22 | Feedback (47) | Filed Under [ Programming ]

I Quad...

... sono arrivati :) PS. I Quad sono i quadrati, non i quad processor.

posted @ lunedì 15 ottobre 2007 14:47 | Feedback (6) | Filed Under [ Programming ]

Resource Acquisition is Initialisation

http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization CWaterRenderingStrategy::~CWaterRenderingStrategy(){  delete m_Geometry;  delete m_Shader;} e poi subito dopo: COceanRenderingStrategy::~COceanRenderingStrategy(){  delete m_Geometry;} Boom. Double delete e memory corruption. Qualcuno ha perso due ore per cercarlo. Il mio errore e' stato non seguire il pattern RAII e rilasciare m_Geometry nella classe base, ma la classe base non l'aveva inizializzato quindi non ne aveva l'ownership e non doveva cancellarlo. Nella classe derivata ho correttamente costruito e distrutto l'oggetto, ma l'ho scritta mesi dopo. Per altro... uno strategy pattern in questa situazione era overingegnerizzato. Non mi serviva ed ha offuscato il bug. Altra lezione.    

posted @ venerdì 21 settembre 2007 18:54 | Feedback (2) | Filed Under [ Programming ]

"Ah, the infamous ‘you ain’t gonna need it’ crap "

Poi Gianluca mi dice che mi lamento sempre, ma questa proprio non potevo lasciarla scappare :) Oggi il mio sogno e' avere un boss che non mi dice che YAGNI e' un concetto di merda. Il sogno di domani e' averne uno che sappia programmare.

posted @ martedì 18 settembre 2007 13:10 | Feedback (22) | Filed Under [ Programming ]

Technical Design Document

Sto lavorando sull'acqua ed ho bisogno di un task dal tool team per supportare il mio lavoro. Senza entrare nei dettagli, ho bisogno che una regione d'acqua sia divisa in un certo numero di quadrati. Come da mia abitudine, mi mantengo sul semplice e chiedo di generare solo due quadrati, per ora, per un particolare livello sul quale sto testando il mio lavoro. Faccio la mia richiesta un paio di giorni fa e attendo. Oggi vedo un Technical Design Document riguardante il design del tool di editing dell'acqua ed una lunga discussione su come presentare le informazioni, l'algoritmo per generare...

posted @ mercoledì 12 settembre 2007 17:43 | Feedback (22) | Filed Under [ Programming ]

Go learn C++ n00b

http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918 Magari se Linus imparasse anche a programmare un bel giorno non si farebbe ridere dietro da mezzo mondo...

posted @ venerdì 7 settembre 2007 15:25 | Feedback (36) | Filed Under [ Programming ]

Commit del codice al pomeriggio? No grazie.

Sembra che faccia male alla salute. Oggi si e' consumata una nuova puntata del dramma: nel branch principale e' vietato fare il commit del codice al pomeriggio, per evitare che la build si rompa la sera, visto che c'e' un ritardo di una o due ore fra il commit e quando il problema e' scoperto. Ovviamente il concetto di automated testing e' del tutto alieno, perche' questo e' l'ultimo chiodo sulla bara della Continuous Integration: un monumento a come non si gestisce un progetto. Poi si domandano perche' non hanno mai finito un gioco con meno di un anno di...

posted @ mercoledì 29 agosto 2007 13:14 | Feedback (3) | Filed Under [ Programming ]

"E' un refactoring essenziale?"

Si', lo e'. L'eterna lotta sui principi cardine della Costruzione del Software fra me e il producer continua in queste calde giornate d'Agosto (e' un modo di dire, qui in UK si crepa dal freddo). Nelle migliori tradizioni, alla mia richiesta di tre giorni per rifattorizzare una parte importante dell'engine caduta un attimo in abbandono, la risposta e' stata un "forse, non lo so, devo vedere con il lead, ma e' davvero essenziale? hai gia' finito il task".Se mi oppongono ulteriori problemi ad allocarmi tempo per i refactoring, usero' la tecnica di Fowler: fallo e non dire nulla a nessuno....

posted @ venerdì 17 agosto 2007 12:41 | Feedback (19) | Filed Under [ Programming ]

Full Programming Archive

Powered by:
Powered By Subtext Powered By ASP.NET