Piccolo aggiornamento per la mia libreria microscopica per importare mesh OBJ all’interno di applicazioni OpenGL. Ho aggiunto un paio di piccole gestioni di errore che impediscono al programma di piantarsi di netto se si sbaglia a selezionare un file.

Poca roba ma nelle ultime settimane mi stavo dedicando ad un altro paio di cose e OpenGLoader non ha certo la priorità. :D

Ecco il repo: http://github.com/THeK3nger/OpenGLoader

 

Vi avevo avvertito che stavo lavorando ad un piccolo progetto didattico. Sono quindi lieto di annunciarvi che finalmente è disponibile una versione funzionante di questa piccola libreria.

OpenGLoader è un semplicissimo mesh-loader (sistema che si occupa di caricare in memoria la struttura 3D di un oggetto scritta in un file) scritto in C++ che potete utilizzare per caricare dei modelli pre-costruiti all’interno delle vostre applicazioni. Questa libreria non ha affatto intenzione di sostituirsi a librerie professionali ma vuole essere una via estremamente breve per inserire mesh complessi in programmi di complessità medio-bassa.

Il primo intento di OpenGLoader è di essere istruttivo. Il sorgente è volutamente semplice, super modulare e “all-inclusive” ovvero non fa uso di alcuna libreria esterna (escluse le OpenGL, ovviamente).

Il secondo intento è di essere estremamente veloce da usare. Infatti una mesh può essere caricata con 2 comandi:

gloDLInitFile("/home/davide/scimmia_tr.obj", gloReader::GLO_OBJ);
GLuint dl;
gloDLRead(&dl);

La sintassi è estremamente semplice: si inizializza il tutto con gloDLInitFile passando come parametro la posizione e il formato del file. Poi si genera un display-list tramite gloDLRead.

Per chi non conoscesse le display list vi dico che per essere disegnate basta dare questi comandi:

glColor3f(1.0, 1.0, 1.0);

glCallList(dl);
glFlush();

Il programma è ancora molto immaturo, funziona ma non è stato ancora testato a dovere e, inoltre, credo che dia ancora qualche problema di memory-leak dato che quell’aspetto lo devo ancora valutare accuratamente. Quindi usatelo per giocarci ma vi sconsiglio ancora di usarlo per applicazioni “serie”.

La versione inoltre è estremamente limitata rispetto alle caratteristiche che ho programmato per la versione completa. Ecco alcune limitazioni:

  • Non supporta la decodifica delle texture.
  • Non supporta la decodifica dei materiali.
  • Supporta esclusivamente i file nel formato .OBJ.
  • Output solamente sotto forma di display-list.

Tuttavia questo basta e avanza per poter usare, ad esempio, Blender per costruire modelli, esportarli in OBJ e importarli nella vostra applicazione.

Detto questo vi lascio alla pagina di git-hub dove trovate il codice sorgente e il download della documentazione delle API. In attesa che completi una documentazione più dettagliata. :)

REPO GIT

 

qtTempo fa vi segnalai che stavo  preparando una guida a Qt e Python. Poi è stato aperto Qt-Italia.org. Ho quindi deciso di collaborare direttamente con il  progetto e quindi, inserirò tutto il materiale sulle Qt all’interno del portale. Ovviamente, inserirò periodicamente anche qualcosa qui :)

Il portale è nuovo ed esce da poco da una riorganizzazione generale del CMS. Tuttavia, ad ora, tutto sembra in ordine e quindi vi suggerisco di visitare il sito e iscrivervi al relativo forum.

Se amate le Qt o volete semplicemente farvi un idea delle loro potenzialità avete trovato il posto giusto.

Dec 152009
 
ENEA

Logo di ENEA

ENEA sta per Environment for Network Application. È un architettura di grid computing scritta in Java che permette la risoluzione di problemi tramite calcolo distribuito. Oltre a questo è il mio progetto di tesi e quindi, ora che l’ho discussa e non mi ha tradito, ho deciso di rilasciarlo al mondo nel caso possa servire. Principalmente a scopo didattico ma penso che con qualche piccolo cambiamento possa essere utilizzato anche per qualcosa di serio.

L’archivio qui di seguito contiene:

  • Versione compilata in un pacchetto .jar
  • Sorgenti
  • Javadoc
  • Relazione e descrizione di tutto il progetto.

DOWNLOAD

E’ anche disponibile un repository GIT all’indirizzo: http://gitorious.org/enea/enea/commits/master

Tutto il codice è rilasciato sotto licenza BSD.

 

