November 2010 Blog Posts

Battleship AI coding competition tornata finale: Strategie degli algoritmi

Kobayashi Maru 1.1.1  di  Fabio Rocca Strategia di Attacco. La strategia di attacco si divide principalmente in due fasi: 1) Ricerca delle Navi 2) Affondamento della nave colpita   Nella prima fase i colpi vengono sferrati basandosi principalmente su un pattern a scacchiera (è inutile colpire in tutti i punti della griglia dato che le dimensioni minime delle navi è...

I've seen things you wouldn't believe...

I've seen things *you* Agile Software Developers wouldn't believe. I've seen a query optimizer on fire singing 'nothing compares to NULL'. I've watched garbage collectors and disposable objects singing together in the dark 'who wants to live forever?' I've seen a try-catch block near the Tannhauser gate singing 'please don't go' to an unhandled exception. And all those... bits will be lost in time, like comments in the source code. It's time ... to deploy

Battleship AI coding competition 3^ tornata: Conclusione e "nuovo inizio"

I risultati della 3^ e finale tornata sono qui. Complimenti a Andrea Angella & Valerio Vitacolonna !!! In conclusione complimenti a Andrea Angella e Valerio Vitocolonna per aver realizzato l'algoritmo piú competitivo, a Fabio Rocca per essersi aggiudicato le prime 2 tornate e a Mauro Bellati per aver colto lo spirito della competizione e usato la sfida  per divertirsi e sperimentare sul codice. Complimenti a tutti i partecipanti i cui algoritmi hanno battuto 7 degli 8 algoritmi partecipante alla precedente edizione ! La descrizione delle strategie e il codice degli algoritmi sara disponibile a breve. Nuovo inizio La competizione ufficiale é definitivamente conclusa con i suoi...

Notes on Functional Programming paradigm 3: pros & cons

Pros: in functional style the sequence of calls and operations seldom matter while in procedural style it does and this add complexity Pros: in functional style it is easier to change a program because assumptions and statements about objects are absolute, they never change over time. While in procedural style state change and a huge effort is required to avoid unintended consequences. Indeed a major effort in OOP with encapsulation and information hiding is about partitioning...

Notes on Functional Programming paradigm 2: data and logic variation frequency

When a computer program solve a problem with data that never change and so the state but instead new values of data are created every time (i.e. like for primitive types in Java and C#)  as in mathematics operations, then it is said to have a functional style, it follow the functional paradigm. Some problem (solution) can be best expressed by a program with a functional style, some other problem can be best expressed by a procedural style (where state change over time) and for some other problem it is just a matter of personal preferences. Human brain has...

Notes on Functional Programming paradigm 1: data and logic

Computer programs can be seen as data (structures, state) and logic (algorithms, behavior). Data changes when data values (state) changes over time, logic changes mainly when different inputs lead to different computations. Just to be clear, conditionals are the most common ways to express changes in logic, and there are a whole set of ways of doing so that are equivalent to conditionals. Programming effectively is about grouping together data and related logic and express properly the variations of the data and the variations of the logic. The same problem can be solved by different programs,...

The fundamental attribution error (2°)

What looks like resistance is often a lack of clarity: look for a proper rational vision What looks like laziness is often exhaustion: look for a proper emotional motivation What looks like defiant people is often proceeding on the easiest path: improve the environment to support the right path What looks like...

Battleship AI coding competition: risultati 2^ tornata e inizio 3^ tornata

I partecipanti alla 1^ tornata non hanno presentato in tempo per la fine della 2^ sostanziali modifiche agli algoritmi giá presentati in precedenza, ma hanno chiesto tempo per lavorare ancora agli algoritmi e migliorarli. Quindi si puo dire che i risultai della 2^ tornata coincidono con quelli della 1^ tornata oggi inizia la 3^ tornata che si conclude a mezzanotte di domenica 14 Novembre Le regole di partecipazione alla 3^ tornata...