domenica 10 maggio 2009

OpenGL diventa a oggetti

Le OpenGL (Open Graphics Library) sono delle librerie grafiche 3D ad altissime prestazioni, standard de facto per le applicazioni grafiche cross platform.

Sono implementate da tutti i produttori di schede video, sono supportate dalla maggior parte dei sistemi operativi (Windows, Macintosh e Linux inclusi).

Sono disponibili implementazioni per la maggior parte dei linguaggi e sono piuttosto semplici da utilizzare ma presentano comunque alcune prolissità che rendono il codice un pò pesante da leggere.
Per questo ho aperto un nuovo blog dove vi spiegherò man mano come realizzare un wrapper in C++ pulito e performante per ricavare dalle nostre applicazioni il massimo con il minimo sforzo!

Se volete realizzare un applicazione di grafica, un videogame, un simulatore o siete semplicemente curiosi vi aspetto su:

OpenGL tutorials

mercoledì 17 dicembre 2008

Trust TB-3100 Tavoletta grafica Aiptek rebranded

Quest'anno per natale ho deciso di regalarmi una tavoletta grafica. Le ditte che producono questi dispositivi sono poche, in particolare in Italia sembrano arrivare solamente le Wacom e le Trust.

Le Wacom sono le regine indiscusse del settore, alta qualità, alte prestazioni e, purtroppo prezzo alto.
Quest'ultimo fattore mi ha fatto desistere dall'acquisto dato che il modello A5 più economico è la Bamboo Fun A5, quotata attorno ai 180 euro.

Ho quindi acquistato una Trust TB-3100, modello un pò vecchiotto ma abbastanza valido, soprattutto per chi come me il disegno lo fà per hobby e non per professione.
L'ho acquistata in una famosa catena di negozi di informatica per soli 39 euro!

Bhè la fattura è piuttosto buona nella scatola ci sono tutti gli accessori necessari, il pennino wireless, il mouse e le batterie per mouse e pennino (si questa è una delle pecche delle trust :().
L'installazione su vista ha richiesto circa un minuto e la tavoletta funziona egregiamente, non me lo sarei mai aspettato!

Ho quindi deciso di installarla anche sul pinguino (Archlinux è il sistema operativo che utilizzo abitualmente) anche se ahimè ero scettico dei possibili risultati dato che cercando su internet le notizie erano molto sconfortanti.

Dopo un paio di giorni di ricerca e di prove i risultati sono stati eccezionali! La tavoletta funziona persino meglio che su windows poichè i driver open (per la verità il progetto sembra fermo dal 2006!) permettono un buon livello di configurazione come l'area attiva da utilizzare (specialmente utile per chi come me utilizza un monitor 16:9) e la curva di pressione.

L'installazione però non è immediata come su windows... vediamola passo passo.


LA VERA TAVOLETTA CELATA SOTTO IL MARCHIO TRUST

Appena connessa la tavoletta diamo un lsusb da terminale e notiamo con (grande) sorpresa che il produttore non è Trust ma Aiptek, una ditta Taiwanese che produce accessori per PC, tra i quali le tavolette grafiche.

La TB-3100 non è altro che una Aiptek Hyperpen 8000


INSTALLAZIONE DELLA TAVOLETTA SU LINUX

I passi da seguire sono:
  1. installazione driver del kernel (già inclusi, da attivare se abbiamo ricompilato il kernel manualmente, SALTA questo passo se non sai cosa significa :))
  2. installazione driver di xorg
  3. configurazione xorg
  4. configurazione hal
  5. riavvio e test

