FLIF, un format d’image sans perte, intelligent et « performant », sous licence GPL

Posté par  (site web personnel) . Édité par Davy Defaud, Benoît Sibaud, palm123, claudex et bubar🦥. Modéré par tuiu pol. Licence CC By‑SA.
64
4
oct.
2015
Technologie

Pendant que les technologies en termes de compression vidéo continuent d’avancer, on attend toujours la relève en termes de compression d’images. JPEG2000, PNG et GIF sont des formats qui commencent à prendre de l’âge, et chaque format a sa cible d’utilisation. Peut‐être plus pour longtemps, un nouveau format entre dans l’arène, il est libre et répond au doux nom de FLIF.

Pourquoi les développeurs n'utilisent pas plus de machines à état ?

Posté par  (site web personnel) . Édité par baud123, rootix et NeoX. Modéré par rootix. Licence CC By‑SA.
Étiquettes :
63
1
fév.
2013
Technologie

Les langages de programmations, de quelques paradigmes qu'ils soient (bien qu'un peu moins pour le paradigme logique), sont basés sur le concept de liste d'instructions exécutées à la suite par la machine. La machine exécutant ce code est une machine à état, mais le programme n'est pas formellement pensé comme tel.

Les machines à état semblent pourtant un bon outil pour la programmation des logiciels que nous avons l'habitude de développer : facile à dessiner sur papier, permettant un découpage clair du fonctionnement de l'application.
Sans compter qu'une machine à état se patche plus facilement qu'un code classique où l'effet spaghetti peut vite impliquer des effets indésirables.
Les designers de Qt l'ont bien compris en permettant de définir des machines à état pour décrire le comportement du contrôleur.

C'est pourquoi certains se sont demandés si la programmation en machine à état ne devrait pas être plus pratiquée et aimée des programmeurs. C'est, par exemple, ce que se demande Willem van Bergen, carrément enthousiaste.
Celui-ci pense que c'est le stockage de l'historique qui est essentiel.

Plus circonspect, Alan Skorkin étudie la problématique de reprise de code, afin de comparer les approches, pour conclure que si les machines à états ne sont pas la panacée, elles sont très intéressantes si on conçoit le code avec.

Un très intéressant débat est né de cette polémique sur Hacker News.

Jubako et Arx, un conteneur universel et son format d’archive

Posté par  (site web personnel) . Édité par orfenor, Yves Bourguignon, vmagnin, palm123, Ysabeau 🧶 🧦, patrick_g, Ltrlg et Julien Jorge. Modéré par Ysabeau 🧶 🧦. Licence CC By‑SA.
Étiquettes :
61
4
nov.
2022
Technologie

Jubako, quezako ?

重箱 (Jūbako) est le nom japonais des boîtes à bento. Ce sont des boîtes compartimentées qui peuvent se composer en fonction de ce qu’il y a à stocker dedans (en général un repas).

Et ça tombe bien, parce que Jubako, c’est un format de conteneur qui permet de stocker différentes données et méta-données. J’ai tendance à parler de conteneurs plutôt que d’archives, en effet « archive » est un mot orienté qui fait penser aux archives de fichiers, alors que Jubako se veut généraliste : un conteneur Jubako pourrait être utilisé pour plein d’autres choses : empaquetage d’applications, pack de ressources dans un binaire, conteneur multimédia, etc.

Vous pouvez voir Jubako comme étant au stockage ce que XML est à la sérialisation. XML définit comment sérialiser du contenu (sous forme d’un arbre de nœuds avec des attributs) mais ne définit pas quels sont ces nœuds et attributs. Chaque cas d’usage a sa propre structure. Pour Jubako c’est pareil, il définit comment stocker des données dans un fichier « d’archive » mais il ne définit pas quelles sont ces données. Chaque cas d’usage aura sa propre structure de données.

Jubako et Arx sont sous licence MIT.

La nouvelle API graphique Vulkan