ToolsQuesto non è un messaggio. E’ un annuncio. Un inserzione.

Avevo intensione di scrivere un plasmoide per le notifiche di nuove wave su Google Wave. Ma prima di questo volevo fare una sorta di libreria di accesso in Python. Il problema è che è più complicato del previsto e non ho esperienza in interazioni con web-application via software. Quindi se qualcuno fosse disponibile mi contatti pure che proviamo a cercare una soluzione.

Alla prossima.

 

Google WaveIeri notte tornando a casa mi sono ritrovato l’invito di Google per la nuova e misteriosa piattaforma Wave. Richiesi l’invito perché attratto dal video dimostrativo ebbi l’idea di integrare alcune funzioni su KDE appoggiandomi ad alcune api di Wave che Google mise a disposizione fin dall’inizio.

Ora posso iniziare questo progetto. O meglio… potrei… dato il mio sovraccarico di impegni. :D

Comunque sia. Per ora Wave è una scatola piuttosto inutile. Non per suoi demeriti ma semplicemente perché per ora non ho contatti! xD E a che serve una potente interfaccia di comunicazione se non c’è nessuno con cui comunicare?

Se mai mi daranno qualche invito e troverò qualche contatto, magari potrei capirci qualcosa di più e fare qualcosa di utile!

 

Pacchetto DebDato che spesso mi capita di dover programmare in Python e dato che non ho voglia di stare ogni volta che modifico un sorgente a ricrearmi tutto il .deb. Ho deciso di automatizzare la cosa con uno script. E’ uno script grezzo e perfezionabile, ma fa magnificamente il suo lavoro. Lo pubblico sperando che possa essere utile a qualcuno, ovviamente una volta che l’avete modificato per le vostre esigenze.

#! /bin/bash

version="0.2.0-1"

mkdir nomeprogramma_${version}_all
cd nomeprogramma_${version}_all
mkdir DEBIAN
mkdir usr
cd DEBIAN

# GENERATE CONTROL FILE
echo "Package: nomeprogramma" >> control
echo "Version: ${version}" >> control
echo "Section: video" >> control
echo "Priority: optional" >> control
echo "Architecture: all" >> control
echo "Depends: python, python-qt4" >> control
echo "Installed-Size: 309" >> control
echo "Maintainer: Nome Cognome <email@gmail.com&>" >> control
echo "Description: Bla bla bla" >> control

cd ..
cd usr
mkdir bin
mkdir share
cd bin

# GENERATE START FILE
echo "#!/bin/bash" >> nomeprogramma
echo "cd /usr/share/nomeprogramma" >> nomeprogramma
echo "env python -O main.py" >> nomeprogramma

chmod +x nomeprogramma

cd ..
cd share

mkdir applications
mkdir doc
mkdir nomeprogramma

# GENERATE DESKTOP FILE
cd applications
echo "[Desktop Entry]" >> nomeprogramma.desktop
echo "Version=${version}" >> nomeprogramma.desktop
echo "Name=Nome Programma" >> nomeprogramma.desktop
echo "Comment=Bla bla" >> nomeprogramma.desktop
echo "Type=Application" >> nomeprogramma.desktop
echo "Comment[it_IT]=Bla bla" >> nomeprogramma.desktop
echo "Exec=/usr/bin/nomeprogramma" >> nomeprogramma.desktop
echo "Icon=/usr/share/prova/img/nomeprogramma.png" >> nomeprogramma.desktop
echo "Terminal=false" >> nomeprogramma.desktop
echo "Categories=Multimedia;QT;" >> nomeprogramma.desktop
cd ..

cd ..
cd ..
cd ..