KERNEL
Utilizzando le distro più comuni, ad esempio Archlinux o Ubuntu (e suppongo anche Fedora, Debian, Mandriva, Suse ecc..) non ci sono problemi, i driver sono già attivati all'interno del kernel.
Utilizzando invece distribuzioni come Gentoo potrebbe essere necessario attivarli manualmente nella sezione apposita del kernel (dev'essere sotto la voce HID)

XORG
I driver di xorg sono distribuiti già pacchettizzati per quasi tutte le distro.
L'installazione avviene quindi con il gestore di pacchetti predefinito del sistema, ad esempio

su Archlinux:
sudo pacman -S xf86-input-aiptek

su Ubuntu (e anche XUbuntu, KUbuntu, Debian e le altre basate su apt-get):
sudo apt-get install xserver-xorg-input-aiptek

su Fedora (e le altre basate su yum)
sudo yum install xorg-x11-drv-aiptek

su Mandriva (e le altre basate su urpmi)
sudo urpmi x11-driver-input-aiptek

CONFIGURAZIONE XORG
Per l'utilizzo della tavoletta ci avvaleremo delle potenzialità del nuovo xorg (stò utilizzando la 7.4) e di hal quindi la configurazione di xorg da fare sarà minima:

se usiamo KDE da terminale diamo il comando
sudo kate /etc/X11/xorg.conf
se invece usiamo GNOME diamo il comando
sudo gedit /etc/X11/xorg.conf
si aprirà il file di configurazione di Xorg, a questo punto ricerchiamo la sezione "Modules" e aggiungiamo all'interno (sotto alle altre Load) la riga
Load "aiptek"
Salviamo e chiudiamo l'editor.


CONFIGURAZIONE HAL
Sempre da terminale, creiamo un nuovo file di configurazione per hal.

se usiamo KDE da terminale diamo il comando
sudo kate /etc/hal/fdi/policy/10-aiptek.fdi
se invece usiamo GNOME diamo il comando
sudo gedit /etc/hal/fdi/policy/10-aiptek.fdi

copiate queste righe all'interno:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.product" contains="Aiptek">
<merge key="input.x11_driver" type="string">aiptek</merge>
<merge key="input.x11_options.SendCoreEvents" type="string">true </merge>
<merge key="input.x11_options.USB" type="string">On</merge>
<merge key="input.x11_options.Type" type="string">stylus</merge>
<merge key="input.x11_options.Mode" type="string">absolute</merge>
<merge key="input.x11_options.zMin" type="string">0</merge>
<merge key="input.x11_options.zMax" type="string">511</merge>
</match>
</device>
</deviceinfo>
Salvate e chiudete il file.


RIAVVIO E TEST
Bene, la tavoletta è installata, non ci resta che provarla.
IMPORTANTE!!! LA TAVOLETTA DEVE ESSERE SCOLLEGATA QUANDO SI AVVIA IL PC OPPURE XORG ANDRA' IN CRASH!!!
Riavviate Xorg e hal (in alternativa riavviate il PC). Quando il nostro desktop sarà pronto colleghiamo la tavoletta al PC ed è fatta!


IMPOSTAZIONI PER CHI USA SCHERMI 16:9 (es. notebook)
Si può cambiare la configurazione della tavoletta modificando il file /etc/hal/fdi/policy/10-aiptek.fdi e riavviando hal. Una cosa molto importante se si utilizzano schermi 16:9 è la possibilità di utilizzare solo una porzione dell'altezza totale dell'area attiva della tavoletta in modo da mantenere le proporzioni del monitor.

Per farlo è sufficiente attivare l'opzione KeepShape nel file /etc/hal/fdi/policy/10-aiptek.fdi che diventerà quindi
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.product" contains="Aiptek">
<merge key="input.x11_driver" type="string">aiptek</merge>
<merge key="input.x11_options.SendCoreEvents" type="string">true </merge>
<merge key="input.x11_options.USB" type="string">On</merge>
<merge key="input.x11_options.Type" type="string">stylus</merge>
<merge key="input.x11_options.Mode" type="string">absolute</merge>
<merge key="input.x11_options.zMin" type="string">0</merge>
<merge key="input.x11_options.zMax" type="string">511</merge>
<merge key="input.x11_options.KeepShape" type="string">on</merge>
</match>
</device>
</deviceinfo>
ALTRE IMPOSTAZIONI
Per vedere tutte le opzioni disponibili per configurare la nostra tavoletta potete dare da terminale il comando
man aiptek
Buon divertimento!

sabato 15 novembre 2008

Browser Games

Ciao a tutti, è un pò che non ci sentiamo. Approfitto di questo post per dirvi un paio di cosette:
1- ho installato ArchLinux sul nostro portatile, è un missile!! Altro che ubuntu, una scheggia che và a 1000 all'ora!! Fantastico

2- ho iniziato a progettare un browser games con degli amici.
potete collaborare anche voi, basta che mettete qualche commento qui sul forum :)

