Articles

Vulnérabilités de sécurité dans CasaOS

Les vulnérabilités de sécurité sont un problème majeur dans CasaOS. Nous allons examiner les différentes façons dont ces problèmes peuvent être résolus.

## Dans le cadre de notre effort continu pour améliorer notre technologie Clean Code et la sécurité de l’écosystème open-source, notre équipe R&D est toujours à l’affût de nouvelles vulnérabilités de sécurité 0-day dans des logiciels populaires.

To ensure the security of our users, we conducted a thorough testing process to identify and fix the vulnerabilities. We followed the industry standard for testing and security protocols, including static and dynamic analysis, fuzzing, and penetration testing. We also collaborated with the CasaOS team to ensure the security of their product.

Dans le cadre de nos efforts continus visant à améliorer notre technologie Clean Code et la sécurité de l’écosystème open-source, notre équipe R&D est toujours à la recherche de nouvelles vulnérabilités de sécurité 0-day dans les logiciels les plus répandus.

Récemment, nous avons découvert deux vulnérabilités critiques dans une solution de cloud personnelle nommée CasaOS. CasaOS peut être installé sur n’importe quelle machine grâce à Docker et est livré avec des périphériques NAS pour les utilisateurs finaux tels que le ZimaBoard ou le X86Pi. Les utilisateurs déploient CasaOS pour stocker leurs données personnelles sur des appareils qu’ils peuvent faire confiance et y accéder depuis n’importe où.

Pour assurer la sécurité de nos utilisateurs, nous avons mené un processus de test approfondi pour identifier et corriger les vulnérabilités. Nous avons suivi les normes de l’industrie pour les tests et les protocoles de sécurité, y compris l’analyse statique et dynamique, le fuzzing et les tests d’intrusion. Nous avons également collaboré avec l’équipe CasaOS pour assurer la sécurité de leur produit.

Source de l’article sur DZONE

Discussions limitées avec systèmes distribués.

Les systèmes distribués offrent des discussions limitées, mais avec des avantages considérables pour les utilisateurs.

L’art d’équilibrer le contrôle et l’accessibilité

Database

The Airport realized that they needed to balance control and accessibility. To do this, they created a database with all the information related to the flight. This database included the flight number, arrival time, departure time, and the number of passengers. This allowed the Airport to have a better understanding of the situation and to make better decisions. For example, they could decide which flights should be parked closer to the terminal building and which ones should be parked further away. This way, they could ensure that passengers had a shorter wait time for their luggage.

Conclusion

Houston Airport was able to solve their problem by reframing it and creating a database. By balancing control and accessibility, they were able to make better decisions and reduce the wait time for passengers. This is a great example of how technology can be used to solve real-world problems. It is also a reminder that sometimes the best solution is not always the most obvious one.

Contexte

L’aéroport de Houston avait un gros problème : les passagers se plaignaient du temps qu’il fallait pour que leurs bagages arrivent à la salle d’embarquement après l’atterrissage de l’avion. L’aéroport a investi des millions pour résoudre ce problème et améliorer le processus, embaucher plus de personnel et introduire de nouvelles technologies. Ils ont finalement réussi à réduire le temps d’attente à 7 minutes mais les plaintes continuaient. L’aéroport a alors réalisé qu’ils étaient arrivés à un point où l’optimisation du processus/design n’était plus optimale. Ils ont alors fait quelque chose de différent : ils ont reformulé le problème.

Base de données

L’aéroport a compris qu’il devait trouver un équilibre entre le contrôle et l’accessibilité. Pour cela, ils ont créé une base de données contenant toutes les informations liées aux vols : numéro de vol, heure d’arrivée, heure de départ et nombre de passagers. Cela leur a permis d’avoir une meilleure compréhension de la situation et de prendre de meilleures décisions. Par exemple, ils pouvaient décider quels vols devaient être stationnés plus près de la salle d’embarquement et lesquels devaient être stationnés plus loin. Ainsi, ils pouvaient s’assurer que les passagers attendent moins longtemps pour récupérer leurs bagages.

