Recherche effectué dans :

Filtre actif, cliquez pour en enlever un tag :

Cliquez sur un tag pour affiner votre recherche :

Résultat de la recherche (45 notes) :

Journal du mercredi 21 mai 2025 à 14:25 #artificial-intelligence, #llm, #NLP, #JaiDécouvert, #JaiLu

#JaiDécouvert le concept de LLM-as-a-Judge.

#JaiLu l'article Wikipédia à ce sujet "LLM-as-a-Judge".

"Abstract" du papier de recherche Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena datant du 24 décembre 2023 :

Evaluating large language model (LLM) based chat assistants is challenging due to their broad capabilities and the inadequacy of existing benchmarks in measuring human preferences. To address this, we explore using strong LLMs as judges to evaluate these models on more open-ended questions. We examine the usage and limitations of LLM-as-a-judge, including position, verbosity, and self-enhancement biases, as well as limited reasoning ability, and propose solutions to mitigate some of them. We then verify the agreement between LLM judges and human preferences by introducing two benchmarks: MT-bench, a multi-turn question set; and [[Chatbot Arena]], a crowdsourced battle platform. Our results reveal that strong LLM judges like GPT-4 can match both controlled and crowdsourced human preferences well, achieving over 80% agreement, the same level of agreement between humans. Hence, LLM-as-a-judge is a scalable and explainable way to approximate human preferences, which are otherwise very expensive to obtain. Additionally, we show our benchmark and traditional benchmarks complement each other by evaluating several variants of LLaMA and Vicuna. The MT-bench questions, 3K expert votes, and 30K conversations with human preferences are publicly available at https://github.com/lm-sys/FastChat/tree/main/fastchat/llm_judge.

source

J'ai parcouru rapidement l'article "Evaluating RAG with LLM as a Judge" du blog de Mistral AI. Je n'ai pas pris le temps d'étudier les concepts que je ne connaissais pas dans cet article, par exemple RAG Triad.

J'ai effectué une recherche sur « LLM as Judge » sur le blog de Simon Willison.

Journal du mardi 20 mai 2025 à 17:03 #JaiDécouvert, #DevOps, #prometheus, #monitoring, #nginx, #projet, #JaiLu

#JaiLu la discussion GitHub du projet nginx-proxy : "How can we scapre metrics from nginx-proxy container".

J'y ai découvert le Prometheus exporter : nginx-prometheus-exporter (https://github.com/nginx/nginx-prometheus-exporter). Il semble être l'exporter officiel de nginx pour Prometheus.

Je pense tester son installation et sa configuration d'ici à quelques jours.

Liste des éléments que je souhaite étudier :

  • Est-ce qu'il existe un dashboard Grafana qui permet de consulter par domaine et peut-être par URLs :
    • le temps moyen de réponse
    • la mediane de temps de réponse
    • le temps de réponse au 90ème percentile (p90)
    • le temps de réponse au 95ème percentile (p95)

Je pense que la metric nginxplus_upstream_server_response_time me permettra peut-être d'obtenir cette information.

J'ai identifié ce dashboard Grafana mais il ne semble pas afficher les informations dont j'ai besoin.

Faut-il encore configurer du swap en 2025, même sur des serveurs avec beaucoup de RAM ? #OnMePoseLaQuestion, #DevOps, #admin-sys, #linux, #JaiDécouvert, #JaiLu

Aujourd'hui, j'ai implémenté des tests de montée en charge à l'aide de Grafana k6. En ciblant un site web hébergé sur un petit serveur Scaleway DEV1-M, j'ai constaté que le serveur est devenu inaccessible à la fin des tests. Aucun swap n'était configuré sur cette Virtual machine de 4Go de RAM.

Je me suis souvenu qu'en 2019, j'ai rencontré aussi des problèmes de freeze sur une VM AWS EC2 que j'ai corrigés en ajoutant un peu de swap au serveur. Après cela, je n'ai constaté plus aucun freeze de VM pendant 4 ans.

Ce sujet de swap m'a fait penser à la question qu'un ami m'a posée en octobre 2024 :

Désactiver le swap sur une Debian, recommandé ou pas ?

Alors que j'ai 29Go utilisé sur 64, le swap était plein (3,5Go occupé à 100%), les 12 cœurs du serveur partaient dans les tours. J'ai désactivé le swap et me voilà gentiment avec un load average raisonnable, pour les tâches de cette machine.

C'est une très bonne question que je me pose depuis longtemps. J'ai enfin pris un peu de temps pour creuser ce sujet.

Sept mois plus tard, voici ma réponse dans cette note 😉.

#JaiDécouvert le paramètre kernel nommé Swappiness.

swappiness

This control is used to define how aggressive the kernel will swap memory pages. Higher values will increase aggressiveness, lower values decrease the amount of swap. A value of 0 instructs the kernel not to initiate swap until the amount of free and file-backed pages is less than the high water mark in a zone.

The default value is 60.

documentation du kernel

Dans la documentation SwapFaq d'Ubuntu j'ai lu :

The swappiness parameter controls the tendency of the kernel to move processes out of physical memory and onto the swap disk. Because disks are much slower than RAM, this can lead to slower response times for system and applications if processes are too aggressively moved out of memory.

  • swappiness can have a value of between 0 and 100
  • swappiness=0 tells the kernel to avoid swapping processes out of physical memory for as long as possible
  • swappiness=100 tells the kernel to aggressively swap processes out of physical memory and move them to swap cache

The default setting in Ubuntu is swappiness=60. Reducing the default value of swappiness will probably improve overall performance for a typical Ubuntu desktop installation. A value of swappiness=10 is recommended, but feel free to experiment. Note: Ubuntu server installations have different performance requirements to desktop systems, and the default value of 60 is likely more suitable.

source

D'après ce que j'ai compris, plus swappiness tend vers zéro, moins le swap est utilisé.

J'ai lu ici :

vm.swappiness = 60 : Valeur par défaut de Linux : à partir de 40% d’occupation de Ram, le noyau écrit sur le disque.

source

Cependant, je n'ai pas trouvé d'autres sources qui confirment cette correspondance entre la valeur de swappiness et un pourcentage précis d'utilisation de la RAM.

J'ai ensuite cherché à savoir si c'était encore pertinent de configurer du swap en 2025, sur des serveurs qui disposent de beaucoup de RAM.

#JaiLu ce thread : "Do I need swap space if I have more than enough amount of RAM?", et voici un extrait qui peut servir de conclusion :

In other words, by disabling swap you gain nothing, but you limit the operation system's number of useful options in dealing with a memory request. Which might not be, but very possibly may be a disadvantage (and will never be an advantage).

source

Je pense que ceci est d'autant plus vrai si le paramètre swappiness est bien configuré.

Concernant la taille du swap recommandée par rapport à la RAM du serveur, la documentation de Ubuntu conseille les ratios suivants :

       RAM      Swap    Maximum Swap
      256MB    256MB           512MB 
      512MB    512MB          1024MB
     1024MB   1024MB          2048MB
        1GB      1GB             2GB
        2GB      1GB             4GB
        3GB      2GB             6GB
        4GB      2GB             8GB
        5GB      2GB            10GB
        6GB      2GB            12GB
        8GB      3GB            16GB
       12GB      3GB            24GB
       16GB      4GB            32GB
       24GB      5GB            48GB
       32GB      6GB            64GB
       64GB      8GB           128GB
      128GB     11GB           256GB
      256GB     16GB           512GB
      512GB     23GB             1TB
        1TB     32GB             2TB
        2TB     46GB             4TB
        4TB     64GB             8TB
        8TB     91GB            16TB

source

