Shadoware.Org

Aller au contenu | Aller au menu | Aller à la recherche

dimanche, août 14 2011

KMDAlert - Logiciel de surveillance de périphérique RAID - Version pour KDE 4.0

Présentation

Possédant chez moi des disques durs en RAID logiciels sous Gnu/Linux, en 2007 (cela fait déjà 4 ans), j'avais écrit un petit logiciel dont le but était de faire du monitoring RAID.

En cas de reconstruction du RAID ou de disque défectueux, le logiciel affiche une notification à l'utilisateur, et change le statut affiché dans la barre de notification (systray). L'icône change bien sur en fonction de l'état du RAID :

  • dégradé (avec un point d'exclamation)
  • en cours de synchronisation (avec une barre de progression)
  • disque RAID dans un état normal

Ce logiciel ne tournait que sous KDE 3.X.

Voici donc une nouvelle version (qui a mis le temps de sortir) qui est un portage de l'application sous KDE 4.X. Elle utilise donc le nouveau système de notification de KDE (pour l'instant en passant uniquement par les notifications standard). Quelques améliorations y seront apportées plus tard.

Requis

Pour fonctionner KMDAlert nécessite que le dossier /sys soit monté et que /sys/block/ soit renseigné pour chaque volume RAID (exemple /sys/block/md0, /sys/block/md1, ...). KMDAlert observe ensuite les modifications faites sur les fichiers pour informer l'utilisateur des modifications faites sur le volume RAID ou sur les disques le composant.

De nos jours le dossier /sys et /sys/block devraient être toujours présents.

L'application a été développée sur Gnu/Debian Squeeze, sur un KDE 4.4.5 avec un noyau 2.6.32.

KMDAlert ne nécessite pas de Inotify. KMDAlert lit le contenu de plusieurs fichiers dans le dossier /sys toutes les 6 secondes pour être informé de la modification de l'état du périphérique. Sur l'application d'origine, développé sous un noyau 2.6.18, Inotify n'est pas averti des modifications faites sur le système de fichier /sys. Les dates de ces fichiers ne sont pas non plus modifiées. Si quelqu'un a une autre méthode à me proposer, je reste ouvert à toutes propositions.

KMDAlert est une application écrite en utilisant les librairies de KDE, mais devrait tout de même fonctionner sous Gnome. Les messages de notification utilisent donc le système de notification de KDE (bien que je n'utilise pas toutes ses possibilités).

Compilation / Installation

La compilation et l'installation de KMDAlert se fait à l'aide du trio habituel :

# Décompression de KMDAlert
tar xjfv kmdalert-0.2-77c0d6b4d49f.tar.gz
cd kmdalert-77c0d6b4d49f
 
# Préparation de la compilation
mkdir build
cd build
 
# Comilation
cmake ../
make
 
# Installation
make install

La compilation nécessite les librairies de développement KDE et Qt3, ainsi que le compilateur GCC.

Licence

La licence choisie est la GNU GENERAL PUBLIC LICENSE

Téléchargement

  • Vous pouvez télécharger une archive déjà construite de l'application sur KDE-Apps.org.
  • Le dépôt officiel pour télécharger les sources et participer : http://hg.shadoware.org/kmdalert.
  • Vous pouvez également télécharger la version attachée au billet.

Système de suivi

Il n'y a actuellement plus de système de suivi pour ce logiciel. En cas de problème, vous pouvez laisser un message dans les commentaires ou m'envoyer un mail.

mardi, janvier 25 2011

[C++/Qt] Performance de l'utilisation de QSharedPointer

Présentation

Qt est un framework orienté objet écrit en C++ et permettant de faire des interfaces graphiques. Ce framework est utilisé par le projet KDE depuis ses débuts pour en faire un environnement de bureau très complet.

Qt fournit un ensemble de pointeur intelligent[1] permettant de gérer plus facilement la mémoire. Le but est alors de ne plus avoir à supprimer des objets. La suppression se fera soit par un pointeur intelligent soit par le système de hiérarchie d'objet existant en Qt (l'objet père qui supprime l'ensemble des objets fils qui lui sont rattachés).

Qt propose l'ensemble des pointeurs intelligents suivants:

  • QSharedDataPointer / QSharedData : ces deux classes utilisées ensemble permettent d'écrire un objet avec partage implicite. Cela signifie que l'objet fonctionnera comme la classe QString. Tant que l'objet est copié, passé en paramètre, .... l'objet n'est pas dupliqué (tous les objets pointes vers le même espace mémoire). Au moment où l'objet est modifié, l'objet est dupliqué. C'est ce qu'on appelle le COW[2].
  • QExplictlySharedDataPointer / QSharedData : QExplicitlySharedDataPointer est une variante de QSharedDataPointer. Ce pointeur intelligent, comme son nom l'indique, est détaché uniquement lorsque la méthode detach() est appelée explicitement. Cette classe permet de faire des objets qui fonctionnent comme des pointeurs mais qui sont utilisés sans la notion de pointeur (le *). La suppression des données partagées se fait donc quand tous les objets ne sont plus utilisés.
  • QScopedPointer : Ce pointeur est le plus simple. Il permet de déclarer un pointeur sur le tas et s'occupe de la destruction de l'objet, lorsque le programme sort de la portée du bloc. Cela permet de ne plus se soucier de la libération du pointeur dans les cas d'erreur (exception, retour avant la fin de la fonction car le fichier n'a pu être ouvert, ...).
  • QSharedPointer : Le pointeur dont on parlera dans la suite de ce billet. Il permet de partager non plus des données (comme le fait QSharedData) mais de partager un pointeur[3]. Nous allons voir dans la suite du billet, comment simplement utiliser ce pointeur, et les performances de ce pointeur par rapport à un pointeur standard.