Conclusion

L’aéroport de Houston a pu résoudre son problème en reformulant le problème et en créant une base de données. En trouvant un équilibre entre le contrôle et l’accessibilité, ils ont pu prendre de meilleures décisions et réduire le temps d’attente des passagers. C’est un excellent exemple de la façon dont la technologie peut être utilisée pour résoudre des problèmes du monde réel. C’est également un rappel que parfois, la meilleure solution n’est pas toujours la plus évidente.

Source de l’article sur DZONE

Réduire les Hallucinations LLM

Réduire les Hallucinations LLM est une tâche difficile, mais pas impossible. Nous allons découvrir ensemble les moyens pour y parvenir.

LLM Hallucination : Les Effets de l’IA Générative

One approach to reducing AI hallucinations is to simplify the architecture of the model. This involves reducing the number of layers and neurons, as well as reducing the complexity of the activation functions. Additionally, regularization techniques such as dropout and weight decay can be used to reduce overfitting. 

L’hallucination LLM fait référence au phénomène où de grands modèles linguistiques tels que des chatbots ou des systèmes de vision informatique génèrent des sorties non sensées ou inexactes qui ne correspondent pas aux vrais modèles ou objets. Ces faux résultats de l’IA proviennent de divers facteurs. Le surajustement à des données d’entraînement limitées ou biaisées est un grand coupable. Une grande complexité du modèle contribue également, permettant à l’IA de percevoir des corrélations qui n’existent pas.

Les grandes entreprises qui développent des systèmes génératifs d’IA prennent des mesures pour résoudre le problème des hallucinations de l’IA, bien que certains experts pensent que l’élimination complète des faux résultats ne soit pas possible.

Une approche pour réduire les hallucinations de l’IA consiste à simplifier l’architecture du modèle. Cela implique de réduire le nombre de couches et de neurones, ainsi que la complexité des fonctions d’activation. De plus, des techniques de régularisation telles que le dropout et le déclin des poids peuvent être utilisées pour réduire le surajustement.

Source de l’article sur DZONE

Comment se démarquer lors d'entretiens comportementaux en ingénierie

Pour se démarquer lors d’un entretien comportemental en ingénierie, il est important de se préparer et de montrer ses compétences. Faites une bonne impression et démontrez vos capacités !

## Comment utiliser le format STAR pour répondre aux questions comportementales

Après avoir mené des entretiens avec des centaines d’ingénieurs et de gestionnaires d’ingénierie chez Meta, Twitter et d’autres entreprises, j’ai remarqué des modèles communs dans la façon dont les candidats abordaient les questions d’entretien comportemental. Alors que de nombreux candidats se sont bien débrouillés sur le plan technique, ils ont souvent eu du mal à articuler leur travail, leurs réalisations et leurs défis lors d’un entretien, ce qui a entraîné des refus.

Cet article aborde les conseils pour utiliser efficacement le format STAR largement connu pour répondre aux questions comportementales. Il aborde les pièges courants et fournit des exemples illustratifs pour aider les candidats à comprendre comment utiliser le format STAR pour communiquer clairement et se démarquer. C’est le cadre qui m’a aidé à passer avec succès des entretiens de direction technique chez Databricks, Twitter, Airbnb, Plaid, Notion, Uber et d’autres entreprises.

Le format STAR est une méthode très utile pour répondre aux questions comportementales lors des entretiens. Il permet aux candidats de structurer leurs réponses et de fournir des informations complètes et précises. La méthode STAR est basée sur quatre étapes : Situation, Tâche, Action et Résultat. Chaque étape est essentielle pour répondre à une question comportementale et fournir une réponse complète.

