Category: Développement

Gestion du temps en Common Lisp : la solution LOCAL-TIME

2025-01-01

Cet article examine en détail les complexités de la gestion du temps en Common Lisp et présente la solution de l’auteur : la bibliothèque LOCAL-TIME. Il retrace l’évolution de la représentation du temps par les humains, des notations imprécises et dépendantes du contexte à des notations scientifiques précises, en soulignant le chaos introduit par des facteurs politiques tels que l’heure d’été. LOCAL-TIME utilise une représentation efficace basée sur fixnum, intègre les données des fuseaux horaires mondiaux et gère divers calculs et conversions de format de temps, évitant ainsi les erreurs dues à une représentation imprécise du temps, comme le tristement célèbre problème de l’an 2000.

Développement Gestion du temps

Ruby 3.4 : Connexions plus rapides, traces d'exceptions plus claires et code plus concis

2025-01-01

Ruby 3.4 est arrivé ! Chris Sinjakli met en avant trois améliorations majeures : un nom de paramètre de bloc par défaut `it` pour un code plus propre ; l'implémentation du RFC8305 (Happy Eyeballs Version 2) pour une gestion significativement améliorée des connexions de sockets TCP, notamment sur les réseaux à double pile (IPv4 et IPv6) ; et des traces d'exceptions plus claires pour faciliter le débogage. Ces améliorations augmentent la productivité du développeur et démontrent l'engagement de l'équipe Ruby envers l'expérience développeur.

Développement

API Parrot : Ingénierie inverse des API HTTP de n'importe quel site web facilement

2025-01-01

API Parrot est un outil puissant conçu pour effectuer l'ingénierie inverse des API HTTP de n'importe quel site web. Il dispose d'un proxy HTTP intégré pour faciliter l'enregistrement du trafic réseau, analyse les données pour identifier les points finaux pertinents et comprendre les relations entre eux. Les utilisateurs peuvent personnaliser les fonctions, en spécifiant les paramètres d'entrée/sortie, en excluant les données non pertinentes et en exportant les fonctions personnalisées sous forme de code JavaScript pour une intégration transparente dans leurs applications. API Parrot simplifie l'automatisation des processus métier, l'intégration des systèmes et le scraping de données, même à partir de sites web sans API publiques.

Développement ingénierie inverse API

La magie de la programmation métalinguistique : simplifier le code avec des interpréteurs

2025-01-01
La magie de la programmation métalinguistique : simplifier le code avec des interpréteurs

Cet article explore la puissance de la programmation métalinguistique, en utilisant spécifiquement des interpréteurs pour simplifier du code complexe. L’auteur utilise l’exemple de la simplification d’expressions Lisp pour montrer comment construire un interpréteur Scheme de 80 lignes et 30 règles peut accomplir une tâche qui nécessiterait autrement des milliers de lignes de code. La clé est de changer le paradigme de programmation vers une correspondance de règles basée sur les données, évitant ainsi une duplication significative du code. Bien que ce ne soit pas de la magie, l’auteur soutient que cette abstraction métalinguistique est un outil puissant qui mérite d’être exploré plus avant.

L'application web Mastodon nécessite JavaScript

2025-01-01

Un message d'Eric Hellman sur tilde.zone révèle une mise à jour d'un projet à long terme : l'utilisation de l'application web Mastodon nécessite l'activation de JavaScript, ou alternativement, l'utilisation d'une application native Mastodon. Cela suggère un travail d'amélioration du client web ou de l'expérience utilisateur pour Mastodon.

Développement

Notion : Votre espace de travail tout-en-un

2025-01-01
Notion : Votre espace de travail tout-en-un

Notion est un espace de travail tout-en-un qui combine notes, gestion de tâches, wikis et bases de données sur une seule plateforme. Il offre des outils flexibles et puissants pour vous aider à organiser les informations, gérer les projets, collaborer en équipe et créer des flux de travail personnalisés. Que ce soit pour un usage personnel ou une collaboration d'équipe, Notion s'adapte à vos besoins et booste votre productivité.

