« Une explication détaillée du protocole OAuth : pourquoi toutes ces étapes sont-elles requises ? À partir d'un protocole basique, l'auteur montre quelles attaques visent à déjouer chaque étape. »
Reckoning
[Romain (via le blog de Simon Willison)]
mardi 20 août 2024
« Une série d'articles où l'auteur discute comment l'obsession pour l'écriture complète des front-ends web en Javascript (sous forme de single-page app ou SPA) nuit aux usagers des services publics aux États-Unis (c'est sans doute généralisable...), en particulier à ceux du service SNAP qui fournit une aide alimentaire. »
« Si vous utilisez polyfill.io dans vos sites web: arrêtez tout de suite. Si vous allez sur des sites qui l'utilisent, bloquez polyfill.io. Le code javascript fourni inclut du code malicieux. »
« De nombreux utilisateurs de Twitter migrent vers des instances de Mastodon, et ce faisant, cherchent à appréhender cet outil.
Cet article propose une analogie : "Mastodon is just blogs and Google Reader, skinned to look like Twitter." »
« Lors de la Pycon 2022, Anaconda a fait l'annonce du projet pyscript qui permet d'embarquer du code Python dans une page HTML avec la balise <py-script>. La techno s'appuie en partie sur WebAssembly et Pyodide. La liste d'exemples disponibles est déjà intéressante. »
« La raison a prévalu: un jugement a débouté le gouverneur américain qui poursuivait un journaliste pour piratage... quand ce dernier avait juste lu le code html d'un site officiel (c'est aggravé par le fait que même si on retient le "piratage" le journaliste s'est comporté comme un white hat: les autorités ont été prévenues en avance de phase et ont eu le temps de patcher avant la publication de l'article). »
« This article gives good explanations about why you can't replace REST by GrapQL 'in place'. But reading it (and also some comments) it could also give you ideas about when to use GraphQL and not REST. »
« Le projet pyiodide offre des bibliothèques scientifiques python compilées en webassembly. Le projet webdash (expérimental) propose en plus un sous-ensemble de Plotly Dash, permettant d'implémenter en python des dashboards dont toute l'exécution se déroule côté client. Un projet qu'il serait intéressant d'essayer de combiner avec sql.js-httpvfs pour l'accès aux données. »
« Un hack assez brillant: il existait une version de SQLite compilée en WASM, sql.js, mais elle était limitée aux bases de données en mémoire.
sql.js-httpvfs implémente un système de fichiers virtuel qui utilise des appels HTTP RANGE pour récupérer les pages de la base de données.
Ainsi, il est possible d'utiliser (en lecture seule) une base de données SQLite hébergée de façon complètement statique, sans backend, pour peu qu'elle soit bien conçue (index...).
La démo est assez impressionnante, on peut interroger de façon fluide une base d'environ 600 MB.
Ce projet n'est pas (encore ?) prêt pour un usage en production. »
« L'article offre un aperçudes travaux récents de Tim Berners-Lee, l'inventeur du web, visant à donner aux utilisateurs les moyens de maîtriser leurs données personnelles. »
« MiniConf est un gestionnaire de conférences virtuelles capable de gérer les documents, agendas et les intervenants d'une manifestation académique. Une démonstration en ligne est disponible à l'adresse http://www.mini-conf.org/index.html »
« Un linter python permettant des résolutions automatiques de certains problèmes rencontrés. À ce sujet, on peut également lire ce billet de blog d'instagram (qui développe fixit) qui mentionne notamment que leur backend est une application monolithique basée sur Django. »
« Un fonds d'investissement pourrait racheter l'organisme qui gère les noms de domaines en '.org'. Des pionniers d'internet organisent la résistance autour de ce rachat qui aurait des conséquences pécuniaire pour les 10 millions de sites d'organisation qui profitent de ce domaine. »
« Un guide expliquant comment installer et servir une instance de Datasette sur un serveur linux. C'est aussi et surtout un bon guide pour déployer de petites applications Python sur une distribution Linux utilisant systemd. »
« Streamlit est une solution pour construire facilement des interfaces web à partir d'un script python. Ce projet peut se comparer à voilà mais préfère les scripts "simples" aux notebooks Jupyter et propose un modèle d'exécution différent. »
« Une introduction au standard ASGI, le "fils spirituel" de WSGI qui permet d'écrire des services web asynchrones et de gérer des protocoles autres que le HTTP, notamment WebSocket. »
« De nombreux navigateurs web très répandus -- à l'exception notable de Firefox -- ont mis en oeuvre, sans possibilité de la désactiver, une fonctionnalité dite de "link auditing" qui pose des problèmes de confidentialité. »
« Une introduction à la mise en cache sur le web, pratique importante pour diminuer la charge des services web et améliorer leurs performances, mais source d'erreurs. Voir aussi cette page sur MDN. »
« Un outil intéressant pour publier et explorer des données structurées. Le blog de l'auteur est assez fourni et propose aussi un article sur certains choix techniques mis en oeuvre dans Datasette. »
« Un jeune projet visant à permettre la création de pages web interactives utilisant des noyaux Jupyter. Par rapport à des notebooks classiques, la structure n'est ici pas imposée; on déclare simplement certaines balises comme étant exécutables. »
« Les grilles CSS offrent un moyen de créer des mises en page en deux dimensions. Le tutoriel interactif ci-dessus en donne un bon aperçu. Cetautre tutoriel soutenu par Mozilla est également une ressource intéressante. »
« Un article sur l'utilisation de deeplearn.js, une bibliothèque open source par Google qui permet de former des réseaux neuronaux sur un navigateur, pour améliorer le choix de couleurs d'avant-plan/arrière-plan. »
« Un court article expliquant en quoi la maintenance d'un navigateur indépendant est nécessaire mais coûteuse, avec quelques éléments sur les effectifs de Mozilla. »
« Une bibliothèque permettant de contrôler le navigateur Chrome à distance via son interface de debug (DevTools).
Cela peut être utile pour des tests (notamment des tests de bout en bout) mais aussi d'autres scénarios (crawlers...).
À noter que puppeteer se veut simple et orientée test (à la selenium/webdriver) et que des bindings plus complets existent, comme chrome-remote-interface. »
« Pour tester son application web, y compris le javascript et les websockets,
cet outil permet d'avoir un client web que l'on peut scripter pour faire cliquer
sur des liens ou autres boutons, attendre l'apparition d'éléments dans la page,
etc. On peut également, par exemple, afficher le DOM sur la sortie standard,
pour ensuite l'analyser avec des outils comme
BeautifulSoup (Python)
ou Lambda-soup (OCaml). »
« Cet article est une introduction à Django channels qui est un extension
du framework bien connu Django et qui introduit des fonctionnalités
importantes comme le support des WebSockets et celui des tâches asynchrones. »
« Les applications web progressives, ou comment se rapprocher de l'expérience d'une appli native sans travestir le web (avec les service worker et app manifest). »
« Ce billet est une introduction rapide à Cookiecutter avec Django.
Cookiecutter est un utilitaire permettant de créer des projets logiciels
à partir de templates. »
« Ce billet montre, à travers un exemple simple, comment développer une
application Django dotée d'une interface utilisateur moderne, basée sur
AngularJS. Les interactions client/serveur sont basées sur ReST
(representational state transfer), grâce à l'API "Django ReST Framework" »