Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

GitHub - neostandard/neostandard: A spiritual successor to the standardjs javascript style guide

18 juin 2024 à 18:14

Un remplaçant pour StandardJS (un ensemble de règle sur la façon d'écrire du code JS) qui :

  • supporte ESLint 9 et son nouveau format de configuration flat,
  • se focalise sur ESLint au lieu de proposer son propre CLI
  • utilise ESLint Stylistic pour compenser la dépréciation des règles de style d'ESLint
  • supporte TypeScript nativement

Permalink

GitHub - neostandard/neostandard: A spiritual successor to the standardjs javascript style guide

18 juin 2024 à 18:14

Un remplaçant pour StandardJS (un ensemble de règle sur la façon d'écrire du code JS) qui :

  • supporte ESLint 9 et son nouveau format de configuration flat,
  • se focalise sur ESLint au lieu de proposer son propre CLI
  • utilise ESLint Stylistic pour compenser la dépréciation des règles de style d'ESLint
  • supporte TypeScript nativement

Permalink

Programmatic file downloads in the browser - DEV Community

30 mai 2024 à 07:45

Comment déclencher un téléchargement dans le navigateur purement en local depuis le code JavaScript, en utilisant l'objet Blob.

J'ai vérifié, ça fonctionne même en local en ouvrant simplement un fichier HTML dans votre navigateur, pas besoin de serveur HTTP.
Je me dis que ça peut être très utile par exemple pour partager une espèce de mini application qui pré-calcule un truc et permet de l'exporter en CSV ou JSON. Un calculateur de salaire par exemple, un ou petit outil pour estimer un risque.

Je me copie-colle le snippet en dessous.

const blob = new Blob(
  [ /* CSV string content here */ ],
  { type: 'text/csv' }
);

function downloadBlob(blob, filename) {
  const url = URL.createObjectURL(blob);

  const a = document.createElement('a');

  a.href = url;
  a.download = filename || 'download';

  const clickHandler = () => {
    setTimeout(() => {
      URL.revokeObjectURL(url);
      this.removeEventListener('click', clickHandler);
    }, 150);
  };

  a.addEventListener('click', clickHandler, false);

  a.click();
}

downloadBlob(blob, 'result.csv');

Permalink

Programmatic file downloads in the browser - DEV Community

30 mai 2024 à 07:45

Comment déclencher un téléchargement dans le navigateur purement en local depuis le code JavaScript, en utilisant l'objet Blob.

J'ai vérifié, ça fonctionne même en local en ouvrant simplement un fichier HTML dans votre navigateur, pas besoin de serveur HTTP.
Je me dis que ça peut être très utile par exemple pour partager une espèce de mini application qui pré-calcule un truc et permet de l'exporter en CSV ou JSON. Un calculateur de salaire par exemple, un ou petit outil pour estimer un risque.

Je me copie-colle le snippet en dessous.

const blob = new Blob(
  [ /* CSV string content here */ ],
  { type: 'text/csv' }
);

function downloadBlob(blob, filename) {
  const url = URL.createObjectURL(blob);

  const a = document.createElement('a');

  a.href = url;
  a.download = filename || 'download';

  const clickHandler = () => {
    setTimeout(() => {
      URL.revokeObjectURL(url);
      this.removeEventListener('click', clickHandler);
    }, 150);
  };

  a.addEventListener('click', clickHandler, false);

  a.click();
}

downloadBlob(blob, 'result.csv');

Permalink

WebNN – L’IA s’invite dans votre navigateur avec DirectML

Par : Korben
28 mai 2024 à 12:49

Ça y est, les amis, l’API WebNN débarque enfin en preview pour les développeurs, et croyez-moi, ça va changer totalement la manière dont on fait tourner de l’IA dans nos navigateurs web !Grâce à cette techno, on va pouvoir profiter de la puissance de nos GPU et autres accélérateurs matériels directement depuis nos pages web, sans avoir à installer le moindre plugin ou logiciel supplémentaire.

Concrètement, WebNN est une API JavaScript qui va permettre aux applications web d’exécuter des tâches d’inférence de réseaux neuronaux de manière super efficace, en exploitant à fond les capacités des CPU, GPU et autres processeurs dédiés à l’IA (les fameux NPU et TPU). Fini les calculs qui rament, bonjour la fluidité et la réactivité, même pour les modèles les plus gourmands !

WebNN est complètement agnostique côté matériel et côté modèles. Quel que soit le hardware qu’on a sous le capot (Intel, AMD, NVIDIA, Qualcomm…) et le format des modèles (ONNX, TensorFlow…), cette API va nous permettre de tirer parti un maximum des ressources disponibles, tout ça de manière transparente, sans avoir à se prendre la tête avec des lignes de code spécifiques à chaque plateforme.

Cette API suit un modèle de programmation super simple en deux grandes étapes :

  • 1. La construction du modèle : on utilise l’API MLGraphBuilder pour définir notre réseau de neurones, ses opérations, ses entrées et ses sorties et une fois que c’est fait, on peut le compiler en un graphe exécutable.
  • 2. L’exécution du modèle : maintenant qu’on a notre super graphe optimisé, il ne reste plus qu’à lui envoyer nos données d’entrée, et il va nous fournir ses prédictions et classifications à toute vitesse !

Grâce à WebNN, les tâches d’inférence de machine learning sont accélérées par le matériel local, ce qui offre des performances améliorées et une faible latence, même sans connexion internet ou avec une connexion non fiable. De plus, les données restent sur la machine de l’utilisateur, ce qui préserve ainsi sa vie privée.

WebNN est conçu pour fonctionner avec DirectML sur Windows, lequel assure des performances optimales sur divers matériels, notamment les RTX GPUs de NVIDIA, les Intel Core Ultra avec Intel AI Boost, et les Copilot+ PC avec des NPU Qualcomm Hexagon. Ça ouvre la porte à des applications évoluées de génération d’IA, de reconnaissance d’images, de traitement du langage naturel, et bien d’autres cas d’utilisation tout à fait passionnants.

Si vous voulez vous lancer dès maintenant avec WebNN, je vous conseille fortement de visiter le dépôt WebNN Developer Preview sur GitHub. Vous y trouverez plein de démos et d’exemples de code pour vous familiariser avec l’API et ses fonctionnalités. Par contre, vous devrez télécharger Edge en version Canary et la dernière Insider de Windows 11 puis dans la barre d’URL, tapez edge://flags/ pour pouvoir ensuite activer WebNN.

Pour plus de détails, vous pouvez consulter le tutoriel officiel de Microsoft.

Un grand merci au super neurone NexusSeven pour les sources de cet article !

Source

WeakMaps (`WeakMap`) (advanced) • JavaScript for impatient programmers (ES2022 edition)

26 mai 2024 à 07:36

Enfin un 🇬🇧 article clair sur ce que sont les WeakMap en JavaScript et quels sont les cas d'usage.

Elles servent à attacher une valeur à un objet de manière "externe", sans modifier l'objet lui-même. Un peu comme si vous êtes vendeur dans un magasin et attachez l'étiquette avec le prix sur un objet. Si l'objet disparaît, l'étiquette disparaît aussi. Donc si l'objet auquel vous attachez la WeakMap est supprimé par le garbage collector, votre WeakMap l'est aussi.

C'est donc parfait pour attacher une computed property à un objet par exemple, ou pour créer des propriétés réellement privées qui ne seront pas accessible à du code qui n'a pas accès à la WeakMap.

Ce sont des cas bien spécifiques mais c'est intéressant de savoir que ça existe.


Permalink

WeakMaps (`WeakMap`) (advanced) • JavaScript for impatient programmers (ES2022 edition)

26 mai 2024 à 07:36

Enfin un 🇬🇧 article clair sur ce que sont les WeakMap en JavaScript et quels sont les cas d'usage.

Elles servent à attacher une valeur à un objet de manière "externe", sans modifier l'objet lui-même. Un peu comme si vous êtes vendeur dans un magasin et attachez l'étiquette avec le prix sur un objet. Si l'objet disparaît, l'étiquette disparaît aussi. Donc si l'objet auquel vous attachez la WeakMap est supprimé par le garbage collector, votre WeakMap l'est aussi.

C'est donc parfait pour attacher une computed property à un objet par exemple, ou pour créer des propriétés réellement privées qui ne seront pas accessible à du code qui n'a pas accès à la WeakMap.

Ce sont des cas bien spécifiques mais c'est intéressant de savoir que ça existe.


Permalink
❌
❌