Recherche effectué dans :

Cliquez sur un tag pour affiner votre recherche :

[ << Page précédente (800) ] [ Page suivante (2502) >> ]

Journal du samedi 08 juin 2024 à 10:56 #hardware, #NPU, #CPU, #AMD, #MachineLearning, #Inference, #tops, #JaiDécouvert

En lisant ceci :

AI accelerators are used in mobile devices, such as neural processing units (NPUs) in Apple iPhones, AMD Laptops or Huawei cellphones, and personal computers such as Apple silicon Macs, to cloud computing servers such as tensor processing units (TPU) in the Google Cloud Platform.

#JaiDécouvert que AMD XDNA semble être l'architecture des puces NPU de AMD.

Je lis ici que Ryzen AI est le nom commercial du matériel AMD qui implémente l'architecture XDNA.

La première puce qui intégrèe AMD XDNA est le Ryzen 7040 sorti 2023.

Dans cet article je lis :

  • Des puces de la série Ryzen 7040 intègrent des NPU à 10 TOPS
  • Des puces de la série Ryzen 8000 intègrent des NPU à 16 TOPS
  • Des puces de la série Ryzen AI 300 intègrent des NPU à 50 TOPS

Journal du samedi 08 juin 2024 à 10:35 #Inference, #MachineLearning, #vocabulaire, #llm, #JaiDécidé

Dans 2024-06-06_1047 #JaiDécidé d'utiliser le terme Inference Engines pour définir la fonction ou la catégorie de Llama.cpp.

J'ai échangé avec un ami au sujet des NPU et j'ai dit que j'avais l'impression que ces puces sont spécialés pour exécuter des Inference Engines, c'est-à-dire, effectuer des calculs d'inférence à partir de modèles.

Après vérification, dans cet article je lis :

An AI accelerator, deep learning processor, or neural processing unit (NPU) is a class of specialized hardware accelerator or computer system designed to accelerate artificial intelligence and machine learning applications, including artificial neural networks and machine vision.

et je comprends que mon impression était fausse. Il semble que les NPU ne sont pas seulement dédiés aux opérations d'exécution d'inférence, mais semblent être optimisés aussi pour faire de l'entrainement 🤔.

Un ami me précise :

Inference Engines

Pour moi, c'est un terme très générique qui couvre tous les aspects du machine learning, du deep learning et des algorithmes type LLM mis en œuvre.

et il me partage l'article Wikipedia Inference engine que je n'avais pas lu quand j'avais rédigé 2024-06-06_1047, honte à moi 🫣.

Dans l'article Wikipedia Inference engine je lis :

In the field of artificial intelligence, an inference engine is a software component of an intelligent system that applies logical rules to the knowledge base to deduce new information.

et

Additionally, the concept of 'inference' has expanded to include the process through which trained neural networks generate predictions or decisions. In this context, an 'inference engine' could refer to the specific part of the system, or even the hardware, that executes these operations.

Je comprends qu'un Inference Engines n'effectue pas l'entrainement de modèles.

Pour éviter la confusion, #JaiDécidé d'utiliser à l'avenir le terme "Inference Engine (comme LLama.cpp)".

Le contenu de l'article Wikipedia Llama.cpp augmente mon niveau de confiance dans ce choix de vocabulaire :

llama.cpp is an open source software library written in C++, that performs inference on various Large Language Models such as Llama

Obsidian ne souhaite jamais croitre au-delà de 12 personnes #obsidian, #OnMaPartagé, #Jadore

#OnMaPartagé au sujet de Obsidian : https://x.com/kepano/status/1694731713686196526

The plan for Obsidian is to never grow beyond 10-12 people, never take VC funding, never collect personal data or analytics.

#Jadore cela me fait penser à Basecamp.

How did you pick 10-12 as the people target?

it's roughly the max number of people you can comfortable work with without having managers — everyone is a direct contributor

👍️👌

Though I don't get why you would never want to grow more than 10-12? If you could maintain everything else, wouldn't you want more people and ability to build things in parallel?

I have done it before and it's not as fun to me. For me the love is in the craft. I want to spend my time making things, not managing people. Obsidian has 0 meetings.

🙂

Journal du vendredi 07 juin 2024 à 17:12 #iteration, #backup, #JaiDécidé, #JeSouhaite

Nouvelle #iteration sur Projet 7 - "Améliorer et mettre à jour le projet restic-pg_dump-docker".

Hasard du calendrier, mon ami Alexandre travaille en ce moment sur un projet nommé restic-ftp-docker.

