eponyme's blog : linux, dev & cie

Petite absence ...

C'est l'été, et les vacances arrivent (enfin!). Je profite de ces quelques semaines pour déménager, et donc déplacer mon abonnement ADSL. La mauvaise nouvelle est qu'avec quelques difficultés rencontrées, je vais avoir plus d'un mois d'interruption, la bonne en revanche est que je reviendrais avec un abonnement totalement dégroupé (merci SFR!).

Du coup plus de billets, plus de forums, et plus de packages pendants quelques semaines.

A bientôt !


Fabien (eponyme)


XChat 2.8.8 est sorti, la hache de guerre avec les balloons est enterrée !

Il y a quelques jours, une nouvelle version du client IRC XChat est sortie. Cette version intègre le patch que j'avais soumis il y a quelques temps, afin de régler le problème de temps d'apparition bien trop long des notifications. C'est donc une petite satisfaction personnelle de voir dans cette release quelques lignes de codes que j'avais proposées, même si le mérite en revient plutôt à Remi car je m'étais inspiré de son patch plutôt que de mon original pour en proposer un nouveau.

Avec la version 2.8.8, il est donc maintenant possible de régler le temps d'apparition des notifications par la commande

/set input_balloon_time

ou bien sûr directement dans le fichier de configuration. C'est un soulagement pour moi car je n'aurais plus à reconstruire une version du paquet avec le patch pour ne plus avoir à hurler lorsque je joue à un jeu et que des notifications viennent manger une partie de l'écran pendant 20 secondes !

La version est déjà packagée pour fedora, et une demande d'envoi vers le dépôt stable a déjà été faite, elle apparaitra donc bientôt dans les mises à jour !


Fabien (eponyme)


Back dans les blogs ! - 100ème billet

Après les deux mois de silence qui ont suivi mon dernier billet, je me décide enfin à refaire revivre ce blog plutôt inactif ces temps-ci. Il y a eu pas mal de raisons, qui vont des problèmes de serveur jusqu'à une grosse flemme généralisée qui s'est propagée sur la plupart de mes projets. Une coupure prévue bientôt pour cause de déménagement et l'été approchant n'arrangeront sans doute pas les choses, mais à la rentrée c'est sur je m'y remets !

Ce qui m'amène à écrire aujorud'hui, outre le fait de pouvoir enfin profiter de mon serveur enfin remis sur pieds, c'est tout simplement que ce billet est le 100ème ! Lorsque j'ai ré-ouvert mon blog, je n'étais pas bien sur de la direction qu'il allait prendre. Finalement le contenu est resté assez constant :

  • linux en général, Fedora en particulier
  • les RPMs que je maintiens
  • Quelques tutos et livres
  • Un peu de développement

Les choses devraient donc continuer ainsi, le plus longtemps possible j'espère !

En attendant, histoire de "fêter" ce billet un peu particulier, j'ai apporté à ce blog une grosse modification : le thème. Fini donc "welsh". Je voulais un thème un peu moins répandu, et surtout que je puisse plus facilement modifier, pour qu'à long terme il ressemble le plus à ce que je souhaite. Je suis donc parti du thème BlueSky. La première opération aura été de le passer sur 3 colonnes, ce qui n'a pas été simple. J'ai ensuite modifié de petites choses, comme le séparateur de posts. Le rendu de toutes ces modifications était plutôt moche, et c'est trashy qui m'a permit de faire en sorte que ca ressemble à quelque chose. En même temps j'ai pu découvrir grâce à lui que je n'utilisais qu'une minuscule partie des nombreuses fonctionnalités de Firebug. Les prochaines modifications seront surement sur quelques couleurs, et le bandeau suppérieur.

Voila pour la 100ème !


Fabien (eponyme)


quvi : un utilitaire de récupération d'informations sur les liens de téléchargements de vidéos

Non, je ne fais pas une fixation sur les sites proposant des vidéos style youtube, dailymotion, etc ... J'ai déja packagé clive, cclive (son petit frère en C), et leur front-end abby, et je reviens ici avec quvi. La raison est simple : quvi est maintenant une dépendance pour cclive. En effet après des demandes auprès du dévelppeur de cclive pour avoir une "libcclive", ce dernier à décidé d'externaliser le code de récupération d'infos sur les vidéos dans une bilbliothèque séparée et d'en faire un nouveau projet : quvi

