BellePoule - Gestion de compétitions d'escrime

Posté par (page perso) . Édité par BAud, Nils Ratusznik, palm123, Xavier Claude, xaccrocheur, ZeroHeure et Bruno Michel. Modéré par ZeroHeure. Licence CC by-sa
47
15
mai
2014
C et C++

S'il est un sport dont la gestion des compétitions ne peut se passer de l'outil informatique, c'est bien l'escrime :

Un événement typique rassemblant 140 tireurs engendrera, rien que pour le tour de poules, 1029 opérations mathématiques élémentaires (additions, soustractions, divisions) pour calculer un classement tenant compte du ratio victoires/défaites, des touches données et des touches reçues.

Titre de l'image

Petite difficulté supplémentaire, un match d'escrime est extrêmement rapide et n’excédera jamais plus de 3 minutes en poule. Ce petit millier d'opérations se doit donc d'être réalisé dans les plus brefs délais.

Les solutions logicielles répondant à ce besoin se comptent sur les doigts d'une main. Elle sont toutes fermées, à l'exclusion du système BellePoule dont le code source est publié sous licence GPLv3. C'est également la seule à offrir la dématérialisation des échanges avec les arbitres, par le biais d'un système de feuilles de match électroniques.

Libération de navitia : un calculateur d’itinéraire pour les transports en communs

Posté par . Édité par Florent Zara, palm123 et Benoît Sibaud. Modéré par ZeroHeure. Licence CC by-sa
52
30
avr.
2014
C et C++

La société Canal TP a ouvert sous licence Affero-GPL son produit phare : le calculateur d’itinéraires pour transports en commun Navitia. Il s’agit d’un serveur qui expose une API REST afin d’être intégrée dans divers services (site web, application mobile, client CLI…). Les sources de données acceptées sont le format GTFS souvent utilisé pour diffuser des horaires en OpenData et OpenStreetMap pour les itinéraires piétons.

Le cœur est en C++11 avec une interface en Python pour gérer l’API REST.

En plus de la fonction centrale de calcul des itinéraires, voici certaines autres fonctionnalités :

  • approche à pied, vélo, vélo libre service
  • prochains départs, arrivées (pour l’instant théorique, le temps réel est encore en développement)
  • « isochrones » (terme approximatif qui revient à calculer le temps pour atteindre tous les arrêts depuis un point)
  • service « à proximité »
  • explorer le référentiel de données (par exemple l’ensemble des lignes passant par tel arrêt)

C : Science et éducation : EZ-Draw 1.2 est sorti

Posté par . Édité par Davy Defaud, Nÿco et ZeroHeure. Modéré par Pierre Jarillon. Licence CC by-sa
Tags :
30
19
avr.
2014
C et C++

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).

Coder efficacement, bonnes pratiques et erreurs à éviter

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

Encore un exemple de code spaghetti : Toyota

Posté par (page perso) . Édité par ZeroHeure, palm123, Benoît Sibaud, Nicolas Casanova et BAud. Modéré par tuiu pol. Licence CC by-sa
Tags :
53
6
mar.
2014
C et C++

Après plusieurs journaux récents concernant des histoires de mauvaises pratiques de code dans des logiciels de sécurité (goto fail pour Apple et goto cleanup pour GnuTLS, divers patchs monolignes erronés), nous avons maintenant une histoire où de mauvaises pratiques de code dans de l'embarqué ont entraîné un accident grave.

Toyota a mis en vente en 2005 sur le marché son modèle Camry, dont le moteur est contrôlé par de l'électronique et du logiciel. Par exemple la pression sur la pédale de frein est détectée par un capteur que le système doit analyser pour commander le freinage.

Un jour lors d'un freinage périlleux le freinage électronique a échoué à freiner efficacement, entraînant un accident qui a coûté la vie à la conductrice et blessé gravement son amie.

Dans un procès fait à Toyota, deux experts en embarqué ont donné leur avis sur le code source que Toyota avait utilisé dans sa voiture. C'était du code très sale, comme vous pouvez le voir dans la suite de cette dépêche.

NdM : merci à Zarmakuizz pour son journal.

LibLogicalAccess : bibliothèque C++ pour la RFID

Posté par . Édité par Florent Zara et Nils Ratusznik. Modéré par Nils Ratusznik. Licence CC by-sa
24
16
juil.
2013
C et C++