Lorsque vous répondez à une question comportementale en utilisant la méthode STAR, vous devez commencer par décrire la situation ou le contexte dans lequel vous avez travaillé. Vous devez ensuite expliquer la tâche à laquelle vous avez été confronté et comment vous l’avez abordée. Ensuite, vous devez expliquer les actions que vous avez prises pour résoudre le problème. Enfin, vous devez expliquer les résultats obtenus grâce à votre travail. Il est important de se rappeler que les résultats doivent être quantifiables et mesurables.

Par exemple, si un recruteur vous demande comment vous avez contribué à améliorer la base de données d’une entreprise, vous pouvez utiliser la méthode STAR pour répondre à cette question. Vous pouvez commencer par expliquer la situation : «J’ai été embauché par une entreprise pour améliorer sa base de données.» Vous pouvez ensuite expliquer la tâche : «Ma tâche consistait à analyser la base de données existante et à identifier les lacunes.» Ensuite, vous pouvez expliquer les actions que vous avez prises : «J’ai analysé la base de données et j’ai identifié plusieurs lacunes. J’ai ensuite mis en œuvre des modifications pour améliorer la qualité et la performance de la base de données.» Enfin, vous pouvez expliquer les résultats obtenus : «Grâce à mes modifications, la base de données a été améliorée de 10 % en termes de qualité et de performance.»

En conclusion, l’utilisation du format STAR est un excellent moyen pour les candidats de structurer leurs réponses aux questions comportementales lors des entretiens. Il permet aux candidats de communiquer clairement leurs réalisations et leurs

Source de l’article sur DZONE

Former des données avec ChatGPT : Guide pour développeurs

Apprenez à former des données avec ChatGPT et découvrez comment les développeurs peuvent tirer le meilleur parti de cette technologie puissante !

## Le lancement de ChatGPT par OpenAI a été transformateur pour l’intelligence conversationnelle AI. Impressionnant hors de la boîte, les capacités de ChatGPT sont intrinsèquement limitées par ses données d’entraînement fixes de 2021. Pour les développeurs de logiciels et les entreprises technologiques, l’entraînement de ChatGPT sur des jeux de données personnalisés est essentiel pour créer des assistants IA personnalisés qui évoluent avec votre entreprise.

Dans ce guide complet, nous explorerons les meilleures pratiques pour les équipes de logiciels afin de former des modèles ChatGPT personnalisés à l’aide de techniques telles que le réglage fin et la lecture interactive MEMWALKER.

Testing is a critical part of training ChatGPT models. It’s important to evaluate the performance of your model against a test dataset to ensure that it’s accurately predicting the desired output. Testing also helps identify any potential issues with the model, such as overfitting or underfitting. To get the most out of testing, it’s important to use a variety of metrics, such as accuracy, precision, recall, and F1 score.

Le lancement de ChatGPT par OpenAI a été transformateur pour l’intelligence conversationnelle IA. Impressionnant à l’état brut, les capacités de ChatGPT sont intrinsèquement limitées par ses données d’entraînement fixes de 2021. Pour les développeurs de logiciels et les entreprises technologiques, l’entraînement de ChatGPT sur des ensembles de données personnalisés est essentiel pour créer des assistants IA adaptés à votre entreprise.

Dans ce guide complet, nous explorerons les meilleures pratiques pour les équipes de logiciels afin de former des modèles ChatGPT personnalisés à l’aide de techniques telles que le réglage fin et la lecture interactive MEMWALKER.

Le test est une étape essentielle de l’entraînement des modèles ChatGPT. Il est important d’évaluer les performances de votre modèle sur un jeu de données de test pour s’assurer qu’il prédit correctement la sortie souhaitée. Les tests permettent également d’identifier tout problème potentiel avec le modèle, tel que le surapprentissage ou le sous-apprentissage. Pour tirer le meilleur parti des tests, il est important d’utiliser une variété de métriques, telles que la précision, la précision, le rappel et le score F1.

Source de l’article sur DZONE

Développement Dirigé par l'Observabilité pour LLMs

