Progra

Programmation

Entries feed - Comments feed

You're beautifull ... it's true !

Non je ne vais pas parler de James Blunt, quoique ses mélodies sont toujours aussi belles et on pourrait en parler longtemps, mais de code source (pour faire original).

Combien de fois j'ai pu entendre "haa, pourquoi tu mets pas un retour à la ligne là, des espaces ici ... ton code, il est moche toussa ..." ? Pourtant je ne trouvais pas mon code si lexicalement moche que ça, les gouts et les couleurs ça ne se discute pas. Et combien de fois, dans des projets développés à plusieurs, on peut voir des mises-à-jour qui ne sont que des refactorisations sans aucun autre intérêt que de rendre le code lisible ... pour qui ?

La plupart des outils permettant de rendre les codes "lisibles" ne travaillent que sur l'indentation. C'est important mais généralement pas suffisant : alignement des noms de variables, des liste imbriquées d'initialisation, des séquences d'affectations, de l'expansion avec retour à la ligne des macros, l'alignement des commentaires de fin de ligne ... autant de petites touches qui font qu'un code est facile est agréable à lire.

Et tout ça, Uncrustify sait faire. C'est un petit outil d'amélioration de lisibilité de code orienté C/C++/C#, Vala et Java. Il est libre, petit, rapide et efficace. Disponible dans toutes les bonnes distribs et avec dev-util/uncrustify dans portage.

Accéder à MySQL depuis l'extérieur sous gentoo.

Par défaut, le serveur mysql installé via portage sous gentoo (et c'est vrai pour d'autres distributions comme ubuntu feisty) limite l'accès aux bases au seul poste local, il est donc impossible d'ecécuter des requêtes depuis l'extérieur et - à fortiori - de la manager.

Pour permettre de telles connections, il suffit de modifier le fichier de configuration /etc/mysql/my.cnf en conséquence.
Pour cela, il faut (en root) :

  • Arrêter le serveur :
    # /etc/init.d/mysql stop
  • Éditer le fichier /etc/mysql/my.cnf pour y modifier deux choses :
    • Désactiver le skip networking en commentant la ligne correspondante avec un "#" :
      # skip-networking
    • Fixer l'address binding pour permettre certaines connections réseau : dans la partie [mysqld]
      bind-address = 0.0.0.0
  • Redémarrer le serveur :
    # /etc/init.d/mysql start

Et ... ça marche !

Source : wiki ubuntu-fr

Paquet debian/ubuntu pour bakefile-0.2.2

Bakefile 0.2.2 est sorti ce printemps avec un certain nombre de correction de bugs et le support des projets MSVS2005.

Comme les paquets debian ne sont plus fabriqués par Vaclav Slavik (l'auteur des bakefiles) ou tout au moins pas disponibles sur sourceforge.net, j'ai entrepris de créer moi-même ces packages.
N'ayant jamais créé de .deb, je me suis inspiré du tutoriel de ubuntu-fr.

Le résultat est disponible à http://www.emilienkia.fr/public/packages/bakefile/.

Anjuta sous Ubuntu 7.04

Pour tester la dernière prochaine d'Amaya, j'ai mis à jour mon poste au boulôt. D'Ubuntu Dapper, je suis passé à Feisty (6.10 à 7.04). La migration n'a pas été sans mal, l'éternel problème de la config d'xorg avec les drivers nvidia n'a pa été sans mal mais avec la page nvidia du wiki d'ubuntu-fr.org, ça a été.

Mais après une demi journée d'utilisation, je décide de re-tester quelque-chose dans un petit programme. Je relance donc Anjuta pour pouvoir utiliser un petit programme de test perso. Manque de bol, je me retrouve sur Anjuta 1 !!! Les fichiers de projets n'étant pas rétro-portable, c'est la galère. C'est même incroyable que en upgradant ubuntu, on rétrograde de version majeure d'une telle application.

Confiant, je me dit que ça doit être juste une erreurs des mainteneurs, je tente d'installer les paquets de dapper ... ca marche pas, une des bibliothèques n'est plus compatible ... ZUT !
Je tente une compile à la main, c'est pareil, ca va pas au delà du configure (c'est normal, mais j'étais confiant).

Après avoir cherché un peu sur le net, l'ami Naba (le développeur principal d'Anjuta) a mis à disposition de la communauté un dépot avec les paquets qui vont bien pour installer proprement Anjuta2. On peut voir la procédure sur son blog.

