Archive for the “Coding” Category


It’s been a month since I started my first and perhaps new work in Milan.
After only five days from my degree ( got it today in that blue “fashonable” cylinder ) I was sitting at my new desk. That was fun, I had a job and a really good income if compared to some of my mates at their first employement (as I currently am).

Said that it’s time to set up a little balance of this period: I’m no longer excited of my new job, it’s simply job, no more fun and no more interesting stuff. I tought we were supposed to develop such a great software, something new, something you can be proud of. As a matter of fact I’ve been put aside doin’ some secondary stuff while my friends are developing an apps around a new, restyled library with a 2 year old core (mathematically speaking now, the code is well written ad still on hard dev).

This is absolutely not fun.

I was making 3D reconstruciton, calibration and trying out some real-time rendering from reality for the last year and half. I started with nothing and I proved myself what I’m capable of.
Clearly speaking, I will not leave my job (at least not in the near future), they told me what to do and pay me for that, that’s all.

I was used to work at my thesis all night long, till 04:00 in the morning coding, debugging, coding. Not for my advisor, just for me, and it was awesome.
Now working is not exciting me, at least not anymore.

So I felt the need to start a new project, a project developed in my spare time (holidays and perhaps late night). It will involves 3D computer graphics ( need to improve a lot on this side) and AI programming (a new , exciting argument ). I will start this project involving a couple of friends, we are currently planning it from scratch (and we are already discussing over the “best” language and compiler).
This project will be my little escape from reality and in the future… who knows!
I will keep you posted on this.

Oh Oh hO, christmas in the air.. Today I saw the new Xbox360 … WHAT A MESS. Do gamers now really need this piece of hardware without a decent title to play with? No, at the moment it’s not worth the 399 EUR Microsoft is asking, plus the 69 EUR for the crappy games like NFS most wanted or FIFA2006. Please, X360 developers impress me otherwise: “I will not buy this console, it is CRAP”. PS3 still on hold, gonna preorder it as soon as possible.

Just my 2 EuroCent.

Comments 5 Comments »

Ebbene mi laureo. Tra 9 giorni sarò dott. Ing gran farabutt. A titolo puramente dimostrativo e anche per farmi figo metterò di al più presto un paio di link a dei filmati (adesso è tardi e non trovo + il client ftp, non scassate u cazz capit?). Il pirla che si agita e stramazza all’indietro sono io. Per farli mi ci è voluto un anno e 3 mesi. Qualcuno dirà bellammerda, tempo buttato, li faceva meglio il mio falegname. Io invece sono contento, sono partito da ZERO e ho tirato in piedi la rete di acquisizione multicamera, il sistema di calibrazione, il metodo di ricostruzione e di shading con risoluzione delle occlusioni. 160 pagine di tesi, 30000 righe di codice scritto , mille più, mille meno (tra prove andate a buon fine e andate a male), commenti inclusi, righe vuole già escluse. Non perchè me lavoglia tirare però è bello a volte guardarsi indietro e accorgersi di aver fatto bene qualcosa, sudando e sputando sangue s’intende…

urlo della settimana: S-I P-U-O’ F-AAAAAAAAA-R-EEEEEEEEEEEEE!!!!

Saluti, a domani per i links.

Comments 7 Comments »

Direttamente dal source di Quake 3 Arena, appena rilasciato dal signor Carmack in GPL.


1. float Q_rsqrt( float number )
2. {
3. long i;
4. float x2, y;
5. const float threehalfs = 1.5F;
6.
7. x2 = number * 0.5F;
8. y = number;
9. i = * ( long * ) // evil floating point bit level hacking
10. i = 0x5f3759df - ( i >> 1 ); // what the fuck?
11. y = * ( float * )
12. y = y * ( threehalfs - ( x2 * y * y ) );
13. // 1st iteration
14. // y = y * ( threehalfs - ( x2 * y * y ) );
15. // 2nd iteration, this can be removed
16.
17. #ifndef Q3_VM
18. #ifdef __linux__
19. assert( !isnan(y) ); // bk010122 - FPE?
20. #endif
21. #endif
22. return y;
23. }

Il Carmack magic number!!!! Dio mio… è diabolico. Respect!


default:
dist1 = dist2 = 0; // shut up compiler
break;

Questo è esilarante…

Un codice da stampare e incorniciare, solo leggendo un paio di files sto capendo un sacco di cose… e per 3/4 è C ..

Comments 3 Comments »

Ormai è solo questione di tempo… il borgware installato finora ha i minuti contati.

PS: a chi indovina la citazione del titolo una birra pagata

Comments 1 Comment »

Nooooooooooooooooooooooooooooooooooooooooooooooooooo!!!!!

Comments 2 Comments »

Piani delle vacanze:
Finire di scrivere la tesi e in seguito leggere un paio di libri che sto aspettando da amazon, tra cui “The C++ Programming Language” , “Real-time Rendering” , “OpenGL Shading language” , “The Hitch-hiker’s Guide to the Galaxy” , “The Negative”. Spero di poter tirare fuori dal cilindro un buon lavoro, dovrei attestarmi sulle 120 pagine ma ancora non ho preparato tutte le figure. Dai libri che leggerò spero di ricavare un buon background in quel della programmazione e computer vision, fa sempre comodo dopotutto…