Keeper (YC) recrute un Ingénieur Full Stack Senior

2025-01-01
Keeper (YC) recrute un Ingénieur Full Stack Senior

Keeper, une entreprise soutenue par Y Combinator et qui développe des logiciels pour les comptables, recrute un Ingénieur Full Stack Senior. Le poste exige 3 ans et plus d'expérience dans le développement d'applications web avec React et Node.js, une maîtrise de TypeScript, des APIs REST et des bases de données. Keeper offre un salaire et des actions compétitifs, et a pour mission de donner aux comptables des outils efficaces.

Développement Ingénieur Full Stack

ShredOS : Effaceur de disque sécurisé pour tous les processeurs

2025-01-01
ShredOS : Effaceur de disque sécurisé pour tous les processeurs

ShredOS est une distribution Linux légère et bootable, construite avec Buildroot, conçue pour l'effacement sécurisé des disques. Il intègre nwipe, un outil puissant offrant plusieurs méthodes d'effacement, y compris la conformité DoD 5220.22-M, et prend en charge les processeurs 32 bits et 64 bits. Bootable depuis une clé USB ou un CD, ShredOS ne nécessite aucune installation et fournit une interface conviviale. Il inclut également des utilitaires comme smartmontools et hdparm pour le diagnostic et la maintenance des disques.

La Règle de l'Horloge/Spirale : Maîtriser les déclarations complexes en C

2025-01-01

Cet article présente la « règle de l'horloge/spirale », une technique astucieuse pour analyser les déclarations complexes en C. En suivant une spirale dans le sens des aiguilles d'une montre à travers la déclaration, en remplaçant les éléments tels que les tableaux, les pointeurs et les fonctions par leurs équivalents en français, même les déclarations les plus complexes deviennent compréhensibles. L'auteur illustre la technique avec plusieurs exemples, des tableaux de pointeurs simples aux pointeurs de fonctions imbriqués, et montre comment gérer les mots clés `const` et `volatile`. Cette méthode offre un moyen pratique et intuitif de déchiffrer du code C confus.

Développement analyse de code

Deux promotions au poste d'ingénieur principal : leçons apprises

2025-01-01

L'auteur partage son expérience d'avoir été promu deux fois ingénieur principal en deux ans. La clé de la promotion n'était pas la maîtrise technique, mais la création de valeur pour l'entreprise en réussissant des projets hautement prioritaires alignés sur les objectifs de l'entreprise. L'auteur souligne l'importance de comprendre les priorités de l'entreprise, de travailler sur des projets percutants et de nouer de solides relations avec la direction et les membres de l'équipe. Un manager de soutien est crucial. Les points clés incluent la concentration sur les projets à fort impact que l'entreprise priorise, la non-surévaluation du mentorat et un manager disposé et capable de défendre le processus de promotion.

Lucy : Un DSL concis pour les machines à états finis

2025-01-01

Lucy est un langage concis pour décrire les machines à états finis (FSM). Il permet d'exprimer des événements complexes, des gardes, des actions et des états de destination sur une seule ligne. La possibilité d'imbriquer des machines permet des FSM hiérarchiques. Lucy compile en XState, une bibliothèque JavaScript de pointe pour les FSM, prenant en charge toutes ses fonctionnalités principales. Écrit en C et compilé en WebAssembly, Lucy possède un avantage de vitesse significatif (15 fois plus rapide que son compilateur précédent basé sur JavaScript), ce qui le rend idéal pour les projets JavaScript.

Développement Machine à états finis

CVE Fantôme : une faille de sécurité dans l’émulateur de terminal Ghostty

2025-01-01