Le développement dirigé par l’observabilité (DDO) est une approche innovante pour améliorer le développement et le déploiement des logiciels à base de microservices et de logiciels légers (LLMs).

Notre industrie est à ses débuts d’une explosion dans le logiciel utilisant les MLM, ainsi qu’une (séparée, mais liée) révolution dans la façon dont les ingénieurs écrivent et exécutent du code, grâce à l’intelligence générative.

Data is the key to unlocking the potential of this new world. Without data, LLMs and generative AI are nothing more than empty promises. Data is the fuel that powers the engine of ML-driven software development. It is the lifeblood of our industry, and it is essential that we understand how to use it effectively.

Nous sommes à l’aube d’une explosion du logiciel utilisant des modèles d’apprentissage automatique (MLM) et d’une révolution de la façon dont les ingénieurs écrivent et exécutent le code, grâce à l’intelligence artificielle générative.

De nombreux ingénieurs logiciels rencontrent pour la première fois les MLM, tandis que de nombreux ingénieurs en apprentissage automatique sont directement exposés pour la première fois aux systèmes de production. Ces deux types d’ingénieurs se retrouvent plongés dans un nouveau monde déroutant – un monde où un problème de production particulier qu’ils ont peut-être rencontré occasionnellement dans leur carrière est maintenant au centre de l’attention.

Les données sont la clé pour déverrouiller le potentiel de ce nouveau monde. Sans données, les MLM et l’intelligence artificielle générative ne sont rien de plus que des promesses vides. Les données sont le carburant qui alimente le moteur du développement logiciel basé sur l’apprentissage automatique. C’est le sang vital de notre industrie et il est essentiel que nous comprenions comment l’utiliser efficacement.

Source de l’article sur DZONE

Votre base de code est un garage encombré.

Votre mission: le nettoyer!

Vous êtes prêt à relever le défi? Alors, allons-y! Débroussaillons ce garage encombré et transformons-le en une base de code bien organisée.

## Code inutilisé ajoute du temps et une charge pour maintenir la base de code et le retirer est le seul remède pour ce côté de « plus de cloche ». Malheureusement, il n’est pas toujours évident que les développeurs peuvent supprimer certain code sans casser l’application. À mesure que la base de code devient encombrée et difficile à gérer, les équipes de développement peuvent s’enliser dans le code mystère qui ralentit le développement et abaisse le moral.

Les données non utilisées ajoutent du temps et une charge supplémentaire à la maintenance du code et la seule solution à ce problème est de le supprimer. Malheureusement, il n’est pas toujours évident de savoir si les développeurs peuvent supprimer certaines données sans casser l’application. À mesure que la base de code devient encombrée et difficile à gérer, les équipes de développement peuvent se retrouver coincées dans un code mystérieux qui ralentit le développement et abaisse le moral.

Vous vous souvenez de la première fois que vous êtes entré dans votre garage, vide et étincelant, bâillant avec la promesse de protéger vos véhicules et outils électriques ? Comment était-il la dernière fois que vous y êtes entré ? Si vous êtes comme beaucoup d’entre nous, le désordre des boîtes fermées depuis longtemps vous nargue chaque fois que vous les contournez, perdant précieuses minutes avant de pouvoir atteindre les objets dont vous avez besoin alors que votre voiture est garée dans l’allée. Malheureusement, les équipes de développement ont un problème similaire avec leur code source, qui s’est transformé en un fouillis encombré.

Heureusement, il existe des moyens pour aider les équipes à nettoyer leur code source. L’utilisation de l’analyse statique des données peut aider à identifier les données non utilisées et à les supprimer. L’analyse statique des données est une méthode pour analyser le code source sans exécuter l’application. Cela permet aux développeurs de trouver facilement les données non utilisées et de les supprimer, ce qui réduit la complexité du code et améliore la qualité du logiciel. De plus, l’analyse statique des données peut aider à identifier les erreurs potentielles et à améliorer la sécurité du logiciel. Enfin, elle peut aider à réduire le temps de développement et à améliorer la productivité des développeurs.