Posté par  . Édité par Lucas, palm123, Benoît Sibaud, Thomas Debesse, Nÿco, Highlander et esdeem. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes : aucune
61
25
mai
2016
Technologie

Logo Vulkan

La nouvelle API 3D Vulkan annoncée en mars 2015, prévue pour sortir fin 2015 est finalement sortie en version stable le 16 février 2016. Cette API est issue du consortium Khronos Group. L'API Vulkan ne se veut pas une remplaçante à OpenGL une autre API du Khronos Group, mais une alternative plus orientée vers la programmation bas-niveau.

WaveDrom

61
25
mai
2019
Technologie

La nouvelle est tombée cette semaine sur la liste de diffusion du projet. La version 2.1.0 de WaveDrom vient de sortir.
Logo de WaveDrom
WaveDrom est un « standard » JavaScript permettant de décrire des chronogrammes sous forme de texte. La bibliothèque JavaScript se chargeant de convertir cette description texte en image SVG.

Petit état de l'art des systèmes d'initialisation (1)

60
3
déc.
2013
Technologie

Ces dernier temps, la question de l'initialisation du système d'exploitation a été au cœur des trolls discussions. Nous allons faire un point sur les différentes approches mise en œuvre possédant une implémentation libre.

Dans cette première partie, nous allons voir arbitrairement quatre systèmes d'initialisation : OpenRC, rcNG, Upstart et runit.

Nous n'aborderons pas systemd du fait qu'il a déjà été évoqué dans de nombreux contenus (ici, ici et par exemple).

Note : merci à Jarvis Jiehong, needs, Fopossum, Brndan, Joël Thieffry, Storm, MrSpackMan, Nils Ratusznik, Misc, reno, Sylvain Blandel, Benoît Sibaud, lenod,talou, etenil, qui sont les véritables auteurs de cette dépêche.

systemd versions 212 à 215

60
6
oct.
2014
Technologie

systemd est un système de démarrage alternatif au démon init d’UNIX System V spécifiquement conçu pour le noyau Linux, avec une meilleure gestion des dépendances entre services et le chargement en parallèle des services au démarrage. Il est publié sous licence GNU LGPL version 2.11.

Voici une version traduite, réarrangée et non exhaustive des notes de version de systemd des versions 212 à 215. En bref, on ajoute un peu de sucre autour ! Vous pouvez même sauter ce qui ne vous intéresse pas.

Lennart, développeur principal de systemd, posant avec son livre préféré

N. D. M. : cette dépêche est un énorme travail d’eggman et de sinma qui méritent tous les deux des gros remerciements.

Sortie de Gambas 3.12

Posté par  (site web personnel) . Édité par Davy Defaud, Benoît Sibaud, ZeroHeure, claudex et palm123. Modéré par ZeroHeure. Licence CC By‑SA.
59
31
déc.
2018
Technologie

Gambas est un langage de programmation orienté objet, basé sur un interpréteur BASIC, et une plate‐forme de développement complète comportant, entre autres, un compilateur, un interpréteur, un ensemble de modules complémentaires (appelés composants) et un environnement de développement intégré. Le tout est distribué sous licence GNU GPL v2 ou supérieure.

Il neige

La précédente dépêche datant de septembre 2012, profitons de la sortie de la version 3.12 pour présenter comment le langage a évolué depuis six ans.

Nous invitons ceux qui ne connaîtraient pas Gambas à lire préalablement la présentation du logiciel sur le site Web, ainsi que la dépêche précédente.


Comme dans la dépêche précédente, il y a quelques coups de gueules, mais ils sont cette fois répartis dans le texte (et partiellement édulcorés en modération).

Actionaz, un logiciel d'automatisation libre

Posté par  (site web personnel) . Édité par Florent Zara, claudex, baud123 et Pierre Jarillon. Modéré par Florent Zara. Licence CC By‑SA.
Étiquettes :
59
28
fév.
2012
Technologie