Un nouvel émulateur de terminal, Ghostty, a récemment publié la version 1.0. Le chercheur en sécurité David Leadbeater a découvert une vulnérabilité (CVE-2024-56803) similaire à une CVE de 2003, permettant aux attaquants d’exécuter du code arbitraire en exploitant la fonctionnalité de requête de titre du terminal. La vulnérabilité tire parti de la nature de la signalisation intégrée des terminaux et du comportement de Zsh en mode vi. Les attaquants peuvent utiliser des séquences d’échappement élaborées pour exécuter des commandes malveillantes à l’insu de l’utilisateur, même via SSH. Ghostty 1.0.1 corrige ce problème ; il est conseillé aux utilisateurs de mettre à niveau ou d’appliquer les mesures d’atténuation fournies dans l’avis.

(dgl.cx)
Développement sécurité terminal

Arbres de recherche statiques : 40 fois plus rapides que la recherche binaire

2025-01-01

Cet article de blog détaille la mise en œuvre et l’optimisation d’un arbre de recherche statique (arbre S+) pour la recherche de données triées à haut débit, obtenant une vitesse 40 fois supérieure à celle de la recherche binaire. En partant du code d’Algorithmica, l’auteur optimise méticuleusement l’algorithme de recherche à l’aide de la vectorisation, des instructions SIMD et du traitement par lots. Des analyses approfondies du code assembleur révèlent des possibilités d’amélioration des performances. Divers agencements d’arbres et stratégies de mémoire sont explorés, aboutissant à une solution hautement efficace qui réduit le temps de requête de 1150 ns à 24 ns sur un ensemble de données de 1 Go.

Tirreno : Analytique utilisateur sécurité open source pour une meilleure protection de la plateforme

2025-01-01
Tirreno : Analytique utilisateur sécurité open source pour une meilleure protection de la plateforme

Tirreno est un logiciel d'analytique utilisateur sécurité open source conçu pour surveiller diverses plateformes en ligne, notamment les sites web, les applications, les SaaS, les communautés et les appareils IoT. Il détecte et se défend contre les prises de contrôle de compte, les bots malveillants et les vulnérabilités courantes résultant du comportement de l'utilisateur. Construit avec PHP et PostgreSQL, Tirreno est facile à installer et à utiliser, fournissant des analyses en temps réel. Un abonnement payant améliore ses capacités anti-fraude, offrant une vérification supplémentaire des adresses IP, des e-mails et des numéros de téléphone. Développé par Tirreno Technologies Sàrl, Tirreno privilégie la confidentialité et la sécurité des données ; son code est open source, mais la marque commerciale ne l'est pas.

Développement analytique utilisateur

Retour sur le système de construction de NetBSD : un outil puissant mais obscur

2024-12-31
Retour sur le système de construction de NetBSD : un outil puissant mais obscur

Cet article de blog revient sur le système de construction de NetBSD, un système puissant mais quelque peu obscur basé sur une combinaison de BSD make et de scripts shell. Il permet de construire un système NetBSD complet à partir de zéro sur pratiquement n'importe quelle plateforme POSIX, sans privilèges root, et prend en charge la compilation croisée pour diverses architectures. L'auteur détaille le processus de construction, y compris la génération de la chaîne d'outils, la structure de construction, le mécanisme destdir, les constructions sans privilèges et la création de supports de distribution. Tout en reconnaissant les lacunes telles que les constructions incrémentales inefficaces et la gestion imparfaite des dépendances, l'auteur souligne les points forts du système et sa philosophie de conception. L'auteur conclut en mentionnant un projet embarqué actuel utilisant NetBSD et explore la possibilité de migrer le système de construction vers Bazel pour une efficacité accrue.

Développement système de construction

just words, une startup YC, recrute un ingénieur logiciel senior (frontend)

2024-12-31
just words, une startup YC, recrute un ingénieur logiciel senior (frontend)

La startup just words, soutenue par Y Combinator, recherche un ingénieur logiciel senior (frontend) pour construire et faire évoluer ses systèmes backend et de recommandation. L'entreprise utilise l'IA pour des messages hyper-personnalisés et utilise des tests dynamiques pour optimiser les résultats marketing. Le candidat idéal aura plus de 4 ans d'expérience en frontend, une maîtrise de JavaScript/TypeScript et des frameworks modernes comme React, et s'épanouira dans un environnement dynamique. Il s'agit d'une occasion unique de travailler avec les fondateurs, de prendre des décisions critiques et de résoudre des problèmes complexes en utilisant une technologie IA de pointe.