Afin d'éviter un blocage des mises à jour de cclive, j'ai donc entrepris de packager cet outil, mais surtout la lib qu'il fournis : libquvi. J'ai ensuite fait une demande de revue. Le spec génère donc 3 paquets :

  • quvi : un utilitaire exemple permettant de récupérer des infos sur les vidéos utilisant libquvi
  • libquvi : la bibiothèque se chargeant du travail
  • libquvi-devel : fourni les fichiers de développements pour libquvi

La création de ce paquet que je rajoute à ma liste est pour moi l'occasion de fournir une bibliothèque, chose que je n'avais jamais fait, et accessoirement, de poster ici pour raviver un peu ce blog un peu mort ces temps-ci. Les plus curieux (et coquins!) qui auront lu le spec pourront rechercher l'utilité de l'option --enable-smut passée au configure.

J'espère trouver rapidement un reviewer pour ce paquet afin de pouvoir aussi mettre à jour cclive.


Fabien (eponyme)


xcftools présent dans les dépôts stables de fedora

xcftools est une suite de petits utilitaires en ligne de commande permettant d'effectuer des opérations sur les fichiers au format xcf, nativement utilisé par Gimp. J'ai effectué ce package car il sera une future dépendance à la prochaine version du logiciel Phatch, que je package aussi. Pour installer xcftools sous Fedora, utilisez yum :

# yum install xcftools

Un grand merci à Pikatchu_2014 pour avoir effectué la revue.


Fabien (eponyme)


Monkeystudio présent dans les dépôts stables !

Il y a bien longtemps que j'avais présenté ce logiciel permettant de développer tous types de projets, dans différents langages, avec un accent particulier sur les projets Qt4. Mks (son petit nom ^^) intègre en effet l'assistant Qt, le designer, des templates ...

La revue de ce paquet a été bien longue et a fait ouvrir deux autres bugs

Depuis aujourd'hui, ce logiciel est disponnible dans les dépots stables de Fedora, à partir de F11 (et donc dispo aussi pour F12 et rawhide). Un petit cocorico puisque le créateur et principal mainteneur de ce projet, Pasnox, est français. Un logiciel à découvrir, pour ceux qui aiment les IDE complètes, et même à améliorer, puisqu'il peut prendre en charge de nombreux plugins !

Pour l'installer :

# yum install monkeystudio

Bon dev'


Fabien (eponyme)


Projets en cours