#JaiDécouvert aussi que depuis le kernel 2.6, les fichiers de swap sont aussi rapides que les partitions de swap :

Definitely not. With the 2.6 kernel, "a swap file is just as fast as a swap partition."

source

Suite à ces apprentissages, j'ai configuré et activé un swap de 2G sur la VM Scaleway DEV1-L équipée de 4G de RAM, avec le paramètre swappiness réglé à 10.

J'ai relancé mon test Grafana k6 et je n'ai constaté plus aucun freeze, je n'ai pas perdu l'accès au serveur.

De plus, probablement grâce au paramètre swappiness fixé à 10, j'ai observé que le swap n'a pas été utilisé pendant le test.

Suite à ces lectures et à cette expérience concluante, j'ai décidé de désormais configurer systématiquement du swap sur tous mes serveurs de la manière suivante :

if swapon --show | grep -q "^/swapfile"; then
    echo "Swap is already configured"
else
    get_swap_size() {
        local ram_gb=$(free -g | awk '/^Mem:/ {print $2}')
        
        # Why this values? See https://help.ubuntu.com/community/SwapFaq#How_much_swap_do_I_need.3F
        if [ $ram_gb -le 1 ]; then
            echo "1G"
        elif [ $ram_gb -le 2 ]; then
            echo "1G"
        elif [ $ram_gb -le 6 ]; then
            echo "2G"
        elif [ $ram_gb -le 12 ]; then
            echo "3G"
        elif [ $ram_gb -le 16 ]; then
            echo "4G"
        elif [ $ram_gb -le 24 ]; then
            echo "5G"
        elif [ $ram_gb -le 32 ]; then
            echo "6G"
        elif [ $ram_gb -le 64 ]; then
            echo "8G"
        elif [ $ram_gb -le 128 ]; then
            echo "11G"
        else
            echo "11G"
        fi
    }

    SWAP_SIZE=$(get_swap_size)
    fallocate -l $SWAP_SIZE /swapfile
    chmod 600 /swapfile
    mkswap /swapfile
    swapon /swapfile

    if ! grep -q "^/swapfile.*swap" /etc/fstab; then
        echo "/swapfile none swap sw 0 0" >> /etc/fstab
    fi
fi

# Why 10 instead default 60? see https://help.ubuntu.com/community/SwapFaq#:~:text=a%20value%20of%20swappiness%3D10%20is%20recommended
echo 10 | tee /proc/sys/vm/swappiness
echo "vm.swappiness=10" | tee -a /etc/sysctl.conf

Journal du mardi 06 mai 2025 à 13:42 #git, #version-control-system, #JaiLu, #JaiDécouvert, #JeSouhaiteLire

Suite à la lecture du thread "jj tips and tricks" Lobster, je suis tombé dans un rabbit hole (1h30) : #JaiLu les articles ci-dessous au sujet de Jujutsu.

Quelques commentaires au sujet de l'article "What I've learned from jj"

Along with describing and making new changes, jj squash allows you to take some or all of the current change and “squash” it into another revision. This is usually the immediate parent, but can be any revision.

...

With jj squash, the current change is pushed into whatever target revision you want. And if that change has children, they’ll all be automatically rebased to incorporate the updated code, no additional work is needed.

source

J'ai hâte de tester si, à l'usage, c'est sensiblement plus simple qu'avec Git 🤔.

Conflict resolution

One of the consequences of being able to modify changes in-place is that all subsequent changes need to be rebased to account for the updated parent. If there were a sequence s -> t -> u -> v and you’d modified t, jj will automatically rebase the rest: s -> t' -> u' -> v'. This includes conflicts, if any arise. The difference from git is that conflicts are not a stop-the-world event! You’ll see in the jj log output that changes have a conflict, but it won’t prevent a command (like an explicit or implicit rebase) from running to completion. You get to choose when and how to resolve the conflicts afterward. I found this a surprising benefit: rebases are already less stressful because of how easy undo is, but now I’m no longer interrupted and forced to resolve conflicts immediately.

source

Cette simplicité annoncée me surprend vraiment. J'ai du mal à imaginer le fonctionnement, sans doute parce que je suis trop habitué à utiliser Git. J'ai l'impression que c'est de la magie !

J'ai hâte de tester !

... efforts to add Change-ID as a supported header in git itself to enable durable change tracking on top of commits.

source

J'ai découvert cette initiative, je trouve cela très intéressant👌.


Un commentaire au sujet de l'article "First-class conflicts"

First-class conflicts

...

Unlike most other VCSs, Jujutsu can record conflicted states in commits. For example, if you rebase a commit and it results in a conflict, the conflict will be recorded in the rebased commit and the rebase operation will succeed. You can then resolve the conflict whenever you want. Conflicted states can be further rebased, merged, or backed out. Note that what's stored in the commit is a logical representation of the conflict, not conflict markers; rebasing a conflict doesn't result in a nested conflict markers (see technical doc for how this works).

source

Je trouve cela très intéressant.

Voici une commande pour extraire un patch avec l'inclusion des "Conflict markers" (je n'ai pas encore testé) :

$ jj diff --include-conflicts > conflicts.patch

Un commentaire au sujet de l'article "In Praise of Stacked PRs"

“Stacked PRs” is the practice of breaking up a large change into smaller, individually reviewable PRs which can depend on each other, forming a DAG.

source

Je suis ravi de découvrir que le terme "Stacked PRs" existe pour décrire le concept que j'expliquais souvent quand j'étais chez Spacefill.


En lisant ces articles, #JaiDécouvert :

et j'ai "redécouvert" :

#JeSouhaiteLire :

Journal du lundi 10 mars 2025 à 23:11 #JaiLu, #agile, #JaiDécouvert

Quelques prises de notes lors de ma lecture de l'article « Réforme des retraites, échec scolaire, cannabis… et si l’on s’y prenait autrement ? » de Pierre Pezziardi publié dans La Grande Conversation, la revue de Terra Nova.

#JaiDécouvert Michel Crozier.

Un premier exemple : j’ai co-fondé en 2020, un groupe coopératif, la Ceinture Verte, qui facilite la relocalisation de production maraîchère en circuits courts. C’était à l’origine un projet de Startup d’État qui s’est finalement développé dans le champ de l’économie sociale et solidaire. En quatre ans, avec dix coopératives, et 16 fermes en activité, c’est désormais le premier réseau de coopération inter-territorial dans le champ des politiques publiques agricoles, et accessoirement, en consolidé, la plus grande ferme maraîchère en circuit court de France. Bien que modeste à l’échelle nationale – la relocalisation en circuits courts de 10% des légumes nécessiterait plusieurs milliers de fermes de proximité – l’initiative est taillée pour passer à cette échelle.

source

Intéressant 🙂.

Alors pourrait-on imaginer des entreprises de politiques publiques menées selon cette même méthode ”agile à impact” ? Imaginons trois scénarios prospectifs.

source

J'ai bien aimé les trois scénarios prospectifs décrits dans l'article.

La lecture de cet article m'a fait penser à une réflexion que j'ai eue vers 2008, quand je découvrais l'agilité, la méthode Lean, etc., et que je m'étais dit : "Mais ça donnerait quoi un parti politique ou un gouvernement qui suivrait les méthodes agiles ? J'aimerais bien lancer un parti 'Agile'" 😉.

Journal du samedi 01 mars 2025 à 17:03 #réseau-de-neurones, #MachineLearning, #artificial-intelligence, #JaiLu, #JaiDécouvert

J'ai passé une heure à lire l'article de LinuxFr : « Une intelligence artificielle libre est-elle possible ? ». J'y ai appris de nombreuses choses et je l'ai trouvé plutôt accessible. Merci à l'auteur https://linuxfr.org/users/liorel.