Développement

Optimisation Peephole dans la VM Ruby : ajout de opt_respond_to

2024-12-31
Optimisation Peephole dans la VM Ruby : ajout de opt_respond_to

Ceci est la quatrième partie d'une série sur l'optimisation de la machine virtuelle Ruby (VM). L'auteur approfondit l'ajout d'une instruction `opt_respond_to` à CRuby pour optimiser les appels à la méthode `respond_to?`. L'article détaille l'utilisation d'un débogueur pour suivre l'exécution du code, localiser l'optimiseur peephole `iseq_peephole_optimize`, et en analysant une optimisation de tableau figé existante, tente de faire correspondre le motif des appels à la méthode `respond_to?`, préparant ainsi le terrain pour l'ajout d'une nouvelle instruction d'optimisation. L'auteur utilise des exemples de code concis et des étapes de débogage pour illustrer clairement le mécanisme d'optimisation peephole et comment déboguer dans le code source CRuby.

Développement Optimisation Peephole

Plus de 3,1 millions d'étoiles fausses sur GitHub utilisées pour promouvoir des logiciels malveillants

2024-12-31
Plus de 3,1 millions d'étoiles fausses sur GitHub utilisées pour promouvoir des logiciels malveillants

Une étude récente a révélé plus de 3,1 millions d'étoiles fausses sur GitHub, utilisées pour gonfler artificiellement la popularité de dépôts de logiciels malveillants et d'escroqueries. Les chercheurs ont utilisé un outil appelé StarScout pour analyser des ensembles de données massifs, identifiant 278 000 comptes responsables de ces fausses étoiles sur 15 835 dépôts. Cette pratique trompeuse, particulièrement répandue en 2024, permet à des projets malveillants de paraître légitimes et d'atteindre des utilisateurs non avertis. Bien que GitHub ait supprimé de nombreux comptes et dépôts impliqués, le problème persiste. Les utilisateurs sont invités à évaluer soigneusement la qualité des projets et à faire preuve de prudence lorsqu'ils téléchargent des logiciels depuis GitHub.

Des idées systèmes qui semblent bonnes, mais qui ne fonctionnent presque jamais

2024-12-31
Des idées systèmes qui semblent bonnes, mais qui ne fonctionnent presque jamais

Steven Sinofsky réfute dans cet article plusieurs concepts d'ingénierie logicielle qui semblent prometteurs en théorie, mais qui se révèlent inefficaces en pratique. Il soutient que des idées telles que « rendons-le simplement branchable », « ajoutons simplement une API » et « abstraisons encore une fois » échouent souvent en raison des complexités inhérentes à l'ingénierie logicielle. Des problèmes tels que la maintenance de l'API, les bogues dans les opérations asynchrones, les complexités du contrôle d'accès et les difficultés du développement multiplateforme sont mis en évidence. Sinofsky souligne que la réussite en ingénierie logicielle repose sur des principes fondamentaux, et non sur l'application aveugle de modèles.

Le compilateur Onramp compile DOOM à partir de zéro

2024-12-31

Après deux ans de développement, un programmeur a réussi à compiler le jeu classique DOOM à l'aide d'un compilateur auto-amorçant appelé Onramp. En commençant par une simple machine virtuelle écrite en assembleur x86_64, Onramp a progressivement construit un assembleur, un compilateur C et d'autres outils, aboutissant à la compilation et à l'exécution de DOOM. Bien que les performances soient actuellement limitées, Onramp démontre des capacités d'auto-hébergement impressionnantes et un potentiel multiplateforme. Son objectif à long terme est de permettre la compilation et l'exécution de code sur n'importe quelle architecture, même celles de civilisations extraterrestres, préservant ainsi notre héritage culturel et informatique pour un avenir lointain.

Développement auto-hébergement

RSS.Beauty : sublimez vos flux RSS