Ces derniers temps mon blog est plutôt inactif ... Pourtant "l'effet été" n'y est pour rien, et ce n'est pas non plus la cause d'une quelconque démotivation. Après la dernière release de trustyRC, j'ai décidé de faire une pause car la prochaine version devrait être majeure et contenir de nombreux changements radicaux. J'ai profité de ce temps pour retoucher un peu à Java, et découvrir un tas de nouvelles choses pour moi (ant et gcj notamment). Deux intérêt : me replonger dans ce langage que j'apprécie, et pouvoir poser plein de questions à Pikachu_2014 pour profiter de son légendaire savoir ! Je n'ai rien fait d'original, j'ai tout simplement recommencé une version de trustyRC en java (non, je ne bloque pas sur les bots IRC, c'est juste que ça intègre différentes notions et que c'est donc assez formateur). Vu que la chose me plait bien, je continue pour le moment, je verrai bien où ca me mène. La version C++ n'est pas pour autant arrêtée. Selon l'état d'avancement de la version Java le jour ou je déciderai de reprendre activement le développement de trustyRC, je verrai quelle version je garde, ou si je garde les deux. En parallèle je pense me lancer dans un petit jeu de bataille navale en réseau, intégrant un chat, etc ... Pour cela encore l'éternelle question : java ou C++ (avec Qt) ? Je verrais bien, je pourrais bien me lancer dans le développement de bibliothèques dynamiques gérant le jeu, et ainsi les réutiliser pour développer des GUI dans les deux langages. Enfin, ces dernières semaines, j'ai réalisé deux articles pour le prochain numéro de Linux Identity, dédié à CentOS 5.3 (j'ai d'ailleurs vu qu'un dino y participe aussi). Voilà, non je ne glande pas, non je ne suis pas mort, je n'ai juste rien de concret à présenter pour le moment !

PS : oui je sais, l'art d'écrire un billet quand on à rien à dire ... :D


Fabien (eponyme)


trustyRC 0.1.4 out !

The new version of my IRC robot trustyRC is out !

La nouvelle version de mon robot IRC trustyRC est sortie !


Placer un timeout sur l'exécution d'une fonction en C / C++

Il peut être intéressant en programmation de pouvoir contrôler le temps maximum d'exécution d'une fonction, pour par exemple éviter un blocage de l'application à cause d'un bug, ou d'une boucle infinie car la condition de sortie n'arrive jamais. Il existe plusieurs mécanismes pour y arriver, notamment l'utilisation de SIGALRM, les conditions des pthreads, ou encore les sémaphores. C'est cette dernière solution, que je trouve plus simple, que j'ai retenue pour gérer les timeouts des fonctions de mon robot IRC trustyRC, m'assurant ainsi qu'il ne se gèlera pas si un plugin chargé se bloquait. Je la présente ici, au travers d'un exemple simple.


4 ans de fedora-fr.org !

Comme l'an dernier, mais avec quelques jours de retard (c'était le 7 juillet), je profite de mon "anniversaire" d'inscription sur le site fedora-fr.org (correspondant grosso modo à mon basculement définitif sur Fedora) pour dresser un petit bilan annuel de mon activité informatique en général, et sur Fedora en particulier. 4 ans déjà ! C'est aussi pour moi l'occasion de me remettre un peu sur mon blog, assez inactif ces derniers mois, pour raisons professionnelles.


D'une CentOS + Plesk d'amen.fr vers une CentOS vanilla

Comme je l'avais expliqué lors de mon billet sur mon serveur privé virtuel de chez amen.fr, je n'ai pas eu le choix d'avoir un Plesk collé à ma CentOS ! Après quelques tentatives ratées, je donne ici la marche à suivre pour s'en débarrasser, et avoir une distribution proche de l'originale. Notez que cela me servira surtout d'aide mémoire, et que si vous suivez cette procédure, vous ne pourrez revenir en arrière (à moins d'une réinstallation), que vous n'aurez évidemment plus accès à Plesk (mais toujours au menu virtuozzo, donc aux statistiques, à la console de maintenance, etc ...) et qu'il vous faudra l'assumer (vous avez tout à fait le droit de le faire, il est cependant probable que si un jour vous posez une question au support, une réponse avec la "méthode Plesk" vous soit donnée). Il faut donc aussi que vous soyez surs de pouvoir administrer votre serveur sans Plesk (je ne le ferai pas pour vous ;) ). Le contexte étant fixé, on peut y aller.


Mise en place d'un dépôt SVN par l'exemple (trustyRC)

Il existe, dans de nombreuses langues, de nombreux tutoriels expliquant la façon de mettre en place un dépôt SVN. On peut notamment l'expliquer par le fait qu'il est possible de configurer un dépôt de nombreuses manières, dans la façon de gérer les droits, dans celle de gérer le type d'accès, l'organisation ... Afin de ne pas rajouter une couche de plus à tout ce qui existe, je propose ici directement un exemple d'installation et de configuration. Les étapes que je détaille sont celles que j'ai effectuées pour mettre en place le dépôt SVN de trustyRC, profitant ainsi de mon nouveau serveur privé pour lui ajouter un service supplémentaire. Mon serveur fonctionne sous CentOS 5.3, mais les commandes utilisées ici fonctionnent aussi sous Fedora.


Lancement de nicoleau-fabien.net

Voilà longtemps qu'il était réservé, et pourtant toujours pas utilisé : j'ai enfin lancé mon domaine nicoleau-fabien.net.


Mon serveur privé virtuel chez AMEN