J'ai beaucoup aimé cette manière de présenter ce qu'est l'Intelligence artificielle :

Commençons par définir notre objet d’étude : qu’est-ce qu’une IA ? Par « intelligence artificielle », on pourrait entendre tout dispositif capable de faire réaliser par un ordinateur une opération réputée requérir une tâche cognitive. Dans cette acception, un système expert qui prend des décisions médicales en implémentant les recommandations d’une société savante est une IA. Le pilote automatique d’un avion de ligne est une IA.

Cependant, ce n’est pas la définition la plus couramment employée ces derniers temps. Une IA a battu Lee Sedol au go, mais ça fait des années que des ordinateurs battent les humains aux échecs et personne ne prétend que c’est une IA. Des IA sont employées pour reconnaître des images alors que reconnaître un chien nous semble absolument élémentaire, mais l’algorithme de Youtube qui te suggère des vidéos pouvant te plaire parmi les milliards hébergées fait preuve d’une certaine intelligence et personne ne l’appelle IA. Il semble donc que le terme « IA » s’applique donc à une technique pour effectuer une tâche plus qu’à la tâche en elle-même, ou plutôt à un ensemble de techniques partageant un point commun : le réseau de neurones artificiels.

Dans la suite de cette dépêche, j’utiliserai donc indifféremment les termes d’IA et de réseau de neurones.

source

J'ai bien aimé la section « Un exemple : la régression linéaire » 👌.

Je n'ai pas compris grand-chose à la section « Le neurone formel ». Elle contient trop d'outils mathématiques qui m'échappent, comme :

On ajoute un ensemble de neurones qu’on pourrait qualifier de « sensitifs », au sens où ils prennent en entrée non pas la sortie d’un neurone antérieur, mais directement l’input de l’utilisateur, ou plutôt une partie de l’input : un pixel, un mot…

source

#JaiDécouvert les neurones « sensitifs ».

Se pose alors la question : combien de neurones par couche, et combien de couches au total ?

On peut considérer deux types de topologies : soit il y a plus de neurones par couche que de couches : le réseau est plus large que long, on parlera de réseau large. Soit il y a plus de couches que de neurones par couche, auquel cas le réseau est plus long que large, mais on ne va pas parler de réseau long parce que ça pourrait se comprendre « réseau lent ». On parlera de réseau profond. C’est de là que viennent les Deep et les Large qu’on voit un peu partout dans le marketing des IA. Un Large Language Model, c’est un modèle, au sens statistique, de langage large, autrement dit un réseau de neurones avec plus de neurones par couche que de couches, entraîné à traiter du langage naturel.

source

Je suis très heureux de découvrir cette distinction entre profond et large. Je découvre que ces termes, omniprésents dans le marketing des IA, reflètent en réalité des caractéristiques architecturales précises des réseaux de neurones.

On constate empiriquement que certaines topologies de réseau sont plus efficaces pour certaines tâches. Par exemple, à nombre de neurones constant, un modèle large fera mieux pour du langage. À l’inverse, un modèle profond fera mieux pour de la reconnaissance d’images.

source

je peux assez facilement ajuster un modèle de régression logistique (qui est une variante de la régression linéaire où on fait prédire non pas une variable quantitative, mais une probabilité)

source

J'ai une meilleure idée de ce qu'est un modèle de régression logistique.

En définitive, on peut voir le réseau de neurones comme un outil qui résout approximativement un problème mal posé. S’il existe une solution formelle, et qu’on sait la coder en un temps acceptable, il faut le faire. Sinon, le réseau de neurones fera un taf acceptable.

source

Ok.

Posons-nous un instant la question : qu’est-ce que le code source d’un réseau de neurones ? Est-ce la liste des neurones ? Comme on l’a vu, ils ne permettent ni de comprendre ce que fait le réseau, ni de le modifier. Ce sont donc de mauvais candidats. La GPL fournit une définition : le code source est la forme de l’œuvre privilégiée pour effectuer des modifications. Dans cette acception, le code source d’un réseau de neurones serait l’algorithme d’entraînement, le réseau de neurones de départ et le corpus sur lequel le réseau a été entraîné.

source

👍️

Journal du dimanche 12 janvier 2025 à 20:26 #copilot, #CodeAssistant, #JaiLu, #JaiDécouvert

Suite à la lecture de :

Since auto-suggestions are a high-frequency operation and therefore expensive, it is recommended to specify an inexpensive provider or even a free provider: copilot

source

j'ai un peu étudié GitHub Copilot.

J'ai commencé par lire l'article Wikipedia "Microsoft Copilot" pour creuser pour la première fois ce sujet. Jusqu'à présent, Copilot était pour moi synonyme de GitHub Copilot, mais je me trompais totalement !
#JaiLu l'article Wikipedia GitHub Copilot.

J'ai ensuite parcouru les dernières entrées de GitHub Changelog.

Il y a quelques jours, j'avais vu le thread Hacker News : GitHub Copilot is now available for free

J'ai l'impression que « 50 messages and interactions » est très peu… mais tout de même utile pour tester comment cela fonctionne.
Par contre je trouve que 10 dollars par mois en illimité est très abordable.

Je découvre ici que Microsoft supporte officiellement un plugin GitHub Copilot pour Neovim : copilot.vim.

Je découvre la page de paramétrage de GitHub Copilot : https://github.com/settings/copilot

Journal du samedi 21 décembre 2024 à 20:40 #JaiLu, #JaiDécouvert, #MachineLearning, #llm, #AGI, #JaimeraisUnJour

Chose amusante, alors que ce matin même, j'ai découvert l'existence de o1, sortie il y a seulement quelques jours, le 5 décembre 2024.
Voilà que je découvre ce soir, dans ce thread Hacker News la sortie de o3 le 20 décembre 2024 : "OpenAI O3 breakthrough high score on ARC-AGI-PUB".

Les releases sont très réguliers en ce moment, il est difficile de suivre le rythme 😮 !

Dans ce thread, j'ai découvert le prix ARC (https://arcprize.org), lancé le 11 juin 2024, par le français François Chollet, basé sur le papier de recherche "On the Measure of Intelligence" sorti en 2019, il y a 5 ans.

ARC est un outil de mesure de AGI.

#JaimeraisUnJour prendre le temps de lire On the Measure of Intelligence.

Je lis ici :

OpenAI o3 Breakthrough High Score on ARC-AGI-Pub

OpenAI's new o3 system - trained on the ARC-AGI-1 Public Training set - has scored a breakthrough 75.7% on the Semi-Private Evaluation set at our stated public leaderboard $10k compute limit. A high-compute (172x) o3 configuration scored 87.5%.

This is a surprising and important step-function increase in AI capabilities, showing novel task adaptation ability never seen before in the GPT-family models. For context, ARC-AGI-1 took 4 years to go from 0% with GPT-3 in 2020 to 5% in 2024 with GPT-4o. All intuition about AI capabilities will need to get updated for o3.

source

Plus loin, je lis :

However, it is important to note that ARC-AGI is not an acid test for AGI – as we've repeated dozens of times this year. It's a research tool designed to focus attention on the most challenging unsolved problems in AI, a role it has fulfilled well over the past five years.

Passing ARC-AGI does not equate to achieving AGI, and, as a matter of fact, I don't think o3 is AGI yet. o3 still fails on some very easy tasks, indicating fundamental differences with human intelligence.

source

Donc, j'en conclus qu'il ne faut pas s'emballer outre mesure sur les résultats de ce test, bien que les progrès soient impressionnants.

La première partie du thread semble aborder la thématique du coût financier de o3 versus un humain : 309 commentaires.

