SonarQube (anciennement Sonar) est un logiciel libre distribué sous licence LGPL v3 permettant de mesurer la qualité d'un code source, en continu.
Son analyse s'oriente sur 7 axes distincts :
SonarQube supporte plus de 25 langages comme : Java, C/C++, C#, PHP, Flex, Groovy, JavaScript, Python, PL/SQL, COBOL, etc
Il permet de créer des compte rendus sur :
Nous allons voir dans cet article comment installer un tel outil sur une Debian Wheezy et dans un deuxième temps comment utiliser SonarQube pour analyser ses propres projets.
Lire la suite de SonarQube - Installation & Utilisation
J'ai eu dernièrement à réutiliser le Korn shell (ou ksh) sur GNU/Linux et Solaris, je me suis dit que cela serait aussi une bonne occasion de faire un petit mémo regroupant un ensemble de commandes, d'exemples, ... permettant de répondre à des besoins récurrents.
Avant toute chose, un peu d'histoire, le Korn shell ou ksh est un shell Unix — mais il tourne aussi nativement sur plate-forme Microsoft Windows — développé par David Korn au début des années 1980 (la première version est sortie en 1983).
Compatible avec le Bourne shell, le Korn shell inclut également un grand nombre de fonctionnalités du C shell ; il permet également des fonctions de scripting avancées utilisées dans des langages de programmation plus évolués comme awk, sed, TCL et Perl.
Voyons maintenant un petit panel de commandes, d'exemples qui je l'espère vous seront pratique pour developper vos propres scripts.
Lire la suite de Korn shell (ksh) : un petit mémo
Un langage de programmation est un vocabulaire et un ensemble de règles d'écriture utilisées pour instruire un ordinateur d'effectuer certaines tâches. Retrouvez dans l'infographie suivante l'histoire et l'évolution des langages de programmations à travers les années, quels sont les langages encore largement utilisés malgré leur grand âge et sans oublier les personnes qui sont à l'origine de ces avancées technologiques.
Cliquez sur l'infographie pour retrouver toute l'histoire des langages de programmation.
Lire la suite de L'Histoire des langages de programmation
L'adaptation des populations naturelles vise à améliorer les chances de survie du groupe.
De leur côté, les modèles informatiques de l'évolution cherchent surtout à "engendrer" un individu dont le "code génétique" représente la solution optimale ou presque optimale d'un problème.
Mais pour accroître la probabilité qu'un tel événement se produise, le modèle doit peu à peu améliorer la qualité moyenne de "générations" entières de solutions potentielles, exactement comme c'est le cas pour la biologie.
Ci-après, nous donnons un exemple très simple de ce processus, reportant à plus tard une analyse détaillé du modèle. Cet article détaille la théorie ceux souhaitant mettre en pratique cette théorie, je vous invite à compléter votre lecture par cette article. Cet article détaille l'implémentation d'un algorithme génétique en Java.
Lire la suite de Modéliser l'évolution : Algorithme génétique
Je vous propose un focus sur l'utilisation du type struct au travers d'un problème général consistant à compter le nombre d'occurrences de tous les mots lus en entrée et de les trier simultanément.
Puisque la liste de mots n'est pas connue à l'avance, il n'est pas pratique de la trier et d'utiliser une recherche dichotomique.
Cependant, nous ne pouvons pas non plus effectuer une recherche séquentielle à l'arrivée de chaque mot pour vérifier si on l'a déjà rencontré ; le temps d'exécution du programme serait trop long.
Comment pouvons-nous organiser les données pour faire face efficacement à liste de mots arbitraires ?
Lire la suite de Focus C : Structure autoréférentielle