Une lib d'authorisation avec gestion des permissions RBAC
En plus du RBAC, il y a aussi une gestion ABAC (via les attributs avec un pseudo langage de matching).
La cerise sur le gateau c'est la gestion du multi-tenant (domains)
La persistence peut se faire dans tout type de base de données et ils possèdent des lib dans quasiment tous les langages.
Un serveur FTP entièrement en Node.js.
Il est très simple d'utilisation et très pratique car il abstrait le filesystem. Il est donc possible de lui fournir une classe qui fait autre chose qu'écrire et lire sur le disque.
Par exemple, il est possible de surcharger les méthodes pour écrire et lire dans un bucket S3.
C'est parfait pour s'interfacer avec tous les vieux systèmes qui communiquent encore via FTP.
Je l'utilise en tant que gateway FTP -> HTTP: les fichiers uploadés sont envoyés sur une route d'API
Le code source du moteur de recherche Yandex a fuité.
Le fonctionnement est assez similaire à celui de Google (certains disent 70% de similarité mais impossible de vérifier) ce qui en fait une mine d'or pour l'optimisation CEO.
Bref, c'est un coup très dur pour Yandex mais aussi un coup dur pour Google car tout le marché des moteurs de recherche va aussi en patir dans un contexte déjà compliqué avec l'arrivée de ChatGPT.
Un Chromium qui tourne dans un terminal :D
Ça permet de naviguer sur le web et même de voir des vidéo!
Le wrapper est en Rust bien sur
Un outil qui permet de retrouver tous les sous-domaines d'une entreprise en listant les certificats associés!
A noter que si vous utilisez un certificat wildcard alors les sous-domaines ne sont pas listables
Un outil qui permet de faire du déploiement progressif d'applications et c'est basé sur Kubernetes.
Un article sur une bonne gestion de la dette technique.
J'aime notamment la règle qui impose de créer une issue tagué tech-debt
à chaque PR introduisant de la dette technique.
OpenAI cherche à générer beaucoup de données en relation avec la programmation pour sans doute améliorer son IA "Codex" qui fonctionne sur le même principe que GPT mais pour le code.
C'est Codex qui est utilisé dans Copilot de Github par exemple.
C'est sur que le métier de développeur va changer mais il ne va pas non plus disparaître ça c'est sur !
Néanmoins il risque de beaucoup évoluer et il va falloir apprendre à composer avec ces IA pour rester dans la course.
Reims a utilisé un logiciel de surveillance se servant des caméras réparties dans la ville pour identifier les comportements suspects.
Ce genre d'initiative est vouée à se reproduire à l'approche des JO de 2024.
C'esr dingue comme les JO sont souvent prétexte à un laboratoire dédié à la société de surveillance. On se rappelle les JO de Londres en 2012 qui avaient été le théâtre d'une surveillance accrue par de nouveaux moyens (drones, Wi-Fi, etc)
Le problème c'est qu'après la fin des JO, les technologies elles sont conservées.
Une analyse de la console de Steam.
Sous le capot c'est une distrib Arch Linux câblée pour faire tourner les jeux sur Linux et même si dans la plupart des cas c'est un succès avec les titres AAA comme God of Wars, pour d'autres jeux il faut (un peu) ouvrir le capot et lire quelques tutoriels.
Sinon honnêtement pour le prix (419€) je trouve que c'est très correct niveau matos (CPU 3.5Ghz, Carte graphique 16Go RAM) et surtout pour pouvoir jouer même occasionnellement à des jeux récents.
La France possède donc une exploitation pétrolière sur son territoire.
C'est dans le sud ouest, à Parentis-en-born dans les Landes.
Cela représente 1% de la consommation nationale, ce qui correspond justement aux besoins de l'armée.
Un bon point pour la souveraineté donc !
Une méthode pour repérer les textes écrits avec ChatGPT ou GPT-3.
Le principe est de forcer l'algorithme à choisir certains synonymes plutôt que d'autres lors de la génération de phrases.
Ça permettrait d'identifier les textes générés par une IA.
Après on verra sûrement apparaître des IA pour enlever le watermark, bref encore un jeu sans fin du chat et de la souris.
Excellent article pour aller plus loin avec TypeScript !
Je ne connaissais l'astuce pour retourner des types predicate et aider TypeScript a mieux comprendre le code:
function isCircle(shape: Shape): shape is Circle {
return shape.kind === 'circle';
}
if (isCircle(shape)) {
// Typescript know it's a "Circle"
}
Bref, pleins de bon conseils et d'astuces pour aller plus loin avec le typage.
Attention quand même à ne pas trop complexifier les types, il ne faut pas hésiter à prendre des raccourcis si vous commencez à passer trop de temps à les écrire.
Une rétrospective sur les émissions de CO2 liées à la production d'électricité en Europe.
Plus c'est vert, moins il y a de CO2.
La France est un des seuls pays à être dans le vert quasiment toute l'année à part l'Islande, la Suède et la Norvège.
On voit par exemple que l'Allemagne et la Pologne oscille entre le maron clair et marron très foncé, même en été quand les renouvelables sont sensées prendre le relais.
Des réseaux de neurones de Google qui génèrent de l'audio à partir de prompt
Des présentation sur des concepts avancés de Postgres:
- Performance Tuning
- Explaining the Query Optimizer
- Joins and Indexes
- Database hardware
- Scaling opportunities
- Future of Sharding
(Merci Ocav pour le partage)
Une base de donnée type Graph basée sur du JSON.
Ils affichent des performances équivalentes voir meilleurs que MongoDB et Postgres sur des opérations tels que:
- single write
- single read
Sinon côté features d'une DB graph, à priori ils font beaucoup mieux que Neo4J, le principal concurrent.
Leur langage de recherche ressemble à du pseudo-code:
FOR doc IN users
FILTER doc._key == "phil"
RETURN doc
Un article très intéressant sur le processus de levée de fonds pour une startup.
L'auteur développe sur sa vision des VC ("Venture Capital", investisseurs) et donne quelques clés pour comprendre leur manière de fonctionner:
- ils sont souvent prêt à proposer de l'aide de diverses manière (contacts, brain storming, etc) car une facette de leur métier est aussi de conseiller les porteurs de projets et de créer une relation avec eux
- il ne faut pas interprêter l'enthousiasme comme une certitude d'investissement, pour eux être sceptique à propos de votre projet ne fait pas avancer les choses
- ils ne sont pas forcément des experts et ont besoin de vulgarisation pour comprendre le potentiel du projet
A propos du pitch, il faut bien sur être totalement en confiance car c'est cela qui va transparaitre. Il ne faut pas non plus hésiter à embellir la vérité et être très optimiste.
Finalement, le pitch deck (les slides souvent) va être partagé à de nombreux autres VCs donc il doit être autoporteur: contenir suffisament d'informations pour appâter le chaland et en même temps pas trop pour obtenir un rendez-vous pour expliquer la suite ;-)
Un article qui parle de ce qu'ils nomment les "Wildcard Persons".
Ces personnes ont toutes une gammes de compétences et sont capable de gérer quasiment n'importe quelle tâche dans une startup, du développement au marketing en passant par la relation client.
Bien sur ce n'est pas forcément du travail d'expert mais du travail néanmoins suffisament bon pour rester jusqu'à ce qu'il y ait l'argent et le temps pour qu'un véritable expert se penche sur la question.
Explication sur les différents systèmes de gestion des permissions pour une application.
Role Based Access Control (RBAC)
Définition d'un ensemble de rôle ayant le droit d'exécuter des actions sur l'application puis attribution de ces rôles à des utilisateurs.
Exemple: le rôle device-manager
permet de créer les Devices d'une plateforme IoT
Access Control List (ACL)
Définition de listes de permissions rattachées à chaque entitée de l'application. Une permission définie les actions possible sur l'entitée correspondante pour un utilisateur ou un groupe d'utilisateur.
Exemple: l'ACL rattaché au Device abc123
donne le droit à l'utilisateur aschen
de le modifier
Attribute Based Access Control (ABAC)
Définition des permissions en fonction des attributs des entités. Les permissions sont accordées à des utilisateurs ou groupes d'utilisateurs en fonction des valeurs de ces attributs.
Exemple: une règle ABAC autorise la lecture des informations d'un Device uniquement si l'attribut creator
du Device est égal à l'identifiant unique d'un utilisateur