Piero V.

Basta

Tramite il Superbosca sono potuto venire a conoscenza di questo video.

Panda3D per Debian Sid

Dopo aver studiato un po’ Blender e aver avuto qualche difficoltà ad ottenere esattamente quello che volevo con la Game logic ho deciso di provare un altro motore per videogiochi: Panda3D.

Panda3D è un motore rilasciato sotto la BSD Modified license e tra i suoi contributori si può citare la Walt Disney. Le sue API consentono di scrivere videogiochi in Python e in C++.

Come mesh da quanto ho capito - devo ancora approfondire per bene la questione - ha un formato suo (l’egg) ma è compatibile anche con X, 3ds ed esiste un plugin per esportare i file da Blender.

Perciò come caratteristiche promette bene.

Però c’è un problema: per Debian esiste il pacchetto solo per la Squeeze. E le dipendenze hanno software che include la versione nel nome del pacchetto e nei file stessi, perciò anche modificando il pacchetto non si ottiene un risultato utilizzabile (ho provato io stesso).

Così me lo sono ricompilato. Però la versione 1.72 (la stabile) non funzionava, così ho dovuto usare quella csv.

Per compilarla ho utilizzato il metodo makepanda/makepanda.py --everything --installer. Pur avendo specificato everything però alcune cose, tra cui ffmpeg sono state omesse. Invece con installer ho ottenuto un file deb che vi linko.

Un’ulteriore nota prima di scaricare e installare il file: ho compilato e installato anche bullet, una libreria per la fisica e anche Panda è configurato per usarla, perciò installate anche quel file. Purtroppo ho dovuto usare checkinstall e perciò non so le corrette dipendenze.

Ecco i link: bullet_2.79-1_i386.deb e panda3d1.8_1.8.0_i386.deb.

Spero vi possano tornare utili.

Chrome supera Firefox in diffusione

Dicembre e il 2011 sono appena finiti, però come al solito alla fine di un periodo si ricapitolano le notizie importanti.

Ce n’è una di inizio dicembre che mi era sfuggita: secondo Statcounter Chrome avrebbe superato Firefox come diffusione di pochi punti percentuali, si parla di un 25,69% contro un 25,23%.

Solitamente le statistiche non mi interessano, tuttavia questo fatto mi rattrista leggermente.

Ammetto che Chrome è un buon browser molto veloce etc., però ha almeno due grandi problemi.

Il primo è la privacy: la barra unica di Chrome è un’arma a doppio taglio: sembra che invii ciò che si digita direttamente a google.

Comunque è possibile superare il problema utilizzando Chromium.

Il secondo e grande problema è che Chrome, che si fa tanto amico degli standard, in realtà non lo è.

Un esempio è l’inserimento di colori in esadecimale, possibile anche senza #. Oppure il sito delle prenotazioni del cinema di una città vicino al paese dove abito funzionava solo con Internet Explorer perché il suo javascript utilizzava proprietà non standard del DOM.

Insomma, Google sta diventando la nuova Microsoft che grazie alla sua diffusione cerca di stabilire i propri standard.

Socket e thread in Python

Chi è interessato a sviluppare un’applicazione che utilizzi in un modo anche semplice la rete deve spesso documentarsi sulle socket, in qualsiasi linguaggio di programmazione, anche per il python.

In questo campo ho lavorato più di una volta, però mi sono limitato alla creazione di socket con una sola connessione alla volta.

Tuttavia non è molto utile: penso che la maggior parte delle applicazioni pratiche richiedano più di un client connesso e “addirittura” la possibilità di dialogare tra di loro.

Quindi intervengono i thread.

Non so darvi la spiegazione tecnica di cosa siano, però so darvi una spiegazione pratica: i thread permettono di eseguire contemporaneamente più operazioni, senza però creare un altro processo. Il vantaggio è che si ottiene il famoso multi tasking.

Documentandomi ho trovato che uno degli svantaggi è che non avviene il controllo sull’uso contemporaneo di alcune risorse come file, tuttavia in questo caso usiamo solo la RAM e perciò non ci poniamo il problema.

In python usare i thread è abbastanza semplice: una volta importato il modulo threading o solamente la classe Thread da esso, bisogna estenderla e fare una funzione chiamata run in cui bisogna mettere il codice da eseguire. … [Leggi il resto]