8,90 € TTC
p. 06 L’hameçonneur hameçonné
p. 14 Tests unitaires Java avec JUnit 5
p. 24 De l’usage de l’underscore en Python
p. 30 Traitement de tâches de fond en Ruby
p. 38 Identité multiple avec le namespace user
p. 52 Découvrez la programmation différentiable
p. 62 Parler à un RADAR spatioporté : traitement et analyse des données de Sentinel-1
De plus en plus de projets ou sites utilisent l’argument de l’open source comme gage de la confidentialité des données : « Utilisez notre application, vos données ne seront pas collectées puisque le code est open source ! », « Générez vos documents depuis notre site, le code est open source ! ». Que cela soit vrai ou non n’est pas vraiment la question, le problème est plutôt d’associer pour le grand public de manière systématique la notion d’open source avec celle de confidentialité des données. En effet, rien ne garantit qu’un code open source ne collecte aucune donnée !
Je vous sens dubitatif. Si le code est open source, quelqu’un s’apercevra nécessairement à un moment que des données sont collectées, non ? En fait, même si le code peut être entièrement analysé puisque librement disponible, à partir du moment où vous utilisez ce code depuis un hébergeur quelconque ou que vous installez un binaire généré depuis le code source, rien ne vous dit que le code n’a pas été modifié. Le code de base est bien open source, mais la version que vous allez employer contient du code qui n’a pas pu être audité...
Vous trouvez la démarche perverse et sans doute inutilisée ? Pourtant dans le cas de Visual Studio Code (VSCode) le cas est avéré [1], alors pourquoi pas avec d’autres applications ? Il est tellement simple de s’offrir à peu de frais une aura de respectabilité. VSCode étant développé par Microsoft, il ne pouvait qu’attirer l’attention, mais il y a fort à parier qu’avec ce mécanisme, même le libriste convaincu, au fait des différentes licences, pourra se faire piéger.
Il y a donc sans doute un danger à dévoyer ainsi la notion d’open source auprès du grand public, car le code ne devrait à aucun moment être modifié sous prétexte d’en faire un binaire installable plus facilement ou d’y avoir accès sans installation via un service web. Le développeur averti ne se laissera pas berner et y verra une tentative désespérée d’autres développeurs peu scrupuleux pour glaner quelques miettes du bon gâteau du logiciel libre...
En tout cas, vous retrouverez ce mois-ci, comme d’habitude, dans votre GNU/Linux Magazine des articles sur les technologies open source sans risque d’y trouver du code malicieusement enfoui…
Tristan Colombo
[1] Post du développeur Chris Dias (Microsoft) à propos des outils de tracking et de télémétrie du build VSCode : https://github.com/Microsoft/vscode/issues/60
GNU/Linux Magazine s'adresse aux professionnels et aux particuliers désireux de mieux maîtriser les techniques et problématiques liées à la programmation et à l’utilisation de solutions open source. Tous les deux mois avec ses articles techniques, la publication couvre les thématiques suivantes : programmation système, algo, bas niveau, sécurité du code, développement web...
La programmation différentiable est une nouvelle façon de penser la programmation. Le principe consiste à considérer tout un programme comme une fonction qu’on puisse différentier, et donc optimiser. Nous allons construire dans cet article les outils de base pour ce faire, et présenter la librairie JAX, qui facilite la tâche.
Beaucoup de projets web utilisent des frameworks qui font grand usage de Redis pour gérer les tâches de fond. Pourtant RabbitMQ ou Kafka sont des options qui peuvent donner un regard tout à fait différent sur l’application en elle-même. Tour d’horizon des trois approches.
L’une des raisons de l’adoption massive de Java comme langage de programmation d’entreprises est la richesse et la facilité d’utilisation de son outillage. Parmi ces nombreux outils, le plus élémentaire que tout développeur débutant se devra d’apprendre presque immédiatement est bien sûr l’utilisation d’un « framework » de développement de tests unitaires. Présentation de l’un des plus anciens et populaires : le « framework » JUnit dans sa version 5.