Catégories

Computer Science Vocabulary

Too often I have « problems » with computer science words or expressions. In addition, there is always someting new I learn along my readings/viewings on the Web. So, I decided to start this page. Usually Googling helps a lot to get an « answer » at the speed of light. On the other hand, working on this page, adding words, taking the time to read, copy/paste, write, summarize what I think I understood help me a lot.

How it works

  • This is mostly for me
  • There is no goal of completeness (how could it be?)
  • Entries are in alphabetical …

    Lire la suite Computer Science Vocabulary

  • Algorithme de Dijkstra en C++

    Je suis toujours sur Codingame et pour l’un des challenges je cherchais un exemple simple d’implémentation de l’algorithme de Dijkstra en C++ sur lequel je pourrais expérimenter etc. Je n’ai pas trouvé ce que je cherchais car soit le code C++ n’utilisait pas la STL, soit le code était très long, soit il n’utilisait pas de priority_queue soit encore le code n’était pas prêt à l’emploi.

    Bref, voilà le source avec lequel j’ai fait mes propres tests. Le code est complet, relativement court (moins de 80 lignes avec pas mal de commentaires) et autonome (on peut faire un copier coller …

    Lire la suite Algorithme de Dijkstra en C++

    C++ sur Arduino

    Je suis dans une machine virtuelle Debian Jessie sous Mate (sous VMWare 12) et le but est de programmer un Arduino Uno en C++.

    Méthode 1 – Sans la library core

  • Installation des soft nécessaires
  • sudo apt-get install gcc-avr binutils-avr gdb-avr avr-libc avrdude
  • Test le port série (à travers le port USB). On voit qu’il faut appartenir au groupe dialout pour pouvoir l’utiliser.
  • ls -l /dev/ttyACM* crw-rw---- 1 root dialout 166, 0 mars 27 23:20 /dev/ttyACM0
  • Si besoin, ajouter le user courant au groupe « dialout »
  • Lire la suite C++ sur Arduino

    C++ : Bonnes pratiques

    Comme d’autres pages du site, celle-ci va évoluer au cours du temps en fonction de ce que j’aurai lu ou vu. Il ne faut donc pas s’affoler si il y a des sections vide pour l’instant.

    Introduction

    Je met ici des liens que je trouve utiles et qui concernent les bonnes pratiques de développement en C++. L’idée est de garder sous la mains des « références » dont il est bon de s’inspirer afin de produire du code qui soit « Expressif ». De mon point de vue, « Code Expressif » cela signifie du code qui est agréable à …

    Lire la suite C++ : Bonnes pratiques

    À propos de clang-format

    Je suis sous Windows 10, dans une console classique ou une console Powershell. Pour une première invocation, on peut essayer :

    clang-format --style=llvm -dump-config

    Cela permet de lister les paramètres du style LLVM. Il y a d’autres styles « de base » possibles (Google, Chromium, Mozilla etc.). Ensuite on peut sauvegarder la configuration dans un fichier « .clang-format » (fichier caché) ou bien « _clang_format ». Cela permet de partir d’une base puis de la modifier par exemple. Voilà la ligne de commande à invoquer pour générer un fichier caché :

    À propos de clang-format

    À propos de clang-tidy

    Ne cherchez plus clang-modernize il est dorénavant inclus dans clang-tidy.

    Je suis sous Windows 10, dans une console classique ou une console Powershell. Pour une première invocation, on peut essayer :

    clang-tidy raspicam.cpp -checks=* -- -std=c++11

    On peut aussi utiliser des expressions régulières pour nommer les fichiers

    clang-tidy test.[ch]pp -checks=* -- -std=c++11

    Pour voir la liste des vérifications faites

    clang-tidy raspicam.cpp -list-checks -checks=* -- -std=c++11

    On voit alors (en date de Fev 2017) la liste suivante :

    À propos de clang-tidy

    Installer la dernière version de LLVM et de Clang sous Debian

    J’ai une machine virtuelle avec une Debian 8.

    Dans le cache de apt-get je ne trouve qu’une version 3.5 de clang (apt-cache show clang)

    Je souhaite installer la toute dernière dernière.

    Je télécharge la version déjà compilée pour Debian 64 de LLVM/Clang (3.9.1 à ce jour) sur llvm.org

    Ensuite je fais :

    sudo tar -C /usr/local -xJf clang+llvm-3.9.1-x86_64-linux-gnu-debian8.tar.xz --strip 1

    Et zou c’est terminé. Là où c’est plus « merdique » c’est pour désinstaller. Il faut faire :

    sudo rm -v /usr/local/bin/{clang*,llc,lli,llvm*,macho-dump,opt,bugpoint,c-index-test} && \ sudo rm -rfv /usr/local/docs/llvm  ...

    Lire la suite Installer la dernière version de LLVM et de Clang sous Debian

    Applications Windows Universelles avec C++WinRT à partir d’un projet vide

    Pour comprendre de quoi il s’agit il est préférable d’avoir lu cette page.

    J’imagine ici que j’ai l’intention d’écrire un bout de code qui utilise C++WinRT mais sans interface graphique. Cela peut être le cas si je veux faire un test par exemple. Je souhaite pourtant utiliser un projet Visual Studio pour pouvoir gentiment travailler dans l’environnement de travail (debug par exemple). Que faire? Refaire ce que nous avions fait dans l’article précédent n’est pas entièrement satisfaisant. En effet, déshabiller un projet C++/CX & XAML laisse des ressources sur le disque (les images .png) que l’on utilisera jamais. En plus, …

    Lire la suite Applications Windows Universelles avec C++WinRT à partir d’un projet vide

    Applications Windows Universelles en C++ avec C++WinRT

    Le projet libre C++WinRT permet d’écrire « en vrai C++ » (et pas avec C++/CX) des applications Windows universelles que l’on peut compiler et déployer sur PC, Android etc…

    Voir le projet : https://github.com/Microsoft/cppwinrt

    Lire l’article : https://msdn.microsoft.com/en-us/magazine/mt745094

    De mon point de vue, il n’y a que du bon dans le projet. En effet, c’est uniquement basé sur des fichiers headers (un peu comme Boost), ça marche, c’est documenté, on fait du C++ « classique » et à priori les développeurs de Microsoft commencent à l’utiliser en interne. Le truc le plus important c’est que c’est que du C++ standard. …

    Lire la suite Applications Windows Universelles en C++ avec C++WinRT

    C++ et assembleur en ligne

    Faut aller sur : http://gcc.godbolt.org/

    Ensuite faut jeter un oeil sur la vidéo suivante et ses petites sœurs…