Quelle différence avec restic-pg_dump-docker ?

Principale différence d'objectif entre ces deux projets :


#JaiDécidé de reprendre un maximum d'élément du projet restic-ftp-docker dans restic-pg_dump-docker.

#JeSouhaite proposer une Pull Request à restic-ftp-docker pour étendre ce projet à tous les storages supporté par rclone et ne plus le limité au storage ftp.

Journal du jeudi 06 juin 2024 à 22:57 #llm, #JeMeDemande, #JaiLu

#JeMeDemande quelles sont les différences entre les modèles qui terminent par "rien", par -instruct et par -chat.

This brings us to the heart of the innovation behind the wildly popular ChatGPT: it uses an enhancement of GPT3 that (besides having a lot more parameters), was explicitly fine-tuned on instructions (and dialogs more generally) -- this is referred to as instruction-fine-tuning or IFT for short. In addition to fine-tuning instructions/dialogs, the models behind ChatGPT (i.e., GPT-3.5-Turbo and GPT-4) are further tuned to produce responses that align with human preferences (i.e. produce responses that are more helpful and safe), using a procedure called Reinforcement Learning with Human Feedback (RLHF). (from)

Journal du jeudi 06 juin 2024 à 19:49 #JaiLu

Suite à la lecture de Intel Unveils Lunar Lake Architecture #JaiLu l'article Wikipedia au sujet de NPU : https://en.wikipedia.org/wiki/AI_accelerator.

#JaiLu l'article Wikipedia au sujet des TPU de Google : https://en.wikipedia.org/wiki/Tensor_Processing_Unit


Il y a quelques jours, je me posais des questions au sujet du matériel spécialisé pour exécuter des Inference Engines. La page Puce d'accélération de réseaux de neurones est très intéressante à ce sujet.

Journal du jeudi 06 juin 2024 à 19:42 #CPU, #OnMaPartagé

#OnMaPartagé Analyse • Lunar Lake, ou le x86 plus efficient que jamais, j'ai appris beaucoup de choses intéressantes 👌.

Sur le même sujet, voici le thread Hacker News : Intel Unveils Lunar Lake Architecture

Sujet : Lunar Lake

Journal du jeudi 06 juin 2024 à 18:41

Un ami vient de me partager https://fr.wikivoyage.org.

Je connais ce site depuis longtemps, mais je me souviens d'une histoire de rachat par une société commerciale qui avait tué le projet. Depuis, je ne l'utilisais plus.

Je viens de prendre le temps de rechercher des informations à ce sujet et voici ce que j'ai trouvé.

J'ai découvert Wikitravel en 2004 en même temps que Wiktionary et tous les autres projets de la fondation Wikimedia.

La société Internet Brands annonce l'acquisition de la marque Wikitravel et des serveurs qui hébergent le wiki, de même que World66 (world66.com), le 20 avril 2006 ; le projet devient donc commercial. Cette évolution a été décidée par les fondateurs de Wikitravel et non par la communauté des contributeurs du guide. Une conséquence directe de cette décision est le départ de la plupart des administrateurs et de certains auteurs de la section allemande, qui fondent le 10 décembre 2006 la section allemande d'un fork appelé Wikivoyage. Lors de ce branchement, l'intégralité des articles du Wikitravel allemand a été importée. (from)

Je me souviens donc de cette histoire.

À la mi-2012, la majorité de la communauté des éditeurs de Wikitravel a décidé de se réunir à nouveau avec Wikivoyage et proposé à la Wikimedia Foundation d'héberger le nouveau projet, sous le nom de Wikivoyage. Cette proposition a été acceptée en octobre 2012. (from)

J'avais loupé cet épisode.

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 jeudi 06 juin 2024 à 10:47 #llm, #MachineLearning, #LLM, #JaiDécidé, #JaiDécouvert, #JaimeraisUnJour

Cette semaine, j'ai déjeuné avec un ami dont les connaissances dans le domaine du #MachineLearning et des #LLM dépassent largement les miennes... J'en ai profité pour lui poser de nombreuses questions.
Voici ci-dessous quelques notes de ce que j'ai retenu de notre discussion.

Avertissement : Le contenu de cette note reflète les informations que j'ai reçues pendant cette conversation. Je n'ai pas vérifié l'exactitude de ces informations, et elles pourraient ne pas être entièrement correctes. Le contenu de cette note est donc à considérer comme approximatif. N'hésitez pas à me contacter à contact@stephane-klein.info si vous constatez des erreurs.

Histoire de Llama.cpp ?

