la fine del mondo è vicina…

17 10 2009

…IO che programmo in basic!!!! Stento ancora a crederci :O

Gambas 2.15 in esecuzione sulla mia Slackware 12.2

Gambas 2.15 in esecuzione sulla mia Slackware 12.2

ebbene si… dovevo realizzare una piccola applicazione (in pratica un semplicissimo wizard), per automatizzare il processo di creazione di un’applicazione EOS (cioè creare un paio di directory e copiarci semplicemente alcuni files di default). E allora ho deciso finalmente di provare Gambas. Gambas (acronimo di Gambas Almost Means BASic), è praticamente un ambiente moooolto simile a (cough… coff…) Visual Basic di micro(urgh… cough…)soft, ma l’autore ci tiene a precisare che esso NON è un clone di VB. E infatti è meglio! :) GIRA SOTTO LINUX, è opensource e rilasciato sotto licenza GPL, è un progetto completissimo e molto stabile, ci potete scrivere di tutto, ed è attivo da una decina d’anni. Che cosa volete di più?

With Gambas, you can quickly design your program GUI with QT or GTK+, access MySQL, PostgreSQL, Firebird, ODBC and SQLite databases, pilot KDE applications with DCOP, translate your program into any language, create network applications easily, make 3D OpenGL applications, make CGI web applications, and so on…

Personalmente, ho sempre meno tempo a disposizione… e avere un ambiente che mi permetta di sviluppare semplici applicazioni, perlopiù nell’ambito dell’automazione di processi, con due click e quattro righe di codice… semplicemente non ha prezzo. Per tutto il resto, c’è il buon vecchio C++.

Grazie, Gambas. in futuro ci incontreremo molto più spesso :)





Glitter sub-surfaces e freeimage!

12 09 2009

Abbiamo implementato anche il supporto alle sub-surfaces: ovvero, ora è possibile connettere una sorgente dati ad una surface video Glitter, una seconda sorgente dati ad una seconda surface, e poi decidere che quest’ultima venga disegnata dentro la prima, come in un picture-in-picture:glitter_subsurfaces_and_freeimage(Lo screenshot non rende giustizia, ma quella in basso a dx è una subsurface in cui il modulo Ogre sta renderizzando una scena 3D in tempo reale. Inoltre tale surface viene anche spostata liberamente sui due assi all’interno della surface parent)

Inoltre abbiamo anche integrato il caricamento di ogni tipo di immagine grazie all’uso della libreria FreeImage. (Infatti nella surface di fondo è stata caricata un’immagine via freeimage)





…e abbiamo anche il supporto a Flash!

19 08 2009

…venghino siore e siori! Ho appena integrato il supporto ai contenuti SWF grazie alla libreria opensource SwfDec (pronunciato “Swiff Deck”)!!! Ovviamente è tutto una beta, manca l’output dell’audio e la gestione dell’input, ma FUNZIONA! XD

swfdec_shot01swfdec_shot02

Quello che si vede è un filmato introduttivo in SWF di un nostro vecchio, carinissimo gioco poi abbandonato, “CritterMadness”. Il video, e i modelli, sono opera di Marco Licenziato. Il video è sottosopra perchè nel modulo Glitter manca il flipping delle coordinate UV della texture.





OGRE meets Glitter!!!

17 08 2009

E ci siamo! EOS comincia a prendere vita sul serio! Alex è appena riuscito a fixare il problema relativo alla condivisione del GL context che impediva ad OGRE di disegnare correttamente sul buffer delle surface di Glitter. Nel frattempo io ho fatto il porting del codice relativo al vecchio modulo Ogre per ELF, e così abbiamo la possibilità finalmente di renderizzare scene 3D nell’ambiente virtuale di Glitter…

Godetevi lo screenshot :)

working_ogre-shot_01





Modulo eos.glitter all’opera!

14 08 2009

Ecco un simpatico screenshot della prima beta del modulo Glitter. Quella che si vede al centro della window è una surface texturata rotante (con il logo provvisorio di eos). Il modulo gestisce già finestre multiple, e schermi multipli.

glitter_shot_02





Riparte lo sviluppo di EOS!

5 08 2009

Buone notizie, si riparte con lo sviluppo del nuovo ambiente di Scripting. Stiamo decidendo (hemm… la parte commerciale sta decidendo, io “già lo so”) se rilasciare i sorgenti sotto licenza opensource LGPL.

Nel frattempo Alex Rasulo sta iniziando a sviluppare Glitter, ovvero il modulo di compositing grafico OpenGL, mentre io sto iniziando a ricompilarmi OGRE 1.6.3, come si può vedere dallo screenshot ;)

Screenshot preso dal "fresh built" ogre 1.6.3 sulla mia slackware 12.2

Screenshot preso dal "fresh built" ogre 1.6.3 sulla mia slackware 12.2





Integrare il supporto a SquashFS+LZMA nel kernel 2.6.28

13 05 2009

Mi sono trovato a dover integrare il supporto a SquashFS nel kernel 2.6.28. SquashFS è un filesystem compresso a sola lettura. Nella versione base, esso utilizza unicamente la compressione GZIP, in quanto è l’unica supportata nativamente dal kernel linux. Per ottenere maggiori prestazioni nella compressione, è stato sviluppato un fork il quale fa uso dell’algoritmo LZMA (lo stesso usato da 7zip). Installare questa versione, però, risulta un pò complicato. Per questo ho deciso di postare questa guida, la quale si rifà ad un articolo pubblicato qui.


