Concentration + LLM

Excellent. J’étais passé à côté de cette création :smile:

Dans le Web3, l’utilisateur est au centre de son système d’information…
Je pense que cette interface serait plus “efficace” que Cesium pour dynamiser notre Expérience Utilisateur.

Dommage que je ne sache pas reprendre ton code… Tu aurai un peu de temps pour m’aider à le faire?

Vu le temps depuis lequel tu tournes autour du code sans jamais t’y mettre, je doute que la solution puisse venir de moi. Je pense qu’avec un peu de courage et de concentration tu pourras t’affranchir du bash crado et développer des “vrais” outils plus aboutis que des PoC. Mais il faut aussi que tu mettes à jour ton OS parce que c’est pas facile d’avoir un environnement de développement fonctionnel avec des vieilles versions des paquets et des libc obsolètes.

+ LLM tu peux tout faire Fred !


Je te partage un script (écris par un Claude 3 bien sûr…) que j’utilise pour partager du code facilement à n’importe quel LLM quelque soit sont interface:

#!/bin/bash

usage() {
  echo "Usage: $0 -d <directory> -i <include_pattern1> [-i <include_pattern2> ...] [-e <exclude_pattern1> [-e <exclude_pattern2> ...]]"
  exit 1
}

# Initialize variables
search_directory=""
include_patterns=()
exclude_patterns=()

# Process options
while getopts "d:i:e:" opt; do
  case $opt in
    d) search_directory=$OPTARG ;;
    i) include_patterns+=("$OPTARG") ;;
    e) exclude_patterns+=("$OPTARG") ;;
    *) usage ;;
  esac
done

