Des étudiants de l'université de Reykjavik (Islande), viennent de créer un support du C++ pour le noyau.
Désormais, il est possible d'écrire des modules pour Linux en C++ en utilisant les constructeurs et destructeurs, les exceptions et la vérification de type dynamique. (NdM : de tels modules ne fonctionneront bien sûr qu'avec un noyau compilé avec ce patch.)
Ce patch n'est disponible que pour la série 2.6.x du noyau.
NdM : le patch est basé sur le compilateur GNU g++, son implémentation des exceptions et son interface binaire (ABI). Sinon il est peu probable qu'il soit incorporé au noyau officiel. Voir « Pourquoi ne pas réécrire le noyau en C++ ? » dans le FAQ linux-kernel
Peut-on se payer le noyau Linux ?
Le 7 octobre 2004 une étrange offre est apparue sur la liste de diffusion des développeurs du noyau Linux. Jeff V. Merkey proposait d'acheter pour 50.000 dollars une licence du copyright du noyau afin de convertir la licence GPL en une licence plus permissive (la BSD).
Qu'est-ce que cela signifie réellement ?
Monsieur Merkley veut utiliser le noyau en y incorporant des modifications non-libres (propriétaires) et il veut ensuite distribuer (commercialement ou non ce n'est pas le problème) ce noyau modifié.
Pourtant cela est expressément interdit par la licence GPL de Linux qui stipule que le noyau modifié doit rester libre s'il est redistribué. Jeff Merkey a alors une idée : pourquoi ne pas se payer une licence spéciale auprès des propriétaires du noyau pour remplacer la licence GPL par la licence BSD (qui autorise l'incorporation de modifications propriétaires) ?
Aussitôt dit aussitôt fait, il envoie son fameux courriel en proposant 50.000 dollars pour le noyau et il attend les réponses...
Qu'est-ce que cela signifie réellement ?
Monsieur Merkley veut utiliser le noyau en y incorporant des modifications non-libres (propriétaires) et il veut ensuite distribuer (commercialement ou non ce n'est pas le problème) ce noyau modifié.
Pourtant cela est expressément interdit par la licence GPL de Linux qui stipule que le noyau modifié doit rester libre s'il est redistribué. Jeff Merkey a alors une idée : pourquoi ne pas se payer une licence spéciale auprès des propriétaires du noyau pour remplacer la licence GPL par la licence BSD (qui autorise l'incorporation de modifications propriétaires) ?
Aussitôt dit aussitôt fait, il envoie son fameux courriel en proposant 50.000 dollars pour le noyau et il attend les réponses...
Erlang/OTP R10B est sorti
La nouvelle version de l'environnement de développement Erlang/OTP est sortie.
Parmi les nouveautés, on trouve notamment une amélioration des performances dans la gestion des processus liés et une augmentation de la limite du nombre de processus concurrents pouvant tourner sur une seule machine virtuelle. Il est maintenant possible de créer 268435456 processus légers :-)
Rappelons qu'Erlang est conçu pour fonctionner très simplement en cluster et permet de distribuer des processus de manière transparente pour le développeur sur un ensemble de machines.
Parmi les nouveautés, on trouve notamment une amélioration des performances dans la gestion des processus liés et une augmentation de la limite du nombre de processus concurrents pouvant tourner sur une seule machine virtuelle. Il est maintenant possible de créer 268435456 processus légers :-)
Rappelons qu'Erlang est conçu pour fonctionner très simplement en cluster et permet de distribuer des processus de manière transparente pour le développeur sur un ensemble de machines.
La parabole des langages de Shelley Powers
Le texte n'est pas de moi, mais il m'a fait tellement rigoler que j'en ai fait une traduction rapide. Bonne lecture :)
Si les langages de programmation pouvaient parler, pas seulement avaler les octets et enchaîner les bits, ils diraient certainement des choses sages et profondes. Après tout, les premiers programmeurs étaient des philosophes, et les langages de programmation des outils de philosophes...
Si les langages de programmation pouvaient parler, pas seulement avaler les octets et enchaîner les bits, ils diraient certainement des choses sages et profondes. Après tout, les premiers programmeurs étaient des philosophes, et les langages de programmation des outils de philosophes...
Recherche d'un mainteneur et de développeur pour Bookmark4U
Le projet Bookmark4U est un projet GPL qui permet de gérer ses favoris en ligne, avec des mécanismes d'import/export vers de nombreux navigateurs.
Ce projet, issu de plusieurs années de développement, est un de ceux les plus aboutis aujourd'hui (exemple : sidebar en XUL, bookmarklet, import/export XBEL, début de support de drag 'n drop, navigation dynamique, ...).
Après une petite baisse d'activité, le projet recherche des personnes motivées pour prendre la relève. Il y a plein d'idées d'améliorations, plus ou moins dures à mettre en oeuvre. Cela peut permettre d'acquérir ou d'approfondir des connaissances en PHP (avec ou sans Pear).
Ce projet, issu de plusieurs années de développement, est un de ceux les plus aboutis aujourd'hui (exemple : sidebar en XUL, bookmarklet, import/export XBEL, début de support de drag 'n drop, navigation dynamique, ...).
Après une petite baisse d'activité, le projet recherche des personnes motivées pour prendre la relève. Il y a plein d'idées d'améliorations, plus ou moins dures à mettre en oeuvre. Cela peut permettre d'acquérir ou d'approfondir des connaissances en PHP (avec ou sans Pear).
Brevets Logiciels: Appel de Richard M. Stallman
Richard Stallman a lancé la semaine dernière dans les pages de Newsforge.com un appel à une nouvelle mobilisation européenne massive contre les brevets logiciels.
L'appel, titré "Comment lutter contre les brevets logiciels - individuellement et tous ensemble", décrit la menace que les brevets représentent au quotidien pour tout développeur. Il explique pourquoi et comment certains brevets peuvent être invalidés, notamment avec le soutien de la Public Patent Foundation.
L'Office Américain des Brevets valide environ 100 000 brevets logiciels chaque année. RMS souligne donc une nouvelle fois l'importance qu'il y a d'agir continuellement, sans relâche, aussi bien individuellement qu'en communauté, jusqu'à la disparition totale des brevets.
Une version française de cet appel vous est proposée en liens annexes.
L'appel, titré "Comment lutter contre les brevets logiciels - individuellement et tous ensemble", décrit la menace que les brevets représentent au quotidien pour tout développeur. Il explique pourquoi et comment certains brevets peuvent être invalidés, notamment avec le soutien de la Public Patent Foundation.
L'Office Américain des Brevets valide environ 100 000 brevets logiciels chaque année. RMS souligne donc une nouvelle fois l'importance qu'il y a d'agir continuellement, sans relâche, aussi bien individuellement qu'en communauté, jusqu'à la disparition totale des brevets.
Une version française de cet appel vous est proposée en liens annexes.
Le moteur de Mozilla porté sous Qt
Quelques développeurs du projet KDE ont commencé à porter Gecko, le moteur de Mozilla, sous Qt (en tant qu'objet QWidget). De mémoire, il s'agit de la troisième tentative de port de Gecko sous Qt/KDE.
La première tentative fut celle de Trolltech qui porta Gecko sous Qt. Le projet nommé QtMozilla n'a jamais vraiment été maintenu et a plus été entrepris pour montrer la facilité de développement avec Qt.
La seconde tentative était une intégration de Gecko sous Konqueror il y a quelques années en tant que composant. Je n'ai pas trouvé de trace de ce projet mais je me souviens lorsque j'utilisais KDE qu'il était alors possible d'intégrer Gecko dans la fenêtre de Konqueror. Cependant, les menus et les widgets des pages Web étaient toujours en GTK+ et le lancement du composant pour visualiser les pages Web n'était pas des plus véloce au lancement. Apparemment, cette fonctionnalité n'est plus fournie en "standard" avec Konqueror.
NdM : Cette intégration de Gecko dans Konqueror avait en fait été réalisée pour montrer la souplesse de la technologie KParts (système de partage de composants entre applications)
Enfin, cette dernière tentative semble la plus prometteuse. Gecko est sur la voie d'être entièrement intégré à Qt et serait maintenu par quelques développeurs du projet KDE : il semblerait donc qu'elle soit faite pour durer si elle bénéficie du même dynamisme que le projet KDE, l'objectif étant d'avoir une alternative au moteur de rendu KHTML sous KDE. Zack Rusin, un des développeurs initiant ce port, a posté quelques informations sur son blog à propos de ce travail : une bonne petite lecture pour comprendre les motivations de ce port.
La première tentative fut celle de Trolltech qui porta Gecko sous Qt. Le projet nommé QtMozilla n'a jamais vraiment été maintenu et a plus été entrepris pour montrer la facilité de développement avec Qt.
La seconde tentative était une intégration de Gecko sous Konqueror il y a quelques années en tant que composant. Je n'ai pas trouvé de trace de ce projet mais je me souviens lorsque j'utilisais KDE qu'il était alors possible d'intégrer Gecko dans la fenêtre de Konqueror. Cependant, les menus et les widgets des pages Web étaient toujours en GTK+ et le lancement du composant pour visualiser les pages Web n'était pas des plus véloce au lancement. Apparemment, cette fonctionnalité n'est plus fournie en "standard" avec Konqueror.
NdM : Cette intégration de Gecko dans Konqueror avait en fait été réalisée pour montrer la souplesse de la technologie KParts (système de partage de composants entre applications)
Enfin, cette dernière tentative semble la plus prometteuse. Gecko est sur la voie d'être entièrement intégré à Qt et serait maintenu par quelques développeurs du projet KDE : il semblerait donc qu'elle soit faite pour durer si elle bénéficie du même dynamisme que le projet KDE, l'objectif étant d'avoir une alternative au moteur de rendu KHTML sous KDE. Zack Rusin, un des développeurs initiant ce port, a posté quelques informations sur son blog à propos de ce travail : une bonne petite lecture pour comprendre les motivations de ce port.
Une base de registre pour Linux ?
La centralisation des fichiers de configuration sous Linux est un vieux débat, qui est une nouvelle fois remis sur le tapis. Les spécifications d'une base de registre pour Linux viennent d'être publiées tout récemment. Des outils graphiques pour l'éditer sont également en train de voir le jour.
Le nom lui-même de "registry" est susceptible de changer. Il a été choisi pour permettre de situer le but du projet mais les auteurs sont à la recherche d'un nouveau nom, ouverts aux propositions.
Le nom lui-même de "registry" est susceptible de changer. Il a été choisi pour permettre de situer le but du projet mais les auteurs sont à la recherche d'un nouveau nom, ouverts aux propositions.
Utiliser lex et yacc dans vos programmes C/C++
On a tous entendu parler un jour ou l'autre de lex et yacc, ne serait-ce que pour compiler certains logiciels ... mais à quoi peut servir cet ensemble d'outils ?
Entre autres, il vous sera très utile si votre programme C/C++ a par exemple recours à un fichier de données structurées et qu'il vous faut le parcourir, en vérifier sa validité, en extraire les données utiles etc... lex et yacc vous permettent de décrire la syntaxe du fichier (les mots clefs structurants) ainsi que sa grammaire (les enchaînements de mots clefs et l'exploitation des données parsées) dans un langage de haut niveau. Une fois ce travail accompli, ces deux outils génèrent une fonction C facilement intégrable dans votre projet C/C++.
Cet article se présente sous forme d'un tutoriel et permet de vite appréhender l'utilisation de lex et yacc par l'exemple. L'article n'aborde donc pas les aspects avancés de ces outils mais sachez qu'ils permettent de faire bien plus que ce qui y est décrit... d'ailleurs une des utilisations avancées les plus communes est la création de compilateurs.
À découvrir !
Entre autres, il vous sera très utile si votre programme C/C++ a par exemple recours à un fichier de données structurées et qu'il vous faut le parcourir, en vérifier sa validité, en extraire les données utiles etc... lex et yacc vous permettent de décrire la syntaxe du fichier (les mots clefs structurants) ainsi que sa grammaire (les enchaînements de mots clefs et l'exploitation des données parsées) dans un langage de haut niveau. Une fois ce travail accompli, ces deux outils génèrent une fonction C facilement intégrable dans votre projet C/C++.
Cet article se présente sous forme d'un tutoriel et permet de vite appréhender l'utilisation de lex et yacc par l'exemple. L'article n'aborde donc pas les aspects avancés de ces outils mais sachez qu'ils permettent de faire bien plus que ce qui y est décrit... d'ailleurs une des utilisations avancées les plus communes est la création de compilateurs.
À découvrir !
Premier "sprint" de programmation Zope/CPS/ERP5 à Paris la semaine prochaine
Un "sprint" de programmation Zope/CPS/ERP5 est organisé la semaine prochaine à Paris par Nuxeo et Nexedi, avec comme objectif principal d'améliorer l'intégration de CPS et d'ERP5, ainsi que de CPS et de CPSSkins, et de renforcer les liens entre les communautés de développeurs CPS et ERP5.
Une vingtaine de développeurs sont attendus pendant ces trois jours.
CPS est un système de gestion de contenu, de travail collaboratif et de workflow développé au-dessus de Zope. ERP5 est un ERP développé au dessus de Zope. CPSSkins est un système de gestion de skins pour CPS/CMF/Plone. CPS, ERP5 et CPSSkins sont des logiciels libres sous licence GPL.
Une vingtaine de développeurs sont attendus pendant ces trois jours.
CPS est un système de gestion de contenu, de travail collaboratif et de workflow développé au-dessus de Zope. ERP5 est un ERP développé au dessus de Zope. CPSSkins est un système de gestion de skins pour CPS/CMF/Plone. CPS, ERP5 et CPSSkins sont des logiciels libres sous licence GPL.
XCB : bientôt la version 1
XCB est un projet visant à créer une bibliothèque d'accès X Window plus bas niveau et surtout asynchrone pour faire alternative à la vénérable mais gourmande en performances XLib.
Un courriel de Jamey Sharp sur la liste XCB nous apprend que la bibliothèque a fait de gros progrès, et notamment le pont vers XLib qui est très proche de fonctionner parfaitement.
De plus l'API a été documentée (bien que certaines fonctions de la documentation ne soient présentes que dans le CVS).
Un courriel de Jamey Sharp sur la liste XCB nous apprend que la bibliothèque a fait de gros progrès, et notamment le pont vers XLib qui est très proche de fonctionner parfaitement.
De plus l'API a été documentée (bien que certaines fonctions de la documentation ne soient présentes que dans le CVS).
JavaSearch : moteur de recherche dans la Javadoc
La documentation javadoc de l'API J2SE est bien faite et plutôt claire. Mais il n'existait jusque là aucun outil permettant aux développeurs d'effectuer des recherches parmi les 2723 classes qu'elle compte, dans sa version 1.4.2.
L'outil JavaSearch vient d'être mis en ligne : il propose de lancer des recherches en plein texte dans les descriptions, sur les noms de packages, de classes, de méthodes et de constructeurs. Cet outil est très rapide et pertinent. Il indexe les 200 Mo de fichiers HTML de la Javadoc J2SE 1.4.2
Ce moteur de recherche répond à un énorme besoin des développeurs Java, toujours à rechercher la documentation sur une méthode dont on a oublié le prototypage.
Ce service est hébergé par Developpez.com, site d'entraide des développeurs francophones.
L'outil JavaSearch vient d'être mis en ligne : il propose de lancer des recherches en plein texte dans les descriptions, sur les noms de packages, de classes, de méthodes et de constructeurs. Cet outil est très rapide et pertinent. Il indexe les 200 Mo de fichiers HTML de la Javadoc J2SE 1.4.2
Ce moteur de recherche répond à un énorme besoin des développeurs Java, toujours à rechercher la documentation sur une méthode dont on a oublié le prototypage.
Ce service est hébergé par Developpez.com, site d'entraide des développeurs francophones.
IronPython : implémentation pour Mono/.NET
IronPython est une implémentation libre (sous licence CPL v1.0) de Python pour la machine virtuelle de Mono/.NET (NdM : Common Language Runtime, ou CLR).
Plus rapide que la version officielle et moins gourmande en mémoire, elle permet de réaliser des exécutables et des dll's utilisables par les autres langages compilables pour CLR (type C#, VB, ...).
NdM : l'auteur de IronPython, Jim Hugunin, s'était déjà illustré en créant Jython (une implémentation de Python pour Java), et en participant activement aux développements de Numerical Python et d'AspectJ. Il a récemment rejoint l'équipe CLR de Microsoft, où il compte poursuivre son travail sur IronPython et promouvoir l'utilisation sur cette plate-forme des langages dynamiques en général.
Plus rapide que la version officielle et moins gourmande en mémoire, elle permet de réaliser des exécutables et des dll's utilisables par les autres langages compilables pour CLR (type C#, VB, ...).
NdM : l'auteur de IronPython, Jim Hugunin, s'était déjà illustré en créant Jython (une implémentation de Python pour Java), et en participant activement aux développements de Numerical Python et d'AspectJ. Il a récemment rejoint l'équipe CLR de Microsoft, où il compte poursuivre son travail sur IronPython et promouvoir l'utilisation sur cette plate-forme des langages dynamiques en général.
Déclaration d'indépendance des développeurs
L'Open Group publie une déclaration d'indépendance des développeurs. Le but de cette déclaration est de promouvoir l'interopérabilité et les standards ouverts, de façon à assainir le marché de l'informatique et le marché du travail des développeurs.
Ce qui est prôné dans cette déclaration n'est pas particulièrement le logiciel libre, mais bien l'interopérabilité en général, quelque soit sa couleur politique. À noter que la déclaration est soutenue par IBM.
On peut aller la consulter et la signer en suivant le premier lien.
Ce qui est prôné dans cette déclaration n'est pas particulièrement le logiciel libre, mais bien l'interopérabilité en général, quelque soit sa couleur politique. À noter que la déclaration est soutenue par IBM.
On peut aller la consulter et la signer en suivant le premier lien.
Cartes de références pour développeurs
Souvent, lorsque l'on code, on ne se souvient plus forcément des différentes fonctions de telle ou telle bibliothèque C, une autre fois c'est la liste des balises (X)HTML ainsi que leurs attributs.
Pour remédier à cela, la page Quick Reference Cards propose un certain nombre de fichiers au format PDF faisant la plupart du temps entre 1 et 4 pages et permettant d'avoir l'essentiel en condensé.
On y trouve des cartes pour CSS, XML Path, XSL, C, C++ STL, Perl, PHP, MySQL, etc... Soit au total, environ une quarantaine de cartes de références.
NdM : les cartes sont diffusées selon différentes licences, dont certaines peuvent ne pas être libres selon les définitions de la documentation libre (le contenu est purement technique) ou du logiciel libre de la FSF. La licence de chaque carte est précisée dans son contenu.
Pour remédier à cela, la page Quick Reference Cards propose un certain nombre de fichiers au format PDF faisant la plupart du temps entre 1 et 4 pages et permettant d'avoir l'essentiel en condensé.
On y trouve des cartes pour CSS, XML Path, XSL, C, C++ STL, Perl, PHP, MySQL, etc... Soit au total, environ une quarantaine de cartes de références.
NdM : les cartes sont diffusées selon différentes licences, dont certaines peuvent ne pas être libres selon les définitions de la documentation libre (le contenu est purement technique) ou du logiciel libre de la FSF. La licence de chaque carte est précisée dans son contenu.