La versione base di SquashFS supporta unicamente compressione gzip. Per il supporto alla compressione LZMA esiste un fork su http://www.squashfs-lzma.org/ .
Da squashfs-lzma.org bisogna scaricare i seguenti pacchetti:

  • squashfs 3.4
  • LZMA SDK 4.57
  • SquashFS-LZMA 3.4-457

Nella lista sopra riportata, e presente sul sito appena citato, vengono riportati anche come necessari (ovviamente) i sorgenti del kernel. Assumo che li abbiate già scaricati e scompattati in /usr/src/linux-2.6.28.
Una volta copiati tutti i files scaricati in una directory, ad esempio /usr/src/squashfs, avremo 3
files:

  • squashfs3.4.tar.gz
  • lzma457.tar.bz2
  • sqlzma3.4-457.tar.bz2

Scompattiamo il primo file:
tar zxvf squashfs3.4.tar.gz

il quale creerà una directory, squashfs3.4 nella dir /usr/src/squashfs.
Quindi creiamo una directory chiamata lzma457 in /usr/src/squashfs, e vi estraiamo
i files da lzma457.tar.bz2:
mkdir lzma457 && tar -C lzma457 -jxf lzma457.tar.bz2

Quindi estraiamo sqlzma3.4 direttamente in /usr/src/squashfs:
tar xjvf sqlzma3.4-457.tar.bz2

Quindi ci spostiamo nella directory dei sorgenti del kernel:
cd /usr/src/linux-2.6.28
e applichiamo le patch, usando i comandi:
patch -p1 < /usr/src/squashfs/squashfs3.4/kernel-patches/linux-2.6.27-rc4-next/squashfs3.4-patch
patch -p1 < /usr/src/squashfs/sqlzma2k-3.4.patch

Fatto ciò diamo un make menuconfig al kernel e andiamo ad abilitare come modulo (<M>) SquashFS 3.4.
(lo troviamo sotto File systems->Miscellaneous filesystems)

Quindi spostiamoci nella directory /usr/src/squashfs/lzma457 e patchiamo i sorgenti eseguendo il comando:
patch -p1 < ../sqlzma1-457.patch

Fatto ciò, torniamo nella directory /usr/src/squashfs, ed editiamo il file Makefile. Dobbiamo adattare la variabile KVer per la nostra versione kernel:
KVer = linux-2.6.28

Quindi, linkiamo simbolicamente ai sorgenti del kernel la directory squashfs3.4/kernel-patches/ :
ln -s /usr/src/linux-2.6.28 squashfs3.4/kernel-patches/
e patchiamo:
patch -p0 < sqlzma2u-3.4.patch

Ora siamo pronti per compilare. Diamo il comando make

Se tutto è andato a buon fine, siamo pronti per copiare i moduli appena compilati sotto /lib/modules/2.6.28/:
creiamo la directory extra sotto /lib/modules/2.6.28/:
mkdir /lib/modules/2.6.28/extra
copiamo il modulo di squashfs:
cp /usr/src/linux-2.6.28/fs/squashfs/*.ko /lib/modules/2.6.28/extra/
quindi copiamo i moduli sqlzma e unlzma:
cp lzma457/C/Compress/Lzma/kmod/*.ko /lib/modules/2.6.28/extra/
infine, copiamo i tools di squashfs:
cp squashfs3.4/squashfs-tools/mksquashfs /sbin/mksquashfs.lzma

Quasi finito! Refreshiamo le dipendenze dei moduli del kernel:
depmod -ae

e proviamo a caricare il modulo squashfs:
modprobe squashfs

All done! Se proviamo ad avere la lista dei moduli caricati con lsmod, dovremmo quindi trovare, tra gli altri, squashfs, sqlzma, unlzma.
Per un’ulteriore sicurezza, proviamo a leggere la lista dei filesystems supportati dal kernel, dando cat /proc/filesystems. In fondo alla lista, dovremmo trovare “squashfs”.

Spero che questa mia esperienza con squashfs possa tornarvi utile.





Sono su TGM di maggioooooOOO!!!

13 05 2009

Sull’ultimo numero di TGM (The Games Machine, rivista nazionale dedicata al mondo dei videogiochi) è stata pubblicata l’intervista che rilasciai tempo fa a Gianluca Masina (colgo l’occasione per ringraziarlo). Ci è stata gentilmente concessa *tutta* la pagina 137, cioè la Talent Zone:

(cliccare sull'immagine per vederla in dimensioni "leggibili")

(cliccare sull'immagine per vederla in dimensioni "leggibili")





Il mio primo Instructable!!

13 05 2009

Maledizione… è una vita che devo postarlo… il 25 marzo scorso ho pubblicato il mio primo instructable su Instructables.com! E’ una fesseria, ma mi torna sempre utile e comodo ogni volta che devo forare un muro:

instructable_screenshot(cliccare sull’immagine per leggere tutto l’instructable)





“Usa la forza, Luke”

23 01 2009

cimg9571“Usa la fooorza, Luuuke!”

cimg9572…lei infatti qua l’aveva appena usata… notare il sorriso beffardo :|