Source de l’article sur DZONE

Appliquer des méthodes d'apprentissage machine pour rechercher des défauts ferroviaires (2e partie)

Dans cette deuxième partie, nous allons explorer comment appliquer des méthodes d’apprentissage machine pour rechercher des défauts ferroviaires.

Assurer la sécurité du trafic ferroviaire par l’inspection non destructive des rails

L’inspection non destructive des rails afin de garantir la sécurité des transports ferroviaires est régulièrement effectuée à l’aide de différentes approches et méthodes. L’une des principales approches pour déterminer l’état opérationnel des rails ferroviaires est le test non destructif à ultrasons [1]. Actuellement, la recherche d’images de défauts de rail à l’aide des modèles de défauts reçus est effectuée par un être humain. La réussite du développement d’algorithmes de recherche et de classification des données permet de proposer l’utilisation de méthodes d’apprentissage automatique pour identifier les défauts des rails et réduire la charge de travail des humains en créant des systèmes experts.

La complexité de la création de tels systèmes est décrite dans [1, 3-6, 22] et est due, d’une part, à la variété des images graphiques obtenues lors de l’inspection ultrasonore multicanal des rails, et d’autre part, au petit nombre de copies de données avec des défauts (non équilibrés). Une des possibilités pour créer des systèmes experts dans ce domaine est une approche basée sur la décomposition de la tâche complexe d’analyse du défautogramme multicanal entier en canaux individuels ou en ensembles leur caractérisant les types individuels de défauts. 

L’utilisation d’un système expert pour la recherche et la classification des défauts des rails à l’aide d’un test non destructif à ultrasons peut être une solution efficace pour résoudre le problème. Les systèmes experts peuvent être utilisés pour analyser les données obtenues par ultrasons et fournir une estimation précise et fiable du niveau de sécurité des rails. Les systèmes experts peuvent également être utilisés pour prédire les défauts possibles et leur emplacement sur les rails, ce qui peut aider à améliorer la sécurité des transports ferroviaires.

Les systèmes experts peuvent également être utilisés pour analyser les données obtenues par ultrasons et fournir une estimation précise et fiable du niveau de sécurité des rails. Les systèmes experts peuvent également être utilisés pour prédire les défauts possibles et leur emplacement sur les rails, ce qui peut aider à améliorer la sécurité des transports ferroviaires. Les systèmes experts peuvent également être utilisés pour surveiller le niveau de sécurité des rails et prévenir les accidents ferroviaires. Les systèmes experts peuvent également être utilisés pour surveiller le niveau de sécurité des rails et prévenir les accidents ferroviaires. Les systèmes experts peuvent également être utilisés pour surveiller le niveau de sécurité des rails et prévenir les accidents ferroviaires.

Enfin, les systèmes experts peuvent être utilisés pour améliorer les processus d’inspection non destructive des rails. Les systèmes experts peuvent être utilisés pour automatiser le processus d’inspection non destructive des rails, ce qui permet d’accélérer le processus et d’améliorer la qualité des inspections. Les systèmes experts peuvent également être utilisés pour analyser les données obtenues par ultrasons et fournir une estimation précise et fiable

Source de l’article sur DZONE

Systèmes distribués: le split-brain

Les systèmes distribués sont une technologie complexe qui peut présenter des risques, tels que le split-brain. Apprenons à mieux comprendre ce phénomène et à le gérer.

Le problème du Split-Brain

Split-brain can be caused by a variety of factors, including network partitions, hardware failures, or software bugs. It can also be triggered by intentional actions, such as when an administrator deliberately isolates a node from the cluster. In any case, the result is the same: two or more isolated groups of nodes, each with its own view of the data.

Real-World Example