# COPY COMPILED FILE
cp -r -v ./src/* ./nomeprogramma_${version}_all/usr/share/nomeprogramma/ #Questa parte copia tutti i sorgenti del vostro programma python.
cd ./nomeprogramma_${version}_all/usr/share/nomeprogramma/

# CLEAN NOT USEFUL FILES
#Cancella i file non necessari all'esecuzione.
find -name '*.ui' -exec rm -v {} \;
find -name '*.*~' -exec rm -v {} \;
rm Makefile

cd ..
cd ..
cd ..
cd ..

#  MAKE DEB
dpkg -b ./nomeprogramma_${version}_all

# REMOVE TEMP DIRECTORY
rm -r ./nomeprogramma_${version}_all

Ovviamente in nomeprogramma dovete inserire il nome del vostro programma. Ancora meglio sarebbe metterlo in una variabile e usare una variabile, così potete riutilizzarlo per più programmi. A me non andava di farlo e ve lo beccate così com’è :D

Inoltre la copia dei file dovete rivederla perché io assumo che nella cartella in cui c’è questo script esista una cartella src che contiene i sorgenti (in pratica assumo che usiate una convenzione che uso io xD). Ma è solo una riga, si cambia facilmente.

Spero vi sia utile. :)

 

TV HeadGuardare le Tv e le Radio in streaming è sempre un problema, vuoi che richiedono plugin particolari, vuoi che Moonligth sta sempre cento passi dietro alla versione di Silverligth per Windows… fatto sta che non funziona mai niente. I più astuti di noi riescono a ricavarsi l’indirizzo del flusso web e a guardarselo con VLC. Ma i nuovi utenti smadonnano ferocemente. E li capisco.

Così da qualche tempo era uscito un piccolo progetto amatoriale in bash per automatizzare questo processo. Il progetto in questione è Tv-Player. Poiché conosciamo tutti i limiti del bash mi sono incaricato di cotattare le persone che mantenevano questo progetto per proporgli una conversione totale in Python+Qt.

Posso annunciare fieramente che il progetto originale è appena stato portato interamente in Qt. Inoltre sto sviluppando un altra funzionalità molto carina che permetterà di avere una lista di tv e radio sempre aggiornata. Infatti la lista degli indirizzi non sarà più locale, ma remota e gestita dai ragazzi del team.

In pratica il programma si incarica di scaricare automaticamente l’ultima versione aggiornata della suddetta lista.

Tutto qua.

Se siete interessati al progetto andate pure numerosi a visitare il sito! :D

Foto by SilentAwakening on DeviantArt

 

Logo LQHSono passati quasi due mesi dall’apertura di LinuxQualityHelp. Ora ci sono 480 iscritti e altri se ne iscrivono ogni giorno. Abbiamo una bella schiera di utenti esperti  pronti a risolvere ogni problema e abbiamo un ottimo tasso di problemi risolti. Sono decisamente soddisfatto. :D

Prossimamente però lo staff sta preparando interessanti novità:

  • Un concorso per il modding desktop incentrato sulla usabilità.
  • Un repository che contiene software e script utili non presenti nei repository ufficiali.
  • Il team di sviluppo invece sta sviluppando un programma in grado di aiutare l’utente ad identificare i problemi della propria installazione.

E oltre a questo molte altre sono le proposte quindi rimanete collegati su LQH

 

site_logo.gif

LQH – Linux Quality Help è un servizio di supporto tecnico gratuito per Ubuntu, Debian e derivate dove chi ti risponde sa di cosa sta parlando.

Un innovativo forum di supporto tecnico dove puoi avere le risposte che cerchi da chi ha esperienza. LQH infatti ti mette a disposizione un team di “esperti certificati” e solo da questi utenti esperti e preparati avrai le risposte.

Sono lieto ed orgoglioso di annunciare l’apertura di questo nuovo servizio di supporto dedicato alle Debian-based (Quindi anche Ubuntu e compagni). La differenza fondamentale con tutti gli altri forum è che alle vostre domande potranno rispondere soltanto gli utenti “certificati” per garantire il più possibile la qualità della risposta. L’orgoglio nasce dal fatto che il sottoscritto fa parte del gruppo di utenti fondatori che in queste settimane hanno messo a punto questo progetto. La lista completa dei 8 fondatori consiste in Badìl, Divilinux, DjNeophite, Guiodic, Muflone, Scolpi, Streetcross e, infine, THeK3enger ovvero me.

Per chi bazzica il mondo Open Source avrà notato che molti nomi sono ben noti e rinomati, il che non fa che aumentare il mio orgoglio.

Tutte le mie guide e la mia esperienza in programmazione e in software libero verrà messa a disposizione in questa piattaforma.

Vi invito quindi a entrare nel sito per saperne di più, domandare, chiedere, discutere e guadagnarsi la qualifica di utente certificato! Come utente qualificato avrai a disposizione numerosi servizi  come aggregarti al nostro metablog , avere un “bollino” di qualità di LQH da poter mettere nel vostro blog, avere aree riservate di discussione con altri utenti esperti nonché la possibilità di avere uno spazio dedicato ai vostri progetti liberi. Inoltre nuovi privilegi verranno implementati nel prossimo futuro.

Se pensate di essere all’altezza inserite pure la vostra richiesta nell’apposito form.

Facciamo in modo che il servizio cresca e aiuti sempre più persone a passare ai sistemi Open.

VISITA LQH

© 2008-2012 SlashCode Suffusion theme by Sayontan Sinha