Pagina 1 di 8
Porting C++ da Visual Studio al GCC
Ho da poco acquistato un MacBook e volevo provare a compilare un programma in C++ che sto scrivendo anche sotto Mac con XCode. Io credevo che il codice fosse completamente portabile, perchè non ho utilizzato alcuna strana API di Windows e inoltre ho sviluppato tutta l'interfaccia ed altre parti utilizzando le Qt. Peccato che quando ho provato a compilare il tutto, mi sono usciti un sacco di errori. A quanto sembra il gcc non digerisce molto i template e bisogna avere alcune accortezze.
Prendiamo ad esempio questo pezzo di codice che Visual Studio compila senza problemi:
//classe punto
template<class T>
class Point
{
public:
Point(const T& x_, const T& y_, const& T& z_) : x(x_), y(y_), z(z_)
{
}
T x, y, z;
}
//
//
//
//un metodo qualunque che usa un vettore di punti
template<class T>
void myMethod(const vector<Point<T>>& points)
{
for(vector<Point<T>>::const_iterator iter = points.begin(); iter != points.end(); ++iter)
{
const Point<T>& p = *iter;
//fai qualcosa
}
}
La classe Point rappresenta semplicemente un punto nello spazio con coordinate che possono essere di vari tipi (es. int o float). Il metodoto myMethod prende come parametro un vettore di punti e fa un'iterazione per elaborarli in qualche modo.
Il primo problema che si incontra è che al gcc non piace la doppia chiusura del template con >>, ma bisogna mettere uno spazio tra i 2 >. Cercando in rete ho inoltre scoperto che è meglio utilizzare la parola chiave typename invece di class nella definizione dei template. Corretti questi due problemi il codice è il seguente:
//classe punto
template<typeame T>
class Point
{
public:
Point(const T& x_, const T& y_, const& T& z_) : x(x_), y(y_), z(z_)
{
}
T x, y, z;
}
//
//
//
//un metodo qualunque che usa un vettore di punti
template<typename T>
void myMethod(const vector<Point<T> >& points)
{
for(vector<Point<T> >::const_iterator iter = points.begin(); iter != points.end(); ++iter)
{
const Point<T>& p = *iter;
//fai qualcosa
}
}
In teoria questo doveva funzionare, ma purtroppo mi dava ancora degli errori che a prima vista erano incomprensibili, cioè:
Expected ';' before 'iter'; 'iter' was not declared in this scope
E questo è un vero mistero, però si può risolvere definendo con la parola chiave typename il tipo iteratore. Il codice corretto e compilabile anche col gcc diventa così:
template<typename T>
void myMethod(const vector<Point<T> >& points)
{
typedef typename vector<Pont<T> >::const_iterator PVCIterator;
for(PVCIterator iter = points.begin(); iter != points.end(); ++iter)
{
const Point<T>& p = *iter;
//fai qualcosa
}
}
Sinceramente non ho ben capito ancora adesso quale sia il problema, ma del resto non è che io conosca perfettamente tutte le varie sfumature del C++... Bè, a Visual Studio piaceva... Ora non mi resta che andare a inserire un sacco di typedef ovunque... gran lavoraccio...
Domenica 25 Ottobre 2009, 10:03:05 GMT + 1:00
Categoria: Informatica
Altri puzzle panoramici
E' ormai da qualche tempo che ho smesso di fare puzzle. Per un po' almeno... Ormai non ho quasi più posto dove appenderli...
Questi che seguono sono gli ultimi che ho fatto e che non avevo ancora pubblicato. Sono dei puzzle da 1000 pezzi in formato panoramico che avevo comprato insieme a questi qualche tempo fa.
Cavalli in corsa, 1000 pezzi.
Thomas Kinkade, Il faro (The Guiding Light), 1000 pezzi.
Lago Bianco sul Monte Bianco, 1000 pezzi.
Il primo in realtà l'ho fatto già qualche tempo fa e l'ho regalato a mia sorella per il suo compleanno. Infatti l'ho anche fatto incorniciare, ha il vetro e se notate si fede anche il fotografo riflesso. Chi mai sarà?
Sabato 05 Settembre 2009, 10:25:54 GMT + 1:00
Categoria: Puzzle
Puzzle da 13200 pezzi? No problem!
Visto che alcune persone mi hanno chiesto dei suggerimenti su come realizzare e sistemare un puzzle di grandi dimensioni, ho deciso di fare una piccola guida in proposito.
Questa guida si basa sul lavoro che ho fatto per il puzzle da 13200 pezzi che ho fatto recentemente, ma si può adattare anche a puzzle di dimensioni un po' inferiori o superiori. Se siete interessati leggetevi tutta la guida prima di procedere perchè le operazioni descritte non sono proprio in ordine esatto...
Incollare il puzzle
Incollare il puzzle è sicuramente la parte più delicata, date le dimesioni dello stesso, ed è necessario almeno
essere in due per evitare di combinare qualche danno. Io ho incollato il puzzle su un compensato multistrato
di 1.5 cm di spessore. Questo spessore è un buon compromesso per evitare sia un peso eccessivo, sia deformazioni
del compensato. E' bene acquistare un compensato leggermente più grande (1 cm va bene) delle dimensioni indicate
sulla confezione, poichè spesso il puzzle è un po' più grande. Inoltre c'è un po' di gioco tra i pezzi, e su
un puzzle di quasi tre metri si fa sentire. E poi la parte di compensato in più verrà coperta dalla cornice.
Per prima cosa assemblate le varie parti di puzzle capovolte (di solito un puzzle di queste
dimensioni è diviso in più parti) direttamente sul pavimento. Poi inumidite un lato del compensato con uno spuzzatore
e spalmate della colla vinilica diluita con acqua sullo stesso con un pennello. Per avere un buon risultato
è bene diluire un po' la colla per riuscire a spalmarla agevolmente, altrimenti si secca troppo rapidamente. Inoltre,
come ho già detto, è bene essere almeno in due già in questa fase, perchè bisogna essere abbastanza rapidi.
Spalmata la colla, capovolgete il compensato e appoggiatelo delicatamente sopra al puzzle. Non è certo semplice riuscire a
rimanere perfettamente allineati al puzzle, viste le dimensioni del compensato, anche perchè questo tende a fare
un po' di pancia. Un consiglio è quello di avere un bel po' di spazio attorno al puzzle per potersi muovere
agilmente. Fatto questo, sentitevi liberi di passeggiare sul compensato per fare in modo che il puzzle si incolli bene.
Non tenete troppo a lungo il puzzle in questa posizione, perchè la colla tende a filtrare tra i pezzi e c'è il rischio che
si incolli al pavimento. Pochi minuti sono più che sufficienti affinchè il puzzle rimanga attaccato al compensato.
Capovolgete quindi il puzzle e laciatelo a terra per un po', finchè la colla non si asciuga. Pulite subito con uno
staccio leggermente umido (ma non troppo e con acqua fredda!) la colla che eventualmente è filtrata tra i pezzi.
Quando il puzzle è ben incollato potete applicare direttamente sulla sua superficie della colla speciale per puzzle
come protezione.
La cornice
Per la cornice ho utilizzato dei listelli con sezione ad 'L', che in genere si utilizzano (credo) per coprire
gli angoli dei muri. Li ho semplicemente tagliati a 45° e li ho inchiodati al compensato, utilizzando dei chiodi
piccoli, applicati all'esterno in modo che non si vedessero. La cornice è necessaria per nascondere eventuali disallineamenti
tra il compensato e il puzzle.
Molti mi hanno chiesto se ho messo un vetro sopra al puzzle. La risposta è no. Un po' per le dimensioni esagerate.
E poi anche perchè nessuno dei miei puzzle ha un vetro, nemmeno quelli più piccoli, e non si sono mai rovinati.
Appendere il puzzle
Il peso del puzzle non ci permette di appenderlo con due chiodi come se fosse un semplice quadro.
Per prima cosa ho intagliato tre cavità nella parte alta del retro del compensato (agli angoli e al centro).
Poi ho applicato con delle viti delle "piastrine" (non saprei come chiamarle) metalliche sulla parte superiore
delle cavità, in modo che le coprissero parzialmente. Le foto qua sotto aiutano a capire. Conviene effettuare queste
operazioni prima di incollare il puzzle in modo che non si rovini.
Cavità intagliate nel legno.
Quindi ho messo tre tirafondi nel muro con dei tasselli in corrispondenza dei buchi fatti sul compensato. In questo modo si può aggangiare il quadro al muro.
Tassello e tirafondo.
Consigli utili
Mettere insieme un puzzle di queste dimensioni è un lavoro piuttosto lungo che richiede un bel po' di tempo e pazienza. Vi lasco qualche consiglio che può essere utile per sveltire un po' l'assemblaggio. Questi consigli valgono anche per puzzle più piccoli.
- Prima di tutto girate tutti i pezzi e disponeteli su una superficie piana in modo che non si sovrappongano. Questo dovrebbe essere ovvio, però ho visto gente che faceva un puzzle lasciando dei pezzi ancora nel sacchetto. Lo so che è un lavoraccio noioso, però è fondamentale per avere sempre tutti i pezzi sotto gli occhi.
- Quando girate i pezzi, già che ci siete, divideteli anche per zone. Ad esempio fate un gruppo con tutti i pezzi dello sfondo, un altro con tutti i pezzi del soggetto principale ecc... Ovviamente questo dipende un po' dal soggetto rappresentato dal puzzle, magari a volte è molto difficile capire a quale parte appartiene un certo pezzo. Quindi osservate bene la figura e cercate di capire se si può facilmente fare qualche suddivisione.
-
Nei puzzle molto grandi (ma a volte anche in quelli piccoli, dipende un po' dalla marca) la forma dei pezzi
segue uno schema ricorrente. Questo è dovuto al fatto che viene utilizzata più volte la stessa maschera per tagliare
i pezzi. Ad esempio il puzzle da 13200 pezzi che ho fatto era diviso in tre parti che avevano
la forma dei pezzi esattamente uguale. Si può quindi sfruttare questo fatto per ridurre drasticamente i tempi di realizzazione.
Una volta assemblata una parte, per realizzare le successive ci si può aiutare "copiando" la parte già fatta
per sapere in anticipo la forma dei pezzi.
In genere esistono 6 forme fondamentali di pezzi, mostrate nella figura qui sotto.
Se abbiamo visto che esiste uno schema ricorrente, in particolare per le parti più difficili, come ad esempio lo sfondo, dove la forma del pezzo è quello che conta più che il colore, conviene dividere i pezzi anche per forma, nei 6 tipi indicati, e disporli ordinatamente, come su una griglia, girati tutti nello stesso senso. In questo modo, conoscendo già la forma del pezzo, potrete cercare in un insieme di pezzi ridotto, ed inoltre, essendo disposti ordinatamente, si riesce ad individuare il pezzo giusto con una rapida passata.
6 tipi di pezzo.
Giovedì 13 Agosto 2009, 15:03:39 GMT + 1:00
Categoria: Puzzle
Bordighera e dintorni
Sono tornato da un paio di giorni dalla mia breve vacanza a Bordighera. Visto che ero da quelle parti ho girato un po' la zona e sono andato a Dolceacqua, alla Villa Hanbury, ai Balzi Rossi e a Monaco.
Qui sotto ho messo qualche foto che ho scattato in giro...
Bordighera, chiesa di Sant'Ampelio (e che nome è mai questo?!)
Dolceacqua è un piccolo paesello con un castello e un bel ponticello. E ci sono dei ristoranti in cui si mangia davvero bene :) ...
Dolceacqua, castello.
Dolceacqua, ponte.
La villa Hanbury invece è una villa appartenuta appunto ad un certo Hanbury (un signorotto inglese da quel che ho capito) in cui c'è un giardino botanico veramente grande e vario, che si estende da sopra la villa fino al mare. Il giardino è tutto su un pendio; si parte dall'alto e si scende fino al mare... Peccato che poi bisogna risalire, con un dislivello di 100 metri...
Villa Hanbury.
Villa Hanbury, giardino.
I Balzi Rossi invece sono delle caverne che si trovano lungo la costa e nelle quali sono stati trovati diversi reperti di epoca paleolitica, compresa anche un'incisione rupestre, che però non si vede o non è segnalata... Almeno, io non l'ho proprio vista...
Balzi Rossi.
Di Monaco credo non ci sia nulla da dire... Non avevo mai visto tante Farrari e Lamborghini tutte insieme. E naturalmente ho passeggiato per le vie del gran premio!
Monaco, panorama.
Monaco, casinò.
A Bordighera, il primo giorno (una fortuna sfacciata
), ho trovato una piacevole sorpresa.
Pensate che mi sono beccato il concerto del grande Ian Paice
(per chi non lo sapesse è il batterista dei Deep Purple, nonchè uno dei più grandi batteristi di sempre) che suonava
con un gruppo sconosciuto nato a Ventimiglia, i Running Birds. Sti qui non erano neanche male come musicisti, peccato che
hanno anche fatto qualche loro canzone, e come compositori non sono un granchè...
Ian Paice e i Running Birds.
Giovedì 06 Agosto 2009, 10:47:12 GMT + 1:00
Categoria: Varie
2 puzzle panoramici
Dopo il mega puzzle da 13200 mi ero ripromesso di smettere per un po' di fare puzzle. Peccato però che alcune abitudini diano dipendenza..! Quasi per caso ho trovato dei puzzle in formato panoramico che mi piacevano e così non sono riuscito proprio a non prenderli...
Eccone qua un paio. Sono 2 puzzle da 1000 pezzi con cornice incorporata.
Branco di giraffe (Giraffenherde), 1000 pezzi.
Golfo toscano (Toskana Bucht), 1000 pezzi.
Domenica 05 Luglio 2009, 14:33:31 GMT + 1:00
Categoria: Puzzle
Band of Thunder
Questa volta forse ho un po' esagerato. Dopo una serie di puzzle dalle ridotte dimensioni mi sono impegnato e ho messo insieme il puzzle qui sotto rappresentato.
Band of Thunder, 13200 pezzi.
E' un puzzle da 13200 pezzi, con dei cavalli che corrono. Il titolo del quadro è "Band of Thunder", di un certo James Hautman. Le dimensioni sono ragguardevoli, 292.5 x 135 cm, tanto che non sono riuscito a fare una foto in cui ci stesse tutto intero (non potevo allontanarmi di più date le ridotte dimensioni della stanza). La foto che vedete sopra è un collage di 6 foto.
Questo è il puzzle più grande che io abbia mai fatto, anche se una volta mi ero avvicinato con un puzzle da 12000 pezzi. Ci ho messo circa 6 mesi per mettere insieme tutti i 13200 pezzi.
Ora ce l'ho qui davanti, che riempie una parete del mio "ufficio".
Ecco un'altra foto che rende l'idea dell'imponenza.
Band of Thunder, 13200 pezzi.
Giovedì 18 Giugno 2009, 18:56:38 GMT + 1:00
Categoria: Puzzle
Ad Hoc 3D Solutions
Ieri, martedì 26 maggio 2009, è nata Ad Hoc 3D Solutions srl, ditta che fornisce e sviluppa soluzioni innovative per acquisire, gestire, distribuire e condividere informazioni 3D. La società ha sede a Bressan, in provincia di Aosta.
Perchè vi dico questo? Perchè io sono uno dei soci fondatori, insieme ai miei 4 amici, colleghi e ora soci. Anche se mi sembra un parolone, ora posso essere considerato un imprenditore...
Presto avremo anche un sito internet, così potrete vedere che belle cose che facciamo.
Mercoledì 27 Maggio 2009, 13:22:40 GMT + 1:00
Categoria: Varie
Braid
Una recensione
mi ha convinto ad acquistare un giochino, Braid.
Si tratta di un gioco molto semplice che mescola due generi, il platform 2D e il gioco di strategia.
Lo scopo del gioco è quello di salvare la solita principessa, in stile Super Mario; per fare questo però bisogna esplorare
vari mondi e cercare dei pezzi di puzzle
(ora capite xchè l'ho comprato
).
La particolarità del gioco sta nel fatto che si può tornare indietro nel tempo, tipo Prince of Persia, ma con una differenza
fondamentale: qui il tempo è davvero relativo, nel senso che quando si torna indetro nel tempo non è detto che tutti gli oggetti
nel mondo tornino indetro con te. E' proprio giocando col tempo che è possibile raggiungere i pezzi del puzzle altrimenti inaccessibili.
Questo rende il gioco molto originale e veramente geniale.
L'unica pecca che possiamo trovare a questo gioco è che graficamente è piuttosto povero, anche se ha un suo stile. L'omino che guidiamo nell'avventura è fatto veramente male (Rayman più di 10 anni fa era fatto molto meglio). Complessivamente però il giudizio è positivo, anche per il prezzo decisamente abbordabile (circa 13 euro).
Venerdì 22 Maggio 2009, 13:33:41 GMT + 1:00
Categoria: Giochi
Reggia di Venaria
Ieri mi sono preso un giorno di vacanza e sono andato a visitare la reggia di Venaria.
All'interno della reggia vi sono esposti quadri e vari oggetti che illustrano la vita di corte dell'epoca. In alcune sale vengono proiettate in modo piuttosto originale delle scene di vita interpretate da attori. Devo dire che sta gente si trattava bene! Peccato che all'interno della reggia, escluso un salone e la cappella, non si possano fare foto. Eccone un paio che sono riuscito a fare:
Galleria Grande
Fontana del Cervo
Nelle Scuderie Juvarriane, invece, è ospitata in questo periodo una mostra sui tesori sommersi dell'antico Egitto. Sono
esposti quindi dei reperti che sono stati trovati in fondo al mare. Questa mostra è decisamente ben riuscita,
soprattutto per la scenografia molto particolare. Anche qui non si potevano fare foto
.
All'esterno ci sono i vari giardini, dove si trovano anche delle bizzarre forme d'arte di un certo Giuseppe Penone, di cui non faccio alcun commento (io l'arte moderna non la capisco sinceramente, a voi il giudizio). Eccone alcune:
Povera pianta sotto un macigno
.
Pianta capovolta che va sottoterra
.
Tronco di bronzo. Sullo sfondo la reggia.
C'era anche il cervello di massi, ma ve lo risparmio!
Mercoledì 15 Aprile 2009, 13:59:12 GMT + 1:00
Categoria: Varie
Pianoforte
Ho fatto il grande passo. Circa una settimana fa mi sono regalato un pianoforte. E' da una vita che lo desideravo. E poi è da più di un anno che prendo lezioni e qualcosina ho imparato. Per ora mi esercitavo su un pianoforte elettronico, ma uno vero è tutta un'altra cosa. Mi sarebbe piaciuto avere un bel pianoforte a coda, ma chiaramente è un po' impegnativo come acquisto, un po' per lo spazio, un po' per il costo... e poi date le mie scarse abilità non credo valesse la pena.
Questo va più che bene per me. E' un Rieger Kloss usato, ma tenuto come nuovo. Il mobile è praticamente intatto, non ha un graffio, e la meccanica sembra nuova. Chi ce l'aveva l'ha usato pochissimo.
Facciamo un giochino. Chi indovina di che pezzo è lo spartito che compare nella foto vince un bel premio!