# Check if the search directory and at least one include pattern are defined
if [[ -z "$search_directory" || ${#include_patterns[@]} -eq 0 ]]; then
  echo "Search directory and/or include pattern(s) missing."
  usage
fi

# Build the find command with include and exclude patterns
find_command=(find "$search_directory" "(" -false)
for pattern in "${include_patterns[@]}"; do
  find_command+=(-o -name "$pattern")
done
find_command+=(")")
for pattern in "${exclude_patterns[@]}"; do
  find_command+=("!" -path "$pattern")
done

# Execute the find command and process each file
"${find_command[@]}" -exec awk 'FNR==1{print "\n//filename: " FILENAME}{print}' {} + | xclip -selection clipboard

Chez moi j’en ai fait un alias cpcode.
Ca permet de copier dans ton presse papier tout le code d’un répertoire et ses sous répertoires, mais en sélectionnant uniquement les extensions que tu veux et en excluant les dossier que tu veux, et surtout avec en en-tête le chemin relatif vers le fichier, exemple:

cpcode -d src -i "*.graphql" -e "src/app/network/*"

copie le contenu de tous les fichier .graphql du dossier src, sauf les fichiers du dossier src/app/network

Perplexity + Claude 3 permettent de lui faire gober la quantité que tu veux de texte sans limite, il sera juste moins précis si y’en a beaucoup trop, mais ta vraiment de la marge, avec la bonne première question il va pointer le code adéquate grace à ce trick.

Comment pensez-vous que j’ai pu forker ce plugin Discourse en une soirée par exemple ?
https://forum.monnaie-libre.fr/t/comment-annoncer-un-evenement-rencontre/29676/19?u=poka

Avec ça je suis certain qu’en posant les bonnes questions tu pourras modifier comme tu veux n’importe quel code, quelque soit sont langage.
Faut juste un peu de persévérance parfois, ne pas hésiter à redémarrer une conversation de zero quand la discutions s’enfonce trop profond (facile avec ce script cpcode).


Ah oui mais surtout, install et utilise VSCODE et ARRETE de CODER avec VIM !! (ce que j’ai fait aussi, pendant, beaucoup trop longtemps…)

2 Likes

Ben oué !! Merci chatGPT :wink: Tu as accès à quels modèles toi ?

t’as déjà répondu :wink:

je sais “bash = creole”
parce que je ne suis pas codeur… je cherche à trouver une interface simple au “web3” avec des algorithmes centrés sur les clefs utilisateurs qui enregistrent les états informationnels de leurs spheres N1 et N2. Il y 'a un changement de perspective et une expérience utilisateur pas simple à trouver.

1 Like

Autre exemple d’usage:

cpcode -d . -i "*.js" -i "*.hbs" -e "assets/javascripts/discourse/components/*" -e "assets/javascripts/discourse/adapters/*"

Copie tous les fichier .js et .hbs du répertoire courant, sauf dans les dossiers et sous dossier de assets/javascripts/discourse/components et assets/javascripts/discourse/adapters

je commence par
git clone https://git.42l.fr/HugoTrentesaux/DataJune.jl.git

où ça se trouve ?

moi je suis à chatGPT3.5
ou ollama run mistral

En fait la plus grosse barrière au début je dirais, quand tu ne connais pas l’environnement de code, c’est d’abords de faire tourner l’outil en mode dev en local sur ta machine correctement.
Pour ça le README doit normalement l’expliquer en détail, puis un LLM à la rescousse en cas de pépin.

Normalement tous les languages moderne dispose de fonctionnalité de hot reloading en mode dev, ce qui permet de l’app se réactualiser l’app automatiquement à chaque changement que tu fais dans le code, en live. Extrêmement pratique.
Pour le web se servir de la console JS du navigateur pour voir les erreurs, que tu peux balancer au LLM aussi avec la stack d’erreur, of course.
Les autres devs vont pleurer du sang en lisant ce cours de dev.

Une fois que ça c’est fait, tu peux commencer à chercher à modifier le code, mais pas avant.

https://www.perplexity.ai

Mais faut payer 20€/mois pour pouvoir sélectionner n’improte quel model en paramètre, dont Claude 3 Opus et gpt4.
Donc ça remplace facilement l’abo gpt4 et tous les autres.

Sinon test avec mistral en local oui via ollama, mais bon t’aura pas du tout les même résultat.
A moins d’utiliser mixtral 8x22B ou llama3 70b instruct ou +, mais là il te faut une carte graphique hors d’atteinte pour nous simples mortels.

Ça c’est le code de datajune, mais pour ce qui est de la wotmap, tout est contenu dans https://git.42l.fr/HugoTrentesaux/wotmap, pas besoin de passer par DataJune (sauf pour avoir des données plus à jour).

Tu as raison.
C’est un peu trop le bordel ma PRETTY_NAME=“Linux Mint 20.2”
j’hésite entre Debian ou Arch…
quelle ditrib tu utilises ?

Perso Manjaro (Arch) mais je te recommande de rester sur un Debian, ça sera plus familier pour toi.

Arch si tu aimes passer plus de temps à réparer des problèmes de dépendances qu’à faire autre chose, et avoir des paquets à jour.

Debian si tu aimes que ça marche, supportes d’avoir 3 ans de retard sur toutes les releases, ou dois compiler des distribuables.

J’étais sous Arch, je suis repassé sous Debian. (y compris sur mon RPi, remplacé le Raspbian 32bits par un Debian stable 64bits) Mon laptop qui est encore sous Arch a accumulé tellement de retard de mises à jour que je ne suis pas arrivé à les faire.

Et si tu es aventureux, tu peux demander à @ManUtopiK s’il est heureux avec NixOS sur sa machine de dev :slight_smile:

J’étais sur Mint (Cinnamon), je suis passé sur Manjaro (gnome) en étant perverti par Hugo. Ca fait 3 ou 4 mois, je m’y suis fait j’aime beaucoup. Parfois moins de doc que pour Debian, mais globalement on trouve tout en AUR.

Sinon je ton conseil Mint plutôt que Debian brut. Tu aura moins de soucis de driver de périphérique et tout ce qu’il faut pour desktop. Les avantages d’Ubuntu sans la merdasse de package à la con qu’ils te fourgues.

Je suis donc un taré d’avoir arch, + blackarch, + parabola, avec tdm et dwm le plus souvent.
your-freedom de parabola vire les paquets non libres…

Bon des fois je supprime des trucs à cause des soucis de dépendances, parfois je fais du Siglevel=never à cause des soucis de signature, je devrai faire plus de Pacman -Qdt pour voir ce qu’il faudrait virer… et plus me pencher sur les méthodes propres les mises à jour des fichiers de config… mais je suis à jour!!