Dans ce commentaire #JaiDécouvert le papier de recherche "H-ARC: A Robust Estimate of Human Performance on the Abstraction and Reasoning Corpus Benchmark" qui date de 2024.

Journal du mercredi 11 décembre 2024 à 11:03 #web-components, #WebDev, #JaiDécouvert, #JaimeraisUnJour, #JaiLu

Je viens de croiser pour la première fois la propriété windom.customElements (from). Elle fait partie de l'ensemble des technologies qui composent ce que l'on appelle les Web Components.

Je connais depuis longtemps les Web Components, mais je n'ai jamais essayé de mettre en œuvre cette technologie. Je me suis contenté de lire et d'écouter des retours d'expérience et de suivre l'évolution des spécifications.

#JaiDécouvert que je peux facilement créer des Web Components en Svelte : https://svelte.dev/docs/svelte/custom-elements.

Custom elements can be a useful way to package components for consumption in a non-Svelte app, as they will work with vanilla HTML and JavaScript as well as most frameworks.

source

#JaiDécouvert le site Custom Elements Everywhere (https://custom-elements-everywhere.com/). Je lis que les Web Components sont maintenant parfaitement supportés par les frameworks majeurs : ReactJS, VueJS, Angular, Svelte, Solid… Ce qui est une très bonne nouvelle 🙂.
Je vais essayer de garder cette information à l'esprit, les Web Components me seront sans doute utile à l'avenir.