2024-12-31
RSS.Beauty : sublimez vos flux RSS

RSS.Beauty est un outil open-source conçu pour améliorer l'expérience de lecture des flux RSS. Il transforme les flux RSS bruts en expériences de lecture esthétiques. Il suffit de télécharger le fichier de style (RSS ou Atom), de le placer dans votre répertoire de ressources statiques, et d'ajouter une ligne de code après `` dans votre RSS. RSS.Beauty bénéficie d'une excellente compatibilité et utilise une technologie éprouvée, redonnant vie aux flux RSS.

Grafana Cloud : Créez facilement un tableau de bord météo personnalisé

2024-12-31
Grafana Cloud : Créez facilement un tableau de bord météo personnalisé

Cet article explique comment créer rapidement un tableau de bord de prévisions météo personnalisé à l’aide de Grafana Cloud et de l’API publique gratuite du National Weather Service des États-Unis. En quelques étapes simples, les données météorologiques brutes JSON sont transformées en graphiques faciles à comprendre, permettant aux utilisateurs de consulter les informations météorologiques locales à tout moment. Grafana Cloud prend en charge diverses sources de données et offre des options de visualisation riches, rendant l’analyse des données simple et efficace.

Développement Prévisions météo

Référence symbolique et modèles matériels en Python : une nouvelle approche pour améliorer l’efficacité de la conception de matériel

2024-12-31

Cet article présente une nouvelle approche de la modélisation matérielle à l’aide de Python : les modèles symboliques. Les flux de travail traditionnels de conception de matériel impliquent plusieurs modèles (comportemental, architectural, RTL, etc.) pour la vérification, mais le débogage peut être difficile pour les algorithmes complexes et la gestion des données. L’auteur propose d’utiliser des modèles symboliques Python, en suivant les origines des données plutôt que les données elles-mêmes, pour simplifier le processus de débogage. En utilisant un réducteur d’image comme exemple, l’article détaille la construction et la comparaison des modèles symboliques de référence et matériels, montrant les avantages des modèles symboliques pour améliorer l’efficacité et la confiance de la conception, en particulier lors de la gestion de données complexes et des modifications de spécifications.

darktable 5.0.0 disponible : Interface utilisateur améliorée, performances et support !

2024-12-31
darktable 5.0.0 disponible : Interface utilisateur améliorée, performances et support !

Le logiciel d'édition photo open source darktable a publié la version 5.0.0, offrant des améliorations significatives de l'interface utilisateur (UI)/expérience utilisateur (UX), des améliorations des performances et une prise en charge étendue des appareils photo et des formats de fichiers. De nouvelles fonctionnalités incluent des styles spécifiques à l'appareil photo, un écran de progression de démarrage, des retours pendant les opérations par lots et des contrôles de masque plus précis. Les gains de performances sont évidents dans l'égaliseur de couleurs optimisé et le chargement plus rapide des fichiers PFM. De nombreux bogues ont été corrigés, et la prise en charge d'une plus large gamme d'appareils photo et de formats de fichiers a été ajoutée. Bien que les modifications soient conservées lors de la mise à niveau à partir de la version 4.8, il est fortement recommandé de sauvegarder vos données.

Développement édition photo version 5.0.0

Résumé du pied de page de la page d'assistance Unity

2024-12-31
Résumé du pied de page de la page d'assistance Unity

Ce texte est le pied de page du site web de Unity Technologies. Il inclut les informations de copyright, la politique de confidentialité, la politique de cookies et des liens vers diverses ressources telles que Unity Ads, Asset Store, des supports pédagogiques, des forums communautaires et la documentation. Ce n'est pas un article en soi, mais un élément de navigation permettant aux utilisateurs d'accéder à plus d'informations et de ressources liées à Unity.

Le déclin des applications natives : l’essor des applications web

2024-12-31
Le déclin des applications natives : l’essor des applications web