Actionaz est un logiciel libre d'automatisation d'actions. Il vous permet de créer des scripts contenant des actions en utilisant une interface graphique. Plus besoin d'être un développeur pour profiter de l'automatisation sur PC ! Actionaz est disponible sous licence GNU/GPL et est développé en C++ avec l'aide du framework Qt. De ce fait, le logiciel fonctionne sur les systèmes d'exploitation basés sur GNU/Linux ainsi que sous Windows.

Son but est de vous éviter d'avoir à répéter des actions comme des clics ou des pressions de touches. Il comporte 42 actions différentes allant de la lecture d'un fichier son au téléchargement d'une page Web ou d'un fichier, en passant par la lecture ou l'écriture d'un fichier texte. Sous Windows, vous avez également la possibilité de créer des scripts exécutables qui pourront être démarrés sur un ordinateur où Actionaz n'est pas installé.

Logo Actionaz

Sortie de Gambas 3.3

58
30
sept.
2012
Technologie

Gambas est un langage de programmation orienté objet, basé sur un interpréteur BASIC, et une plate‐forme de développement complète. Il comporte, entre autres, un compilateur, un interpréteur, un tas de modules complémentaires (appelés composants) et un environnement de développement intégré. Le tout est distribué sous licence GNU GPL v2 ou supérieure.

Gambas 3 est sorti le 31 décembre 2011, il y a maintenant neuf mois.

Profitons donc de la sortie de Gambas 3.3 pour faire un point sur les nouvelles fonctionnalités de ce langage de programmation.

Pour plus d’informations sur Gambas, la lecture de la précédente dépêche est vivement conseillée, ainsi que la consultation du site du logiciel.

Gambas Almost Means BASIC !

Présentation d'iPXE, un chargeur d'amorçage en PXE

56
23
juil.
2012
Technologie

Il est parfois nécessaire de faire démarrer une machine sur le réseau (par exemple, une machine sans disque dur) : la technologie la plus courante utilisée sur x86 s'appelle PXE et permet l'amorçage depuis un serveur TFTP. La plupart des cartes réseau modernes intègrent une implémentation de PXE, cependant la spécification ne décrit que le protocole susnommé dont les limitations se font vite sentir sur des configurations un peu complexes.

Heureusement pour nous, il existe depuis 1995 un projet libre qui a pour but le développement d'un firmware de carte réseau bien plus flexible que ce que l'on peut trouver actuellement, il s'agit d'iPXE.

Dans la suite de cette dépêche, vous trouverez une explicitation détaillée de l'étape d'amorçage d'une machine ainsi qu'une présentation des possibilités offertes par iPXE.

Merci à Nÿco, Sébastien Koechlin, ZeroHeure, Xavier Teyssier, Nils Ratusznik, bubar, Xavier Claude, oinkoink_daotter et Benoît pour avoir participé à la rédaction de cette dépêche.

Sortie de Qt 4.7

Posté par  . Modéré par Nÿco.
Étiquettes :
55
22
sept.
2010
Technologie
Qt 4.7, la bibliothèque C++ libre (GNU LGPL) et multiplateforme de Nokia vient de sortir. Le principal ajout de cette version est Quick (pour Qt UI Creation Kit), qui facilite la réalisation d'interfaces utilisateurs plus dynamiques. Cette nouvelle façon de réaliser les interfaces devrait principalement intéresser l'embarqué, même si elle ne se limite pas à cela (les technologies Quick sont notamment utilisées dans les Plasmoïdes du projet KDE).