Avec Svelte, j'apprécie une sorte de "retour aux sources", c'est-à-dire, vers un web un peu plus "vannila", celui que j'ai connu au début des années 2000.
Je pense que Web Components vont encore renforcer cette sensation, comme par exemple le fait que si j'utilise la fonctionnalité développeur "inspection" du navigateur sur un Web Component, je vais voir, par exemple, la balise <button>....</button> du Web Component et non sa "soupe" HTML, comme c'est le cas avec un composant ReactJS ou Svelte (je sais qu'il existe des extensions navigateur pour éviter cela).

#JaimeraisUnJour prendre le temps d'étudier les performances des Web Components versus les composants de ReactJS, Svelte et Solid.

#JaiLu le thread du Subreddit ReactJS : Is it worth learning Web Components?. Voici quelques extraits :

Not worth it to be quite honest. I expect to get some hate for this.

I worked on a design system for three years that was written in Stencil (web component framework) that was used by multiple teams all using React, Angular, Vue. I regret everything, it should have all been react but the dumb decision to allow different teams to use different frameworks in order to do "micro frontend architecture" was the reason web components were picked shortly before I joined and took the lead.

Web components are also impossible to version and whichever one loads first is going to be the one that is globally used. This means production breaking changes without teams even knowing their breaking changes were going to fuck over another team.

source

Un peu plus loin du même auteur :

No, I view “micro frontend architecture” as a total disaster and it usually is implemented badly. When each application is a different framework too it’s quite honestly so difficult as to not even be worth entertaining.

source

Web components can be a great way to add functionality to legacy web apps. I don't know if I'd set out to use them in any other scenario though. I suppose you could, but I don't know many people writing vanilla HTML/JS apps these days.

source


J'ai effectué une recherche GitHub sur le topic "web-components" et j'ai trouvé des choses intéressantes :

Journal du mardi 19 novembre 2024 à 00:22 #bluesky, #JaiDécouvert, #JaiLu

#JaiLu cet article au sujet de Bluesky : Maybe Bluesky has “won” (from).

Now that I’ve gotten some grumpiness out of my system, I would like to recognise some legitimately great things that Bluesky is doing. First up, domain-based usernames.

You can follow me on Bluesky as @gavin.anderegg.ca. I was able to set this up easily by adding a TXT record to my domain that links to my DID:PLC. This is great! It allows me to effectively “blue check” myself, in a similar way to Mastodon. The domain-based approach is quite flexible, and I think it’s a great solution.

J'aime beaucoup 👍️. Est-ce que Mastodon pourrait implémenter cela ? C'est peut-être cette FEP : FEP-e3e9: Actor-Relative URLs 🤔.

Bluesky also offers both composable moderation and the ability to choose your own algorithm. I’m someone who just wants to see a chronological feed of posts from the folks I follow, but I absolutely understand the appeal of these features. It’s made especially clear when compared to Threads, which only wants to show me inane engagement bait by default. There are even some third-party services which make setting up your own custom feed easier.

👍️

Est-ce que Mastodon pourrait implémenter cela ?

I also really love the idea of starter packs. If you’re someone who’s joining the service, picking who you want to follow is rough. A starter pack lets you to follow a set of users recommended by someone you trust. Anyone can create a starter pack, so it’s easy to grab a few and have a lively feed a few moments after joining.

Excellente idée 👍️.

Est-ce que Mastodon pourrait implémenter cela ? Peut-être : Starter kits: A way to simplify the entry into the fediverse/social web

Journal du mardi 15 octobre 2024 à 16:02 #JaiLu, #JaiDécouvert

En étudiant l'annonce de Brief.me j'ai un peu étudié Capacitor :

Build cross-platform Native Progressive Web Apps for iOS, Android, and the Web ⚡️ .

Le projet Capacitor a commencé fin 2017 et d'après ce que j'ai lu, ce projet est la "suite" d' Apache Cordova anciennement nommé PhoneGap.

Je me souviens d'avoir utilisé PhoneGap vers 2010.

Je découvre que je peux utiliser Svelte avec Capacitor : Svelte & Capacitor - Build native mobile apps with web technology and Svelte.

Il est même possible d'utiliser SvelteKit en mode SSG (@sveltejs/adapter-static) : https://ionic.io/blog/cross-platform-sveltekit-capacitor-application-yes-its-possible.

J'ai parcouru ce retour d'expérience : How I published a gratitude journaling app for iOS and Android using SvelteKit and Capacitor.

#JaiDécouvert ce template svelte-capacitor.

#JaiDécouvert whatpwacando.today.

#JaiLu SvelteKit + Capacitor Performance Example


J'ai souvent entendu parler d'Ionic par le passé, mais je n'avais jamais pris le temps de m'y pencher sérieusement. Je pensais que Ionic était un équivalent de React Native, mais j'avais tort. En réalité, Ionic est un UI Toolkit.

Journal du vendredi 11 octobre 2024 à 10:24 #JaiLu, #JaiDécouvert

#JaiLu l'article Wikipedia Prise de décision et #JaiDécouvert le tableau suivant qui définit :

Cette information m’intéresse, car, avec le temps, j’ai constaté qu’il existe de nombreuses définitions de stratégie et tactique selon les contextes : que ce soit dans le domaine militaire, le sport, ou encore l’agilité

J'ai pour objectif de centraliser, ici sur notes.sklein.xyz, les différentes définitions de ces termes au fil de mes découvertes.

Je vois ici que Loomio a commencé à intégrer de l'AI pour la transcription d'audio.

Journal du dimanche 06 octobre 2024 à 11:46 #Fediverse, #coopérative, #mastodon, #JaiLu, #JaiDécouvert, #Jaime

#JaiLu la page de bienvenue du projet social.coop.

En lisant la page Code of conduct #JaiDécouvert beaucoup de choses au sujet du mouvement coopératif :

Dans Les principes de Rochdale, j'ai été intrigué par la règle suivante :

La rémunération limitée du Capital : les sociétaires, ceux qui ont investi pour acheter des actions, touchent chaque année un intérêt, proportionnel à leur nombre d'achats et non aux bénéfices : s'ils veulent toucher une forte part des bénéfices, ils ont donc intérêt à acheter beaucoup, plutôt que d'acheter beaucoup d'actions.

-- from

#JaiLu Conflict resolution guide, je trouve cette formalisation de process intéressante. Je souhaite garder ce document à l'esprit parce que je pense que cela peut être adapté à une équipe ou plus largement à tout type d'organisation.

#JaiLu Reporting guide.

#JaiLu https://buytwitter.org/

J'ai parcouru une grande partie des pages du wiki de social.coop : https://wiki.social.coop/wiki/Special:AllPages.

#Jaime l'utilisation de Open Collective de social.coop : https://opencollective.com/socialcoop :

social.coop: a coop-run corner of the fediverse with a co-operative and transparent approach to operating a social platform.

#JaiLu aussi la page Loomio de social.coop : https://www.loomio.com/socialcoop

Journal du mercredi 02 octobre 2024 à 09:22 #JaiLu, #JaiDécouvert

#JaiLu Mastodon Announces Fediverse Discovery Providers - We Distribute (from).

J'ai trouvé cet article très intéressant, j'y ai appris beaucoup de choses qui ont le potentiel d'améliorer l'écosystème Mastodon et plus largement, Fediverse.

J'en ai profité pour lire aussi Fediverse Discovery Providers — « Exploring decentralized search and discovery for the Fediverse ».

#JaiDécouvert Fediverse Enhancement Proposals

Journal du mardi 24 septembre 2024 à 13:07 #JaiDécouvert, #JaiLu

#JaiLu un excellent article sur NATS : NATS de A à Y du blog Une tasse de café de Quentin Joly.

J'aime beaucoup les fonctionnalités cli de NATS, très pratiques pour faire des démos ou des tests.

J'y ai découvert les requêtes synchrones de NATS : Core NATS - Request-Reply.

À la fin de l'article, j'ai découvert Nex (NATS Execution Engine) :

The NATS Execution Engine (we'll just call it Nex most of the time) is an optional add-on to NATS that overlays your existing NATS infrastructure, giving you the ability to deploy and run workloads.

...

While you can build virtually any kind of application with Nex, the core building blocks are made up of two fundamental types of workloads: services and functions.

...

Nex functions are small and can be deployed either as Javascript functions or as WebAssembly modules.

Je découvre aussi que Nex utilise Firecracker.

Je suis un peu embêté, car je réalise que cela fait 2 ans que j'ai très envie d'utiliser NATS. J'espère ne pas tomber prochainement dans les travers du Resume Driven Development 🙈.

À la suite de la lecture de cet article, j'ai offert un petit café à Quentin Joly.

Journal du lundi 23 septembre 2024 à 17:12 #postgresql, #JaiDécouvert, #JaiLu, #JeMeDemande

#JaiDécouvert pgroll (from).

PostgreSQL zero-downtime migrations made easy.

#JaiLu en partie ce thread Hacker News de 2023.

Après avoir lu partiellement la documentation, j'ai l'impression que pgroll est simple à utiliser pour des migrations qui restent simples.
J'ai lu la section Raw SQL et #JeMeDemande si pgroll reste pratique à utiliser pour des migrations complexes, par exemple, split d'une table en plusieurs tables, merge de tables…

Je ne suis pas très motivé pour apprendre un nouveau DSL, c'est-à-dire, le format de migrations de pgroll à la place des instructions DDL (Data Definition Language) SQL (create, alter…).

Pour le moment, j'ai réussi à réaliser "à la main" des migrations en douceur : mise en place de view, de triggers… qui sont par la suite supprimés.

Je pense que pgroll serait très pratique avec une fonctionnalité Skew Protection pour un projet où les déploiements en production en journée sont fréquents et qui ne souhaite pas imposer aux utilisateurs de rafraîchir leurs pages.

Journal du samedi 07 septembre 2024 à 21:44 #JaiLu, #JaiDécouvert

#JaiLu ce thread Hacker News : Rrweb – record and replay debugger for the web.

#JaiDécouvert highlight.io, replay.io, Zipy et wirequery qui semblent être des alternatives à Posthog et OpenReplay.

Tous ces outils sont basés sur rrweb.

wirequery semble être un projet 100% open source.

#JaiDécouvert un autre projet basé sur rrweb : RecordOnce pour générer des tutoriels.

Journal du jeudi 05 septembre 2024 à 11:52 #security, #JaiLu, #JaiDécouvert

#JaiLu The SOC2 Starting Seven (from)

First: for us, SOC2 is about sales. You will run into people with other ideas of what SOC2 is about. Example: “SOC2 will help you get your security house in order and build a foundation for security engineering”. No. Go outside, turn around three times, and spit. Compliance is a byproduct of security engineering. Good security engineering has little to do with compliance. And SOC2 is not particularly good. So keep the concepts separate.

-- from

😉

Suite à cela, j'ai lu l'article Wikipédia sur System and Organization Controls.

This is not an instruction guide for getting SOC2-certified. Though: that guide would be mercifully short: “find $15,000, talk to your friends who have gotten certified, get referred to the credible auditor that treated your friends the best, and offer them the money, perhaps taped to the boom box playing Peter Gabriel you hold aloft outside their offices”.

-- from

😉

If there is one thing to understand about SOC2 audits, it’s: SOC2 is about documentation, not reality.

-- from

🙈

Puis ils vous remettront un questionnaire de 52 000 lignes appelé Liste de demandes d'informations (IRL), basé d'une manière occulte sur ce que vous leur avez dit que vous faisiez. Vous le remplirez. Vous aurez quelques réunions, puis vous leur enverrez un chèque. Le nom de votre entreprise figurera sur un rapport.

-- from

🙈

#JaiDécouvert Shibboleth.

PRs, Protected Branches, and CI/CD

Enable Protected Branches for your master/deployment branches in Github. Set up a CI system and run all your deploys through it. Require reviews for PRs that merge to production. Make your CI run some tests; it probably doesn’t much matter to your auditor which tests.

We probably didn’t even need to tell you this. It’s how most professional engineering shops already run. But if you’re a 3-person team, get it set up now and you won’t have to worry about it when your team sprawls and new process is a nightmare to establish.

-- from

J'implémente systématiquement ce workflow dès que je travaille en équipe. Cependant, je me demande à partir de combien de développeurs cela devient réellement pertinent. Avant de lire cet article, je pensais que cela valait la peine à partir de trois développeurs.
À noter que ma motivation première de mise en place de ce workflow n'est pas la sécurité, mais la fluidité de développement en équipe et d'éviter les bugs.

Centralized Logging

Sign up for or set up a centralized logging service. It doesn’t matter which. Pipe all your logs to it. Set up some alerts – again, at this stage, it doesn’t matter which; you just want to build up the muscle.

-- from

Pour cela, j'utilise Grafana avec Loki branché sur un Object Storage.

The AWS console is evil. Avoid the AWS console.

Instead, deploy everything with Terraform (or whatever the cool kids are using, but it’s probably still just Terraform). Obviously, keep your Terraform configs in Github.

C'est aussi l'une de mes premières motivations pour utiliser Terraform ! 😊

#JaiDécouvert Munki, MicroDMD, NanoMDM qui sont des MDM.

Web Application Firewalls: Most SOC2’d firms don’t use them, and most WAFs don’t work at all.

-- from

🙂

Endpoint Protection and AV: You have MDM and macOS/Windows full complement of security features and a way to force them enabled, you’re covered. AV software is a nightmare; avoid it while you can.

-- from

🙂

Journal du mercredi 28 août 2024 à 09:46 #css, #tailwindcss, #coding, #Web, #JaiLu, #JaiDécouvert

#JaiLu la documentation de UnoCSS.

Tailwind CSS is a PostCSS plugin, while UnoCSS is an isomorphic engine with a collection of first-class integrations with build tools (including a PostCSS plugin). This means UnoCSS can be much more flexible to be used in different places (for example, CDN Runtime, which generates CSS on the fly) and have deep integrations with build tools to provide better HMR, performance, and developer experience (for example, the Inspector).

-- Why UnoCSS?

Si je souhaite utiliser UnoCSS tout en conservant une compatibilité Tailwind CSS je dois utiliser Uno preset :

This preset is compatible with Tailwind CSS and Windi CSS, you can refer to their documentation for detailed usage.

#JaiDécouvert les features innovantes de UnoCSS :

<button
  bg="blue-400 hover:blue-500 dark:blue-500 dark:hover:blue-600"
  text="sm white"
  font="mono light"
  p="y-2 x-4"
  border="2 rounded blue-200"
>
  Button
</button>

Est l'équivalent de :

<button class="bg-blue-400 hover:bg-blue-500 text-sm text-white font-mono font-light py-2 px-4 rounded border-2 border-blue-200 dark:bg-blue-500 dark:hover:bg-blue-600">
  Button
</button>
<text-red> red text </text-red>
<flex> flexbox </flex>
I'm feeling <i-line-md-emoji-grin /> today!

Est l'équivalent de :

<span class="text-red"> red text </span>
<div class="flex"> flexbox </div>
I'm feeling <span class="i-line-md-emoji-grin"></span> today!

Je trouve ces syntaxes élégantes, mais, à ma connaissance, elles sont très peu courantes. Si je me mets à la place d'un développeur "onbordé" dans un nouveau projet utilisant le "attributify mode" et Tagify mode, je crains que cela puisse être un choc pour lui. Il me faudrait probablement plusieurs semaines avant que mon cerveau s'habitue à interpréter automatiquement cette syntaxe.

Je me demande donc si le gain final est réellement positif ou négatif.

Pour le moment, j'ai décidé que n'utiliserait pas les fonctionnalités "attributify mode" et Tagify mode.

Journal du mardi 27 août 2024 à 14:23 #selfhosting, #admin-sys, #JeMeDemande, #deployment, #JaiLu, #JaiDécouvert

#JaiLu en partie le thread Hacker News Dokku: My favorite personal serverless platform.

#JaiDécouvert :

J'ai apprécié ce tableau de comparaison de fonctionnalités entre dokploy, CapRover, Dokku et Coolify.

C'est la ligne "Docker compose support" qui a attiré mon attention.
Je reste très attaché au support de docker compose qui je trouve est une spécification en même temps simple, complète et flexible qui ne m'a jamais déçu ces 9 dernières années.

Attention, je n'ai pas bien compris si Dokku est réellement open source ou non 🤔.


Je constate que Dokploy est basé sur Docker Swarm.

Dokploy leverages Docker Swarm to orchestrate and manage container deployments for your applications, providing an intuitive interface for monitoring and control.

-- from

Choix qui me paraît surprenant puisque Docker Swarm est officieusement déprécié.

Je me suis demandé si K3s pourrait être une alternative à Docker Swarm 🤔.

Je découvre Kopia, une alternative à Restic #OnMaPartagé, #JaiLu, #JaiDécouvert

Alexandre m'a partagé Kopia, logiciel Open source de backup, alternatif à restic.

7000 likes GitHub versus 25000 likes pour Restic.

Je constate que Kopia est développé principalement par 2 développeurs et je constate le même nombre pour Restic.

J'ai parcouru cette page qui date de 2 ans : How Do Kopia Features Compare to Other Backup Software?.

En 2022, il semble que restic ne supportait pas la compression de données, mais je constate via cette Pull Request Implement compression support que cette feature est maintenant intégrée à restic.

#JaiLu en partie le thread Hacker News : Kopia: Fast and secure open-source backup software.

#JaiDécouvert bupstash.

Initially I thought this was a corporate project and was looking for the monetization model, but then I found https://github.com/kopia/kopia/blob/master/GOVERNANCE.md

I feel like the project might benefit from making their governance model more prominent on the website.

-- from

D'après ces commentaires, Kopia est lent à la restauration :

Used it for a while, recently tried to restore some things and it failed, taking a really long time to restore some snapshots compared to other things I've tried. Switched to restic instead. Really like what kopia is but I'll wait a few more years before considering it for something, but right now I'm happy with restic.

This has been my experience too with Kopia.

I tried to restore a ~200 GB file (stored remotely on a Hetzner Storage Box), and it failed (or at least did not finish after being left for ~20 hours; there was also no progress indicator or status I could find in the UI).

I also tried to restore a folder with about ~32 GB of data in it, and that also failed (the UI did report an error, but I don't recall it being useful).

Also, in general use, the UI would get disconnected from the repository every few days, and sometimes the backup overview list would show folders as being size 0 (which maybe indicated they failed; they showed up with an "incomplete" [or similar] tag in the UI).

-- from

Il semble que l'outil Veloro utilisait restic et ait migré vers Kopia :

One thing I will mention is that other backup projects have switched from Restic to Kopia. Velero from VMware comes to mind.

-- from

À ce sujet, j'ai vu Unified Repository & Kopia Integration Design et je n'ai pas tout compris.

Alexandre m'a appris que Veloro supporte pour le moment Kopia et restic mais que le support restic est en train d'être supprimé : Deprecate Restic.

Voilà l'origine du nom 🙂 :

"Kopia" means "copy" in Swedish and probably more Nordic languages, too.

-- from

J'ai vu ce commentaire :

Personally, I've had some issues with Kopia.

I found their explanation here:

Still not solved after many years :(

Ma doctrine pour le moment : je vais rester sur restic.

Journal du lundi 19 août 2024 à 11:27 #DébattonsMieux, #JaiLu, #JaiDécouvert

#JaiLu "Les mathématiques de l'argument d'autorité #DébattonsMieux" de Lê Nguyên Hoang, je trouve cela très intéressant, bien que, après une première lecture, je n'aie saisi qu'une infime partie de l'article.

L'article présente un théorème bayésien qui stipule :

  • Si vous êtes bayésien,
  • si vous supposez qu'une autorité a eu accès aux mêmes données que vous et à plus encore,
  • si vous êtes sûr que l'autorité parle de manière honnête,
  • si vous pensez qu'une autorité est aussi bayésienne avec le même a priori que vous, alors vous devez croire tout ce que l'autorité dit.

#JaiDécouvert John Geanakoplos, Herakles Polemarchakis et John Harsanyi cités dans cet article.

Journal du jeudi 15 août 2024 à 20:00 #coding, #svelte, #SvelteKit, #icons, #JaiDécouvert, #JaiLu, #JaiDécidé

Depuis que j'utilise @tabler/icons-svelte pour intégrer des tabler-icons sur un projet SvelteKit SSR, je rencontre d'énormes problèmes de performance en mode développement (pnpm run dev).

Pour traiter le problème, j'ai essayé ce hack indiqué dans l'issue Slow experience in SvelteKit, mais cela ne fonctionne pas.

Toujours dans cette issue, #JaiDécouvert Iconify.

Je pense me souvenir d'avoir commencé à utiliser tabler-icons comme alternative Open source à Font Awesome.

J'ai lu la page page raconte l'histoire du projet et j'apprends que le projet s'est réellement lancé en 2020.

Iconify est devenu un projet Open source en 2021 :

In mid 2022 plans changed, thanks to people showing interest in sponsoring open source development.

The new plan is to:

  • Open source everything, encourage developers to create their own open source solutions that use Iconify.
  • Rely on sponsors to finance development.

-- from

Mais, d'après la page contributors le projet semble toujours très majoritairement développé par Vjacheslav Trushkin.

Je lis aussi :

Unlike fonts, it downloaded data only for icons used on page, rendered pixel perfect SVG. (from)

Par contre, je pense comprendre qu'Iconify n'est pas un projet de création d'icônes, mais un framework qui regroupe énormément d'icônes.

Par exemple, j'ai constaté qu'Iconify intègre entre autres :

Iconify propose des composants icônes pour Svelte : Iconify for Svelte.
Mais, je lis :

Loads icons on demand. No need to bundle icons, component will automatically load icon data for icons that you use from Iconify API. -- from

Cette technique « Loads icons on demand » ne me plait pas. Je souhaite réduire au maximum les latences dans mes applications web.

J'ai continué mes recherches.

#JaiLu Icon library for svelte? : sveltejs

#JaiDécouvert unplugin-icons (from).
unplugin-icons est un projet qui a commencé en 2021 et qui est basé sur Iconify.

Je constate que unplugin-icons propose une configuration SvelteKit.

J'ai testé et cela semble très bien fonctionner 🙂.

Le site https://icones.js.org permet de facilement copier-coller le code Javascript pour intégrer une icône. Par exemple, un click sur "Unplugin Icons" :

permet de copier :

import TablerChevronDown from '~icons/tabler/chevron-down'

Je ne constate aucun problème de lenteur au mode développement (pnpm run dev) et aucun chargement réseau externe des icônes dans la version de production.

#JaiDécidé d'adopter cette librairie pour gérer les icons de mes projets SvelteKit.

Journal du samedi 10 août 2024 à 17:26 #JeMeDemande, #JaiLu, #JaiDécouvert

Dans mon PKM notes.sklein.xyz, #JeMeDemande quels sont les différences entre les tags et Wikilinks 🤔.

Les tags et les wikilinks me permettent tous les deux de retrouver une note à partir d'un ou plusieurs mots :

  • Pour les tags via le moteur de recherche ;
  • Pour les wikilinks via les backlinks des pages.

Contrairement aux tags, les wikilinks permettent :

  • D'être documenté ;
  • De proposer les alias.

Pour le moment, je ne vois pas d'avantage à utiliser des tags 🤔.

#JaiLu les threads suivants du forum Obsidian :

Links auto-refactor by default, and tags do not

This is a big one!

When you change the name of a file within Obsidian, all links to that folder will automatically change to be pointing to the right place. -- from

Je trouve que cette différence n'est pas négligeable 🤔.

#JaiDécouvert pjeby/tag-wrangler: Rename, merge, toggle, and search tags from the Obsidian tag pane (from).

People often debate the merits of using tags vs. page links to organize your notes. With tag pages, you can combine the best of both worlds: the visibility and fluid entry of tags, plus the centralized content and outbound linking of a page. -- from

Je trouve cette fonctionnalité intéressante, mais #JeMeDemande si l'utilisation de wikilinks ne serait pas une option plus simple 🤔.

Journal du samedi 27 juillet 2024 à 14:00 #ux-design, #user-interface, #JaiLu, #JaiDécouvert

#JaiLu le thread Hacker News "An experiment in UI density created with Svelte | Hacker News" et j'ai trouvé cela très intéressant.

Le bon dosage de la densité d'affichage est un élément très important dans mon expérience utilisateur.

#JaiDécouvert la librairie frontend web nommée DataTables (https://datatables.net/) implémentée en Javascript basée sur jQuery.

I'd like to think projects like these are somehow signaling a return to well designed but information dense, space saving interfaces ...

The amount of bloat, whitespace, extra spacing, "air" and other such waste — starting with (now Google-dead) "Material Design" has been egregious. —

source

#JaiDécouvert Perspective (https://perspective.finos.org/), j'aime beaucoup la densité des grilles. Voici un exemple en full screen : https://perspective.finos.org/blocks/editable/index.html.
J'aime sa densité et sa vitesse de rendu 👌.

This is interesting because it proves something to me about my vision and visual comprehension.

The "Grid" view is absolutely fine for me. The "Table" view is unworkable.

source

Intéressant 🤔.

J'ai regardé une partie de la vidéo de présentation du Bloomberg Terminal (https://www.youtube.com/watch?v=2ee-x6IXWK8), j'ai trouvé l'UI très intéressante.

Journal du vendredi 19 juillet 2024 à 23:40 #svelte, #SvelteKit, #JaiLu, #JaiDécouvert

#JaiLu What's new in Svelte: July 2024


#JaiLu What's new in Svelte: June 2024

Tons of work on the migrate tool to make migrating to Svelte 5 syntax easier

J'ai hâte de tester pour constater les changements dans le code et aussi constater si cela cette outil fonctionne correctement ou non 🤔.

#JaiDécouvert floating-ui-svelte

Journal du mardi 16 juillet 2024 à 13:44 #JaiLu, #JaiDécouvert, #JeMeDemande, #JeSouhaite

#JaiLu Documenter la dimension sociale du travail de la connaissance : une approche hypertextuelle de Arthur Perret publié sur HAL.

La documentation personnelle peut être définie comme la documentation élaborée par un individu pour lui-même, de manière idiosyncrasique.

#JaiDécouvert le mot Idiosyncrasique.

#JeMeDemande si la condition « pour lui-même » est dépassable ou non 🤔.

(Psychologie) Caractères propres au comportement d’un individu particulier. (from).

Élaborer une documentation personnelle permet d’organiser le processus de « signifiance » (Leleu-Merviel, 2010) pour construire des connaissances (voir figure 1).

#JaiDécouvert la chercheuse Sylvie Leleu-Merviel.

#JeSouhaite lire Le sens aux interstices, émergence de reliances complexes de Sylvie Leleu-Merviel.

#JaiDécouvert les mots Noumène, Noème et Diaphories.

Comme l’écrit Latour (dans « Pensée retenue, pensée distribuée »), la pensée n’est pas « retenue » dans l’unique cerveau du penseur, mais « distribuée » dans un ensemble d’acteurs et d’actants – un « milieu de savoir » selon l’expression de Le Deuff : données et documents, individus et collectifs, lieux, évènements et dispositifs divers.

#JaiDécouvert Traité de documentation de Paul Otlet.

#JaiDécouvert Robert Estivals et Communicology.

L’approche hypertextuelle présente plusieurs avantages par rapport aux graphes de connaissance, notamment une mise en œuvre plus simple et une plus grande expressivité. Cette méthode produit ce que Stiegler (Le concept d’ « Idiotexte » : esquisses - 2010) appelle un idiotexte, c’est-à-dire la textualisation d’une mémoire personnelle. L’utilité primaire de cette méthode, pour l’individu qui crée sa documentation personnelle, est de multiplier les chemins vers une même information, via des connexions riches en signification et facilement réactivées.

#JaiDécouvert idiotexte, j'ai lu l'article mentionné et je ne l'ai pas compris 🙅‍♀️.

Cette méthode présente également un intérêt pour les recherches sur les systèmes d’organisation des connaissances (SOC). Mazzocchi (2018) définit les SOC comme des ensembles de termes ou concepts interreliés, outils intermédiaires entre des humains et des collections de données et documents. Dans la méthode que nous avons décrite, la création d’un graphe documentaire correspond à la fois à la création d’une collection de documents – les fiches – et d’un SOC – les catégories de fiches et de liens utilisées dans le graphe.

#JaiDécouvert Systèmes d’organisation des connaissances (SOC).

D’abord, cette méthode est orientée par la subjectivité : les choix qui guident l’élaboration du graphe sont basés sur la mémorabilité, critère hautement subjectif.

Ok, j'ai bien compris 👌.

Par exemple, des catégories de fiches peuvent être modifiées, supprimées ou ajoutées progressivement pour orienter la manière dont fonctionne la remémoration.

Ok, j'ai bien compris 👌.

#JaiDécouvert ISKO-France.

#JaiDécouvert L’épistémologie sociale (from)

J'ai pris le temps de regarder https://www.arthurperret.fr/glossaire-indexation.html, j'ai trouvé des choses intéressantes, du vocabulaire pour nommer des éléments techniques des CMS.

Ces configurations affectent la manière dont nous remémorons les choses : nous nous disons par exemple « J’ai mentionné ce concept dans telle publication » ou bien « C’est untel qui m’a recommandé cette méthode ». Ces connexions idiosyncrasiques sont facilement réactivées car elles reposent sur des éléments ayant une grande « mémorabilité » – terme qui renvoie aux arts de la mémoire et que nous entendons ici comme une qualité déterminée subjectivement, de manière réflexive, à partir de situations essentiellement contingentes, qui modifient notre « comportement informationnel ».

Je comprends très bien ce qui est exprimé et cela correspond à mon expérience vécu.

Journal du mercredi 10 juillet 2024 à 11:21 #JaiLu, #JaiDécouvert

#JaiLu Écrire autrement : réflexion croisées sur Mardown

En SHS, les logiciels de traitement de texte (comme LibreOffice Writer, Microsoft Word et Google Docs) sont utilisés par la ma‐ jorité des auteurs et des éditeurs. … leur modèle économique est souvent défavorable à l'utilisateur ; …

La maniabilité des textes en Markdown permet de circuler de façon plus fluide dans sa production écrite et de la mobiliser au fil de différents contextes de recherche (communications scientifiques, articles de recherche, notes, supports de cours, etc.). Le temps de traitement et le travail de mise en forme des textes ainsi produits sont de ce fait rationalisés. L’ensemble de ces étapes constitue un écosystème de travail global et intégré.

Markdown a été pensé pour le Web : c'est une sorte de « sténographie » de HTML.

À la façon d'un wiki personnel, cette documentation regroupe tous les documents dans lesquels on travaille : fiches de lecture, notes terminologiques, brouillons d'idées, etc. C'est l'espace de travail dans Zettlr ou le "vault" dans Obsidian. L'idée centrale est de travailler avec des notes organisées de manière non-linéaire, qui se font référence les unes aux autres. Périodiquement, une idée émerge : un lien nou‐ veau entre deux choses (ou plus). Les notes servent d'aide-mémoire et d'espace de réflexion/idéation.

Outils cités dans l'article :

#JaiDécouvert le mot cosmoscope.

Journal du jeudi 06 juin 2024 à 16:20 #llm, #MachineLearning, #JaiDécouvert, #JaiLu

En travaillant sur 2024-06-06_1047 :

Hugging Face Hub supports all file formats, but has built-in features for GGUF format, a binary format that is optimized for quick loading and saving of models, making it highly efficient for inference purposes. GGUF is designed for use with GGML and other executors. GGUF was developed by @ggerganov who is also the developer of llama.cpp, a popular C/C++ LLM inference framework.

https://huggingface.co/docs/hub/gguf

ggml.ai is a company founded by Georgi Gerganov to support the development of ggml. Nat Friedman and Daniel Gross provided the pre-seed funding.

We are currently seeking to hire full-time developers that share our vision and would like to help advance the idea of on-device inference. If you are interested and if you have already been a contributor to any of the related projects, please contact us at jobs@ggml.ai

Journal du vendredi 31 mai 2024 à 17:46 #llm, #JaiLu, #JeMeDemande, #JaiDécouvert

#JaiLu l'article "LLM auto-hébergés ou non : mon expérience - LinuxFr.org" https://linuxfr.org/users/jobpilot/journaux/llm-auto-heberges-ou-non-mon-experience.

Cependant, une question cruciale se pose rapidement : faut-il les auto-héberger ou les utiliser via des services en ligne ? Dans cet article, je partage mon expérience sur ce sujet.

Je me suis plus ou moins posé cette question il y a 15 jours dans la note suivante : 2024-05-17_1257.

Ces modèles peuvent également tourner localement si vous avez un bon GPU avec suffisamment de mémoire (32 Go, voire 16 Go pour certains modèles quantifiés sur 2 bits). Ils sont plus intelligents que les petits modèles, mais moins que les grands. Dans mon expérience, ils suffisent dans 95% des cas pour l'aide au codage et 100% pour la traduction ou la correction de texte.

Intéressant comme retour d'expérience.

L'auto-hébergement peut se faire de manière complète (frontend et backend) ou hybride (frontend auto-hébergé et inférence sur un endpoint distant). Pour le frontend, j'utilise deux containers Docker chez moi : Chat UI de Hugging Face et Open Webui.

Je pense qu'il parle de :

Je suis impressionné par la taille de la liste des features de Open WebUI

J'ai acheté d'occasion un ordinateur Dell Precision 5820 avec 32 Go de RAM, un CPU Xeon W-2125, une alimentation de 900W et deux cartes NVIDIA Quadro P5000 de 16 Go de RAM chacune, pour un total de 646 CHF.

#JeMeDemande comment se situe la carte graphique NVIDIA Quadro P5000 sur le marché 🤔.

J'ai installé Ubuntu Server 22.4 avec Docker et les pilotes NVIDIA. Ma machine dispose donc de 32 Go de RAM GPU utilisables pour l'inférence. J'utilise Ollama, réparti sur les deux cartes, et Mistral 8x7b quantifié sur 4 bits (2 bits sur une seule carte, mais l'inférence est deux fois plus lente). En inférence, je fais environ 24 tokens/seconde. Le chargement initial du modèle (24 Go) prend un peu de temps. J'ai également essayé LLaMA 3 70b quantifié sur 2 bits, mais c'est très lent (3 tokens/seconde).

Benchmark intéressant.

En inférence, la consommation monte à environ 420W, soit une puissance supplémentaire de 200W. Sur 24h, cela représente une consommation de 6,19 kWh, soit un coût de 1,61 CHF/jour.

Soit environ 1,63 € par jour.

Together AI est une société américaine qui offre un crédit de 25$ à l'ouverture d'un compte. Les prix sont les suivants :

  • Mistral 8x7b : 0,60$/million de tokens
  • LLaMA 3 70b : 0,90$/million de tokens
  • Mistral 8x22b : 1,20$/million de tokens

#JaiDécouvert https://www.together.ai/pricing

Comparaison avec les prix de OpenIA API :

#JeMeDemande si l'unité tokens est comparable entre les modèles 🤔.

Journal du samedi 27 avril 2024 à 22:55 #Fediverse, #JaiDécouvert, #livre, #JaiLu

Ici sur #Fediverse, #JaiDécouvert le #livre How to Make Notes and Write de Dan Allosso.

#JaiLu les chapitres suivants :

  • I. Main Body
  • 1. Inspiration, Interest, Anxiety 5
  • 2. Writing is Thinking 14
  • 3. Working with Ideas 22
  • 4. Highlighting and Taking Notes

Pour le moment je trouve cela très intéressants. Je vais essayer de mettre cela en pratique, si possible en mode WorkInPublic.

Journal du mardi 04 juillet 2023 à 17:35 #WebDev, #JaiDécouvert, #JaiLu, #JeMeDemande

#JaiDécouvert la fonctionnalité Skew Protection de Vercel : Introducing Skew Protection.

#JaiLu aussi Version Skew.

#JeMeDemande comment implémenter le même système que la fonctionnalité Skew Protection de Vercel en self hosted, par exemple, avec SvelteKit 🤔.

Dernière page.