Optimisation du nombre de threads au moyen de Python

Afin de trouver le nombre de threads optimal, il nous faudrait exécuter plusieurs fois le programme avec un nombre de threads différent à chaque exécution. Cependant avec un même nombre de thread, le temps d’exécution peut varier. Il est donc interessant d’exécuter le programme X fois pour n threads et ceci de 1 à N threads.

Read More

Fonctions en BASH

Vous avez sûrement déjà perdu patience à retaper « bêtement » des instructions dans votre terminal. Bien qu’existent des raccourcis (par exemple, fléche du haut) pour récupérer des instructions précédentes, ici est proposé une solution plus générale et modulable : les fonctions en language BASH. Elles constituent un moyen efficace pour effectuer des commandes groupées qui doivent être répétées.

Read More

Coder un timer pour son programme multithreadé

Le but de ce post est de voir comment nous pouvons construire un programme qui va en lancer un autre, plusieurs fois, en passant en argument de ce programme un nombre de threads croissants. De cette manière, une simple commande dans le terminal permet de lancer son programme plusieurs fois, avec le nombre de threads en argument allant de 1 à 10, par exemple.

Read More

Permettre à Jenkins d'effectuer des tests et de publier un feedback

Jusqu’à présent, nous avons vu comment configurer Jenkins afin qu’il valide tout nouveau push effectué sur notre directory. Ici, nous allons voir comment lui faire effectuer différents tests qui permettront de voir directement si votre nouveau push est valide ou s’il introduit un bug quelconque qui empêcherait votre programme de fonctionner.

Read More

Utilisation des alias dans le terminal

L’utilisation des alias dans le shell (bash pour les explications qui suivent) est un outil à connaître absolument par la simplicité de sa mise en place et par le temps qu’il fait gagner quand on l’exploite bien.

Read More

Installation de la librairie GMP

Lorsque l’on développe des programmes en C, il est intéressant de savoir installer soi-même des librairies supplémentaires. Deux solutions sont possible. La première est de prendre la librairie qui a été déjà compilée par le gestionnaire du système d’exploitation. Pour la librairie GMP, voici quelques exemples de packages à installer :

Read More

Eviter d'inclure un fichier header plusieurs fois

Lorsque l’on écrit un grand programme en C, il est souhaitable de le découper en plusieurs fichiers .c séparés qui correspondent chacun à un module. On associe également à chaque module un fichier .h contenant les définitions des fonctions déclarées dans la module, mais aussi des structures ou des constantes.

Read More

Un style cohérent pour votre projet en C

Lorsque plusieurs étudiants collaborent à l’écriture d’un programme en C, ils utilisent souvent des conventions différentes pour placer les accolades, documenter les fonctions, un nombre variable d’espaces pour les tabulations, … La lecture du code source peut parfois même devenir difficile si les étudiants n’utilisent aucune convention.

Read More

Arrêter une boucle infinie

Lorsque l’on écrit ses premiers programmes en C, on fait parfois des erreurs qui font que le programme que l’on exécute ne se termine jamais. Considérons l’exemple ci-dessous:

Read More

Un auto-correcteur pour la ligne de commande

Grâce à la ligne de commande Unix, il est possible d’exécuter des commandes complexes directement depuis le clavier. Certains étudiants qui sont plus habitués aux interfaces graphiques sont surpris lorsqu’ils voient leurs collègues utiliser la ligne de commande pour réaliser rapidement des tâches complexes. Pour encore faciliter l’utilisation de la ligne de commande, les principaux shell, dont bash fournissent une fonction d’auto-complétion. Il suffit de taper les premiers caractères d’une commande ou d’un nom de fichier/répertoire en fonction du contexte et d’ensuite pousser sur le caractère de tabulation afin de demander au shell de compléter la fin du mot. Cela accélère l’encodage de commandes.

Read More

L'analyse statique au secours des programmeurs C

Le langage C pose problème à de nombreux étudiants car il les force à réfléchir à beaucoup de détails qui sont gérés automatiquement par d’autres langages. Dans le cadre du cours de Systèmes Informatiques, les étudiants doivent au minimum compiler leurs programmes C en utilisant les options de détection d’erreur du compilateur. Avec gcc, ils doivent obligatoirement utiliser -Wall et -Werror. Ces options permettent de détecter certaines erreurs, mais pas toutes. Prenons un exemple extrait d’une soumission d’un étudiant sur inginious. L’exercice qui était demandé était d’écrire le corps de la fonction copy

[t.c:10]: (style) The function ‘copy’ is never used.

Read More

Texitdote un vérificateur orthographique pour Latex

De nombreux étudiants utilisent Latex pour rédiger leurs rapports et travaux de fin d’études. Dans de nombreuses disciplines scientifiques et en informatique, Latex reste l’outil de choix pour la rédaction de documents. Cependant, durant les dernières années, les correcteurs orthographiques et grammaticaux de logiciels tels que Word ou LibreOffice se sont fortement améliorés, alors que bon nombre de documents Latex sont écrits dans des éditeurs simples.

Read More

De nombreux exemples utiles en AWK

awk est un langage de manipulation de fichiers textes très flexible et très utile qui est intégré à toutes les versions de Unix. Plusieurs livres décrivent sont fonctionnement en détails. Pour de nombreuses manipulations simples de fichiers texte, de bons exemples peuvent suffire à obtenir de très bons résultats. Le document Handy One-Line scripts for AWK maintenu par Eric Pement contient des dizaines d’exemples utiles.

Read More

Déplacement efficace sur la ligne de commande

Lorsque l’on manipule la ligne de commande, il est fréquent que l’on doive se déplacer dans une commande que l’on est en train de taper. Les flèches permettent naturellement de déplacer le curseur, mais ce déplacement se fait caractère par caractère, ce qui peut être lent.

Read More