L’explosion des smartphones a rendu les applications natives omniprésentes, mais elles deviennent aujourd’hui une charge. Les navigateurs modernes sont suffisamment puissants pour offrir des fonctionnalités telles que les notifications et l’accès hors ligne, autrefois exclusives aux applications natives. L’article soutient que de nombreuses entreprises s’accrochent encore aux applications natives, ce qui entraîne une surcharge d’applications pour les utilisateurs. En revanche, les applications web sont plus rentables, plus flexibles et fonctionnent parfaitement sur différents appareils. L’industrie du jeu illustre cela, avec des technologies telles que HTML5, WebGL et WebAssembly permettant aux jeux sur navigateur de rivaliser avec les jeux natifs. L’article appelle les développeurs à adopter l’avenir des applications web, en utilisant des outils tels que Rogue Engine pour créer des expériences plus accessibles et universellement utilisables.

Risque imminent de collision de préfixes SHA dans les commits Git de Linux

2024-12-31
Risque imminent de collision de préfixes SHA dans les commits Git de Linux

L'étiquette "Fixes" de Linux utilise traditionnellement un préfixe SHA de commit de 12 caractères, mais avec l'augmentation du nombre de commits, le risque de collisions augmente. Le chercheur en sécurité Kees Cook a réussi à créer une collision de préfixe de 12 caractères, ce qui casse les outils qui analysent l'étiquette "Fixes". Cette collision utilise l'ID de commit initial de Linux 2.6.12-rc2, affectant des outils tels que le "Fixes tag checker" de linux-next et l'analyseur de commit du CNA Linux. Pour éviter les futures collisions, Cook suggère d'augmenter l'ID court minimum à 16 caractères et a publié un commit de test pour aider les développeurs à corriger leurs outils.

Développement Collision SHA

Relicenciation de projets open source : étude de cas d’Elasticsearch, Redis et Terraform

2024-12-31
Relicenciation de projets open source : étude de cas d’Elasticsearch, Redis et Terraform

Face aux pressions économiques, certaines entreprises relicencient leurs projets open source populaires sous des licences plus restrictives pour générer plus de revenus, ce qui entraîne la création de forks de projets. CHAOSS a étudié les cas d’Elasticsearch, Redis et Terraform, et a constaté que les forks présentent souvent une plus grande diversité organisationnelle que les projets originaux, en particulier sous des fondations neutrales comme la Linux Foundation. Si la relicenciation a eu un impact minime sur les contributeurs des projets originaux, elle a considérablement affecté les utilisateurs. Cette recherche est la première étape d’un projet plus vaste en cours ; les analyses futures intégreront davantage de données et de projets pour une meilleure compréhension.

DocumentCloud : Une plateforme de collaboration de documents en ligne

2024-12-31

DocumentCloud est une plateforme en ligne permettant aux utilisateurs de télécharger, d'éditer collaborativement et de partager différents types de documents. Elle offre des fonctionnalités de recherche et d'organisation puissantes, facilitant la gestion de grands volumes de fichiers. Pour les journalistes, les chercheurs et les organisations ayant besoin d'une collaboration d'équipe, DocumentCloud est un outil précieux qui augmente l'efficacité et facilite le partage d'informations.

Outil de gel des classes de base Ruby : Ruby Refrigerator

2024-12-31
Outil de gel des classes de base Ruby : Ruby Refrigerator

Ruby Refrigerator est un outil qui fige toutes les classes et tous les modules de base de Ruby, empêchant ainsi les modifications inattendues des classes de base lors de l'exécution. Il fournit une méthode `freeze_core` pour figer les classes de base et une méthode `check_require` pour vérifier les bibliothèques afin de détecter les modifications apportées aux classes de base. `check_require` prend en charge des options pour prédéfinir les modules et les classes, exclure des classes spécifiques et spécifier les dépendances. Un outil de ligne de commande, `bin/check_require`, est également fourni pour faciliter son utilisation. Cet outil est extrêmement utile pour garantir la stabilité du code dans les environnements de production et de test.

Développement gel classes de base
1 2 196 197 198 200 202 203 204 214 215