Un post de Lars Knoll sur le blog Qt de Nokia fait le point sur la future version Qt 5. Dans ce texte Lars indique que Qt 4 est sorti en juin 2005 et que depuis cette époque beaucoup de chose ont changés dans le paysage informatique. Selon lui il est temps dévoluer vers Qt 5. Certes la transition se veut moins traumatisante que le passage de Qt 3 à Qt 4 puisque la compatibilité sera assurée au niveau du (…)
Journal Ulfius: framework pour faire des API Web en C
TL;DR
Ulfius est un framework pour développer des webservices et des API REST en C facilement et rapidement.
Intro
Ca fait quelques mois que je travaille sur ce projet, et il a atteint une certaine maturité pour avoir envie d'en parler plus largement en espérant lui donner un nouvel élan.
Il y a quelques temps, je parlais ici de mon projet de serveur domotique à base d'API REST en C. Depuis, je continue à le faire évoluer tranquillement, et (…)
Journal Genèse d'un journal
Mon journal précédent parlait de realloc dont on ne contrôlait pas la valeur de retour. Suite à ce journal j'ai été très surpris par le nombre de commentaires clamant que ce n'était pas important, que le noyau se chargerait de tuer le processus, que le programme planterait, … Je vais donc expliquer ce qui m'a amener à écrire ce journal.
Je codais un petit truc vite fait en C et j'avais besoin d'utiliser snprintf
. Cette fonction prend, en paramètre, (…)
Opmock : un outil pour le TDD efficace en C et C++
Le [TDD] est une pratique souvent utilisée dans les projets de développement utilisant les « méthodes agiles ». Pour supporter cette pratique, il est nécessaire de disposer d'outils qui permettent d'écrire facilement des tests unitaires, mais également de couper les dépendances d'une section de code, afin de la tester en isolation. Les langages actuels, comme Java ou C#, bénéficient tous de pléthore d'outils de ce type, comme Jmockit ou Mockito. Cependant, le C et le C++ n'ont pas cette chance, bien qu'une quantité impressionnante de code les utilise.
Opmock est un outil de génération automatique de stubs et de mocks, qui permet de simplifier énormément le TDD avec des bases de code importantes en C ou C++, existantes ou nouvelles.
Le projet est placé sous licence GPLv3.
Journal Programme de réinsertion pour informaticien au bout du rouleau
Les symptomes
Vous pondez du code un peu mou ?
Votre dernière analyse d'uri laissait à désirer ?
Vous sentez comme une légère baisse de motivation à propos du énième framework révolutionnaire destiné à un organe de forme circulaire, tournant autour d'un axe passant par son centre ?
Les couleurs de votre term
sont ternes ?
Vim
s'est perdu dans la matrice en recherchant Neo ?
Vous utilisez Emacs
d'une seule main ?
Lire les derniers journaux polémiques de linuxfr ne vous inspire qu'indifférence, et vous (…)
Journal Koffi, un paquet simple, complet et rapide de FFI C pour Node.js
Hello :)
Aperçu du projet
Koffi, c'est un petit projet que j'ai démarré un petit peu par hasard il y a 4 mois, après avoir eu besoin d'appeler du C depuis un projet Node.js. J'ai commencé par utiliser node-ffi et node-ffi-napi, mais les performances étaient désastreuses. J'ai essayé d'autres paquets (comme fastcall, basé sur dyncall), mais il leur manque trop de choses : notamment, le passage de structures par valeur (en paramètre ou en valeur de retour) (…)
Coder efficacement, bonnes pratiques et erreurs à éviter
Développer une application peut rapidement devenir un enfer si vous n'avez pas anticipé certaines difficultés et fait les bons choix au moment de sa conception. Ce livre vous aidera à vous poser les bonnes questions et à tirer le meilleur parti de la programmation objet, en particulier en C++, sans tomber dans les pièges les plus fréquents. Il clarifie certains concepts délicats et passe en revue un ensemble de bonnes pratiques, qui rendront vos projets plus évolutifs et plus faciles à maintenir.
C : Science et éducation : EZ-Draw 1.2 est sorti
Pour qui veut apprendre à réaliser une interface graphique, il y a un très grand choix de langages et de bibliothèques graphiques. Dans le cas particulier du langage C (ou C++), les bibliothèques graphiques communément utilisées (GTK+, Qt, etc.) sont très complètes, mais nécessitent un important effort d’apprentissage ; pour tout dire, elles ne sont clairement pas adaptées pour le débutant ou l’autodidacte. C’est pour cette raison que je développe EZ-Draw depuis maintenant six ans, et j’ai le plaisir de vous annoncer la sortie de la nouvelle version 1.2.
EZ-Draw (Easy Draw) est une petite boîte à outil graphique pour le langage C, fonctionnant à la fois sous GNU/Linux, Mac OS X et Windows (toutes versions).
EZ-Draw est conçu pour l’apprentissage de la programmation événementielle et des interfaces graphiques. Il permet de créer de façon très simple des fenêtres, y dessiner, réagir à la souris et au clavier, faire des animations.
Au menu des nouveautés :
- lecture et affichage des images aux formats PNG, JPEG, GIF et BMP ;
- nouvelle documentation récrite avec Sphinx ;
- traduction de tout le projet en anglais, et documentation bilingue ;
- nouveaux jeux : Doodle in London, 2048 / 2584, Bubblet.
Le logiciel est sous licence LGPL ; il est utilisé en particulier dans la Licence d’informatique de l’Université d’Aix‐Marseille, dans des projets d’algorithmique ou des projets de jeux en 2D (souvent inspirés des jeux sur smartphones).
Journal pythran: python -> c++
La lecture quotidienne des journaux m'avertit qu'il y a de nombreux pythonistes dans le coin, alors…
Dans ma pratique régulière du Python (et n'oubliez pas : manger 5 langages par jour pour être bien en forme !), je prends un grand plaisir à coder des algos à base de liste / ensembles / dictionnaires le tout dans une petite sauce fonctionnelle. C'est loin d'être la seule façon de programmer en Python mais c'est comme ça que je fais.
Bien sûr, tout (…)
Journal Quelques langages de programmation pour GNOME
C, Python, Vala, C++, C#, JavaScript, Java, Perl, GOB, Genie et sûrement d'autres. Autant de langages possibles pour écrire une application pour GNOME. Voyons voir ce que le C, Python et Vala ont dans le ventre !
Le langage C
Le langage C peut être vu comme un langage assez primitif. Mais c'est sans compter les nombreuses bibliothèques de GNOME : GObject, GLib, GTK+, et bien d'autres (écrites elles-mêmes en C).
GObject, le cœur de GNOME, offre un (…)
Journal C++11 : sur le fil
Dans la course effrénée que se livrent les compilateurs, GCC vient traîtreusement de gagner une manche en étant le premier à fournir une implémentation complète du langage C++11. Les développeurs ont profité de la sortie de la version de maintenance 4.8.1 pour implanter les deux fonctionnalités manquantes :
les rvalue-references
pour le pointeur this
Celles-ci permettent (entre autres) de surcharger des fonctions membres quand this
est une rvalue
; voici un exemple tiré de la proposition originale :
class X {
(…)
Journal Parlons C, parlons pipe !
Mon livre de chevet, Unleashed C (non je mens, mon livre de chevet reste Playboy, mais ça fait moins sérieux), propose d'implémenter une FIFO (ou "pipe", pour tube en anglais) de la façon suivante (approximativement, j'ai simplifié la représentation (surtout il y avait QUEUE
écrit et je veux pas de problèmes)) :
+----------+
| taille |
+----------+
| debut |-------+
+----------+ |
| fin | |
+----------+ V
| +---+---------+
| | s | donnes |
| +---+---------+
|
(…)
codeurs, traducteurs, cppreference a besoin de vous
cppreference est un wiki dont le but est de fournir une documentation exhaustive des bibliothèques standard C (89, 99, 11) et C++ (03 et 11). Le contenu est disponible sous licences libres CC-BY-SA et GFDL.
Depuis quelques mois, le site anglophone a changé de peau pour utiliser mediawiki, lui assurant une meilleure lisibilité, la possibilité d'utiliser des templates… Les contenus ont depuis régulièrement progressé en qualité, même si certaines choses restent à faire.
La dernière initiative a été de générer les contenus français, mandarin, italien, espagnol, portugais et russe depuis le contenu anglais en utilisant l'outil google translate. Évidemment, si certaines phrases sont correctement traduites, d'autres sont à peine compréhensibles et un effort important reste à fournir pour arriver à une documentation francophone de qualité, mais une base est déjà présente sur laquelle s'appuyer.
Envie de découvrir toutes les nouveautés de la bibliothèque standard C++11 (multithreading, regexp…) tout en rendant service à la communauté francophone ? Ne perdez pas cette opportunité ! Faites chauffer gcc clang++ et rendez-vous sur fr.cppreference.com
Journal Visiteurs en C++
Sommaire
Le design pattern du Visiteur est un des plus connu. Il permet, selon Wikipédia, de «séparer un algorithme d'une structure de données». Je ne rappelle pas l'intérêt de ce design pattern, j'en viens directement au fond de cet article : quelle est la meilleure façon de faire un Visiteur en C++ ? Il y a (…)
Journal Pythran : C++ pour les serpents
Salut à toi, mon petit journal
Ça fait bien longtemps que je ne t'ai pas parlé de mon petit bébé cybernétique, Pythran.
Tu te rappelles de lui ? C'est un convertisseur d'un sous ensemble du langage Python vers C++11. L'idée est de mutiler légèrement le langage Python (hop, plus de classes) et d'ajouter des contraintes de typage statique pour générer un module natif optimisé à partir d'un module écrit en Python.
Sommaire
- Résumé des épisodes Précédents
- Optimisations statiques
- Projet Euler
- (…)