Question : quelle est l'histoire de Llama.cpp ? Comment ce projet se positionne dans l'écosystème ?

D'après ce que j'ai compris, début 2023, PyTorch était la solution "mainstream" (la seule ?) pour effectuer de l'inférence sur le modèle LLaMa — sortie en février 2023.

PyTorch — écrit en Python et C++ — est optimisée pour les GPU, plus précisément pour le framework CUDA.
PyTorch est n'est pas optimisé pour l'exécution sur CPU, ce n'est pas son objectif.

Georgi Gerganov a créé Llama.cpp pour pouvoir effectuer de l'inférence sur le modèle LLaMa sur du CPU d'une manière optimisé. Contrairement à PyTorch, plus de Python et des optimisations pour Apple Silicon, utilisation des instructions AVX / AVX2 sur les CPU x86… Par la suite, « la boucle a été bouclée » avec l'ajout du support GPU en avril 2023.

À la question « Maintenant que Llama.cpp a un support GPU, à quoi sert PyTorch ? », la réponse est : PyTorch permet beaucoup d'autres choses, comme entraîner des modèles…

Aperçu de l'historique du projet :

Comment nommer Llama.cpp ?

Question : quel est le nom d'un outil comme Llama.cpp ?

Réponse : Je n'ai pas eu de réponse univoque à cette question.

C'est un outil qui effectue des inférences sur un modèle.

Voici quelques idées de nom :

  • Moteur d'inférence (Inference Engines) ;
  • Exécuteur d'inférence (Inference runtime) ;
  • Bibliothèque d'inférence.

Personnellement, #JaiDécidé d'utiliser le terme Inference Engines.

Autre projet comme Llama.cpp ?

Question : Existe-t-il un autre projet comme Llama.cpp

Oui, il existe d'autres projets, comme llm - Large Language Models for Everyone, in Rust. Article Hacker News publié le 14 mars 2023 sous le nom LLaMA-rs: a Rust port of llama.cpp for fast LLaMA inference on CPU.

Et aussi, https://github.com/karpathy/llm.c - LLM training in simple, raw C/CUDA (from).
Le README de ce projet liste de nombreuses autres implémentations de Inference Engines.

Mais, à ce jour, Llama.cpp semble être l'Inference Engines le plus complet et celui qui fait consensus.

GPU vs CPU

Question : Jai l'impression qu'il est possible de compiler des programmes généralistes sur GPU, dans ce cas, pourquoi ne pas remplacer les CPU par des GPU ? Pourquoi ne pas tout exécuter par des GPU ?

Mon ami n'a pas eu une réponse non équivoque à cette question. Il m'a répondu que l'intérêt du CPU reste sans doute sa faible consommation énergique par rapport au GPU.

