Cliquez sur un ou plusieurs tags pour appliquer un filtre sur la liste des notes de type "Journaux" :

[ << Notes plus récentes (854) ] [ Notes plus anciennes (132) >> ]

Jeudi 6 juin 2024

Déjeuner avec un ami sur le thème, auto-hébergement de LLMs #llm, #MachineLearning, #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 🤷‍♂️.

Mercredi 5 juin 2024

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é 😟.

Lundi 3 juin 2024

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.

Vendredi 31 mai 2024

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 🤔.

Lecture active de l'article « LLM auto-hébergés ou non : mon expérience » de LinuxFr #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.

Jeudi 30 mai 2024

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.

Mardi 28 mai 2024

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.

Lundi 27 mai 2024

Je constate que j'utilise de plus en plus ChatGPT à la place de DuckDuckGo #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.

Dimanche 26 mai 2024

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.

Vendredi 24 mai 2024

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é 🤔.

Jeudi 23 mai 2024

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.

Mercredi 22 mai 2024

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.

Mardi 21 mai 2024

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.

Lundi 20 mai 2024

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
  • ...

Journal du lundi 20 mai 2024 à 18:30 #JaiDécouvert

Une amie m'a fait découvrir ( #JaiDécouvert ) l'expression "NOLD" qui veut dire "Never Old".

L'expression "nold", contraction de "never" et de "old", autrement dit les "jamais vieux", désigne les 45-65 ans. Une génération qui ne se sent pas du tout vieille, bien décidée à ne pas être étiquetée "senior" passé la cinquantaine. Qu'est-ce qu'être nold, et d'où vient le concept ? Explications. - (from)"

Je pense que cette expression est pour le moment très confidentiel, je ne trouve rien sur :

En faisant une recherche sur Google Trend, je pense que cette expression est vraiment confidentiel :

Journal du lundi 20 mai 2024 à 15:13 #coding, #jupyter, #python, #javascript

Les deux fois où j'ai essayé d'utiliser Jupyter pour réaliser, par exemple, une calculatrice financière, j'ai fini par constater que je ne trouve pas cet outil pratique. Après quelques heures, je retourne soit à un script Python classique, soit à la création d'une page web basée sur HTML et JavaScript, qui me donne bien plus de flexibilité que Jupyter.

Il est possible que ce soit parce que je connais mal Jupyter, mais j'y ai tout de même consacré plus de deux heures hier soir, explorant notamment les Jupyter Widgets (ipywidgets).

Journal du lundi 20 mai 2024 à 11:17 #cli

Commande #cli pour convertir un fichier .mp4 en un .gif de 640px de largeur :

$ ffmpeg -i input.mp4  -vf "fps=10,scale=640:-1:flags=lanczos" -c:v pam -f image2pipe - | \
convert -delay 5 -layers Optimize - output.gif

Journal du lundi 20 mai 2024 à 11:01 #coding, #iteration, #svelte, #SvelteKit, #JeMeDemande, #JeLis

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

Je me suis inspiré de l'exemple Drag and Drop pour implémenter ce commit, ce qui donne ceci :


11:19 : Prochaine étape, lire et comprendre Theming – Svelte Flow.


11:32 :


12:29 :

Vendredi 17 mai 2024

Upgrade de ma workstation de Fedora 39 vers 40 #linux, #fedora, #upgrade, #desktop

Fedora 40 version stable est sortie le 23 avril 2024 et presque un mois plus tard, j'ai upgrade mon Thinkpad T14s de la version 39 vers la version 40.

Que ce soit par le passé avec MacOS et maintenant avec Fedora, pour éviter d'être impacté par des bugs, ou des régressions, j'ai pris l'habitude d'attendre quelques semaines avant d'effectuer un upgrade d'OS majeur de ma workstation.

J'ai suivi la méthode officielle de mise à jour :

# dnf install dnf-plugin-system-upgrade
# dnf upgrade --refresh
# dnf clean all
# dnf system-upgrade download --releasever=40
# dnf system-upgrade reboot

et cela c'est déroulé avec succès.

Après 1h d'utilisation, je n'ai observé aucune régression.

Je me demande combien me coûterait l'hébergement de Lllama.cpp sur une GPU instance de Scaleway #llm, #POC, #MachineLearning, #scaleway, #JeMeDemande, #PremièreActionConcrète

#JeMeDemande combien me coûterait la réalisation du #POC suivant :

🤔.

Tarifs :

Dans un premier temps, j'aimerais me limiter aaux instances les moins chères :

  • GPU-3070 à environ 1 € / heure
  • L4-1-24G à 0.75 € / heure
  • et peut-être RENDER-S à 1,24 € / heure

Tous ces prix sont hors taxe.

Au moment où j'écris ces lignes, Scaleway a du stock de ces trois types d'instances :

  • #JeMeDemande comment je pourrais me préparer en amont pour installer rapidement sur le serveur un environnement pour faire mes tests.
  • #JeMeDemande s'il existe des tutoriaux tout prêts pour faire ce type de tâches.
  • #JeMeDemande combien de temps prendrait le déploiement.

Si je prends 2h pour l'installation + 3h pour faire des tests, cela ferait 5h au total.
J'ai cherché un peu partout, je n'ai pas trouvé de coût "caché" de setup de l'instance.
Le prix de cette expérience serait entre 4,5 € et 7,44 € TTC.


  • #JeMeDemande combien me coûterait l'achat de ce type de machine.
  • #JeMeDemande à partir de combien d'heures d'utilisation l'achat serait plus rentable que la location.
  • Si par exemple, j'utilise cette machine 3h par jour, je me demande à partir de quelle date cette machine serait rentabilisée et aussi, #JeMeDemande si cette machine ne serait totalement obsolète ou non à cette date 🤔.

Journal du vendredi 17 mai 2024 à 12:07

Dans le Projet 6 - "SvelteFlow playground" je dis :

Glisser / déposer 2 types d'objets vers un flow container.

Je pense me servir de l'exemple Drag and Drop comme source d'inspiration.

Je dis aussi :

Interdire les liaisons entre des objets de même type.

Je pense me servir de l'exemple Validation comme source d'inspiration.

Je dis aussi :

Idéalement j'aimerais que les objets soient placés "harmonieusement" entre eux dans le flow container.

Peut-être que le système de layout de SvelteFlow pourra m'être utile :

🤔

[ << Notes plus récentes (854) ] | [ Notes plus anciennes (132) >> ]