Journal
Ce journal contient 14 entrées.
Sockets en C
Quelques documentations sur les sockets en C (bloquante, non bloquante, IPv6, etc.)
http://www.scottklement.com/rpg/socktut/tutorial.html
http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/chapter-section-using-api.html
http://www.beej.us/guide/bgnet/output/html/singlepage/bgnet.html
http://mff.devnull.cz/pvu/src/tcp/

http://www.scottklement.com/rpg/socktut/tutorial.html
http://www.tldp.org/HOWTO/Linux+IPv6-HOWTO/chapter-section-using-api.html
http://www.beej.us/guide/bgnet/output/html/singlepage/bgnet.html
http://mff.devnull.cz/pvu/src/tcp/
What will happen if you...
Excellente présentation sur les subtilités du C.
C'est aussi un parfait exemple de pourquoi un standard devrait toujours chercher à minimiser les ambiguïtés (comportement indéfinis ou non spécifiés), au lieu de laisser les implémentations se débrouiller. Ou, à tout le moins, proposer une implémentation de référence.

C'est aussi un parfait exemple de pourquoi un standard devrait toujours chercher à minimiser les ambiguïtés (comportement indéfinis ou non spécifiés), au lieu de laisser les implémentations se débrouiller. Ou, à tout le moins, proposer une implémentation de référence.
The C++14 Standard: What You Need to Know
Avancée dans C++14.
Voir aussi les évolutions depuis C++11 :
http://www.codeproject.com/Articles/570638/Ten-Cplusplus-Features-Every-Cplusplus-Developer
http://blog.smartbear.com/c-plus-plus/the-biggest-changes-in-c11-and-why-you-should-care/

Voir aussi les évolutions depuis C++11 :
http://www.codeproject.com/Articles/570638/Ten-Cplusplus-Features-Every-Cplusplus-Developer
http://blog.smartbear.com/c-plus-plus/the-biggest-changes-in-c11-and-why-you-should-care/
Un autre regard sur le C++
Un professeur de C/C++ que j'ai eu en école d'ingénieur a finalement publié ses cours sous la forme d'un bouquin auto-édité. Je n'ai pas lu ce livre là spécialement, mais la version qu'il nous avait fourni pendant son cours était particulièrement détaillée, complète et didactique. Idéal pour aborder le langage C++ en profondeur.
Le sommaire peut être consulté ici : https://www.facebook.com/pages/Un-autre-regard-sur-le-CPP/358770564300621
Remarque : le livre n'est pas destiné aux débutants purs, une connaissance préalable du C est requise.

Le sommaire peut être consulté ici : https://www.facebook.com/pages/Un-autre-regard-sur-le-CPP/358770564300621
Remarque : le livre n'est pas destiné aux débutants purs, une connaissance préalable du C est requise.
Guillaume Chereau Blog - C++ patterns using plain C
D'autres exemples sur la mise en place de concepts C++ en C (templates par exemple). Dans la lignée de ce dont j'avais déjà parlé là http://benjaminbillet.fr/news/index.php?link=d5gwm
Cool C Programming
Une liste de petites astuces en C à propos du préprocesseur, des tableaux et des nouvelles notations introduites. J'aime beaucoup le coup du v[index] = index[v].
C / C++ Low Level Curriculum
Revoir ses fondamentaux en C/C++ avec cette excellente suite d'articles dédiée au fonctionnement "bas niveau" du langage.
http://www.altdevblogaday.com/2011/11/09/a-low-level-curriculum-for-c-and-c/
http://www.altdevblogaday.com/2011/11/24/c-c-low-level-curriculum-part-2-data-types/
http://www.altdevblogaday.com/2011/12/14/c-c-low-level-curriculum-part-3-the-stack/
http://www.altdevblogaday.com/2011/12/24/c-c-low-level-curriculum-part-4-more-stack/
http://www.altdevblogaday.com/2012/02/07/c-c-low-level-curriculum-part-5-even-more-stack/
http://www.altdevblogaday.com/2012/03/07/c-c-low-level-curriculum-part-6-conditionals/
http://www.altdevblogaday.com/2012/04/10/cc-low-level-curriculum-part-7-more-conditionals/
http://www.altdevblogaday.com/2012/05/07/cc-low-level-curriculum-part-8-looking-at-optimised-assembly/
http://www.altdevblogaday.com/2012/09/04/cc-low-level-curriculum-part-9-loops/
http://www.altdevblogaday.com/2013/01/05/cc-low-level-curriculum-part-10-user-defined-types/
http://www.altdevblogaday.com/2013/05/03/cc-low-level-curriculum-part-11-inheritance/
http://www.altdevblogaday.com/2013/05/22/cc-low-level-curriculum-part-12-multiple-inheritance/