Sommaire

  1. Utilisation de QSharedPointer
    1. A quoi sert-il ?
    2. Comment l'utiliser ?
    3. Comment utiliser this
    4. Comment éviter les références circulaires
    5. Utilisation dans les applications multi-thread.
    6. Utilisation d'un pool
  2. Benchmark
    1. Code source
    2. Le jeu de test
      1. Test de l'allocation
      2. Test de Modification d'une donnée
      3. Test d'affectation
      4. Test de destruction
      5. Résultat du test

Notes

[1] en anglais : smart-pointer

[2] COW = Copy On Write

[3] Ce pointeur est l'équivalent du pointeur intelligent boost::shared_ptr du projet Boost. Boost est une librairie qui ajoute beaucoup de facilité pour les programmes en C++, comme par exemple les smart-pointer dont certains seront inclus dans C++0x, ou de la boucle std::for_each.

Lire la suite...

samedi, mai 23 2009

KMyMoney - Logiciel de compte

Logo KMyMoney

Voilà un bon logiciel sur lequel on peut compter (mouarf ! mouarf ! mouarf !), KMyMoney est un éditeur de compte. Je l'utilise quotidiennement, et je décide donc d'en parler un peu, pour que d'autres personnes puissent s'intéresser aussi à ce logiciel.

Summary.png

KMyMoney est un logiciel de gestion de compte pour particulier. Il vous permet de gérer plusieurs de vos comptes en banque, en vous permettant de saisir les dépenses et les recettes sur chacun de vos comptes.

Registres.png

Vous pouvez également lui indiquer vos échéances (par exemple : forfait téléphone, prêt immobilier[1], mais aussi salaire, vos virements internes ou externes, ...) qu'il s'occupera de mettre à jour dans le registre automatiquement ou à votre demande.

Echeancier.png

Après une année d'utilisation, il vous permet également de sortir un rapport détaillé sur vos dépenses et vos recettes suivant les catégories saisies pour vos opérations. Cette information peut vous être très utile pour voir où se trouve le "trou" de votre porte monnaie et ainsi faire une rustine. Il vous permet aussi de vous projeter vers l'avenir et de faire votre budget pour l'année prochaine. KMyMoney vous offre pour cela, la saisie de votre budget, ainsi que plusieurs rapports d'écart, vous permettant ainsi de retrouver facilement où vous avez finalement dépensé plus que le budget prévu, et où vous avez dépensé moins.

Rapport.png

En plus de vos comptes en banque normaux, KMyMoney vous permet également de gérer vos comptes titre, et les actions que vous y avez mises. Vous pouvez alors facilement suivre la chute vertigineuse de la bourse et votre portefeuille fondre littéralement, mais aussi la remontée (on espère), des actions d'ici quelques ... siècles.

Enfin pour les paranos, vos comptes peuvent être cryptés à l'aide de votre clé GnuPG automatiquement par KMyMoney :)

Cryptage.png

Après cette courte présentation, je vous souhaite bon compte ;)

Pour une vie équilibrée, n'oubliez pas de profiter du soleil, au lieu de passer votre temps sur votre ordinateur

Notes

[1] Il s'occupera d'ailleurs de calculer la durée des échéances, ... en fonction des différents chiffres que vous allez lui entrer.

samedi, avril 11 2009

KDE4 devient instable ...

Titre trolleur, cela ne veux pas dire que KDE 4 est moins stable qu'avant mais qu'il a passé une étape supplémentaire chez Debian.

Voilà quelques jours déjà que la distribution Gnu/Debian intègre KDE 4 dans sa version instable. C'est une grande nouvelle car cela va permettre à toute les personnes se trouvant en instable et n'ayant pas touchées à la branche expérimental de Debian de pouvoir tester KDE 4.

