Piero V.

Buon 2012

Auguro a tutti voi un buon nuovo anno, forse l’ultimo 😀

(in realtà non ci credo che finisca il mondo quest’anno)

Plugin Redirect (v1.7) [Flatpress]

I’ve updated the Redirect Plugin.

This plugin allow you to use an entry like a static page: the entry has a short URL that is decided by you but it has the comments feature.

It’s very simple to use: when you modify or create a post there is, below the textarea, a field where you insert the redirect name (composed by alphanumeric chars and others such ._-).

Then you can decide to enable or not the comments with the checkbox.

In this version I’ve added the possibility of doing a HTTP redirect, that is more SEO friendly.

You can also manage redirects from its administration panel: go to Administration → Plugins → Redirect. Here you can also delete them.

From that panel you can create more redirect for one entry but when you save the entry you can keep just one redirect, the other ones will be delted.

Finally in this version I’ve also added the possibility to use also the static page style link. For example, if I have a redirect called test but I haven’t a page with that name, the plugin will handle the urls mysite.tld/test/ or mysite.tld/?page=test as a redirect.

However this feature is disabled by default. To enable id, go to fp-plugins/redirect/plugin.redirect.php and change the value of the constant at line 18 to true.

I release the plugin under the GNU GPL v2 License. The icons are taken by the old Tango Theme for Debian.

Download: redirect_v1.7.tar.gz.

Blender: ruotare la camera col mouse

Continuano i miei esperimenti con Blender.

Una delle mie più grandi domande riguardanti la game mode è: come fare per spostare la telecamera col movimento del mouse?

Beh, mi sono messo ad affrontare questo problema.

Il metodo che io utilizzerei è quello di analizzare il movimento del mouse e quindi di applicarlo alla rotazione.

Per fare ciò è mia intenzione associare uno script python al controller mousemove.

Ecco un prototipo di codice, con i commenti che spiegano cosa fa questo codice:

# Importa le librerie basi: la bge e classi utili da mathutils
import bge
from mathutils import *

# Comincia la funzione main
def main():

    # Prende l'oggetto del controller
    cont = bge.logic.getCurrentController()
    # Prende l'oggetto a cui il controller è applicato
    own = cont.owner
    # Per comodità ci salviamo i globalDict come obj
    obj = bge.logic.globalDict

    # Prendiamo il movimento del mouse
    mousemove=cont.sensors['Mousemove']
    pos=mousemove.position

    # Se è il primo movimento dobbiamo inizializzare i salvataggi dei movimenti
    if not 'mousepos' in obj:
        obj['mousepos']=pos

    # Salviamo il movimento
    obj['oldmousepos']=obj['mousepos']
    obj['mousepos']=pos

    # Troviamo le variazioni
    deltax=obj['mousepos'][0]-obj['oldmousepos'][0]
    deltay=obj['mousepos'][1]-obj['oldmousepos'][1]

    # Creiamo il vettore ed eseguiamo la rotazione lungo l'asse delle z (globale)
    rot=Vector((deltay*0.005, 0.0, -deltax*0.005))
    own.applyRotation(rot, False)

    # Creiamo il vettore ed eseguiamo la rotazione lungo l'asse delle y (locale della camera)
    rot=Vector((-deltay*0.005, 0.0, 0.0))
    own.applyRotation(rot, True)

# Esegue main, ogni volta che il mouse viene mosso
main()

Il risultato è ancora molto primitivo, ma sempre meglio che nulla 😉

In alcuni giochi come i FPS questo movimento è essenziale e andrebbe definito meglio, però questo mi pare già un inizio non malvagio.

Bisognerebbe aggiungere un po’ di controlli per vedere che il mouse non vada fuori dallo schermo e sistemare un po’ i coefficienti della rotazione.

File system universale

Leggendo i recenti guai del SuperBosca mi è tornata in mente una cosa di cui avrei voluto scrivere da tempo: il problema dei file system.

Tanto per cominciare, bisogna chiarire cos’è un file system. Diciamo - ma non è assolutamente una definizione - che è come un sistema operativo gestisce i dati in un supporto di memorizzazione. Per esempio come sono salvati i privilegi, le informazioni come la data di modifica e il contenuto stesso.

Al giorno d’oggi esistono numerosi file system, tra i più diffusi FAT, NTFS, HFS, Ext e molti altri ancora.

Non esiste uno standard ed ogni sistema operativo ne supporta un numero maggiore o minore.

Tuttavia in assenza di uno standard ufficiale doveva pur stabilirsi uno standard non ufficiale: il FAT32.

Il FAT è un filesystem inventato da Microsoft. La sua primissima versione fu introdotta col Basic. Anche se si evolse, rimangono numerosi limiti anche nella versione più recente, la FAT32. Per esempio la dimensione massima di un file è 4GB. Per superare tutti questi problemi la Microsoft inventò NTFS.

Ovviamente nei sistemi operativi Windows non ci sono problemi, col Mac non ho mai provato però mi pare di aver capito che qualche problema invece ci sia e Linux lo può leggere con Fuse ma mandando richiedendo uno sforzo della CPU.

Ma allora qual è il problema? Abbiamo il supporto dei file grandi con questo filesystem.

Il problema sono i device embedded. Alcuni lo supportano solo in lettura, altri ancora non possono né leggerlo né scriverlo. Il problema è molto grave: io per esempio ho un disco esterno da 1TB ma per farlo leggere dall’homebrew channel della Wii e dalla TV ho dovuto tenerlo in FAT32. E la limitazione dei 4GB al giorno d’oggi, anche con questi device, soprattutto con le televisioni fullhd, risultano molto ridicole.

Come mai non è possibile implementare un buon supporto all’NTFS? Immagino per i brevetti e licenze varie.

Se avessimo un file system standard e privo di questi vincoli, allora sarebbe meglio per tutti.

Nuova grafica [returns]

Finalmente mi sono deciso anch’io a fare una nuova grafica.

Quella prima mi aveva stufato ed aveva l’aria più di un gioco con le alpha che di una grafica.

Così ecco qui la mia nuova creazione.

Ho voluto tenermi sulle tinte neutre, quindi sul grigio. Di blu sono rimasti solo i tag, per il momento, e non so se rimarranno o se diventeranno grigi anche loro.

Per i bordi arrotondati questa volta ho voluto utilizzare i CSS 3 con border-radius, in quanto l’accessibilità del sito non è compromessa.

Cosa ne pensate?