http://www.altdevblogaday.com/2011/11/09/a-low-level-curriculum-for-c-and-c/
http://www.altdevblogaday.com/2011/11/24/c-c-low-level-curriculum-part-2-data-types/
http://www.altdevblogaday.com/2011/12/14/c-c-low-level-curriculum-part-3-the-stack/
http://www.altdevblogaday.com/2011/12/24/c-c-low-level-curriculum-part-4-more-stack/
http://www.altdevblogaday.com/2012/02/07/c-c-low-level-curriculum-part-5-even-more-stack/
http://www.altdevblogaday.com/2012/03/07/c-c-low-level-curriculum-part-6-conditionals/
http://www.altdevblogaday.com/2012/04/10/cc-low-level-curriculum-part-7-more-conditionals/
http://www.altdevblogaday.com/2012/05/07/cc-low-level-curriculum-part-8-looking-at-optimised-assembly/
http://www.altdevblogaday.com/2012/09/04/cc-low-level-curriculum-part-9-loops/
http://www.altdevblogaday.com/2013/01/05/cc-low-level-curriculum-part-10-user-defined-types/
http://www.altdevblogaday.com/2013/05/03/cc-low-level-curriculum-part-11-inheritance/
http://www.altdevblogaday.com/2013/05/22/cc-low-level-curriculum-part-12-multiple-inheritance/
Building a Reflective Object System in C++
Une tentative pour faire de l'introspection en C++. Les prototypes de classes sont décrits dans un langage intermédiaire (ici un IDL maison) qui est ensuite transformé en C++ (ici via le préprocesseur). Le code généré contient alors les classes décrites, mais aussi des objets spécifiques qui décrivent ces classes, leurs attributs et leurs méthodes.
Ces objets spécifiques permettent alors d'instancier les classes à partir de leurs noms, d'itérer sur les propriétés d'une classe, etc.
C'est un peu fastidieux et il y a des limitations, mais l'approche n'est pas bête.
Ces objets spécifiques permettent alors d'instancier les classes à partir de leurs noms, d'itérer sur les propriétés d'une classe, etc.
C'est un peu fastidieux et il y a des limitations, mais l'approche n'est pas bête.
Object oriented programming with ANSI-C
Je vois souvent des étudiants imaginer que l'on ne peut faire de programmation objet qu'avec un langage orienté objet. Cependant, la programmation objet est un paradigme, au même titre que la programmation impérative ou fonctionnelle, c'est à dire un mode de pensée spécifique pour résoudre des problèmes et, par extension, écrire des programmes.
Le C n'est pas un langage orienté objet, en cela qu'il ne fournit pas de constructions explicitement dédiées à la programmation objet. Cependant, le C a ça de flexible et de puissant qu'il peut être utilisé en gardant à l'esprit une philosophie objet.
Par exemple, les classes peuvent être représentées par des structures, qui encapsulent des variables (attributs) et des pointeurs sur des fonctions (méthodes). L'héritage peut être assuré en utilisant une propriété du langage qui permet de transtyper automatiquement une structure B en une structure A si (et seulement si) le début de B est un clone de A. Les fonctions capables de manipuler A sont alors capables de manipuler B.
Ce livre passe en revue l'ensemble des méthodes pour penser objet en C, avec une exhaustivité remarquable. Selon moi, l'utilité d'un tel exercice est triple : c'est idéal pour (i) maîtriser la puissance du C, (ii) voir en profondeur la philosophie objet et (iii) comprendre comment sont construit les langages orientés objet (notamment le C++).
Je fais une sauvegarde locale du livre ici : http://benjaminbillet.fr/media/oo-programming-ANSI-C.pdf
Voir aussi ce cours en français, plus simple d'accès : http://chgi.developpez.com/c/objet/
Le C n'est pas un langage orienté objet, en cela qu'il ne fournit pas de constructions explicitement dédiées à la programmation objet. Cependant, le C a ça de flexible et de puissant qu'il peut être utilisé en gardant à l'esprit une philosophie objet.
Par exemple, les classes peuvent être représentées par des structures, qui encapsulent des variables (attributs) et des pointeurs sur des fonctions (méthodes). L'héritage peut être assuré en utilisant une propriété du langage qui permet de transtyper automatiquement une structure B en une structure A si (et seulement si) le début de B est un clone de A. Les fonctions capables de manipuler A sont alors capables de manipuler B.
Ce livre passe en revue l'ensemble des méthodes pour penser objet en C, avec une exhaustivité remarquable. Selon moi, l'utilité d'un tel exercice est triple : c'est idéal pour (i) maîtriser la puissance du C, (ii) voir en profondeur la philosophie objet et (iii) comprendre comment sont construit les langages orientés objet (notamment le C++).
Je fais une sauvegarde locale du livre ici : http://benjaminbillet.fr/media/oo-programming-ANSI-C.pdf
Voir aussi ce cours en français, plus simple d'accès : http://chgi.developpez.com/c/objet/
FXT, a library of low-level algorithms
Librairie C/C++ implémentant de multiples algorithmes utiles : transformées, graphes, arithmétique modulaire, tris, structures de données, etc.
POSIX Threads Programming
Allez, aujourd'hui on révise ses threads POSIX, avec ce cours bien complet.
Et on révise aussi les signaux, tant qu'on y est : http://www.linuxprogrammingblog.com/all-about-linux-signals

Et on révise aussi les signaux, tant qu'on y est : http://www.linuxprogrammingblog.com/all-about-linux-signals
Overview of Intro to MPI class
Je suis un grand fan d'OpenMP et de MPI, ces deux librairies permettent de faire des trucs géniaux (programmation concurrente, programmation distribuée) avec une simplicité enfantine.
Quel conteneur choisir pour stocker mes objets ?
C'est vieux, mais c'est une super méthode pour choisir quelle collection de la STL utiliser en C++.

Ce journal est basé sur Ginger, un gestionnaire de lien minimaliste développé dans le cadre d'un stage de perfectionnement. Pour plus d'informations, consulter le wiki consacré à mes projets personnels.