Miracle : c'est même la toute dernière version d'anjuta, la 2.2.0 alors que sur le blog, il précise qu'il fournit la version 2.1.3.
Que demande le peuple ?!?

Tutoriaux sur les shaders OpenGL

TyphoonLabs a publié une série de cours sur les shaders openGL et sur le GLSL (openGL Shading Language).

Après être resté longuement sur la programmation openGL basique à cause des tutoriaux sur les shaders trop compliqués, cette série de cours présente la philosophie des shaders ainsi que des exemples à rendu (et difficultée) progressive.
Ces cours, bien qu'en anglais, sont très compréhensibles, très accessibles. Leur contenu est bien présenté et bien illustré. Même imprimés en noir-et-blanc, les images restent explicites, ce qui rare pour des tutoriaux sur le graphisme. Les codes sources des shaders sont très clairs, documentés dans le code, et suivit d'explications et d'illustration.

Ces cours comprennent : Les cours se bases sur leur éditeur mais même sans, on comprend très bien les mécanismes.

Bon cours.

Observatoire de la qualité des programmes pour l'Open Source

Un observatoire de la qualité des programmes à destinations des programmes à codes ouverts (ou Software Quality Observatory for Open Source Software SQO-OSS) vient de se créer.

Le SQO-OSS est un consortium composé de projets open-source européens, de consultants et de laboratoires de recherches (grecs, anglais et suédois) voulant développer une suite d'outils pour mesurer la qualité des logiciels. Ces outils auront pour but d'analyser la qualité des logiciels open-source pour en faire un argument de promotion.

En espérant que les premières versions de ces outils soient édités rapidement, ca aidera surement beaucoup les développeurs libres.

SQO-OSS : http://www.sqo-oss.eu
Dépèche linuxfr : http://linuxfr.org/2006/10/25/21523.html

Signaux, évenèments et messages similaires

signals.h est un petit fichier d'entête cpp qui permet d'écrire facilement des classes pouvant émettre ou recevoir des signaux.
Il est possibles de définir le type clé du signal (celui sur lequel les signaux sont indexés - typiquement un entier ou une chaine de caractères) et le type du paramètre passé aux fonctions des récepteurs.

Continue reading »

Re pipeline

J'ai mis à disposition une nouvelle version de ma bibliothèque de pipelines.

Celle-ci est maintenant installable via un configure, et permet d'utiliser pkg-config pour l'utiliser. De plus, elle permet :

  • d'utiliser des Reader/Writer simple pour des acces en mémoire (buffers)
  • de convertir des données binaires vers/depuis l'encodage base64
  • l'extraction d'un sous document xml part une requete xpath
  • Le début de la prise en charge (writer uniquement) vers mon format FSPart
  • Simplification de l'API

Un ebuild est disponible pour Gentoo ;)

Page de pipeline

pipeline

J'ai mis en ligne une première version de ma bibliothèque de pipelines : http://cursor.free.fr/wiki/doku.php?id=progra:libs:pipeline:home

Cette bibliothèque sert de base à la construction de pipelines programmatiques pour aider le traitement de flux de données.
Pour l'instant, il n'y a que les fonctionnalités de bases (fichiers, flux standards et début de traitement xml), mais elle devrait s'étoffer.
Thème original par N.Design Studio - Adapté par Pixials - Powered by Dotclear
Fil des billets Administration