samedi 3 mars 2007

Informatique : QEmuDo

QEmu est une machine virtuelle programmé par un maitre du code, Fabrice Bellard.
Ce logiciel permet de tester différents systèmes d'exploitations (windows, linux, solaris ...) issus de plusieurs architectures différentes (x86, ppc, arm ..), il fonctionne dans son propre environnement permettant ainsi d'éviter tout problème avec son système hôte (votre système d'exploitation).
Le problème de cet outil est qu'il s'utilise en ligne de commande, bon ce n'est pas compliqué à utiliser mais je sais qu'il existe de nombreux réfractaires, c'est la que QEmuDo pourra leur être très utile car il s'agit d'une interface graphique permettant de gérer QEmu et toutes les machines virtuelles que l'on utilise.
La force de QEmuDo est qu'il s'utilise sur n'importe quel navigateur web !
Son fonctionnement est ultra simple : il suffit de compiler et d'installer l'applet, ladite applet communique via le protocole VNC que QEmu supporte nativement pour récupérer le tampon vidéo de QEmu et ainsi avoir le visuel de sa/ses machines virtuelle(s) dans son navigateur préféré, simple et efficace !

QEmuDo en pleine action

jeudi 1 mars 2007

Programmation : utiliser SQLite avec PureBasic

SQLite est une bibliothèque écrite en C qui permet d'embarquer dans son programme la gestion d'une vraie base de donnée.
Elle n'a pas pour vocation à être utilisé dans un environnement avec des accès concurrentiels mais vise plutôt les applications qui ont besoin d'une gestion plus poussée des données sans passer par un serveur de base de donnée.
PureBasic est le langage que j'utilise quotidiennement (avec le C/C++) et il lui manque le support de cette bibliothèque. Je vous propose d'y remédier.
Rien de plus simple, il suffit d'installer un compilateur C comme PellesC, de télécharger la version C épurée de SQLite (pas le tarball), de créer un nouveau projet "bibliothèque statique" dans PellesC et d'y ajouter tout le contenu de l'archive de SQLite précédemment téléchargée sauf le fichier "tclsqlite.c".
Il suffit ensuite de se rendre dans les options du projet dans PellesC, dans l'onglet "Compilateur", mettez les informations de debug à "Aucune", la librairie d'éxécution à "Multi-Treads (LIB)", optimisations à "Vitesse augmentée", conventions à "__cdecl" puis de cocher les extensions Microsoft et PellesC.
Lancez la compilation, il ne devrait y avoir que quelques warning sans grande gravité, un fichier "SQLite.lib" sera généré dans le dossier "output" du projet.
Lancez maintenant l'IDE de PureBasic, copiez/collez ce code, il vous servira à tester que la lib fonctionne parfaitement avec le code PureBasic :


ImportC "crtmt.lib" ; <-- à mettre dans le root du projet PB
EndImport

ImportC "sqlite.lib"
sqlite3_close.l(db)
sqlite3_open.l(filename.p-utf8, db)
sqlite3_exec.l(db, sql.p-utf8, *callback, argument, *result)
EndImport

Define db.l, res.l

If sqlite3_open("test.sdb", @db) = 0
MessageRequester("DEBUG","db = "+ Str(db) )
If db
MessageRequester("DEBUG","OPENED" )
sql.s = "select * from ma_table"
sqlite3_exec(db, sql, #Null, #Null, @res) MessageRequester("DEBUG","sqlite3_exec = "+ Str(res) )
If sqlite3_close(db) = 0
MessageRequester("DEBUG","CLOSED")
EndIf
EndIf
EndIf
End


Il ne vous reste plus qu'à copier le fichier "crtmt.lib" qui se trouve dans le dossier "LIB" de l'installation de PellesC puis le fichier "sqlite.lib", précédemment compilé, à la racine du code source PureBasic, à noter qu'avec les dernières versions de SQLite, il faut désactiver le debugger.
Happy coding :)