Depuis quelques temps, je pensais me prendre un serveur privé, pour différentes raisons :

  • Mon BNC et mon robot IRC sont hébergés chez girafon, qui n'est plus ce qu'il était, et qui me coûte un peu plus de 5 euros par mois (location d'un shell + une IP dédiée)
  • Mon blog, mes RPMs, et toute mon activité web était hébergée chez free.fr, ce qui n'est franchement pas le top
  • J'avais envie de jouer un peu avec un vrai serveur en prod

Mes besoins étaient donc très faibles, et j'étais enbêté à l'idée de prendre un kimsufi, ou un RPS, qui bien qu'avec des coûts très faibles, me revenaient "cher", pour la faible utilisation que je souhaitais en faire. J'ai ensuite découvert l'offre VDS+5 de chez AMEN, qui pour 5 euros (HT), offre un serveur virtuel linux, allourdi d'un Plesk (mais qui se retire, ca sera l'objet d'un prochain billet), avec une config raisonnable, et des performances qui m'ont surprises (attention, tout est relatif, on parle d'un serveur virtuel à 5 euros ...).


cclive et abby présents dans les dépôts stables

J'avais présenté cclive et abby dans des billets récents. J'en avais de plus proposé les RPMs. Ceux-ci ont été approuvés, et après un passage en testing, sont maintenant disponnibles dans les dépôts stables de Fedora. L'extracteur de vidéos et son interface graphique basée sur Qt sont donc facilement installables via yum :

# yum install cclive
# yum install abby

Pour rappel, clive (lui aussi présent dans les dépôts) peut aussi servir de back-end à abby. Il est écrit en perl, et est un peu plus complet que cclive (lui écrit en C, plus léger).

Bon téléchargements,


Fabien


abby : une GUI pour clive et cclive

Présentation et proposition de RPMs pour le logiciel abby.


cclive : extracteur de vidéos en ligne de commande

Présentation et proposition de RPMs pour le logiciel cclive.


trustyRC 0.1.3 out !

The new version of my IRC robot trustyRC is out !

La nouvelle version de mon robot IRC trustyRC est sortie !


Utilisation des pthreads dans un object C++

Les pthreads sont fréquemment utilisés pour la programmation des threads, pour lesquels ils fournissent le nécessaire, mais aussi la protection des données. Cependant, si la bibliothèque pthread s'utilise facilement en C, il est parfois un peu difficile de faire des choses propres avec en C++. Je propose ici une solution : un objet PThread s'appuyant sur la lib pthread et fournissant les méthodes nécessaires pour l'utiliser. Cet objet nécessite qu'on lui passe, au moment où l'on souhaite threader une fonction, un pointeur sur celle-ci. Il est plus courant de créer un objet dérivant de la classe gérant le thread, et d'implémenter une méthode run(), mais j'ai préféré ce système car j'utilise cette classe dans un projet où il était plus agréable d'avoir un objet PThread, et de pouvoir lancer un thread facilement, en passant une fontion en paramètre, plutôt que de créer une nouvelle classe à chaque fois. Il est aussi possible de passer une méthode d'une autre classe en paramètre, mais il faut que celle-ci soit décalrée en static. La classe permet en plus connaitre le status du thread, de l'arreter, ou de l'attendre.

Vous trouverez un exemple dans les fichiers joints au billet. pthread.cpp et pthread.h décrivent l'objet PThread, et le main.cpp un exemple d'utilisation. N'hésitez pas à poser des questions dans les commentaires si besoins. Je sais bien que la classe est loin d'être complète, mais elle propose un bon exemple pour aborder les pthread en C++.

Pour compiler l'exécutable, dans le dossier contenant les trois fichiers sources, tapez

$ g++ -o thread main.cpp pthread.cpp -lpthread

Enfin pour l'exécuter, tapez

./thread

Vous verez cinq compteurs s'exécuter en parrallèle.


Fabien (eponyme)


Fotowall reprend du service

J'ai eu l'agréable surprise il y a quelques jours de voir que le projet Fotowall est de nouveau actif, après pas mal de mois sans aucune activité sur le svn. Une nouvelle release est d'ailleurs sortie, et je l'ai dors et déja poussée dans les dépôts (dans testing pour le moment). Pour rappel, ce logiciel permet de créer un pêle-mêle de photos. Cette nouvelle version (0.3.1) apporte de nombreuses améliorations. Une vidéo de démonstration est disponnible, mais présente la version 0.21. A vos yum !

Créativement,


Fabien (eponyme)


- page 2 de 7 -