Après ce déjeuner, j'ai fait des recherches et je suis tombé sur l'article Wikipedia nommé General-purpose computing on graphics processing units (je suis tombé dessus via l'article ROCm).

Cet article contient une section nommée GPU vs. CPU, mais qui ne répond pas à mes questions à ce sujet 🤷‍♂️.

ROCm ?

Question : J'ai du mal à comprendre ROCm, j'ai l'impression que cela apporte le support du framework CUDA sur AMD, c'est bien cela ?

Réponse : oui.

J'ai ensuite lu ici :

HIPIFY is a source-to-source compiling tool. It translates CUDA to HIP and reverse, either using a Clang-based tool, or a sed-like Perl script.

RAG ?

Question : comment setup facilement un RAG ?

Réponse : regarde llama_index.

#JaiDécouvert ensuite https://github.com/abetlen/llama-cpp-python

Simple Python bindings for @ggerganov's llama.cpp library. This package provides:

  • Low-level access to C API via ctypes interface.
  • High-level Python API for text completion
    • OpenAI-like API
    • LangChain compatibility
    • LlamaIndex compatibility
  • ...

dottextai / outlines

Il m'a partagé le projet https://github.com/outlines-dev/outlines alias dottxtai, pour le moment, je ne sais pas trop à quoi ça sert, mais je pense que c'est intéressant.

Embedding ?

Question : Thibault Neveu parle souvent d'embedding dans ses vidéos et j'ai du mal à comprendre concrètement ce que c'est, tu peux m'expliquer ?

Le vrai terme est Word embedding et d'après ce que j'ai compris, en simplifiant, je dirais que c'est le résultat d'une "sérialisation" de mots ou de textes.

#JaiDécouvert ensuite l'article Word Embeddings in NLP: An Introduction (from) que j'ai survolé. #JaimeraisUnJour prendre le temps de le lire avec attention.

Transformers ?

Question : et maintenant, peux-tu me vulgariser le concept de transformer ?

Réponse : non, je t'invite à lire l'article Natural Language Processing: the age of Transformers.

Entrainement décentralisé ?

Question : existe-t-il un système communautaire pour permettre de générer des modèles de manière décentralisée ?

Réponse - Oui, voici quelques liens :

Au passage, j'ai ajouté https://huggingface.co/blog/ à mon agrégateur RSS (miniflux).

La suite…

Nous avons parlé de nombreux autres sujets sur cette thématique, mais j'ai décidé de m'arrêter là pour cette note et de la publier. Peut-être que je publierai la suite un autre jour 🤷‍♂️.

Journal du mercredi 05 juin 2024 à 14:42 #JaimeraisUnJour, #CUDA, #GPU

#JaimeraisUnJour suivre le tutoriel https://github.com/srush/GPU-Puzzles - Solve puzzles. Learn #CUDA.

#GPU architectures are critical to machine learning, and seem to be becoming even more important every day. However, you can be an expert in machine learning without ever touching GPU code. It is hard to gain intuition working through abstractions.

Journal du mercredi 05 juin 2024 à 11:29 #postgresql, #documentation, #JeMeDemande

#JeMeDemande s'il existe un meilleur moteur de recherche que https://www.postgresql.org/search/?u=%2Fdocs%2F16%2F&q=on+conflict 🤔.

J'ai fait quelques recherches, pour le moment, je n'ai rien trouvé 😟.

Journal du lundi 03 juin 2024 à 15:28 #OnMaPartagé

#OnMaPartagé que le projet https://github.com/dylanaraps/pure-bash-bible est archivé 😥.

Je constate que l'auteur — dylanaraps — de "pure bash bible" a aussi archivé https://github.com/dylanaraps/neofetch.

Je me souviens d'avoir lu le thread Neofetch development discontinued, repository archived il y a quelques jours.

Journal du vendredi 31 mai 2024 à 20:02 #coding, #haskell

J'ai commencé à écouter « Votre mission ? Découvrir Haskell et le mettre en prod - Céline Louvet » parce que je ne comprends rien à Haskell. Je ne vois pas ce que ce langage peut m'apporter. Je ne vois pas sa puissance, mais comme beaucoup de bons codeurs adorent Haskellet les langages fonctionnels, je suis presque certain que je passe à côté de quelque chose de très puissant.

Dans cette vidéo, Céline Louvet dit qu'elle est la première dev, la seule dev de sa startup et se lance avec un langage qu'elle ne maîtrise pas et que très peu de développeurs maîtrisent.
Je trouve qu'elle est très audacieuse !

Cette vidéo date de 2019, j'ai regardé son LinkedIn et je constate que l'expérience a tourné court. Peut-être pour plein de raisons non liées à Haskell. Et depuis je constate qu'elle n'a plus fait de Haskell 🤔.

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 vendredi 31 mai 2024 à 15:24 #JaiDécouvert

À la fin de l'épisode Et si Shape Up avait raison de faire des pauses ? de Scrum Life #JaiDécouvert le néologisme one piece flow où une équipe travaille sur un problème à la fois, tout ensemble.

Journal du jeudi 30 mai 2024 à 15:42

Je viens de finir l'écoute de le l'épisode "Le détournement de fonds qui traumatise la tech française - Nicolas Colin - The Family". J'ai trouvé cela intéressant.

Lien : https://youtu.be/Y67A1Hihcas?si=wqgubHKGyHQ44whb.

Journal du mardi 28 mai 2024 à 11:37 #JeMePoseLaQuestion

Au sujet de règle de platine, un ami vient de me dire :

Est-ce que tu dois appliquer la règle de platine ou / et la règle d'or avec les personnes qui ne veulent pas l'appliquer ?

Je trouve que c'est une très bonne question dont je n'ai pas la réponse.

Première idée qui me vient à l'esprit : est-ce qu'une réponse à ce problème serait d'organiser une discussion en tête-à-tête au début de la collaboration avec une personne afin de se mettre d'accord sur protocole de travail, dans le même esprit que The Core Protocols.
Lors de cette discussion, l'objectif serait que les deux personnes se mettent d'accord pour utiliser soit la la règle d'or soit la règle de platine soit aucune des deux — dans ce cas de figure, je pense que la relation est mal partie 😉.

#JeMePoseLaQuestion de comment organiser cela sans passer pour un ovni 🤔.

Journal du mardi 28 mai 2024 à 11:27 #JaiDécouvert, #blog, #Jadore, #JeSouhaite

Ce matin #JaiDécouvert le site site perso gwern.net ( #blog ) et je déclare que « #Jadore ce site » !
J'aime le fond, la forme, l'attention aux détails, la rationalisation des décisions… 👌.

Voici quelques exemples de choses que j'apprécie.

Par exemple, sur la page https://gwern.net/about :

  • a. Je pense que cela signifie que l'article a été commencé en 2010 et a évolué jusqu'en 2022.
  • b. Je trouve cela très simple pour indiquer que la page n'est plus en work in progress.

Je me suis souvent demandé comment je pouvais gérer mes notes mutables. Je considère qu'un article daté se doit être autant que possible immutable.
J'aime ces choix UX a et b pour indiquer ces informations au lecteur.

#JeSouhaite m'inspirer des éléments UX a, b et c pour mon site sklein.xyz.


mention any use of Fermi estimates in Fermi calculations (from)

J'adore 🙂.


J'adore cette UX d'affichage de breadcrumb pour la raison suivante : les breadcrumb sont généralement affichés sur une ligne, ce qui pose souvent un problème pour les longs titres.
Ici l'affichage sur plusieurs lignes règle ce problème et transmet bien l'idée de hiérarchie 👌.


Il y a tant de bonnes choses à dire sur ce site, mais je m'arrête là pour cette note.

Journal du lundi 27 mai 2024 à 20:10 #llm, #open-source, #réflexion, #open

Je vous partage une réflexion que je viens d'avoir.

  • Je constate que j'utilise de plus en plus ChatGPT à la place de DuckDuckGo (mon moteur de recherche actuel).
  • Je commence souvent par dégrossir une question avec ChatGPT, puis j'utilise mon moteur de recherche pour vérifier l'information avec une source que je juge "fiable".
  • À d'autres moments, je préfère un article Wikipédia ou une documentation de référence plus exhaustive ou structurée — question d'habitude, sans doute — que la réponse de ChatGPT.

Suite à cela, je me suis dit que Google doit très rapidement revoir ses produits. Sinon, il est fort probable que Google perde énormément de revenus.

Je me suis ensuite demandé à quoi pourrait ressembler un produit Google basé sur un LLM qui remplacerait totalement ou en partie Google Search. Là, j'ai pensé directement à l'intégration de publicité à l'intérieur des réponses du LLM de Google 😱.

  • Les publicités pourraient être intégrées de manière subtile sous forme de conseil dans les réponses.
  • Je ne pourrais plus utiliser de bloqueurs de publicité comme uBlock Origin 😟.
  • La situation pourrait être encore pire : Google pourrait se faire financer par des États, des grandes entreprises ou des milliardaires pour nous influencer légèrement via les réponses du LLM.

Je pense plus que jamais qu'il est important pour l'avenir de construire des modèles #open-source, auditables et reproductibles.

Journal du dimanche 26 mai 2024 à 23:06 #neovim, #plugin

Le 1er octobre 2023, on m'a demandé pourquoi j'utilisais neo-tree.nvim plutôt que nvim-tree.lua.

En été 2022, je pense avoir choisi neo-tree.nvim après avoir lu ce commentaire :

After adding soo many "nvim-tree does it" enhancements, I think it has all the features that nvim-tree has at this point, plus some more that nvim-tree doesn't have. (from)


Sur le GitHub officiel le neo-tree.nvim, je lis :

Why?

There are many tree plugins for (neo)vim, so why make another one? Well, I wanted something that was:

  1. Easy to maintain and enhance.
  2. Stable.
  3. Easy to customize.

Easy to maintain and enhance

This plugin is designed to grow and be flexible. This is accomplished by making the code as decoupled and functional as possible. Hopefully new contributors will find it easy to work with.

One big difference between this plugin and the ones that came before it, which is also what finally pushed me over the edge into making a new plugin, is that we now have libraries to build upon that did not exist when other tree plugins were created. Most notably, nui.nvim and plenary.nvm. Building upon shared libraries will go a long way in making neo-tree easy to maintain.

En lisant ces paragraphes, je pense comprendre que neo-tree.nvim a été créé après et en s'inspirant de nvim-tree.lua. Je suppose qu'il est plus moderne 🤔.


En 2022 une discussion a eu lieu pour merger les plugins neo-tree.nvim et nvim-tree.lua, les échanges entre les auteurs étaient chaleureux et constructif. Après beaucoup d'hésitation, la fusion ne s'est pas faite.


Le créateur de neo-tree.nvim explique dans une issue nvim-tree.lua pourquoi il a créé neo-tree.nvim.


L'auteur de nvim-tree.lua dit :

neo-tree as you said is more modular, leaning towards power users. (from)


Je lis ici :

NvimTree is faster (if performance matters to you...)

et ici

I've used nvim-tree for years and switched to neo-tree a while ago to try it out. At first I thought the buffers and git feature are cool, but then I barely used them, because I already have lazygit and telescope for that. Also neo-tree is considerably slower and was quite buggy for me. So I switched back to nvim-tree, honestly think it's just better.


Après avoir comparé la documentation de neo-tree.nvim avec celle de nvim-tree.lua, je constate :

  • Les deux plugins supportent un mode "netrw or vinegar".
  • Les deux plugins supportent un mode "floating window".
  • neo-tree.nvim propose une fonctionnalité de fuzzy_finder que je n'ai pas trouvée dans nvim-tree.lua.
  • J'ai une petite préférence pour les choix de key mapping de neo-tree.nvim mais c'est un avis subjectif, sans doute basé sur mon habitude.

En conclusion, je pense qu'il n'y pas d'argument frappant en faveur de l'un de ces deux plugins.

Journal du dimanche 26 mai 2024 à 10:52 #neovim, #dotfiles, #direnv, #coding

Quand je travaille sur le refactoring de ma configuration Neovim, par exemple un passage de packer.nvim à lazy.nvim, je souhaite absolument éviter de perturber mon instance Neovim courante — que je qualifie de stable.
Pour cela, j'ai cherché des solutions pour lancer plusieurs instances de Neovim.

Mon point de départ dans cette quête était trop ambitieux : je souhaitais mettre en place un environemment de travail pour tester la globalité de mes dotfiles basé sur chezmoi.

J'ai explorer les pistes suivantes :

Finalement, si je me limite à un travail sur ma configuration Neovim, j'ai trouvé la solution suivante minimaliste pour lancer une instance de Neovim cloisonée :

$ export XDG_CONFIG_HOME=$PWD/config/
$ export XDG_DATA_HOME=$PWD/share/
$ nvim

Pour rendre mon quotidien plus agréable, j'exécute ce script ./start_sandboxed_neovim.sh — qui intègre ces instructions.


Je n'utilise pas direnv dans cet environnement de travail parce que je souhaite continuer à pouvoir éditer les fichiers de configuration avec mon instance de Neovim "stable".

En pratique, j'ouvre deux panels tmux verticaux, à gauche j'édite la configuration avec mon instance Neovim stable et à droite je lance l'instance Neovim cloisonée.

Journal du vendredi 24 mai 2024 à 13:32 #JaiPublié, #Doctrine

Cela fait depuis décembre 2023 que je souhaite traduire l'article The Platinum Rule de Shawn Wang (dit swyx), c'est chose faite :

Voici la Traduction de "The Platinum Rule" 🙂.

Pourquoi avoir traduit cet article ?
Parce que quand je l'ai lu, il m'a fait beaucoup réfléchir parce que j'ai réalisé que j'ai été depuis tout petit très conditionné par la règle d'or. J'essayais au maximum de la respecter et j'imaginais que si tout le monde la respectait, tout irait pour le mieux… mais avant de lire cet article, c'est bête à dire, mais je n'avais pas réalisé qu'en pratique, cela ne fonctionnait pas.

En lisant cet article, je pense qu'il est bon de garder à l'esprit que Shawn Wang (dit swyx) est un développeur et je pense qu'il a écrit cet article en rapport à des difficultés de travailler en équipe sur des projets de développement.

Pensez, par exemple, aux conventions de coding style et à bien d'autre sujets !

N'hésitez pas à venir échanger avec moi pour me partager votre avis sur le sujet, cela m'intéresse 🙂.

Journal du vendredi 24 mai 2024 à 11:56 #JaiDécouvert, #décentralisation, #JeSuisPrescripteur, #Internet

Je viens de découvrir l'existence de l'article Wikipedia Redécentralisation d'Internet : https://fr.wikipedia.org/wiki/Redécentralisation_d'Internet

À noter que ce n'est pas une nouvelle idée pour moi, car je suis sensibilisé à ce sujet depuis le milieu des années 2000.

#JeSuisPrescripteur : En tant que prescripteur et soutien — non extrémiste — de ce principe, je suis favorable à une augmentation de la décentralisation d' #Internet.

Journal du vendredi 24 mai 2024 à 11:01 #JaiDécouvert, #JaimeraisUnJour

#JaiDécouvert La loi du Ripolin :

En 1925, l’architecte Le Corbusier publie L’Art décoratif d’aujourd’hui, ouvrage dans lequel il développe une Loi du Ripolin qui établit un parallèle entre le nettoyage des murs et celle de l’esprit. Passer une couche de blanc sur ses murs serait, pour lui, une opération de renouveau à la fois concret et moral. Cette loi lui permet également de donner sa définition de l’art. (from)

#JaimeraisUnJour lire Le Corbusier, L’Art décoratif d’aujourd’hui et « la loi du ripolin »


Un ami me fait découvrir "ripoliner" dans le sens suivant :

(Sens figuré) Farder, masquer, rafraîchir une image politique.

Journal du vendredi 24 mai 2024 à 10:56 #économie, #industrialisation, #france, #dette

Sur cette page : L’industrie française du meuble face à la concurrence européenne et chinoise je lis :

En 2018, la production française de meubles représente 6 % de la production de l’Union européenne à 28 pays (UE). La France occupe le cinquième rang, après l’Allemagne (21 %), l’Italie (20 %), la Pologne (15 %) et le Royaume-Uni (9 %). Avec la France et l’Espagne (6 % chacun), ces pays se partagent 80 % de la production européenne.

Une balance commerciale largement déficitaire

Journal du vendredi 24 mai 2024 à 10:36

Quand j'observe des phénomènes sociaux, par exemple, les chiffres de ventes de meubles de détail en France présentés ci-dessous, je suis toujours émerveillé par la régularité des cycles.

(Source)

Cela me fait penser à la Loi de Poisson ou à la Loi de Bernoulli qui sont dans mon esprit contre-intuitives. J'ai des difficultés à réaliser que l'univers dans lequel je vis est autant déterminé 🤔.

Journal du jeudi 23 mai 2024 à 21:39 #hosting, #OVH, #scaleway, #OnMaPartagé

#OnMaPartagé https://www.ubicloud.com

Ubicloud offers infrastructure-as-a-service (IaaS) features on providers that lease bare metal instances, such as Hetzner, OVH, and AWS Bare Metal. It’s also available as a managed service.

Journal du jeudi 23 mai 2024 à 10:08 #Idée, #JeMeDemande

#Idée de Projets : #JeMeDemande quelles méthodes utiliser pour implémenter un éditeur web de type texte à trous basé sur les librairies CodeMirror et ProseMirror.

Voici les premiers résultats de recherche que j'ai trouvés.

Pour ProseMirror, j'ai trouvé ceci :

Pour CodeMirror, j'ai trouvé ceci :


#JeMeDemande quelles sont les forces et faiblesses des deux idées d'implémentations suivantes :

  • a. Texte à trous implémenté par une seule instance d'éditeur CodeMirror/ProseMirror.
  • b. Plusieurs instances d'éditeur CodeMirror/ProseMirror dans une page HTML. Dans cette implémentation les éléments en readonly ne seraient pas présents dans l'éditeur, mais seraientt de simples composants HTML de la page.

Journal du mercredi 22 mai 2024 à 12:45 #meta, #obsidian, #feedback, #JaimeraisUnJour

On me demande où j'en suis dans mon expérience notes.sklein.xyz ?

Le 30 avril je disais :

Comment il est déployé ? Pour le moment, d'une manière très minimaliste et assez manuelle comme décrit ici : https://github.com/stephane-klein/obsidian-quartz-playground/tree/main/deployment

Aujourd'hui c'est toujours le cas. Quand je veux déployer je lance le script deployment/scripts/build-and-push.sh.


Je disais aussi :

Est-ce que j'en suis satisfait ? Pour le moment, la réponse est non, parce que je ne le maitrise pas assez.

Je ne suis toujours pas satisfait du rendu de notes.sklein.xyz mais je suis satisfait de l'expérience car j'arrive à produire et partager du contenu facilement.
Pour le moment, je pense que produire du contenu est plus important que de soigner le rendu. Le jour où j'aurai beaucoup de contenu, une amélioration de la forme, de la navigation et des fonctionnalités aura alors plus de valeur pour moi.


Je disais aussi :

J'ai une grande envie d'implémenter une version personnelle basée sur SvelteKit et Apache Age, mais j'essaie de ne pas tomber dans ce Yak!.

Suite à cela, j'ai créé Projet 5 - "Importation d'un vault Obsidian vers Apache Age" et j'ai seulement travailé un tout petit peu sur cette expérience.


#JaimeraisUnJour un jour setup un RAG sur notes.sklein.xyz.


Est-ce que je suis satisfait du client Obsidian ? Je réponds que parfois oui, parfois non. Il m'agace par moments, et j'aimerais prendre le temps de "parfaitement configurer" Obsidian.nvim.

Journal du mercredi 22 mai 2024 à 11:57 #coding, #bash, #conseil

Alexandre vient de me donner le conseil Bash suivant.

De remplacer mon usage de :

set -e`

par :

set -euo pipefail
  • e => Arrête l'exécution à la première erreur
  • u => Génère une erreur si une variable n'est pas définie (il faut mettre des valeurs par défaut aux variables d'env)
  • o pipefail => Renvoie une erreur si une commande dans un pipe échoue

Je lui dit merci 🙂.

Journal du mercredi 22 mai 2024 à 11:33 #JaiLu, #JePense, #JeMeDemande

J'ai rapidement parcouru l'article "What UI density means and how to design for it" ainsi que les discussions sur HackerNews et Lobsters.

#JePense : En tant que utilisateur hacker, je suis attristé de constater — ce n'est qu'une impression — que les UI des applications mainstream semblent de plus en plus appauvries en termes de densité d'information. Mon propos concerne spécifiquement les applications desktop ; les applications smartphone ont d'autres contraintes, notamment la sélection avec le doigt.

#JeMeDemande si les contraintes des interfaces utilisateur en mode texte (TUI) permettent généralement une densité d'information plus élevée 🤔.
J'ai partagé cette réflexion dans ces deux commentaires : HackerNews et Lobsters

Journal du mercredi 22 mai 2024 à 10:33 #coding, #iteration, #project-completed, #SvelteKit, #svelte, #screencast, #SvelteFlow

Je viens de finir Projet 6 - "SvelteFlow playground", voici un screencast de démonstration du résultat :

J'ai passé 5h27 sur ce projet.

Code source de ce projet https://github.com/stephane-klein/svelteflow-playground

Ma plus grosse difficulté a été de trouver comment implémenter les containtes liaison.

Pour le moment, je doute que mon implémentation respecte les bonnes pratiques d'utilisation de la librairie. Je pense que je vais découvrir le "bon" usage — tel que imaginé par Moritz Klack — de la librarie au fur et à mesure de mon utilisation.

Journal du mardi 21 mai 2024 à 23:09 #coding, #librairie, #javascript, #JaiDécouvert

Dans la page suivante Elkjs Tree – Svelte Flow #JaiDécouvert la librarie Javascript elkjs :

ELK's layout algorithms for JavaScript

Journal du mardi 21 mai 2024 à 16:22 #coding, #iteration, #SvelteFlow, #SvelteKit, #svelte

Nouvelle #iteration sur Projet 6 - "SvelteFlow playground".

17:00 : J'ai réussi à ajouter un CustomNode (commit).


23:00 : Dans ce commit, j'ai réussi à définir des contraintes de liaisons. Il n'est plus possible de lier deux nodes du même type.

Journal du mardi 21 mai 2024 à 11:58 #JaiLu, #linux, #fedora, #reddit, #JaimeraisUnJour

Dans ce thread je lis :

Linus Torvalds himself uses Fedora

et aussi un peu plus bas, je lis :

the second guy in linux (greg k.-h.) uses arch though 😊

Greg Kroah-Hartman


Linus vient s'ajouter aux nombreux developeurs mainstreams qui utilisent Fedora.

#JaimeraisUnJour commencer à dresser cette liste (chose que j'ai commencé à faire avec cette note).

Journal du mardi 21 mai 2024 à 11:51 #open-source, #JaiLu

Sur Reddit, je suis tombé sur le thread concernant l'article de David Heinemeier Hansson (DHH de Basecamp) intitulé « Open source is neither a community nor a democracy ». Après lecture, je pense être en accord avec son contenu.

Journal du lundi 20 mai 2024 à 18:38 #typographie, #anglais, #JaiDécouvert

Pour la première fois, j'ai pris le temps de faire quelque recherche pour comprendre l'origine de la différence de pratique de l'utilisation des majusques des titres en anglais et en français.

#JaiDécouvert :

#JaiDécouvert qu'il existe plusieurs règle de Title case :

  • AP Stylebook
  • Chicago Manual of Style
  • APA Style
  • ...

[ << Page précédente (800) ] | [ Page suivante (2502) >> ]