Per chi volesse contribuire, metto un link alla wishlist su amazon, se proprio non sapete dove buttare i soldi :)

Ciaux.

PS: è possibile che metta sul sito qualche eseguibile che fa figure strane mentre sperimento gli shaders!

Comments 4 Comments »

Bah, mi sta calando la carogna sulle spalle, è il momento di mettere qualche immaginetta delle mie ultime fatiche.

VoxelSet grezzo
Partendo da questo agglomerato di cubetti, rappresentanti un campionamento tridimensionale dello spazio, si ottiene questa:

VoxelSet meshato
una bella mesh del nostro soggetto. Mesh di tipo progressivo, non ci sono doppi triangoli e doppi vertici. L’inserimento dei vertici è fatto sotto controllo di hash-tables (con cefficienti “culici”, nel senso che ho avuto culo a trovare i numeri magici per l’hash).
Fatta questa possiamo mettere dei bei colori alle faccette del triangoli, in funzione della loro normale, uscente:

VoxelSet shadato
Sballloooooooo…

La nostra, anzi no, MIA ( voi non avete fatto un cazzo finora :-) ) bella mesh sa anche collassare i triangoli su si vertici adiacenti, analizzando l’area dei triangoli e mantenendo un vincolo di forma per quanto le è possibile…

VoxelSet semplificato
VoxelSet semplificato

Ah.. dicevamo delle normali uscenti.. eccole!
VoxelSet peloso

Una volta semplificata la mesh, abbiamo meno triangoli e vediamo se riusciamo a sistemare un pò chi sta davanti e chi dietro. Il prodotto scalare dei versori della normale e dell’asse ottico della camera , se minore di zero, ci dice che il triangoli a cui appartiene la normale ci mostra il “culo”, facendo un backface culling iniziamo a disegnare sull’immagine originale i triangoli visibili.
Come si vede alcuni triangoli che dovrebbero scomparire rimangono, è il caso di implementare una funzione di visibilità… cosa che devo ancora fare. Una volta terminato sarà possibile mettere le texture sui triangolini, blendando quei triangoli visti da più camere con un peso proporzionale alla area del triangolo 2D riproiettato. Per quelli invisibili a tutte le camere beh.. si blendano tutte le texture, peso uguale stavolta, o magari inversamente proporzionale all’area… devo pensarci bene e fare delle prove.
Qualcuno è in grado tra l’altro di farmi un corso sul projective mapping?
Visibilità parziale

Comments 10 Comments »

Per fare un grafico
ci vogliono i dati
per fare i dati
ci vuole il programma
per fare il programma ci vuole un semestre
….

Possibile che per fare un grafico debba fare 10000 esecuzioni per ogni livello di rumore ad incremento del numero di dati a disposizione? Cazzo, non posso mica mettere solo un grafico nella tesi, si sa, le figure sono importanti (anche quelle di merda), soprattutto per guadagnare pagine ( interlinea 1,5 e corpo 12, openright e via).

Tecnicismi vari
Onde evitare di perdermi ore macchina nel nulla sto mettendo tutti i dati in un bel database, consiglio sqlite 3 , è un database su file, non è un vero e proprio server database , però è ACID e supporta le transazioni, creazione di tabelle temporanee e tante altre belle cose. Se vi capita di dover salvare molti dati potrebbe fare al caso vostro. Esiste anche una bella classettina di astrazione, sqlite3-plusche semplifica tutto e permette di lavorare con sqlite in modo molto simile a quando si usano le ADO-DB. Tecnicismi per addetti ai lavori, ma sempre utili secondo me, per semplificarsi la vita quando si è di fretta. E io sono di fretta!
So che a qualcuno le basi di dati stanno poco simpatiche ma in questo caso risultano molto utili, ti organizzi i dati come meglio credi e lanci le tue 60 ore di simulazioni, in batch file, poi quando hai tempo e con mooolta calma fai un bel richiamo dei dati registrati con delle query ad-hoc e plotti i dati… troppe volte sento di simulazioni durate 2 giorni andate a puttane perchè un determinato programma andava in out of memory…

Comments 4 Comments »

Come ho fatto ad ottenere il bel colore rosso al posto del blu classico con cui si installa wordpress? In due parole, andate sul sito dell’autore qui e scaricate il template di photoshop, modificate i colori del titolo e salvate le immagini modificate. Aprite la cartella wp-content/themes/default/ e modificate style.css a piacimento, per i colori nei link e dimensioni del test nonchè le fonts. Salvate il tutto e buona customizzazione.
Ovviamente chi conosce php può anche addentrarsi nel customizzare meglio i template delle pagine, dei post, dei commenti.

Edit: ora c’è pure la mia faccia sull’immagine…. stay tuned, more customization in progress!!

Basta avere tempo e voglia!

Comments 4 Comments »