Piero V.

Bullet e pendii

Se avete avuto a che fare con la libreria per la simulazione della fisica Bullet e dei pendii (colline, rampe), sarete sicuramente impazziti cercando di risolvere il problema per cui il corpo non sta fermo nel pendio.

È capitato anche a me, così dopo ore perse dietro, cambiando appena una parola chiave su google ho trovato la soluzione: come riportato qui, dovete fare così:

World->getDispatchInfo().m_allowedCcdPenetration = 0.0001f;

dove world è il vostro Bullet World.

Se usate Panda3D per ottenerlo dovete fare world->get_world().

Spero sia di aiuto a qualcuno!

Grazie Vodafone!

La Vodafone mi ha proprio reso felice.

Visto che ho già la Zero Limits vecchia mi regalano Smart Zero Limits+, la quale comprende SMS illimitati verso Vodafone, 500MB di internet mensili il tutto a 7€ anziché a 10!

Mi basta fare una ricarica da 10€ e me la posso attivare gratis anziché a 8€ e mi regalano 10€, così posso cambiare il mio piano telefonico e guadagnare anche 2€. Inoltre ho contato che il risparmio sarà di 1,50€ al mese.

Che dire? Grazie Vodafone! E quella volta lì ho fatto bene a rimanere con la vecchia Zero Limits, altrimenti non avrei avuto quest’offerta.

XML e C++

Mi sto divertendo parecchio a lavorare con C++.

Oggi mi sono posto un altro problema: mi serviva un formato abbastanza comodo da leggere con cui si potesse anche dare un certo ordine alle informazioni.

Allora ho pensato che la scelta migliore sarebbe stata l’XML: non è facilissimo da leggere ma esistono parecchie librerie che svolgono questo compito. Da scrivere invece non è il massimo, ma non mi serviva il supporto alla scrittura.

Così mi sono messo a cercare e ho trovato un po’ di informazioni: esistono due tipi di librerie, quelle SAX e quelle DOM.

In realtà conoscevo entrambi questi concetti abbastanza superficialmente, ma in parole povere, se per voi è più importante trovare un certo nodo è meglio il DOM.

Così dopo un po’ ho trovato questa libreria: TinyXML.

Non è affatto male, anzi! Da un primo approccio mi pare anche semplice da usare.

La licenza poi è fantastica, perché è la Zlib/libpng, perciò è molto libera.

E un’altra cosa magnifica è che questa libreria è anche capace di salvare i file XML modificati, perciò penso di estendere il suo uso anche a dove avevo pensato di usare altri sistemi.

Risolviamo i Sudoku... con C++

Da quando ho imparato a fare i Sudoku mi sono sempre chiesto come fare un programma che li risolvesse 😊

La cosa non è difficile, soprattutto per quelli semplici, che ero già riuscito a risolvere con PHP 😊

Tuttavia non ero andato più avanti perché non avevo considerato la risoluzione tramite brute force, invece recentemente, anche per consolidare la mia conoscenza di C++, mi sono messo e ho fatto questo programmino.

In pratica l’algoritmo di risoluzione si divide in due parti: la prima con un loop crea le possibili soluzioni per ogni cella e le inserisce fino a quando il sudoku non viene più modificato. Quindi se ci sono celle ancora vuote (con possibili soluzioni) tenta il brute force, altrimenti esce. Il brute force è implementato tramite ricorsione: prima ordino le soluzioni in modo da partire dalla cella con meno soluzioni possibili, quindi prendo le soluzioni una ad una e provo a vedere se impostandole ce la faccio a risolvere il sudoku. Quando ce l’ho fatta termino il programma.

Se volete il sorgente, eccolo qui: sudoku.cpp.

L’ho provato su Linux e andava.

Penso che si possa migliorare il programma ma per il momento mi va bene così 😊

Aggiornamento 31/05/2012: aggiunto un meccanismo di controllo, perché prima con certi sudoku difficili il brute force falliva.

Fsck e Ext4

Quando ho formattato il mio computer ho scelto di usare il filesystem Ext4, mentre prima avevo Ext3.

Beh, devo dire che questo aggiornamento ha portato una bellissima conseguenza: la velocità di fsck.

Prima, con lo stesso disco, stessi dati solo che in ext3 ci mettevo 10 minuti, ora con ext4 meno di 30 secondi.