Malheureusement pour les traumatisé de KDE 4, l'intégration de ce dernier remplace KDE 3.5 et ne viens pas se positionner en parallèle. Il me semble pourtant que lors du passage de KDE 2 à KDE 3, il était possible d'avoir les deux bureaux en même temps sur sa machine et de switcher de l'un à l'autre sans difficulté. Cela signifie donc peut-être aussi la perte d'utilisateur pour KDE sous Gnu/Debian au profit d'un autre environnement de bureau.

Afin d'effectuer la migration en douceur, Gnu/Debian propose un assistant de migration de KDE du nom de Kaboom. Cet assistant, démarrer lors de la première connexion de l'utilisateur et vous propose alors de sauvegarder votre ancien dossier de configuration KDE 3 et de migrer le dossier .kde vers la version 4.

kaboom1.pngkaboom2.pngkaboom3.png

Je viens donc de passer à KDE 4 et m'émerveille des nouvelles fonctionnalités de KWin (cube, placement des fenêtres) que je n'avais pas avant, car n'avait jamais installé Compiz ...

Bonne installation,

mardi, mars 3 2009

Qt 4.5 est sortie

Voilà quelques heures que la dernière version de Qt est sortie. Cette version, numéroté 4.5, est essentiellement orienté performance.

Logo Nokia/Qt

Elle contient entre autre [1]

  • Une mise à jour de QtWebKit vers un version de WebKit plus récente (avec un nouveau moteur JavaScript plus rapide, la possibilité d'ajouter des greffons comme Flash...). Il est également possible d'utiliser les balises d'HTML 5.
  • Amélioration des performances sur le moteur de rendu ainsi que sur le rendu du texte. Une librairie permettant de faire des tests de performance a été incluse : QtBenchLib.
  • Le support de Mac OS X Cocoa
  • La possibilité de faire des transformations XSLT
  • Un débuggeur QtScript[2]

Qt Script Debuger

  • Le support du format OpenDocument (ODF version 1.0, ne supportant que le texte et les images)
  • Amélioration du support des proxys
  • Amélioration de QtDesigner, QtLinguist
  • Une meilleur intégration au thème Gtk

Cette nouvelle version apporte également une grande nouveauté puisqu'elle est LGPL. Il est donc désormais possible de faire une application propriétaire à l'aide de cette librairie sans prendre une licence chez Qt Software. Par contre si une entreprise souhaite un support pour la librairie, il faudra tout de même acheter une licence.

Téléchargement de Qt 4.5

La sortie de Qt 4.5 est accompagné de Qt Creator 1.0. Qt Creator est l'outil dernier né de chez Qt Software (branche de Nokia) et est un IDE de développement de programme Qt. Un paquet est proposé contenant Qt, Qt Creator, ainsi que MinGW et permettant d'avoir une installation tout en un d'un poste de développement.

Vous pouvez donc aller télécharger la dernière version de Qt, ainsi que de Qt Creator (attention les serveurs sont surchargés) à cette adresse.

Je remercie toute l'équipe de nouvellement Qt Software de cette nouvelle version.

Notes

[1] pour plus de détail voir http://doc.trolltech.com/4.5/qt4-5-intro.html

[2] L'image du debugger viens du site Qt Software

dimanche, février 15 2009

Debian Lenny est sortie

Bonjours à tous,

Voici la grande nouvelle de ce Week-End : Hier, le jour de la St Valentin, la distribution stable Gnu/Debian est passé de Etch à Lenny[1].

Logo Debian

Cela annonce donc non seulement une nouvelle version stable de Gnu/Debian (ce qui est loin d'arriver tous les jours) mais aussi le déblocage de sid.

Attention lors des prochaines mises à jour, KDE 4 (ainsi que les dernières versions de tous les logiciels) arrivera doucement sur votre bureau[2] si vous êtes en sid ou en testing. Cela va de même pour les dernières versions du noyau qui devrait arriver également.

La prochaine, future distribution stable (qui apparaîtra sûrement d'ici 5 ans) sera squeeze.

Notes

[1] http://blog.ganneff.de/blog/2009/02/14/lenny-release.html

[2] http://pusling.com/blog/?p=94

samedi, août 4 2007

De retour

Salut tout le monde,

Cela fait très longtemps que je n'ai pas écrit sur ce blog[1]. Donc me voilà de retour à écrire quelques lignes. Bon, je suis sûr que ma vie ne vous intéresse pas et que vous vous foutez de mon voyage à La Rochelle ou de celui que j'ai fait à Tours, mais je vais quand même vous en parler un peu. Mais rien qu'un peu.

Notes

[1] Et certaines personnes sont là pour me le faire constater ;)

Lire la suite...