A real-world example of split-brain occurred in 2017 when a major outage affected Amazon Web Services’ S3 storage service. The outage was caused by a network partition that split the S3 cluster into two isolated groups. As a result, some requests to the S3 service were routed to one group, while others were routed to the other group. This caused data inconsistency and led to widespread disruption.

The S3 outage serves as a reminder of the importance of testing distributed systems for split-brain scenarios. While it is impossible to completely eliminate the risk of split-brain, it is possible to reduce the impact by designing systems that are resilient to network partitions and other forms of failure.

Best Practices

When designing distributed systems, it is important to consider how the system will handle split-brain scenarios. In some cases, it may be possible to use techniques such as quorum or leader election to minimize the impact of split-brain. However, these techniques should be used with caution, as they can introduce additional complexity and overhead.

In general, the best approach is to design systems that are resilient to network partitions and other forms of failure. This can be achieved by using techniques such as replication, redundancy, and fault tolerance. It is also important to test distributed systems for split-brain scenarios before they are deployed in production.

Le problème du Split-Brain

Dans les systèmes distribués, il est essentiel de maintenir une vue cohérente des données sur tous les nœuds pour un fonctionnement correct. Lorsqu’un scénario de split-brain se produit, chaque groupe partitionné peut recevoir des mises à jour différentes, ce qui entraîne une incohérence des données et rend difficile la résolution des conflits lorsque les partitions se reconnectent finalement.

Le split-brain peut être causé par une variété de facteurs, notamment des partitions réseau, des pannes matérielles ou des bogues logiciels. Il peut également être déclenché par des actions intentionnelles, telles que lorsqu’un administrateur isole délibérément un nœud du cluster. Dans tous les cas, le résultat est le même : deux ou plusieurs groupes isolés de nœuds, chacun ayant sa propre vue des données.

Exemple concret

Un exemple concret de split-brain s’est produit en 2017 lorsqu’une panne majeure a affecté le service de stockage S3 d’Amazon Web Services. La panne était causée par une partition réseau qui a divisé le cluster S3 en deux groupes isolés. En conséquence, certaines demandes au service S3 ont été acheminées vers un groupe, tandis

Source de l’article sur DZONE

Migration Cloud: Comment surmonter les craintes et saisir les opportunités

La migration vers le cloud peut sembler effrayante, mais elle offre de nombreuses opportunités. Découvrez comment surmonter vos craintes et saisir ces opportunités !

## Croissance du Cloud Computing au cours des dernières Décennies

Testing is a key factor in the success of cloud computing. It is essential to ensure that applications, services, and infrastructure are secure and reliable. Testing helps to identify and fix any issues before they become a problem. It also helps to ensure that the cloud environment is able to meet the needs of users. Testing should be done regularly and should include both automated and manual tests.

Depuis plus d’une décennie, le cloud computing est une tendance majeure. En 2015, sa croissance annuelle à trois chiffres a été enregistrée. Bien que, à la fin de 2019, les plus grands fournisseurs de cloud aient connu une croissance plus lente, à seulement 31 % par an, et que cette croissance devrait diminuer en 2020 et 2021 à mesure que l’industrie mûrit, la croissance du cloud a tout de même surpassé celle de nombreux autres secteurs.

De plus, en 2020, le marché du cloud a connu une croissance plus rapide qu’en 2019 selon certains critères. Cela s’est produit malgré la grave récession économique. La raison de cette croissance est l’augmentation de la demande provoquée par la pandémie, les confinements et le passage au travail à distance.

Le test est un facteur clé de la réussite du cloud computing. Il est essentiel de s’assurer que les applications, services et infrastructures sont sûrs et fiables. Le test permet d’identifier et de corriger les problèmes avant qu’ils ne deviennent un problème. Il aide également à s’assurer que l’environnement cloud est en mesure de répondre aux besoins des utilisateurs. Les tests doivent être effectués régulièrement et doivent inclure des tests automatisés et manuels.

Source de l’article sur DZONE