LibLogicalAccess, une nouvelle bibliothèque logicielle destinée à la lecture / écriture sur les puces RFID, est disponible depuis quelques semaines aux intéressés de l’identification par radio fréquence. Sous licence LGPL, elle se positionne comme une alternative C++ libre pour Linux et Windows à l'utilisation de puces RFID avec des lecteurs dépourvus de contrôleur NFC (n'entrant donc pas sous le giron de la libnfc), majorité des lecteurs déployés dans le monde aujourd'hui.

C++11 : sur le fil

Posté par . Édité par Florent Zara et Xavier Teyssier. Modéré par Xavier Claude. Licence CC by-sa
Tags :
28
7
juin
2013
C et C++

Dans la course effrénée que se livrent les compilateurs, GCC vient 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
  • l'utilisation de decltype sur des expressions de type incomplet

NdM : merci à nazcafan pour son journal.

Sortie de TinyCC 0.9.26

Posté par (page perso) . Édité par Xavier Claude et Florent Zara. Modéré par Florent Zara. Licence CC by-sa
61
18
mar.
2013
C et C++

TinyCC est un compilateur C léger et rapide qui, en plus de ces qualités, a deux particularités originales :

  1. il permet de compiler et d'exécuter du code à la volée (option -run) ;
  2. en plus de l'exécutable, il est disponible sous forme de bibliothèque (libtcc) afin d'être embarqué dans d'autres programmes.

TinyCC a été écrit à l'origine par Fabrice Bellard, qui ne participe aujourd'hui plus à son développement. Les nouveaux développements sont assurés par une communauté de développeurs organisés autour d'une liste de diffusion et d'un dépôt Git dont l'une des branches est ouverte aux publications externes. Le vendredi 15 février 2013, l'un de ces développeurs, Thomas Preud'homme a annoncé la sortie d'une nouvelle version du compilateur, estampillée 0.9.26. Nous avons posé quelques questions à Thomas, dont les réponses figurent en deuxième partie de dépêche après l'exposé des nouveautés de cette version.

Subsurface 3

Posté par . Édité par Xavier Teyssier et baud123. Modéré par baud123. Licence CC by-sa
Tags : aucun
28
5
mar.
2013
C et C++

Subsurface est sorti en version 3.0 le 21 février 2013 et depuis, deux petites mises à jour ont suivi (3.0.1 et 3.0.2).
Subsurface est un journal de plongée libre (GPL v2) pour Linux, Mac et Windows écrit en C.

Il gère les plongées avec un ou plusieurs blocs en air, nitrox ou trimix. Il enregistre aussi les poids et la combinaison utilisée, le chef de palanquée ainsi que votre binôme et vous permet de noter la plongée et d’y joindre vos notes personnelles.

Subsurface vous permet aussi d’enregistrer vos lieux de plongées, notamment par leurs coordonnées GPS (que vous pouvez choisir sur une carte). Subsurface calcule aussi différentes statistiques pour vous, telles que votre taux de consommation d’air, la pression partielle en Oxygène, Azote ou Helium, la décompression calculée et bien d’autres.

Subsurface

Projet Qt5 : lecteur de musique

Posté par . Édité par Nils Ratusznik, baud123, Nÿco, gst, Florent Zara et Davy Defaud. Modéré par baud123. Licence CC by-sa
Tags : aucun
44
28
fév.
2013
C et C++
   
Comme vous avez pu le voir dans cette dépêche, le framework C++ Qt5 est maintenant sorti. Cette dépêche revient sur certaines bases de la programmation C++/Qt, ainsi que ses évolutions à travers un cas concret : la création d’un lecteur de musique. logo QT

Sortie de Qt 5.0

87
22
déc.
2012
C et C++

Qt 5.0 est sorti. C'est une évolution majeure de l'une des bibliothèques C++ les plus utilisées et certainement celle qui couvre le plus de besoins.

Bien qu'étant une version majeure, elle ne casse pas aussi violemment la compatibilité que lors du passage de Qt3 à Qt4. La liste des améliorations et les changements en profondeur dans l'organisation de Qt5 rendent néanmoins pertinent ce changement de version.

Le projet libre le plus emblématique exploitant la puissance de Qt est KDE, mais bien d'autres applications l'utilisent, qu'elles soient libres (VLC, Scribus, Avidemux, etc.) ou propriétaires (Google Earth, Opera, la Freebox V6, Skype, etc.).
Qt Logo