Cette version a eu un cycle de développement assez long, ce qui a entraîné un décalage entre la sortie de Qt Creator (l'environnement de développement officiel) et Qt. La dernière version stable est donc la 2.0.1 et la 2.1 devrait sortir bientôt une prise en charge complète de Quick.

La suite de cette dépêche abordera les nouveautés de Qt 4.7 bien évidemment, mais aussi plusieurs projets en cours chez Nokia et qui feront vraisemblablement leur entrée dans les prochaines versions de Qt.

LLVM 3.0

Posté par  (Mastodon) . Édité par baud123, nazcafan, Manuel Menal et Benoît Sibaud. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
55
2
déc.
2011
Technologie

LLVM, pour Low Level Virtual Machine, est une suite de compilation qui commence à se faire une place à côté du vénérable GCC. Sa grande modularité, comparé au monolithique GCC, permet d'écrire facilement un compilateur, en utilisant la représentation intermédiaire de LLVM, et en faisant appel ensuite aux optimisations et à la génération de code de LLVM.

Le projet arrive maintenant à une certaine maturité grâce à cette version 3.0 qui apporte beaucoup de nouveautés. Il est à noter que la numérotation suit le schéma d'OpenBSD, c'est-à-dire que la version 3.0 suit la version 2.9, ce n'est donc pas une version majeure – malgré les modifications plus importantes qu'à l'accoutumée – qui sont détaillées dans la seconde partie.

LLVM 3.1 et Conférence EURO-LLVM 2012

Posté par  . Édité par rewind, baud123, Sylvestre Ledru, Nÿco, Florent Zara, patrick_g et Benoît Sibaud. Modéré par Florent Zara. Licence CC By‑SA.
55
23
mai
2012
Technologie

LLVM est une suite de compilation, c'est-à-dire un ensemble de bibliothèques et d'outils pour construire des compilateurs, des assembleurs, des éditeurs de liens, etc. Et quand on parle de LLVM, on parle forcément de Clang, le compilateur C/C++/ObjectiveC/ObjectiveC++ attitré du projet LLVM. Clang, par rapport à GCC, compile plus vite mais génère du code moins rapide, le vrai intérêt de Clang réside dans la clarté des messages d'erreurs.

La seconde partie de cette dépêche détaille les nouveautés de la version 3.1 de LLVM et Clang, sortie le 22 mai 2012 et propose un compte rendu de la toute première conférence Euro-LLVM (avril 2012).

LLVM et Clang 3.1 sont téléchargeables ici et respectivement (les utilisateurs de Debian Sid n'ont évidemment qu'à faire un apt-get install llvm-3.1 clang)

[NDA: un grand Merci à rewind qui a rédigé, entre autres, toute la couverture de la conf Euro-LLVM. Merci également à patrick_g, reno, Nÿco, baud123 et Sylvestre Ledru pour leurs corrections et leurs précisions.]

Plan9 en GPL v2, pour les nuls

Posté par  (site web personnel, Mastodon) . Édité par palm123, ZeroHeure et tuiu pol. Modéré par Florent Zara. Licence CC By‑SA.
55
19
fév.
2014
Technologie

L'université de Berkeley en Californie a reçu l'autorisation d'Alcatel-Lucent de publier Plan9 en GPLv2. Pour rappel, Plan9 est un OS, descendant de Unix Time-Sharing System, développé chez Bell Labs, par Rob Pike, Ken Thompson, Dennis Ritchie et d'autres.

Glenda, logo de Plan9

Comme il semble que peu de monde sache ce qu'est Plan9, voici, dans la suite de la dépêche, une rapide introduction à Plan9. Nous vous invitons à poursuivre par vous même en lisant la documentation et en installant Plan9 sur votre cluster de RaspberryPi, vos Thinkpads ou vos machines virtuelles pour vous faire une idée de la bête par vous-même.

NdA : Merci à eggman et Sygne pour leurs journaux respectifs sur le sujet, sous licence CC by-sa.

systemd version 216

55
31
oct.
2014
Technologie

Le programme d’init systemd est sorti dans une nouvelle version. Par tradition, cette version ne se contente pas des habituelles corrections de bogues et modifications mineures, mais inclut de nouvelles options qui peuvent affecter tout le monde (sauf les irréductibles de *BSD, bien sûr). Cette dépêche présente un aperçu rapide des changements, ainsi qu’une traduction complète du journal des modifications. La dernière section décrit brièvement mon expérience de systemd sous Gentoo.

systemd pour les administrateurs, parties 3, 4 et 5

55
1
oct.
2014
Technologie

On vous parle depuis longtemps de systemd. On vous dit que c’est très bien. De nombreuses distributions l’ont adopté (dont Fedora, openSUSE, Mageia, Frugalware et ArchLinux), vont l’adopter (Debian, Ubuntu) ou vous permettent de l’utiliser de manière optionnelle (Gentoo par exemple). Mais savez‐vous l’utiliser ?

Voici la suite d'une série d’articles didactiques pour apprendre à utiliser systemd et vous permettre de mieux l’appréhender et de comprendre les avantages qu’il apporte par rapport aux systèmes précédents.

Les informations ci‐dessous sont tirées, traduites et adaptées du blog de Lennart Poettering et sont accessibles dans la langue de Shakespeare aux adresses ci‐dessous :

Les drones de combat américains basculent sous Linux

Posté par  (site web personnel) . Édité par Nÿco, Benoît Sibaud et Xavier Teyssier. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
55
7
fév.
2012
Technologie

En septembre dernier le système de contrôle des drones de combat MQ-1 Predator et MQ-9 Reaper a été infecté par un virus. C'est un sujet ultra-sensible puisque ces drones n'effectuent pas seulement des missions de surveillance mais aussi des missions de combat en larguant des bombes ou des missiles.

Coïncidence ou planification de longue date, il semble en tout cas que, depuis cette infection, une partie du système de contrôle de ces drones est passé sous Linux alors qu'il était auparavant sous Windows.

Plus de détails dans la suite de la dépêche.

NdM : en 2009, le réseau interne de la Marine française, Intramar, a été contaminé par le virus Conflicker, laissant des Rafale « cloués au sol » faute d'avoir pu « télécharger leurs paramètres de vol » (source Blog Secret défense et journal LinuxFr sur ce sujet). Et toujours en 2009, les drones Predator américains relayaient leurs vidéos au sol sans aucun chiffrement (source WSJ).

Instantané sur le parallélisme et le code

Posté par  (site web personnel) . Édité par palm123, BAud, Benoît Sibaud, ZeroHeure et PolePosition. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
54
22
juin
2015
Technologie

Avant, la fréquence des micro-processeurs semblait suivre une loi de Moore, mais à mesure que les limites physiques ont été approchées il a fallu innover, et le multi-cœur est devenu le standard, même sur mobile.

Développer une application qui sache utiliser plusieurs fils d’exécution ou processus en même temps n'est pas un problème forcément facile, pour lequel de nombreuses méthodes ont vu le jour. Ici, on vous propose une vision haut niveau de quelques idées du passé, mais surtout d'aujourd'hui, pour utiliser la puissance de nos machines sans écrire des bogues plus vite que nos ombres.

Écrire une appli web en une journée avec SQLPage

Posté par  (site web personnel) . Édité par Nÿco, Benoît Sibaud, gUI, BAud et bobble bubble. Modéré par Nÿco. Licence CC By‑SA.
54
4
juil.
2023
Technologie

Aujourd'hui, je souhaite vous présenter le logiciel SQLPage, un outil open-source (MIT) qui permet de développer des applications web complètes, avec une belle interface graphique et une base de données, entièrement en SQL.

Le SQL est un langage très simple, qui permet de faire des recherches dans des base de données. Il est utilisé depuis les années 80, et est encore omniprésent aujourd'hui. Contrairement aux langages de programmation traditionnels, on peut apprendre les bases de SQL en une journée, et commencer à faire des requêtes complexes croisant plusieurs tables de données très rapidement.

Dans une application web traditionnelle, on développe aujourd'hui en général trois composants :

  • un front-end, qui gère uniquement l'interface utilisateur,
  • un back-end, qui traite les requêtes du front-end et contient le cœur de la logique de l'application lorsque celle-ci est complexe,
  • une base de données qui va stocker et structurer les données, s'assurant de leur cohérence et de leur bonne organisation.

Les deux premiers éléments sont en général ceux sur lesquels les programmeurs passent le plus de temps lors du développement d'une application. Et pourtant, c'est souvent le dernier, la base de données, qui contient la substantifique moelle de l'application !

Ce que propose SQLPage, c'est de s'abstraire complètement du back-end et du front-end, et générer toute une application entièrement en SQL. Nous allons voir ici comment c'est possible, avec un exemple concret d'application que nous allons construire ensemble en SQL : à la Tricount.com, une petite application qui permet de gérer ses comptes entre amis.

Sortie de FreeCAD 0.16

Posté par  (site web personnel) . Édité par palm123, teoB, Benoît Sibaud, bubar🦥, vaxvms, Lucas et claudex. Modéré par Benoît Sibaud. Licence CC By‑SA.
53
14
mai
2016
Technologie

Un an après la sortie de la version 0.15, la version 0.16 de FreeCAD a été publiée le 18 avril 2016. Cette nouvelle version apporte de nombreuses fonctionnalités et corrections de bugs, la nouveauté phare de cette version est l'introduction du système d'Expressions.

Icone FreeCAD

Nix pour les développeurs

Posté par  (site web personnel) . Édité par claudex, Benoît Sibaud, bubar🦥, Davy Defaud, ZeroHeure et palm123. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
53
6
juil.
2017
Technologie

Nix est un gestionnaire de paquets « fonctionnel » (basé sur des fonctions, sans effet de bord). Cette caractéristique apporte des avantages indéniables, notamment de pouvoir mettre en place des environnements logiciels isolés, reproductibles et composables. Ceci peut être très utile à un administrateur système mais également à un développeur.

On trouve pas mal d’informations sur l’écosystème Nix et son utilisation, ainsi que des retours d’expérience des utilisateurs. En revanche, les documents à destination des développeurs sont moins nombreux et se limitent souvent à l’utilisation ou à la mise en place d’environnements de développement simples.

Cet article a pour objectif d’illustrer l’intérêt de Nix pour un développeur dans des cas simples et « un peu moins simples ». Pour cela, il se base sur un projet d’exemple en C++ et en Python, mais Nix peut également être utilisé pour d’autres langages. Je ne suis pas un expert en Nix, donc n’hésitez pas à proposer vos remarques ou améliorations dans les commentaires ou sur le dépôt GitHub du projet d’exemple.

FreeCAD 0.19

Posté par  . Édité par palm123, Yves Bourguignon, Benoît Sibaud, Pierre Jarillon, claudex et Ysabeau 🧶 🧦. Modéré par Benoît Sibaud. Licence CC By‑SA.
Étiquettes :
53
4
avr.
2021
Technologie

FreeCAD est un logiciel de CAO en 3D, c’est‐à‐dire de conception assistée par ordinateur (en anglais, CAD — Computer‐Aided Design), de type paramétrique. Totalement libre, sous licence LGPL, disponible sous Linux, Windows et Mac, FreeCAD est destiné à un vaste public, de l’ingénieur concepteur en mécanique à l’utilisateur d’une imprimante 3D désirant concevoir une pièce, en passant par l’architecte en bâtiment.

La nouvelle version 0.19 est sortie ce 20 mars 2021.

Capture de FreeCAD 0.19
CC-BY Leslie Fowl

LLVM 3.4 et Clang 3.4

Posté par  (site web personnel) . Édité par rewind, Yves Bourguignon, Benoît Sibaud, claudex, Xavier Teyssier, Nÿco et Florent Zara. Modéré par Florent Zara. Licence CC By‑SA.
Étiquettes :
52
14
jan.
2014
Technologie

A-t-on encore besoin de présenter LLVM et Clang ? Cette suite de compilation est désormais bien établie, en particulier dans le monde du logiciel libre où elle est utilisée dans de nombreux projets (Emscripten, llvmpipe, entre autres). L'application la plus en vue associée à LLVM est sans aucun doute Clang, le compilateur C/C++/ObjectiveC officiel du projet.

Le 6 janvier dernier sont sorties les versions 3.4 de LLVM et de Clang. Les nouveautés sont détaillées dans la suite de la dépêche.