Il browser game perfetto? Fallo tu!

Ciao e a presto!

mercoledì 9 aprile 2008

Benchmark su Ubuntu facciamo qualche test con HardInfo

Se siete di quelli che ogni volta che si parla di un nuovo dispositivo si precipita su internet a cercare i benchmark sicuramente conoscerete HardInfo.

HardInfo (http://hardinfo.berlios.de/web/HomePage) è un programma che raccoglie le informazioni sull'hardware ed il sistema operativo installato sulla macchina, esegue qualche benchmark, li confronta su internet e genera reports.

Questo post tornerà molto utile quando avremo installato gentoo in modo da verificare se effettivamente c'è un aumento di prestazioni del sistema.


INSTALLAZIONE DI HARDINFO

Niente di più semplice, si trova nei repository!
Installiamolo con un
sudo apt-get install hardinfo
A breve avremo HardInfo installato sul PC


LANCIAMO HARDINFO

Da un terminale diamo il comando
hardinfo
Dando un occhiata al programma vediamo che hardinfo raccoglie moltissime informazioni utili: dall'hardware installato alle periferiche connesse, alle partizioni su disco con relativi dati sulla dimensione/spazio disponibile, le directory condivise in rete, la versione del kernel che stà girando, le interfacce di rete connesse con il loro indirizzo IP ecc.


ESEGUIAMO QUALCHE BENCHMARK

Nel pannello a sinistra vediamo tra le varie categorie, la voce Benchmark. Cliccando su uno dei benchmark previsti viene effettuata una rapida prova che assegna un punteggio al nostro PC e viene confrontato con altri processori.

Per ripetere un benchmark dalla finestra con i risulati per il benchmark da rifare ci basta cliccare sul pulsante "Refresh" nella toolbar.

Vi riporto per ogni benchmark il risultato trovato sulla mia macchina utilizzando il sistema leggermente snellito da alcuni servizi di avvio automatico e con lo scaling del processore impostato su OnDemand (non ottimale per eseguire un benchmark). Ho anche qualche programma aperto (Compiz-fusion attivo, Openoffice Writer aperto, RhytmBox mentre ascolto una webradio) quindi i dati potrebbero essere leggermente falsati ma in linea di massima non dovrebbe cambiare molto...

CPU ZLib (in KiB/s, il più alto è meglio):
- A210-1AY 14347.2

CPU Fibonacci (in secondi, il più basso è meglio):
- A210-1AY 3.6

CPU MD5 (in MiB/s, il più alto è meglio)
- A210-1AY 45.5

CPU SHA1 (in MiB/s, il più alto è meglio)
- A210-1AY 63.9

CPU BlowFish (in secondi, il più basso è meglio)
- A210-1AY 17.15

CPU FPU Raytrace (in secondi, il più basso è meglio)
- A210-1AY 12.5


SINCRONIZZIAMO I RISULTATI DEI BENCHMARK

Una volta che abbiamo effettuato i test possiamo confrontarli con quelli ottenuti dagli altri utenti. In questo modo avremo un confronto diretto con altre macchine oltre alle 2 che vengono riportate automaticamente.

Menù "Information -> Network Updater", e quindi clicchiamo su syncronize.

Se ora andiamo sulle schede dei benchmark avremo una posizione del nostro processore rispetto a molti altri!

Un breve riassunto di quello che ho potuto notare:


CPU ZLib (in KiB/s, il più alto è meglio):
Siamo ad anni luce di distanza da tutti i computer del confronto, anche dagli Intel Pentium M a 2,26GHz (che però hanno solo un core).

CPU Fibonacci (in secondi, il più basso è meglio):
Il risultato non è dei migliori ma le macchine del confronto sono desktop e molto prestanti.

CPU MD5 (in MiB/s, il più alto è meglio)
Come per il test ZLib siamo decisamente sopra alle altre macchine del confronto che però hanno dei vecchi processori ed un solo core.

CPU SHA1 (in MiB/s, il più alto è meglio)
Come MD5. Tra le macchine qui c'è anche un vecchio Pentium MMX... Il suo risultato è 3.6... ne abbiamo fatta di strada!

CPU BlowFish (in secondi, il più basso è meglio)
Questo, insieme a Fibonacci e l'FPU Raytracing è un altro dei benchmark che vanno di moda sulle macchine moderne. Anche qui abbiamo una posizione bassa ma le macchine del confronto sono dei mostri!

FPU Raytrace (in secondi, il più basso è meglio)
In questo benchmark la nostra posizione non è niente male. Pur avendo macchine desktop a confronto e non notebook, i risultati ottenuti sono ottimi. Con il risultato ottenuto pur avendo la macchina leggermente carica di programmi siamo comunque davanti ad un altro AMD TL-64, ad un Intel Core2 Duo T9300 e ad una macchina con 16 processori Intel Xeon a 3,4GHz!
Sembra quindi che i processori AMD continuino ad essere ottimi sui calcoli in virgola mobile.

Curiosità: a fare quest'ultimo bench (è un benchmark scritto da John Walker nel 1980), un commodore 128 (processore a 2MHz) impiegava 3466 secondi!!!


Ripeterò i test questa sera con il computer in condizioni ottimali e così vedremo se i risultati sono diversi da quelli ottenuti ora.

Nel frattempo un paio di shots




Resto in attesa dei vostri risultati con l'A210-1AY e soprattutto con l'A210-1AX. Appena avremo installato gentoo verranno pubblicati i nuovi risultati e faremo il confronto con quelli ottenuti su Ubuntu.

venerdì 4 aprile 2008

Più prestazioni dalla scheda video! Aggiornare driver ATI Mobility Radeon HD2600 Vista

Generalmente quando un produttore realizza un nuovo portatile cerca di includere le ultime tecnologie disponibili per renderlo più appetibile al mercato.
Il nuovo hardware però si sà che non viene mai sfruttato al massimo dai primi driver con cui viene venduto... per farlo rendere al massimo devono passare alcuni mesi e naturalmente c'è bisogno di installare i driver più recenti a disposizione.

Purtroppo i produttori di notebook (tra cui ad esempio la Toshiba) non amano affidare il supporto per i "loro" prodotti a società esterne e quindi vietano al produttore dell'hardware di rilasciare driver compatibili con il loro sistema.

LA SOLUZIONE

Per fortuna il modo di aggirare queste mosse di marketing c'è e nel caso della nostra scheda video si chiama Mobility Modder.

Questo programma permette di modificare i driver rilasciati da ATI (siano essi per XP o per Vista) per far si che essi possano essere installati sui portatili.

INSTALLIAMO I NUOVI DRIVER CON MOBILITY MODDER

Disinstalliamo i vecchi driver della scheda video.

Scarichiamo e installiamo MSXML 4.0 dal sito Microsoft.

Scarichiamo l'ultima versione di Mobility Modder (potete prenderla qui).

Se abbiamo Vista assicuriamoci di avere l'UAC disattivato (può essere riattivato al termine della procedura). Per disattivarlo potete seguire questa guida (il punto 4 è il più semplice)

Scarichiamo l'ultima versione dei driver ATI dal sito ufficiale http://ati.amd.com/

Facciamo partire l'installazione dei driver ATI ma annulliamola appena tutti i file sono stati scompattati. Facciamo in modo che i driver vengano estratti nella cartella c:\ATI\SUPPORT.

A questo punto avviamo Mobility Modder, mandiamolo nella cartella con i driver (ad esempio C:\ATI\SUPPORT\7-4_vista32_dd_ccc_enu_44985) clicchiamo su modifica ed aspettiamo che i driver siano stati modificati.

Entriamo nella cartella dei driver (ad esempio C:\ATI\SUPPORT\7-4_vista32_dd_ccc_enu_44985) e avviamo il programma SETUP.EXE
(Vedremo una scritta che dice che non sono certificati, ignoriamola, è un effetto della modifica)

Riavviamo il PC ed è fatta ecco i nostri driver nuovi nuovi.