Merci à tous les contributeurs de cette dépêche : Nÿco, reno, Eric Bénard, ZeroHeure, Florent Zara, Philippe Fremy, olivierweb, detail_pratique, Raoul Volfoni, Laurent Pointal, Gof, baud123, ecyrbe, liberforce, Emmanuel C, Yves Bourguignon, tankey, Xavier Claude, Jean Gabes, Alexandre P, Arcaik, jeberger, Olivier, El Titi, Trollgouin, Benoît, RbN et jay.

Rencontre des Développeurs LLVM 2012

Posté par . Édité par baud123, Xavier Claude, Benoît Sibaud et Pierre Jarillon. Modéré par Pierre Jarillon. Licence CC by-sa
Tags : aucun
35
25
nov.
2012
C et C++

Les 7 et 8 novembre derniers a eu lieu la Rencontre des Développeurs LLVM 2012 (2012 LLVM Developers' Meeting) à San José en Californie. C'est la sixième rencontre du genre et les participants sont toujours de plus en plus nombreux. Dans son introduction, Chris Lattner, le père de LLVM, a fait un rapide bilan de l'année écoulée.

LLVM (anciennement appelé Low Level Virtual Machine en français : « machine virtuelle de bas niveau ») est une infrastructure de compilateur conçue pour optimiser la compilation, l'édition de liens, l'exécution d'un programme écrit dans un langage quelconque.

En plus des nouvelles fonctionnalités (notament C++11) et des nouvelles architectures prises en charge (Hexagon et MIPS64), Chris a fait état d'une communauté des développeurs LLVM et Clang très dynamique. En ce qui concerne LLVM, 78 nouveaux committers (personnes qui ont du code qui a été incorporé) sont arrivés cette année pour porter le total à 167 committers différents. Les chiffres sont quasiment identiques pour Clang (le frontend C/C++/Objective-C de LLVM) : 72 nouveaux committers pour un total de 132. Le code source de LLVM a grossi de 131 KLoc pour un total de 1,4 MLoc tandis que le code de Clang a grossi de 260 KLoc pour un total de 1,0 MLoc.

La conséquence est l'apparition de nouveaux problèmes : certains patchs ont du mal à être revus, l'infrastructure de build et de test de performance commence à montrer ses limites, la gestion des sorties de nouvelles versions se complique. Chris a donc fait un appel à la communauté pour demander de l'aide dans l'analyse des problèmes de performance, dans l'infrastructure de test, dans la documentation, etc.

Il a également demandé aux contributeurs les plus impliqués de devenir «propriétaire de code» (au sens responsable dudit code). Concrètement, il s'agit de prendre en charge une sous-partie de LLVM dont le propriétaire s'engage à assurer la bonne maintenance et évolution, notamment en passant en revue les patchs concernant cette sous-partie. Immédiatement, de nombreux volontaires se sont fait connaître ou ont été proposés.

La suite de la dépêche propose un résumé de quelques présentations qui ont eu lieu lors de cette rencontre.

codeurs, traducteurs, cppreference a besoin de vous

Posté par . Édité par baud123 et Benoît Sibaud. Modéré par Benoît Sibaud. Licence CC by-sa
27
14
nov.
2012
C et C++

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

C11 n'est pas encore mort

Posté par . Édité par Bruno Michel, baud123, Nÿco, Benoît Sibaud et Xavier Claude. Modéré par Nÿco.
59
26
déc.
2011
C et C++

La dernière norme du langage C a été publiée le 8 décembre 2011, la pré-version finale étant accepté le 10 octobre, peu avant le décès du regretté Denis Ritchie à l'origine du langage.

C11 intègre principalement la gestion du multithreading et rend optionnelles certaines fonctionnalités afin de faciliter la conformité des compilateurs vis-à-vis de la norme. La précédente norme C99 a eu beaucoup de mal à s'imposer auprès de certains éditeurs, certains refusant même de l'implémenter (notamment un vendeur d'environnement Basic, situé à Redmond).

Qt 4.8 est sorti

Posté par (page perso) . Édité par Gof, Florent Zara, _PhiX_ et Nÿco. Modéré par j. Licence CC by-sa
Tags :
39
19
déc.
2011
C et C++

La nouvelle version de Qt (prononcer « cute » comme mignon en anglais), le framework en C++ derrière KDE et bien d'autres applications libres, est sortie. Celle-ci est la dernière version majeure de la branche 4.x et la prochaine sera la branche 5.

Merci à Gof, Nÿco, _PhiX_ et reno pour leur aide lors de la rédaction de cette dépêche.

EFL 1.1 alpha

Posté par . Modéré par tuiu pol. Licence CC by-sa
40
16
nov.
2011
C et C++

Tôt ce matin, on pouvait lire l’annonce de la sortie de la version 1.1 alpha des bibliothèques Enlightenment Foundation Libraries, les EFL. Ces bibliothèques sont la base du gestionnaire de fenêtres et environnement de bureau ultra‐optimisé Enlightenment.

Enlightenment sur téléphone |Enlightenment sur laptop

Voilà quelque temps que le projet Enlightenment a commencé sa marche vers la publication de sa version stable finale, avec les EFL tout d’abord, et Enlightenment, lui‐même, pour conclure. Le voyage a été long, plus de 10 ans, mais le résultat est là. Cette version apporte un certain nombre de corrections de bogues, ainsi que de nouvelles fonctionnalités. La future version 1.1 sera la base d’Enlightenment DR17.

Dennis Ritchie, un père d’UNIX, nous a quittés

Posté par ivanov . Modéré par Benoît Sibaud. Licence CC by-sa
147
13
oct.
2011
C et C++

Dennis MacAlistair Ritchie, le créateur du langage C et d’UNIX, est décédé.
Dennis Ritchie est connu comme étant le créateur du langage C, un développeur clef du système d’exploitation UNIX, et le coauteur du célèbre livre référence du langage C, The C Programming Language, communément appelé K/R ou K&R (en référence à ses deux auteurs : Kernighan et Ritchie).

Son invention du langage C et sa participation au développement d’UNIX, au côté de Ken Thompson, ont fait de lui un pionnier de l’informatique moderne. Le langage C reste au début du XXIe siècle, un des langages les plus utilisés, tant dans le développement d’applications que de systèmes d’exploitation. UNIX a aussi eu une grande influence en établissant des concepts qui sont désormais totalement incorporés dans l’informatique moderne.

Il déclara que le langage C « semblait être une bonne chose à faire » et que n’importe qui à sa place aurait fait la même chose ; bien que son collègue des laboratoires Bell, [Bjarne Stroustrup], créateur du C++, répondit que « si Dennis avait décidé de consacrer cette décennie à des mathématiques ésotériques, UNIX aurait été mort‐né. »

Suite au succès d’UNIX, Dennis continua ses recherches dans les systèmes d’exploitation et les langages de programmation, dont notamment les systèmes d’exploitation Plan 9 et Inferno, et le langage de programmation Limbo.

Il est corécipiendaire avec Ken Thompson de l’édition 2011 du Prix japonais et du Prix Turing de 1983.

Source de la biographie : Wikipédia

Sundown, Houdini et Crustache

Posté par (page perso) . Modéré par Florent Zara. Licence CC by-sa
22
2
sept.
2011
C et C++

Vicent Martí, aka tanoku, est un des développeurs de github qui aime bien coder en C. Ce n'est donc pas très étonnant de trouver sur son compte github des bibliothèques en C pouvant servir au développement d'applications web. Je souhaite en particulier vous évoquer de trois bibliothèques sous licence ISC :

Crustache est une implémentation en C de Mustache, un moteur de templating. Des bindings pour Ruby sont également disponibles dans le dépôt git.

Houdini permet d'échapper des chaînes de caractères en UTF-8 pour le web. Et de faire l'inverse. Les trois types d'échappement sont :

  • convertir &, ", ', <, > et / en leur entité HTML correspondante (conformément à la recommandation de l'OWASP) ;
  • échappement des URI respectant la RFC ;
  • et échappement des URL (la différence avec l'échappement des URI est le remplacement des espaces par des +).

Et enfin, Sundown est un fork de libupskirt. Il permet de convertir du texte en Markdown vers du HTML. Nous utilisons Redcarpet, les bindings Ruby autour de Sundown, pour LinuxFr.org du fait de ses performances et de ses nombreuses options.

Coccigrep, un grep sémantique pour le langage C basé sur Coccinelle

Posté par (page perso) . Modéré par patrick_g. Licence CC by-sa
45
2
sept.
2011
C et C++

Lorsque l'on travaille sur un projet C comportant un certain nombre de fichiers et de lignes de code, il arrive fréquemment que l'on se pose des questions comme "Mais où est modifié le champ data de ma structure Packet ?". grep ne suffit pas pour répondre à ce genre de questions car ne comprenant pas C, il ne sait pas, par exemple, que la variable monbopkt est une structure Packet.

coccigrep, basé sur coccinelle qui est un outil très puissant de recherche et de modification automatique de code, est un logiciel libre chargé de répondre à ce genre de questions. Il vient d'être publié en version 1.0rc1, sous licence GPL v3. Il est écrit en Python et s'interface avec les éditeurs Vim et Emacs, ce qui permet de faire les recherches depuis l'éditeur.

Le standard C++0x a enfin été voté

Posté par (page perso) . Modéré par Lucas Bonnet. Licence CC by-sa
76
18
août
2011
C et C++

Le nouveau standard du langage C++ a été voté ce vendredi 12 août. Initialement prévu pour 2008 ou 2009, il a pris du retard, notamment à cause de problèmes avec certaines fonctionnalités. Malgré cette date, beaucoup l'appellent quand même C++0x et il suffit de le nommer C++0xB pour que le nom soit conservé. La publication officielle ne devrait cependant pas arriver avant quelques mois.

Heureusement pour les utilisateurs, ces fonctionnalités ont déjà commencé à être implémentées dans les différents compilateurs et bibliothèques standard. Ceci devrait permettre de ne pas attendre trop longtemps avant de pouvoir profiter de ces nouveautés, voire d'en profiter dès à présent pour certaines. Par exemple, sous GCC, il faut passer l'option -std=c++0x au compilateur pour utiliser des évolutions qui sont déjà implémentées.

Une sélection des principales nouveautés est présentée en seconde partie de dépêche.

Merci à moules< pour son aide lors de la rédaction de cette dépêche.

Science et éducation : EZ-Draw 1.0 est sorti

Posté par . Modéré par patrick_g. Licence CC by-sa
28
22
juin
2011
C et C++

EZ-Draw (Easy Draw) est un module en langage C qui facilite l’écriture de programmes graphiques, avec une gestion simplifiée des évènements. Il permet de créer des fenêtres, y dessiner, réagir à la souris et au clavier, faire des animations, etc..

EZ-Draw fonctionne à la fois sous X11 (Linux, Mac OS X, et autres Unix) et Windows (Seven, Vista, XP, etc.) ; en interne, il est basé respectivement sur la bibliothèque Xlib et sur l’API Win32, et il masque tous leurs aspects techniques.

PCC 1.0 est sorti… depuis le 1er avril !

Posté par (page perso) . Modéré par patrick_g.
24
16
juin
2011
C et C++

Comment cette information majeure a‐t‐elle pu échapper aux journaux de LinuxFr ? À l’avenir, il faudra garder l’œil ouvert, car le futur est aussi prometteur

Pour plus d’infos, la dépêche précédente était déjà bien complète !

Avec un compilateur C simple, portable, et sous licence compatible, les *BSD pourraient se libérer de la dépendance à GCC qui pose problème (infrastructure compliquée… comme de la licence GPLv3 ?!). Comme rappelé dans les questions aux développeurs OpenBSD, les espoirs se tournent également du côté de LLVM / Clang, qui progresse vite.

Un autre petit compilateur léger, rapide et pratique, quand on ne veut pas déployer toute l’armada GCC pour jouer sur un poste : TCC !

Plus aucune raison pour ne pas contribuer à des projets en C (sous BSD) ?!

GnuTLS ajoute le support de DTLS

Posté par . Modéré par Xavier Teyssier. Licence CC by-sa
38
12
avr.
2011
C et C++

GnuTLS est une bibliothèque logicielle libre diffusée sous la licence LGPL 2.1 et plus et écrite en C et C++. GnuTLS implémente les protocoles réseau SSL 3.0, TLS 1.0, TLS 1.1 et TLS 1.2. Ceux-là même utilisés par tous les navigateurs web quand vous surfez en HTTPS.
Une version majeure est en cours de développement, elle ajoute une implémentation du protocole DTLS et améliore la compatibilité avec OpenSSL.