Quelques cadriciels Web C++ (1/2)

Posté par  (site web personnel) . Édité par Davy Defaud, ZeroHeure, Julien Jorge, palm123, Benoît Sibaud, bubar🦥 et claudex. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
34
9
déc.
2018
C et C++

Actuellement, il existe de nombreux langages et cadriciels (frameworks) intéressants pour le développement Web côté serveur. Dans ce domaine, le C++ n’est pas le langage le plus à la mode, mais il possède cependant des atouts intéressants. En effet, le C++ dispose de nombreuses bibliothèques (dont des cadriciels Web), il est réputé pour ses performances, enfin ses dernières normes le rendent plus agréable à utiliser.

L’objectif de cet article est de donner un aperçu des outils C++ disponibles pour le développement Web back‐end, à partir d’un exemple d’application. Les codes sources présentés ici sont disponibles sur ce dépôt Git. Les différents cadriciels utilisés sont résumés en annexe (partie 2). Enfin, une liste de bibliothèques C++ est disponible sur Awesome C++.

Partie 1 : exemple d’application, génération de HTML et accès à une base de données.

Journal Spacewar! pour Haiku

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
33
11
nov.
2018

Bonjour Nal,

Bon voilà, il fait froid dehors, je suis un peu fatigué et j'ai pas envie de replonger tout de suite dans le code de WebKit pour trouver pourquoi il est persuadé de ne pas savoir traiter les tags aujourd'hui, mes slides pour le Capitole du Libre sont prêtes (enfin à peu près…)…

C'est le moment de porter Spacewar! sur Haiku!

Spacewar! est un jeu vidéo écrit à l'origine pour le PDP-1 entre 1961 et 1962 (en savoir (…)

Miam-Player 0.7.1

Posté par  (site web personnel) . Édité par Nils Ratusznik, Xavier Teyssier et palm123. Modéré par Xavier Teyssier. Licence CC By‑SA.
Étiquettes :
32
7
avr.
2015
Son

Miam-Player est encore un lecteur audio qui se base sur Amarok 1.4, comme Clementine. Sauf que là, il ne s'agit pas d'un fork : tout a été codé à la main (avec amour) en réutilisant la bibliothèque VLC pour le décodage des fichiers audio, et la toute dernière version de Qt 5.

Opmock : un outil pour le TDD efficace en C et C++

Posté par  . Modéré par Lucas Bonnet. Licence CC By‑SA.
Étiquettes :
32
14
mar.
2011
Ligne de commande

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 C++ Core Guidelines

Posté par  (Mastodon) . Licence CC By‑SA.
Étiquettes :
31
2
oct.
2015

En ce moment a lieu la conférence CPPCon qui regroupe la crème des acteurs du C++ et de son comité de normalisation. Au cours de cette conférence, Herb Sutter (le responsable du comité de normalisation, travaillant à Microsoft) et Bjarne Stroustrup (inventeur du C++) ont donné deux exposés sur la manière de bien écrire du C++.

Ils en ont profité pour dévoiler un guide des règles de bonne conduite pour C++ accompagné d'une bibliothèque, GSL (Guideline Support Library) permettant (…)

Journal Le réseau dans C++

Posté par  (Mastodon) . Licence CC By‑SA.
Étiquettes :
31
24
nov.
2014

Faire du réseau de manière portable en C++, ça va devenir une réalité ! Le travail se fait dans une spécification technique (TS), c'est-à-dire dans une bibliothèque annexe qui sera figée pour C++17 et mise dans un namespace explicite : std::experimental.

Concrètement, la proposition qui en est à sa troisième révision, est largement fondée sur Boost.Asio qui, comme son nom ne l'indique pas, permet de faire à la fois du synchrone et de l'asynchrone. Elle me semble pour l'instant (…)

Journal Compilateur trop intelligent

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
30
1
nov.
2017

Une belle illustration des decisions radicales que peut prendre l'optimiseur de clang quand il rencontre des comportements indéfinis :

exemple en c++ sur https://gcc.godbolt.org

L'explication se trouve ici , je ne spoile pas pour ceux qui veulent trouver tout seuls comment le compilateur a choisi d'effacer le disque dur.

C++17 exprime la virgule flottante en hexadécimal et offre des cadeaux aux lecteurs de LinuxFr.org

Posté par  . Édité par Davy Defaud, Oliver, ZeroHeure et Storm. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
30
7
déc.
2016
C et C++

Chaque jour (ouvré) de décembre a droit à sa surprise. Après le if constexpr, aujourd’hui, le calendrier de l’Avent du C++ présente la spécification technique P0245 concernant le littéral pour exprimer la virgule flottante en hexadécimal.

Les Nerdettes s’entraînent pour le concours des littéraux hexadécimaux sur LinuxFr.org

Coder efficacement, bonnes pratiques et erreurs à éviter

Posté par  . Édité par BAud, Nÿco, Thom, Benoît Sibaud et olivierweb. Modéré par Ontologia. Licence CC By‑SA.
30
14
avr.
2014
C et C++

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.

Titre de l'image

Edip (Easy Digital Imaging Processing), un programme de traitement d'image pour Linux

Posté par  (site web personnel) . Édité par Benoît Sibaud, palm123 et claudex. Modéré par claudex. Licence CC By‑SA.
30
17
déc.
2015
Graphisme/photo

Edip (Easy Digital Imaging Processing) sur open-source-projects.net est un logiciel de traitement d'images orienté effets et filtres mais il peut faire beaucoup plus.

Edip est basé sur la bibliothèque opencv-3.0.0 et utilise pour interface humain machine Gtkmm-3.

Edip a été écrit en C++ et utilise le concept MVC (Model View Controller).

  • Model: une bibliothèque statique nommée libedip que vous pouvez réutiliser et modifier selon les termes de la license GPLv3 ;
  • View: la bibliothèque de widgets (contraction de Windows Gadgets) pour l'IHM ou GUI ;
  • Controller: une classe C++ faisant le lien entre le modèle et la vue et assurant le contrôle du programme.

Edip dispose d'une documentation expliquant les techniques de traitement d'images implémentées dans libedip donc dans Edip en anglais au format HTML consultable en ligne ou à télécharger au format zip.

Verilator 4.002

Posté par  (site web personnel, Mastodon) . Édité par Davy Defaud, BAud, ZeroHeure, bubar🦥, palm123 et Benoît Sibaud. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
29
24
sept.
2018
Matériel

La version 4.002 de Verilator a été annoncée à la conférence ORConf2018 en Pologne.

Verilator est sans conteste le simulateur HDL open source le plus rapide du « marché ». Il permet de simuler des porte‐grammes écrits en Verilog synthétisable.

Le nouveau logo de Verilator

Modeste contribution à Audacity sur l'affichage des temps

Posté par  (site web personnel) . Édité par Benoît Sibaud, Nils Ratusznik, ZeroHeure et Nÿco. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
29
18
nov.
2014
Son

Audacity est un logiciel (GPLv2/C,C++/wxWidget) dédié "à la manipulation de données audio numériques.". Son développement est encore actif (dernière version : septembre 2013) et utilise SVN.

Cette dépêche est consacrée à un retour d'expérience sur un point précis : modifier la manière dont Audacity affiche le temps de début et de fin d'un fragment audio.

Journal Votre potager a (encore) besoin de Tomate

Posté par  . Licence CC By‑SA.
Étiquettes :
29
27
mar.
2015

Je vous parlais l'année dernière de Tomate, un logiciel pour planifier et suivre les cultures au potager.

Le code source est disponible ici: https://github.com/MickaelG/tomate_cpp

Pas de révolution pour cette année, mais pas mal de corrections de bogues, un changement de l'organisation de l'écran, et surtout la possibilité de placer chaque culture dynamiquement dans la planche, au lieu des subdivisions fixes de la première version.

Pour le futur:

  • Une version Windows
  • La possibilité de spécifier les positions des cultures graphiquement au (…)

Journal Pythran 0.7.2 - détails techniques

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
28
15
oct.
2015

Termi' Nal (humour du 42ème degré),

Pythran, compilateur open source dédié au Python scientifique, vient tout juste de sortir sa version 0.7.2, à l'occasion de PyConFR où il sera présent. Ceux qui ont loupé la saison 1 de ce magnifique compilateur seront peut-être intéressés par le tag pythran.

Au lieu de vous résumer le Changelog, le reste de ce journal va vous parler de deux points techniques, un sur (…)

Journal C++11 : sur le fil

Posté par  . Licence CC By‑SA.
Étiquettes :
28
6
juin
2013
Ce journal a été promu en dépêche : 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 {
(…)